From b470872ea10337607b498fb5ca8cd07627a72465 Mon Sep 17 00:00:00 2001 From: BlobMaster41 <96896824+BlobMaster41@users.noreply.github.com> Date: Sun, 8 Mar 2026 03:30:21 -0400 Subject: [PATCH 1/6] Bump dev deps and update generated .wat tests Update development dependencies (notably @eslint/js -> 10.0.1, eslint -> 10.0.3, @typescript-eslint/* -> 8.56.1, @types/node -> 25.3.5, esbuild -> 0.27.3, and other tooling packages) and update package-lock.json accordingly. Regenerate a large set of compiler test outputs (.wat) so recorded test artifacts match the updated toolchain/formatting changes. Add generated UMD bundle for rtrace Add a generated UMD build for lib/rtrace (do not edit). The bundle exports Rtrace and overhead constants (BLOCK_OVERHEAD, OBJECT_OVERHEAD, TOTAL_OVERHEAD) and implements shadow-memory management, block bookkeeping, runtime instrumentation hooks (oninit, onalloc, onresize, onmove, onvisit, onfree, oninterrupt, onyield, oncollect, onstore, onload), GC profiling, and error/info reporting. This file is a generated wrapper intended for UMD consumers of the rtrace runtime. Update test.yml Revert "Update test.yml" This reverts commit fd8d90826760a19c52b86d61a10671972ac1f94b. Update eslint.config.js Update eslint.config.js Update .eslintrc.cjs Update test.yml Update test.yml Rename loader package to @btc-vision/as-loader Rebrand the loader package from @assemblyscript/loader to @btc-vision/as-loader. Update README references (root and loader README), import example, loader package.json and UMD entry, and related test build artifacts. Also update rtrace package metadata and UMD build, and add a package-lock for the rtrace package. Support runtime 'none' and related fixes Add support for a 'none' runtime option and adjust compiler/CLI behavior accordingly. CLI: map runtime 'none' and report compile diagnostics before crashing. Compiler: skip exporting runtime functions and managed runtime calls when runtime is None; improve instance lookup safety. Shadow stack: use unreachable() when exception handling is enabled, otherwise keep static abort. Program: emit diagnostics when required standard library elements are missing. asconfig: set a default stackSize of 65536. Add 'none' runtime and simple allocator Introduce a memory-only "none" runtime with basic allocation APIs and no GC: add std/assembly/rt/none.ts and an index file, and register Runtime.None in shared/runtime.ts. Implement __alloc/__realloc/__free and object helpers (__new/__renew) plus no-op __link/__visit; handle linear memory growth and allocation alignment. Also change abort feature check in builtins (use direct ASC_FEATURE_EXCEPTION_HANDLING flag) and tighten envOwners lookup in src/compiler.ts to return null when missing. Add Memory runtime and conditional GC linking Introduce a new Memory runtime (renamed from None) that provides a memory-only allocator without GC and update code to avoid GC hooks in this mode. Updated CLI to accept the "memory" runtime flag, adjusted compiler checks to compare against Runtime.Memory, and added a memory-only runtime implementation (std/assembly/rt/memory-runtime.ts and index-memory.ts). Multiple std/assembly modules now import Runtime and guard calls to __link and __visit so references and GC visitation are skipped when ASC_RUNTIME == Runtime.Memory. --- .eslintrc.cjs | 3 + .github/workflows/test.yml | 199 +-- cli/index.js | 7 + eslint.config.js | 6 +- lib/README.md | 2 +- lib/loader/README.md | 10 +- lib/loader/package-lock.json | 1339 ++++------------- lib/loader/package.json | 4 +- lib/loader/tests/build/default.wasm | Bin 7739 -> 11809 bytes lib/loader/tests/build/legacy.wasm | Bin 7739 -> 11809 bytes lib/loader/umd/index.js | 228 +-- lib/rtrace/package.json | 4 +- lib/rtrace/umd/index.js | 188 +-- package-lock.json | 956 ++++-------- package.json | 18 +- src/asconfig.json | 1 + src/compiler.ts | 10 +- src/passes/shadowstack.ts | 10 +- src/program.ts | 10 +- std/assembly/array.ts | 62 +- std/assembly/builtins.ts | 2 +- std/assembly/function.ts | 8 +- std/assembly/map.ts | 57 +- std/assembly/rt.ts | 5 +- std/assembly/rt/index-memory.ts | 1 + std/assembly/rt/memory-runtime.ts | 94 ++ std/assembly/set.ts | 35 +- std/assembly/shared/runtime.ts | 2 + std/assembly/staticarray.ts | 56 +- std/assembly/string.ts | 5 +- std/assembly/typedarray.ts | 17 +- tests/compiler/NonNullable.debug.wat | 15 +- tests/compiler/NonNullable.release.wat | 8 +- tests/compiler/abi.debug.wat | 15 +- tests/compiler/assert-nonnull.debug.wat | 15 +- tests/compiler/assert-nonnull.release.wat | 8 +- tests/compiler/bigint-integration.debug.wat | 15 +- tests/compiler/bigint-integration.release.wat | 8 +- tests/compiler/bool.debug.wat | 15 +- tests/compiler/builtins.debug.wat | 15 +- tests/compiler/builtins.release.wat | 8 +- tests/compiler/call-optional.debug.wat | 15 +- tests/compiler/call-optional.release.wat | 8 +- tests/compiler/class-extends.debug.wat | 15 +- tests/compiler/class-extends.release.wat | 8 +- .../compiler/class-static-function.debug.wat | 15 +- .../class-static-function.release.wat | 8 +- tests/compiler/closure-class.debug.wat | 15 +- tests/compiler/closure-class.release.wat | 8 +- tests/compiler/closure-complex.debug.wat | 15 +- tests/compiler/closure-complex.release.wat | 8 +- tests/compiler/closure-stress.debug.wat | 15 +- tests/compiler/closure-stress.release.wat | 8 +- tests/compiler/closure.debug.wat | 15 +- tests/compiler/closure.release.wat | 8 +- tests/compiler/comma.debug.wat | 15 +- tests/compiler/comma.release.wat | 8 +- tests/compiler/declare.debug.wat | 15 +- tests/compiler/declare.release.wat | 8 +- tests/compiler/enum-to-string.debug.wat | 15 +- tests/compiler/enum-to-string.release.wat | 8 +- tests/compiler/exceptions.debug.wat | 15 +- tests/compiler/exceptions.release.wat | 8 +- tests/compiler/features/gc.debug.wat | 15 +- .../features/reference-types.debug.wat | 15 +- .../features/reference-types.release.wat | 8 +- tests/compiler/function-types.debug.wat | 15 +- tests/compiler/function-types.release.wat | 8 +- tests/compiler/getter-setter.debug.wat | 15 +- tests/compiler/getter-setter.release.wat | 8 +- tests/compiler/heap.debug.wat | 15 +- tests/compiler/heap.release.wat | 8 +- tests/compiler/if.debug.wat | 15 +- tests/compiler/if.release.wat | 8 +- tests/compiler/import-memory.debug.wat | 15 +- tests/compiler/import-memory.release.wat | 8 +- .../incremental-gc/call-indirect.debug.wat | 15 +- tests/compiler/inlining-blocklocals.debug.wat | 15 +- .../compiler/inlining-blocklocals.release.wat | 8 +- tests/compiler/issues/1714.debug.wat | 15 +- tests/compiler/issues/1714.release.wat | 8 +- tests/compiler/issues/2825.debug.wat | 15 +- tests/compiler/issues/2825.release.wat | 8 +- tests/compiler/loop-flow.debug.wat | 15 +- tests/compiler/loop-flow.release.wat | 8 +- tests/compiler/many-locals.debug.wat | 15 +- tests/compiler/memcpy.debug.wat | 15 +- tests/compiler/memcpy.release.wat | 8 +- tests/compiler/memmove.debug.wat | 15 +- tests/compiler/memmove.release.wat | 8 +- tests/compiler/memory.debug.wat | 15 +- tests/compiler/memory.release.wat | 8 +- tests/compiler/memset.debug.wat | 15 +- tests/compiler/memset.release.wat | 8 +- tests/compiler/mutable-globals.debug.wat | 15 +- tests/compiler/mutable-globals.release.wat | 8 +- tests/compiler/overflow.debug.wat | 15 +- tests/compiler/polyfills.debug.wat | 15 +- tests/compiler/portable-conversions.debug.wat | 15 +- tests/compiler/possibly-null.debug.wat | 15 +- tests/compiler/possibly-null.release.wat | 8 +- .../resolve-function-expression.release.wat | 8 +- tests/compiler/resolve-localortype.debug.wat | 15 +- .../compiler/resolve-localortype.release.wat | 8 +- tests/compiler/resolve-nested.debug.wat | 15 +- tests/compiler/resolve-nested.release.wat | 8 +- tests/compiler/retain-i32.debug.wat | 15 +- tests/compiler/return.debug.wat | 15 +- tests/compiler/return.release.wat | 8 +- .../compiler/rt/alloc-large-memory.debug.wat | 15 +- .../rt/alloc-large-memory.release.wat | 8 +- tests/compiler/rt/flags.debug.wat | 15 +- tests/compiler/rt/flags.release.wat | 8 +- tests/compiler/static-this.debug.wat | 15 +- tests/compiler/std/array-access.debug.wat | 15 +- tests/compiler/std/array-access.release.wat | 8 +- tests/compiler/std/console.debug.wat | 15 +- tests/compiler/std/console.release.wat | 8 +- tests/compiler/std/hash.debug.wat | 15 +- tests/compiler/std/hash.release.wat | 8 +- tests/compiler/std/math.debug.wat | 15 +- tests/compiler/std/math.release.wat | 8 +- tests/compiler/std/mod.debug.wat | 15 +- tests/compiler/std/mod.release.wat | 8 +- tests/compiler/std/pointer.debug.wat | 15 +- tests/compiler/std/pointer.release.wat | 8 +- tests/compiler/std/static-array.release.wat | 8 +- tests/compiler/std/string-nonnull.debug.wat | 15 +- tests/compiler/std/string-nonnull.release.wat | 8 +- tests/compiler/tablebase.debug.wat | 15 +- tests/compiler/tablebase.release.wat | 8 +- tests/compiler/ternary.debug.wat | 15 +- tests/compiler/ternary.release.wat | 8 +- tests/compiler/throw.debug.wat | 15 +- tests/compiler/throw.release.wat | 8 +- tests/compiler/typealias.debug.wat | 15 +- tests/compiler/typealias.release.wat | 8 +- 137 files changed, 1777 insertions(+), 2809 deletions(-) create mode 100644 std/assembly/rt/index-memory.ts create mode 100644 std/assembly/rt/memory-runtime.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 3ba62e3992..c31a2152d2 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -65,6 +65,9 @@ module.exports = { // Quite often, dealing with multiple related cases at once or otherwise // falling through is exactly the point of using a switch. "no-fallthrough": "off", + "no-useless-assignment": "off", + "no-unassigned-vars": "off", + "preserve-caught-error": "off", // Typical false-positives here are `do { ... } while (true)` statements or // similar, but the only option provided here is not checking any loops. diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 310874b297..6719d58bec 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,24 +2,27 @@ name: Test on: push: branches: - - main + - main pull_request: jobs: check: name: "Check" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 - - name: "Check that distribution files are unmodified" - if: github.event_name == 'pull_request' - run: | - if git --no-pager diff --name-only $(git rev-parse origin/${{ github.base_ref }})...${{ github.sha }} | grep -q "^dist/"; then - printf "\nThe pull request modifies distribution files, but it shouldn't.\n" && - printf "Please see https://github.com/AssemblyScript/assemblyscript/blob/main/CONTRIBUTING.md\n" && - exit 1; - else - printf "\nOK: Distributions files have not been modified.\n"; - fi + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: '24' + - name: "Check that distribution files are unmodified" + if: github.event_name == 'pull_request' + run: | + if git --no-pager diff --name-only $(git rev-parse origin/${{ github.base_ref }})...${{ github.sha }} | grep -q "^dist/"; then + printf "\nThe pull request modifies distribution files, but it shouldn't.\n" && + printf "Please see https://github.com/AssemblyScript/assemblyscript/blob/main/CONTRIBUTING.md\n" && + exit 1; + else + printf "\nOK: Distributions files have not been modified.\n"; + fi compiler: name: "Compiler (${{ matrix.os }}, node ${{ matrix.node_version }})" runs-on: ${{ matrix.os }}-latest @@ -27,20 +30,20 @@ jobs: strategy: matrix: os: ["ubuntu", "macos", "windows"] - node_version: ["current", "lts/*"] + node_version: ["25", "lts/*"] steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 - with: - node-version: ${{ matrix.node_version }} - - name: Install dependencies - run: npm ci --no-audit - - name: Build - run: npm run build - - name: Check - run: npm run check - - name: Test - run: npm test + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.node_version }} + - name: Install dependencies + run: npm ci --no-audit + - name: Build + run: npm run build + - name: Check + run: npm run check + - name: Test + run: npm test bootstrap: name: "Bootstrap (${{ matrix.target }})" runs-on: ubuntu-latest @@ -49,95 +52,97 @@ jobs: matrix: target: ["debug", "release"] steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 - with: - node-version: current - - name: Install dependencies - run: npm ci --no-audit - - name: Build - run: npm run build - - name: "Bootstrap ${{ matrix.target }}" - run: npm run bootstrap:${{ matrix.target }} - - name: "Test ${{ matrix.target }}" - run: npm run test:compiler -- --wasm build/assemblyscript.${{ matrix.target }}-bootstrap.js - - name: "Compile ${{ matrix.target }} -> ${{ matrix.target == 'debug' && 'release' || 'debug' }}" - run: node bin/asc --config src/asconfig.json --target ${{ matrix.target == 'debug' && 'release' || 'debug' }}-bootstrap --wasm ./build/assemblyscript.${{ matrix.target }}-bootstrap.js - - name: "Test ${{ matrix.target == 'debug' && 'release' || 'debug' }}" - run: npm run test:compiler -- --wasm build/assemblyscript.${{ matrix.target == 'debug' && 'release' || 'debug' }}-bootstrap.js + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: current + - name: Install dependencies + run: npm ci --no-audit + - name: Build + run: npm run build + - name: "Bootstrap ${{ matrix.target }}" + run: npm run bootstrap:${{ matrix.target }} + - name: "Test ${{ matrix.target }}" + run: npm run test:compiler -- --wasm build/assemblyscript.${{ matrix.target }}-bootstrap.js + - name: "Compile ${{ matrix.target }} -> ${{ matrix.target == 'debug' && 'release' || 'debug' }}" + run: node bin/asc --config src/asconfig.json --target ${{ matrix.target == 'debug' && 'release' || 'debug' }}-bootstrap --wasm ./build/assemblyscript.${{ matrix.target }}-bootstrap.js + - name: "Test ${{ matrix.target == 'debug' && 'release' || 'debug' }}" + run: npm run test:compiler -- --wasm build/assemblyscript.${{ matrix.target == 'debug' && 'release' || 'debug' }}-bootstrap.js features: name: "Features" runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 - - name: Install dependencies - run: npm ci --no-audit - - name: Build - run: npm run build - - name: Test experimental features - env: - ASC_FEATURES: threads,reference-types,gc,exception-handling - run: | - npm run test:compiler features/threads features/reference-types features/gc features/exception-handling bindings/esm bindings/raw + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: '24' + - name: Install dependencies + run: npm ci --no-audit + - name: Build + run: npm run build + - name: Test experimental features + env: + ASC_FEATURES: threads,reference-types,gc,exception-handling + run: | + npm run test:compiler features/threads features/reference-types features/gc features/exception-handling bindings/esm bindings/raw runtimes: name: "Runtimes" runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 - with: - node-version: current - - name: Install dependencies - run: npm ci --no-audit - - name: Build - run: npm run build - - name: Test default allocator - run: | - cd tests/allocators/default - npm run build - cd .. - npm test default - - name: Test stub allocator - run: | - cd tests/allocators/stub - npm run build - cd .. - npm test stub + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: current + - name: Install dependencies + run: npm ci --no-audit + - name: Build + run: npm run build + - name: Test default allocator + run: | + cd tests/allocators/default + npm run build + cd .. + npm test default + - name: Test stub allocator + run: | + cd tests/allocators/stub + npm run build + cd .. + npm test stub loader: name: "Loader" runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 - with: - node-version: current - - name: Install dependencies - run: npm ci --no-audit - - name: Build - run: npm run build - - name: Test the loader - run: | - cd lib/loader - npm run asbuild - npm run test + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: current + - name: Install dependencies + run: npm ci --no-audit + - name: Build + run: npm run build + - name: Test the loader + run: | + cd lib/loader + npm run asbuild + npm run test coverage: name: "Coverage" runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 - with: - node-version: 24 - - name: Install dependencies - run: npm ci --no-audit - - name: Build - run: npm run build - - name: Collect coverage - run: npx c8 -r none -- npm test - - name: Output coverage summary - run: npx c8 report -r text-summary + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: 24 + - name: Install dependencies + run: npm ci --no-audit + - name: Build + run: npm run build + - name: Collect coverage + run: npx c8 -r none -- npm test + - name: Output coverage summary + run: npx c8 report -r text-summary diff --git a/cli/index.js b/cli/index.js index 04577edf78..eecf68137e 100644 --- a/cli/index.js +++ b/cli/index.js @@ -300,6 +300,7 @@ export async function main(argv, options) { switch (opts.runtime) { case "stub": runtime = 0; break; case "minimal": runtime = 1; break; + case "memory": runtime = 3; break; /* incremental */ default: runtime = 2; break; } @@ -731,6 +732,12 @@ export async function main(argv, options) { try { module = assemblyscript.compile(program); } catch (e) { + let numErrors = checkDiagnostics(program, stderr, opts.disableWarning, options.reportDiagnostic, stderrColors.enabled); + if (numErrors) { + const err = Error(`${numErrors} compile error(s)`); + err.stack = err.message; + return prepareResult(err); + } crash("compile", e); } stats.compileTime += stats.end(begin); diff --git a/eslint.config.js b/eslint.config.js index bc13c8b249..fb4bcdb183 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -14,6 +14,7 @@ export default tseslint.config( ] }, + eslint.configs.recommended, // === General rules ========================================================= @@ -65,6 +66,9 @@ export default tseslint.config( // It is perfectly fine to declare top-level variables with `var`, yet this // rule doesn't provide configuration options that would help. "no-var": "off", + "no-useless-assignment": "off", + "no-unassigned-vars": "off", + "preserve-caught-error": "off", // Quite often, dealing with multiple related cases at once or otherwise // falling through is exactly the point of using a switch. @@ -72,7 +76,7 @@ export default tseslint.config( // Typical false-positives here are `do { ... } while (true)` statements or // similar, but the only option provided here is not checking any loops. - "no-constant-condition": ["error", { checkLoops: false }], + "no-constant-condition": ["error", {checkLoops: false}], // Functions are nested in blocks occasionally, and there haven't been any // problems with this so far, so turning the check off. diff --git a/lib/README.md b/lib/README.md index 9ac01cc665..148eefc2c5 100644 --- a/lib/README.md +++ b/lib/README.md @@ -5,7 +5,7 @@ Additional packages provided by the main package. | Package | Description |------------------------------------|------------------------- -| [@assemblyscript/loader](./loader) | Module loader utility +| [@btc-vision/as-loader](./loader) | Module loader utility | [@assemblyscript/rtrace](./rtrace) | Runtime tracing utility | binaryen | Binaryen proxy diff --git a/lib/loader/README.md b/lib/loader/README.md index ff1e805977..c8a70e0d5a 100644 --- a/lib/loader/README.md +++ b/lib/loader/README.md @@ -7,7 +7,7 @@ A tiny module loader that makes working with AssemblyScript modules as convenien ## Example ```ts -import loader from "@assemblyscript/loader"; // or require +import loader from "@btc-vision/as-loader"; // or require loader.instantiate( // Binary to instantiate fetch("optimized.wasm"), // or fs.readFileSync @@ -24,19 +24,19 @@ The loader basically instantiates the module using `WebAssembly` APIs, but also ## Installation -The loader can be installed from [npm](https://www.npmjs.com/package/@assemblyscript/loader): +The loader can be installed from [npm](https://www.npmjs.com/package/@btc-vision/as-loader): ```sh -npm install --save @assemblyscript/loader +npm install --save @btc-vision/as-loader ``` On the web: ```html - + - + ``` ## Usage diff --git a/lib/loader/package-lock.json b/lib/loader/package-lock.json index a6d2d6962f..7a9f7fb32b 100644 --- a/lib/loader/package-lock.json +++ b/lib/loader/package-lock.json @@ -1,73 +1,64 @@ { - "name": "@assemblyscript/loader", + "name": "@btc-vision/as-loader", "version": "0.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@assemblyscript/loader", + "name": "@btc-vision/as-loader", "version": "0.0.0", "license": "Apache-2.0", "devDependencies": { - "esm2umd": "^0.1.2" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" + "esm2umd": "^0.3.1" } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", - "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2", - "convert-source-map": "^1.7.0", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -78,210 +69,144 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", - "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", - "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.2" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", - "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "node_modules/@babel/parser": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.29.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -289,145 +214,121 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", - "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.18.2", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, - "engines": { - "node": ">=6.0.0" + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/baseline-browser-mapping": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", + "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", "dev": true, - "dependencies": { - "color-convert": "^1.9.0" + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" }, "engines": { - "node": ">=4" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" + "node": ">=6.0.0" } }, "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -437,14 +338,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -453,23 +359,10 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001344", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", - "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==", + "version": "1.0.30001777", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001777.tgz", + "integrity": "sha512-tmN+fJxroPndC74efCdp12j+0rk0RHwV5Jwa1zWaFVyw2ZxAuPeG8ZgWC3Wz7uSjT3qMRQ5XHZ4COgQmsCMJAQ==", "dev": true, "funding": [ { @@ -479,54 +372,29 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + ], + "license": "CC-BY-4.0" }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } + "license": "MIT" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -537,158 +405,65 @@ } } }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/electron-to-chromium": { - "version": "1.4.141", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.141.tgz", - "integrity": "sha512-mfBcbqc0qc6RlxrsIgLG2wCqkiPAjEezHxGTu7p3dHHFOurH4EjS9rFZndX5axC8264rI1Pcbw8uQP39oZckeA==", - "dev": true + "version": "1.5.307", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.307.tgz", + "integrity": "sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==", + "dev": true, + "license": "ISC" }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/esm2umd": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/esm2umd/-/esm2umd-0.1.2.tgz", - "integrity": "sha512-SoCump2d/jzZJ9/0ZY/2AVOWJbyd5bGOMlRSSNqChPvQrwa9Rqzo9wPP+kT77Gys03Sb+rIgseAReVvIrqvglA==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/esm2umd/-/esm2umd-0.3.1.tgz", + "integrity": "sha512-5WcGtkITdTHoLSkM/ZGWgsieCvlPUJLJdGOAmnmXPjjNBU/lwMGg3D4Tx/FWe32pY0ZhhAwoM8Oy+1hBI7BKQg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "^7", - "@babel/plugin-transform-modules-commonjs": "^7" + "@babel/core": "^7.26.8", + "@babel/helper-plugin-utils": "^7.26.5" }, "bin": { "esm2umd": "bin/esm2umd.js" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json5": { @@ -696,6 +471,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -703,653 +479,84 @@ "node": ">=6" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", - "dev": true - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "engines": { - "node": ">= 0.4" + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" } }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "node_modules/node-releases": { + "version": "2.0.36", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", + "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", + "dev": true, + "license": "MIT" }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - } - }, - "@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", - "dev": true - }, - "@babel/core": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", - "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "requires": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "bin": { + "update-browserslist-db": "cli.js" }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", - "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", - "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", - "dev": true, - "requires": { - "@babel/types": "^7.18.2" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true - }, - "@babel/helpers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", - "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" - } - }, - "@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", - "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.18.2", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - } - }, - "@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caniuse-lite": { - "version": "1.0.30001344", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", - "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "electron-to-chromium": { - "version": "1.4.141", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.141.tgz", - "integrity": "sha512-mfBcbqc0qc6RlxrsIgLG2wCqkiPAjEezHxGTu7p3dHHFOurH4EjS9rFZndX5axC8264rI1Pcbw8uQP39oZckeA==", - "dev": true - }, - "escalade": { + "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "esm2umd": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/esm2umd/-/esm2umd-0.1.2.tgz", - "integrity": "sha512-SoCump2d/jzZJ9/0ZY/2AVOWJbyd5bGOMlRSSNqChPvQrwa9Rqzo9wPP+kT77Gys03Sb+rIgseAReVvIrqvglA==", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, - "requires": { - "@babel/core": "^7", - "@babel/plugin-transform-modules-commonjs": "^7" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "license": "ISC" } } } diff --git a/lib/loader/package.json b/lib/loader/package.json index 7715af1e5b..a2b3e78b60 100644 --- a/lib/loader/package.json +++ b/lib/loader/package.json @@ -1,5 +1,5 @@ { - "name": "@assemblyscript/loader", + "name": "@btc-vision/as-loader", "description": "A convenient loader for AssemblyScript modules.", "keywords": [ "@btc-vision/assemblyscript", @@ -48,6 +48,6 @@ "README.md" ], "devDependencies": { - "esm2umd": "^0.1.2" + "esm2umd": "^0.3.1" } } diff --git a/lib/loader/tests/build/default.wasm b/lib/loader/tests/build/default.wasm index b9188bb52ef0adcf8c81b9ef4d6c3aa27ed81b56..fa45ab76ac60a05552fc6f99e80166428d3e8881 100644 GIT binary patch literal 11809 zcmb7KTWnp&b)A`W&V9`#?@)Y*580Z-d!5LxYw;nz5vMj@a96ciR9^s68FPz@AlQP(i?Q=oMVp>Tnw)rWz$A4T1` zYt1?LMbZv)k7mxyoW1w#*?Z64dxjDV8<(XJLVnAfk(+Y!jN053tk9Hb32`RaF4Elh{vwgmHB6%KlYgqo+=vI{iW*GS?T@7Zw-A zQ-!24zrJ)n2(pW7iO`?vxUf`v#e*EXwt7w+>v(zY`In~M3op2D%+Ea?gdOOPPB!{c zC%?B0WC$=m)&R(QfR=$=>DZ~$t`#J&J@nl87-uMSz4(%QY3`}kG2J@$aspR0EpRVS z6SboiY;JUtW1X#I#}d?1X?5wfV=HS5HSo2*zVL=P8O_gQOibW?<<@~NVHu<#F$zm^kLSXnLUEEAVMnK{pSoj8`vCQJw0V5wZ0i?D|p6K_ekj}w|pBc?|`;_h7vf`oVi>Twx>bo?TCJ9r5C|LEtrPrSAp0nj{!~FuUQKlL zcIe(xt}`{AfOZ%M)M4O?ryC%DSO*DUYvA6AI0Qs^J&qz93}@V@pMCaOFr2j+o1Ghq zbMBzcU04Q8&W0{rzV5Kd+D06qmveF%Uo__k-Tpb)ROC#HO@X6#>eET{V4Mfr2jhax zLuh$hFb`;3KobMz0BnKVB-S>Ji#CcothPl=Wjm@))vAZonWE6phJuRYP5_kvWNabs zvYoa>K;r>z*Q7cFx>&HMw-2D*cAxD|sDz*r_jn?`_|j*4oU~Dm!W!<0_uF3EM?kxu z+urto3hYf73#iaTnL%#Dd!ZbHu?||88n-Q0`ZqF_{qCyy+w?P-lCWk-yb3$6n+3TF zZ3v}CkfFTlrwvUE16PEMQu7&BX2?^>*bK)ryHTL$P$1y}vo;I0!9qDj&gL*ho{Xbv z+RZ=J_qG5)Y;&>1#CcAjS|)~SzzFu>P<=QqkW``7zJ8vr(+h_b3RN4X&J9xf_qvp5 zOjb@}=M)--2({4=i;*o1ccg~cX*+Bu46)=6+7b*=+mh8ShFC-|F+}YRQ7492+-`{f z+mye6-DucNG2Um5?V|1MYcVpI3%sQ{01!G0o69;}i*wi6)vq;^;)yEkdB|!i-57eet_8R3fkVaz@KIv40vT3 zrYEug^A@^VhwZAXG^4ziGwTPu^R&6D-vG$(@Y&0*fNc)DuzC{fpm6hM*vXRqFDVV2 z{9w7#5I`)R6yVsi=-|Yvth{8*^;j`torH_RYk5{UaRLI-;Vj~;@cU7CWd(5vIl;Tx z$WKV2Ay{WJSc{Je+}7+h zjOEWm7bKy#r2BwFEy6`X4N!nUb65`vpA0bml@9>XRPct^d&qoAKT`jOiG1FJIun(< z@p)jm(oK4Za8>hVt>05J+*FVfpK>o$!K?$hm2~o02Yc#RhbjixrpkQXj~*NX6>nhz_k<^Ai(pnw?W#I!qNs{ z&j8)O3+*<#4Vtit2DS1~9DvCo$bZ193iM#|m42rxy}HhKe@r1I%=(YmD&QFFX=Zi* zDqW9PgD{6&0gD|d517c;88F<7E$Wa>R-s_Xl>fGJ?yu#F`&g{T0+uDr!^^QKLvVgI zgZPMVSI`|ScPE|I6(ChBJ;3&vj5ygrs{Fo{D|eTBmhqljNg(t=Fzt#=y5MlB!^TE} zeIfVaq7o;}H14isko&v9J&>;A*HVaIAYYJ-{YbGLEb78?t%}3|BthdZ6m}^TUr#l# z`RL&TW_iDkt%f9G1;93hXII#C@D+^|BR~({0x5>_o?RuL9iFN^#rPoghTh>tR?*AR z!!T)JxJP*2+^|9IYMjMR%-Jj~9MZJOxWdN6C%7iRW8z$7^B0k#(_6#l65rD#1{zQ< zNhDGKA61ewd-x*YJ8bqMwtLZbFfeqs#+96oJXi@}hG1QYWrko~?O--n(!VEVmX=^C zywl*A0+SjZ&dU(8F*OLw6GS?ZdimouB%naq?)@OyVK}v6FPf7>bkwuh&nG|^F3>mN z#6dgg?K67jchr4P^x$i4?kh_Xo6r<)5?Ti&wGe$@61D6?x6oolrRe7j9XnNp(l^Lj3 z@PZpm;+GYlYOqz(XSs22{y_$T2#t>gL$O4waJpJTB8k@9ABfXDhW%R>LmI~;9F}hX zOGrSRY2Dp7pYWhC2DkOY|M)2Iz+3PA{b3KTh5jF@@|)^LatiX~sA)Dx2-Y5$7c&05+SD2uO4i+~{@40wCc-;C4W41eXMG0QGPB zs}h^!72#J6DotW_5O)tpoLlZQc{QcX{8k>#{eF5XBw?T1r+}GS^{^D4?3RSjfkbKG zQ28ZuxV7vKT6tl470!yM=6AWnkkLt`d9#cSHu@%&ZKExCZ5$zPAceth zs>OkihzZb9nE-_Z!dKXh|H}4qN&m5w;SC#*HqR$=8E0@Ng26?Xz4|V5qNDOVJ{wYA zJeUp*IQy-A*t?nU-C`$M4*C(+jHQbg5Q3tBQm07qA>4xZX+zE0@Wyvqv8m4#Ri~TB zEVSRWB)2uHaa$wObF#s8i;qP-#bY*A_a4Y*pQG~O7>@AT#(y(rf_n$-$YHoh^CX?5 zjpl|vEeOArR%HN%z)h6AXAp_Q*i!CR-RmK&FOvqtJ*DOE4|tR-Fq35pz*$j3(+i!L zUd32AW8gT!Wd`ONl&U1^m#rN_xs?qV)ws zUxt@hu-8v|>C%3tTsFx%apfY*`;mk8fa{We%Hw&7CbCLVc^7u4kEr)la;EU|!32_m zlb($CeOjLa7lX`%PKL7qGEFAJv*zJJZ_Rkq+_#OEyKf^$x_#s5$71VNBTE7qtRESs z)fF5b5ckTJW!wQGg}S3mwzA)S$k%|o7vMFd2SmAC9!Au3cYmbZCn!j5xlDZ+%PN=Q zzA9z&8)yjbd=blXIXUD?6R?B8P{Bw^kNr~k(5dTfC~q+kgG4T!PY1 zgI!yr+3y%bu(CmwUL#2#Z+Z}iWD&SXM$7o1%)~GbJ+OaRm-0IRp0ElF3z810Hc%c< z7O5b_a)*W`iC0ga)%JS5R-u}xPK#ePw3&$`_FKe{KXOK zgg>_>K|SqPa72Bn-m%zQABN3-KNh20!F;t2aG({sXB#x`oovtwZCaso?0A-N5#sLc zbMN&ehC08SE+sV66o#QT5ifWfdb8Wzi?HXCJh~O=aqPS_B2il2Rv@hQ&~_1F`JG@LM{Qv{ zO$g&h@UiMTPBUQHUvnlsceBTR*yFn0NUD++w6DR7OWca)k{i)yarIS0#u0!S&;j|NdvG5 z*F7;ze+Cxo2IU=zIlg`1#P)%?osz!O3rWvV(ohcUu{KN}Ix!3rL+0k?)H)4v$kd37 zF!1&nVUg`KLJ)Ha3(nBBh5Gqj-Bf*Lh5E|CN<*Nq5lY$oj$d>#o_a3*>Tc5IMr+w5 z?OXj%3(c+G0+eobtEQExYs3HX1ln)i=WV1ZE;C;T|G!<09-N;@|Bm7+Cz(Kg61qjs->k^s6XJ0{S z{M<*O-ok$iYW@g9yQ8vRM7<8NbHRti!|C!DF+#y4O1uVzECGTdx(rcm_|{pBS*UIa zz1L6^!iq7EMbTO@E+(6kx{sorOa2nRH$_M#T*876gA(T??e+GhyLU3XFL|Un69tpe zZwDiS&nU_m$~ejqlnInclqr;Hlo<~(ih2}qqktO)+$i8i0XGV`QNWD?j#LOS=AUuY zM^GkECQ+tPrcq}6Or%1HasM1aJ%KWbGKDgYGUK`7Or%1HBmS8{J&7`fGL16hIVLxp ziBt$N;h#y=Qz+9YGr;1?$Td0QY@{@S!e={88YK0)G_vqre{p{$5o(2K+JLj{$!S_+!8y13rywFDf4g z{y6Z*fjwpN6>?Q#bhSIGr*q#{tWPEfIkC#S`{sW+NFjlWlD;xCC8kVm<#?ni<)6?5oHPGJSfsCX<4)m zYM5H0q$w?~m|Sya25LU%P!>^^P|l-Ai>6i5vS=ODFttQUQ(9axx#rBo=Cg>hgmNA& z?gm;kt&)~S>!60IB}$so;)=;NXC^iuW+3NLb0={((4uLTv@BW&HB2p0(v%igOs+XI zvH6_Glk7t7B<==UG_8`BMeCr3sU=F9(&CEAHD@Mv+t1za(q~?68KRdsfx*!rV z8$b6>?@np8ud_K9rBB<~nFD;Z3zbJe{xoc%3ixwa897*ioM^F&khp~osKr%`F!up3 zeLHz!V%tuIoLgY6d79g3fC~Pv@QE&9*_MK)|2fp(&7t5e^C%K!KnR6)g#~@`@?*eM GF#i7A7%6}~_3&AgdA*RFN>~tY!8$PKD1swPf3z9&$F3)+?Z?CFG!g^zY-g{Uc6Xuzu-t_t}f5Bqs8ZE zpFOkRo;qb;oSQu)y&}2~O{IOmkLG&@GDPsm!zn@55%dfMrI`~aZ7)eqIqKO*9wrI- z{?ljdnc0KAW2$%T`IxStd+46uPfLrvWU~)V(O6&a*i5{%R9ddTG}BzEwV_w5RlCMc z_;Yg@V^5*Jys*qpX6NRvE>r8d+}zy!O0!v?Z?mtfxw%%my)bvKwpy1avs7PNX>zobE&8^nkwsrC9Qhm9-dZNC3v3-f1%dECr&H6ICBv-F4v4tGU)9qS&VV*S# z^OtJN7wZY-Vs^gPY?61H14}FC7cN}eq~ub-=W|)kELVJ{zz6fM?Q3S4VTLyp)q8|i z1=MzEQA^9$R0bXGC3AtwQ8#17S~B9P`>-|{JLyf^8_Ztk_J$8+YsM620>iCnH}(jo zp5)%TWg!3>3e03fDW>JL5k?*jJ>z-PVw#v4p>vIpD;<=Swc^AUU=SOZLp16%3z(t>T$NI^w0RKxx+mC?G!n+;*oq#ta^^5P2p*Db zt=*P|9co~44Fp)|Or{271rkYyxAZ{jNT(dxk3`c%jSG@KLb5HJiKQ`JrZy&`Xx2w? zNd<3kJ3xX<|5rwfzkFctZy4S78{%F5A90{)UXjCSa zLWj`^z*-$qYA*~KRYLBZ$6+^MU4Vx63bqxP*8|347nQJ043=UrG*a|*G1hJMVk^d7 z_gr=mdRy=joC{rog5(j)uf$Gy!?&*s+m~QP67)hzB+?d6rX)Y@kVv~BW(j0Cm(qG` zq3;`6$=F-BZ{L=ctjU<{>_iyYNfTUL1WjN(>n*NX?5({T`sf9gFJeZK49||v0z|&m zJs^TcZ+66SeNUK!+V_TelY^~tCa?D>lSdN+`feP5LT9Lq7Z!{k7L76mh%&`S99zyR zxIw_TVIN3JAkiit_M1LaA~NmBO#hTP3$EC%<2C@&K{H?mV;-Igha8JxjE|Th%Z=YA zLsf>tQ8R2th|G*m2~U|J@Bqx1z7JHMqtd$(rqo|OJ^_f94G>0W6ubO@CwAZ2Eq_d= zp%SNaPT-eaM8LQn-08!5{E8Fm>AeJWqVp5nRD{0Et#H57Ve^u z90n!;`y8o^qKlTlcaAUv!Cn)D971!%T=WQqL!bl>-CdpGFi))Vy{P&}vO{MU;*f6` zFNtBW&p$i%AqY`eWmw*UAKXRoEBGc~DJJmiGey$}_?7IWDFJ@Ul#J?uUje-se#*g5 z#qcX^h2MX=mS@0=0$vK?fYGL(Ff))s3m`#A)OW)GgL;n{gcmRZR64W_Vc{?qju;M@ z44GkCJQ4#AU;*GdI8p7E-tE?uv1S6EVBr{A<7Ui^cQ6P%722(EmnoYG2e@4XIQ0v` zgBVvvJd;A}-{}E@S#1gb2(K^&yd~leZV{3LVC@mt3o7(*rg1*w_zvu1VfXxR$mBYK z^B3VG?37yI<}m1U1r!3?h=Fevde;3!TAxA-KxX)2=ul`24e)kB1VIxy0|NSDn1z)9 zIpB}C2syZW?lOV1E|q&+bTrup!5+tlkmW3v!b7he5Xhr-K3nG(^-xta1w!K!=c3NEZ~bpbt(jfkYFK2`=y)E!6}U z1@t2AQSk)j787nAPC|1E^FTZiZ>;-$r2nz?=4Cw%jp`esnQp z5iIDoRE`GU1;x9sJpD1-cpK!6>JZks1cn_e;;^C@4Pqi1jD{9b&o*Ncbtlxd1rOW^wiqf`Dka;l6lW;GAJ9XL9a+?@p{g(gq3EYz=}iZUt9B#aZXr1jVyy9O9!e2O^jmD1rG`RpB%+f5(i0&2nFPUU>^vKu?E&!+gD)~v`!L=z&ehubHGx~y> zcR8%RNhvfvS~n!UKYk?aBpn<&gc#Ld!Hr>9Lq7qN#MhO65>{hc8xc)JWo-~+g|0TL zs1WAjTg$Lp3aTV;EUk{?rHw;M4;3xnV^C!(G-s35u*UWKu?E7E24oTW!%Yre47+06=en$ z-e@?&a_uX%U{fD+4h4eugmm7h$u`(j2d29$^mIvSI3=Tjr3lX(h~O zH?p+yhKLhG=Vx*w0U+k$u&mSzI2Cje;o3UpO-tkl$X@8a#94T>?CxyTbnnMAP_8?( z^A!hn>QSf`u?lFNNh-?TARAQx9anA8uLBkAFYaZjQf0Rv=y%5Xp+bpk8yBdNcc)GsFWx03qXN&TIq{%%sAjd{f-QyFZbI;pD2 zy>V4U5u*7T(v4509;%MoH#}71_6AiGYMe!tD8y}J-}tex@8gSWjo_tDlhY~)eAS9R zj|Kzs?MHsdqe}cP1fgMvSn~OThQ<;^-)cp@&H*rVf`sYQ>@f*t0a^?efaIqtBnDQ& z`I>d*F;^bn9&i4gWlvJel(U&=h-VCgH18+e8v} zbvWUo?%q)svW-TH-jO90^3omnfa=)}C-vK4kp7#)?CQ7|wZJ!nZ;RF0`OdiAyP3$t zM1U{v5KwLZ#MJZ?JtM@bitj922CF*zK5VwauClhPFQ9C(8s;uyF8$co`OaKkVNJHc z&anru{u;aN)T@C5@wmqB$LMOx1iI|NU`Qi*bRfqiuf2-^zv|H#c#2B(S{q3?hqo?b^ zb3pV3{1JyuyR+|PwsW}`vQGlV4baa+chaDVm37qTfnx(?FF>bdjJV@xZ|=Z_aIu*S zX>PD;#qr$210KcyF&^#5D%0~t(|s(;S8<$QMa^^ga(u@T3ec|77k$#@Ezndk{y$O| BXPp25 diff --git a/lib/loader/tests/build/legacy.wasm b/lib/loader/tests/build/legacy.wasm index b9188bb52ef0adcf8c81b9ef4d6c3aa27ed81b56..fa45ab76ac60a05552fc6f99e80166428d3e8881 100644 GIT binary patch literal 11809 zcmb7KTWnp&b)A`W&V9`#?@)Y*580Z-d!5LxYw;nz5vMj@a96ciR9^s68FPz@AlQP(i?Q=oMVp>Tnw)rWz$A4T1` zYt1?LMbZv)k7mxyoW1w#*?Z64dxjDV8<(XJLVnAfk(+Y!jN053tk9Hb32`RaF4Elh{vwgmHB6%KlYgqo+=vI{iW*GS?T@7Zw-A zQ-!24zrJ)n2(pW7iO`?vxUf`v#e*EXwt7w+>v(zY`In~M3op2D%+Ea?gdOOPPB!{c zC%?B0WC$=m)&R(QfR=$=>DZ~$t`#J&J@nl87-uMSz4(%QY3`}kG2J@$aspR0EpRVS z6SboiY;JUtW1X#I#}d?1X?5wfV=HS5HSo2*zVL=P8O_gQOibW?<<@~NVHu<#F$zm^kLSXnLUEEAVMnK{pSoj8`vCQJw0V5wZ0i?D|p6K_ekj}w|pBc?|`;_h7vf`oVi>Twx>bo?TCJ9r5C|LEtrPrSAp0nj{!~FuUQKlL zcIe(xt}`{AfOZ%M)M4O?ryC%DSO*DUYvA6AI0Qs^J&qz93}@V@pMCaOFr2j+o1Ghq zbMBzcU04Q8&W0{rzV5Kd+D06qmveF%Uo__k-Tpb)ROC#HO@X6#>eET{V4Mfr2jhax zLuh$hFb`;3KobMz0BnKVB-S>Ji#CcothPl=Wjm@))vAZonWE6phJuRYP5_kvWNabs zvYoa>K;r>z*Q7cFx>&HMw-2D*cAxD|sDz*r_jn?`_|j*4oU~Dm!W!<0_uF3EM?kxu z+urto3hYf73#iaTnL%#Dd!ZbHu?||88n-Q0`ZqF_{qCyy+w?P-lCWk-yb3$6n+3TF zZ3v}CkfFTlrwvUE16PEMQu7&BX2?^>*bK)ryHTL$P$1y}vo;I0!9qDj&gL*ho{Xbv z+RZ=J_qG5)Y;&>1#CcAjS|)~SzzFu>P<=QqkW``7zJ8vr(+h_b3RN4X&J9xf_qvp5 zOjb@}=M)--2({4=i;*o1ccg~cX*+Bu46)=6+7b*=+mh8ShFC-|F+}YRQ7492+-`{f z+mye6-DucNG2Um5?V|1MYcVpI3%sQ{01!G0o69;}i*wi6)vq;^;)yEkdB|!i-57eet_8R3fkVaz@KIv40vT3 zrYEug^A@^VhwZAXG^4ziGwTPu^R&6D-vG$(@Y&0*fNc)DuzC{fpm6hM*vXRqFDVV2 z{9w7#5I`)R6yVsi=-|Yvth{8*^;j`torH_RYk5{UaRLI-;Vj~;@cU7CWd(5vIl;Tx z$WKV2Ay{WJSc{Je+}7+h zjOEWm7bKy#r2BwFEy6`X4N!nUb65`vpA0bml@9>XRPct^d&qoAKT`jOiG1FJIun(< z@p)jm(oK4Za8>hVt>05J+*FVfpK>o$!K?$hm2~o02Yc#RhbjixrpkQXj~*NX6>nhz_k<^Ai(pnw?W#I!qNs{ z&j8)O3+*<#4Vtit2DS1~9DvCo$bZ193iM#|m42rxy}HhKe@r1I%=(YmD&QFFX=Zi* zDqW9PgD{6&0gD|d517c;88F<7E$Wa>R-s_Xl>fGJ?yu#F`&g{T0+uDr!^^QKLvVgI zgZPMVSI`|ScPE|I6(ChBJ;3&vj5ygrs{Fo{D|eTBmhqljNg(t=Fzt#=y5MlB!^TE} zeIfVaq7o;}H14isko&v9J&>;A*HVaIAYYJ-{YbGLEb78?t%}3|BthdZ6m}^TUr#l# z`RL&TW_iDkt%f9G1;93hXII#C@D+^|BR~({0x5>_o?RuL9iFN^#rPoghTh>tR?*AR z!!T)JxJP*2+^|9IYMjMR%-Jj~9MZJOxWdN6C%7iRW8z$7^B0k#(_6#l65rD#1{zQ< zNhDGKA61ewd-x*YJ8bqMwtLZbFfeqs#+96oJXi@}hG1QYWrko~?O--n(!VEVmX=^C zywl*A0+SjZ&dU(8F*OLw6GS?ZdimouB%naq?)@OyVK}v6FPf7>bkwuh&nG|^F3>mN z#6dgg?K67jchr4P^x$i4?kh_Xo6r<)5?Ti&wGe$@61D6?x6oolrRe7j9XnNp(l^Lj3 z@PZpm;+GYlYOqz(XSs22{y_$T2#t>gL$O4waJpJTB8k@9ABfXDhW%R>LmI~;9F}hX zOGrSRY2Dp7pYWhC2DkOY|M)2Iz+3PA{b3KTh5jF@@|)^LatiX~sA)Dx2-Y5$7c&05+SD2uO4i+~{@40wCc-;C4W41eXMG0QGPB zs}h^!72#J6DotW_5O)tpoLlZQc{QcX{8k>#{eF5XBw?T1r+}GS^{^D4?3RSjfkbKG zQ28ZuxV7vKT6tl470!yM=6AWnkkLt`d9#cSHu@%&ZKExCZ5$zPAceth zs>OkihzZb9nE-_Z!dKXh|H}4qN&m5w;SC#*HqR$=8E0@Ng26?Xz4|V5qNDOVJ{wYA zJeUp*IQy-A*t?nU-C`$M4*C(+jHQbg5Q3tBQm07qA>4xZX+zE0@Wyvqv8m4#Ri~TB zEVSRWB)2uHaa$wObF#s8i;qP-#bY*A_a4Y*pQG~O7>@AT#(y(rf_n$-$YHoh^CX?5 zjpl|vEeOArR%HN%z)h6AXAp_Q*i!CR-RmK&FOvqtJ*DOE4|tR-Fq35pz*$j3(+i!L zUd32AW8gT!Wd`ONl&U1^m#rN_xs?qV)ws zUxt@hu-8v|>C%3tTsFx%apfY*`;mk8fa{We%Hw&7CbCLVc^7u4kEr)la;EU|!32_m zlb($CeOjLa7lX`%PKL7qGEFAJv*zJJZ_Rkq+_#OEyKf^$x_#s5$71VNBTE7qtRESs z)fF5b5ckTJW!wQGg}S3mwzA)S$k%|o7vMFd2SmAC9!Au3cYmbZCn!j5xlDZ+%PN=Q zzA9z&8)yjbd=blXIXUD?6R?B8P{Bw^kNr~k(5dTfC~q+kgG4T!PY1 zgI!yr+3y%bu(CmwUL#2#Z+Z}iWD&SXM$7o1%)~GbJ+OaRm-0IRp0ElF3z810Hc%c< z7O5b_a)*W`iC0ga)%JS5R-u}xPK#ePw3&$`_FKe{KXOK zgg>_>K|SqPa72Bn-m%zQABN3-KNh20!F;t2aG({sXB#x`oovtwZCaso?0A-N5#sLc zbMN&ehC08SE+sV66o#QT5ifWfdb8Wzi?HXCJh~O=aqPS_B2il2Rv@hQ&~_1F`JG@LM{Qv{ zO$g&h@UiMTPBUQHUvnlsceBTR*yFn0NUD++w6DR7OWca)k{i)yarIS0#u0!S&;j|NdvG5 z*F7;ze+Cxo2IU=zIlg`1#P)%?osz!O3rWvV(ohcUu{KN}Ix!3rL+0k?)H)4v$kd37 zF!1&nVUg`KLJ)Ha3(nBBh5Gqj-Bf*Lh5E|CN<*Nq5lY$oj$d>#o_a3*>Tc5IMr+w5 z?OXj%3(c+G0+eobtEQExYs3HX1ln)i=WV1ZE;C;T|G!<09-N;@|Bm7+Cz(Kg61qjs->k^s6XJ0{S z{M<*O-ok$iYW@g9yQ8vRM7<8NbHRti!|C!DF+#y4O1uVzECGTdx(rcm_|{pBS*UIa zz1L6^!iq7EMbTO@E+(6kx{sorOa2nRH$_M#T*876gA(T??e+GhyLU3XFL|Un69tpe zZwDiS&nU_m$~ejqlnInclqr;Hlo<~(ih2}qqktO)+$i8i0XGV`QNWD?j#LOS=AUuY zM^GkECQ+tPrcq}6Or%1HasM1aJ%KWbGKDgYGUK`7Or%1HBmS8{J&7`fGL16hIVLxp ziBt$N;h#y=Qz+9YGr;1?$Td0QY@{@S!e={88YK0)G_vqre{p{$5o(2K+JLj{$!S_+!8y13rywFDf4g z{y6Z*fjwpN6>?Q#bhSIGr*q#{tWPEfIkC#S`{sW+NFjlWlD;xCC8kVm<#?ni<)6?5oHPGJSfsCX<4)m zYM5H0q$w?~m|Sya25LU%P!>^^P|l-Ai>6i5vS=ODFttQUQ(9axx#rBo=Cg>hgmNA& z?gm;kt&)~S>!60IB}$so;)=;NXC^iuW+3NLb0={((4uLTv@BW&HB2p0(v%igOs+XI zvH6_Glk7t7B<==UG_8`BMeCr3sU=F9(&CEAHD@Mv+t1za(q~?68KRdsfx*!rV z8$b6>?@np8ud_K9rBB<~nFD;Z3zbJe{xoc%3ixwa897*ioM^F&khp~osKr%`F!up3 zeLHz!V%tuIoLgY6d79g3fC~Pv@QE&9*_MK)|2fp(&7t5e^C%K!KnR6)g#~@`@?*eM GF#i7A7%6}~_3&AgdA*RFN>~tY!8$PKD1swPf3z9&$F3)+?Z?CFG!g^zY-g{Uc6Xuzu-t_t}f5Bqs8ZE zpFOkRo;qb;oSQu)y&}2~O{IOmkLG&@GDPsm!zn@55%dfMrI`~aZ7)eqIqKO*9wrI- z{?ljdnc0KAW2$%T`IxStd+46uPfLrvWU~)V(O6&a*i5{%R9ddTG}BzEwV_w5RlCMc z_;Yg@V^5*Jys*qpX6NRvE>r8d+}zy!O0!v?Z?mtfxw%%my)bvKwpy1avs7PNX>zobE&8^nkwsrC9Qhm9-dZNC3v3-f1%dECr&H6ICBv-F4v4tGU)9qS&VV*S# z^OtJN7wZY-Vs^gPY?61H14}FC7cN}eq~ub-=W|)kELVJ{zz6fM?Q3S4VTLyp)q8|i z1=MzEQA^9$R0bXGC3AtwQ8#17S~B9P`>-|{JLyf^8_Ztk_J$8+YsM620>iCnH}(jo zp5)%TWg!3>3e03fDW>JL5k?*jJ>z-PVw#v4p>vIpD;<=Swc^AUU=SOZLp16%3z(t>T$NI^w0RKxx+mC?G!n+;*oq#ta^^5P2p*Db zt=*P|9co~44Fp)|Or{271rkYyxAZ{jNT(dxk3`c%jSG@KLb5HJiKQ`JrZy&`Xx2w? zNd<3kJ3xX<|5rwfzkFctZy4S78{%F5A90{)UXjCSa zLWj`^z*-$qYA*~KRYLBZ$6+^MU4Vx63bqxP*8|347nQJ043=UrG*a|*G1hJMVk^d7 z_gr=mdRy=joC{rog5(j)uf$Gy!?&*s+m~QP67)hzB+?d6rX)Y@kVv~BW(j0Cm(qG` zq3;`6$=F-BZ{L=ctjU<{>_iyYNfTUL1WjN(>n*NX?5({T`sf9gFJeZK49||v0z|&m zJs^TcZ+66SeNUK!+V_TelY^~tCa?D>lSdN+`feP5LT9Lq7Z!{k7L76mh%&`S99zyR zxIw_TVIN3JAkiit_M1LaA~NmBO#hTP3$EC%<2C@&K{H?mV;-Igha8JxjE|Th%Z=YA zLsf>tQ8R2th|G*m2~U|J@Bqx1z7JHMqtd$(rqo|OJ^_f94G>0W6ubO@CwAZ2Eq_d= zp%SNaPT-eaM8LQn-08!5{E8Fm>AeJWqVp5nRD{0Et#H57Ve^u z90n!;`y8o^qKlTlcaAUv!Cn)D971!%T=WQqL!bl>-CdpGFi))Vy{P&}vO{MU;*f6` zFNtBW&p$i%AqY`eWmw*UAKXRoEBGc~DJJmiGey$}_?7IWDFJ@Ul#J?uUje-se#*g5 z#qcX^h2MX=mS@0=0$vK?fYGL(Ff))s3m`#A)OW)GgL;n{gcmRZR64W_Vc{?qju;M@ z44GkCJQ4#AU;*GdI8p7E-tE?uv1S6EVBr{A<7Ui^cQ6P%722(EmnoYG2e@4XIQ0v` zgBVvvJd;A}-{}E@S#1gb2(K^&yd~leZV{3LVC@mt3o7(*rg1*w_zvu1VfXxR$mBYK z^B3VG?37yI<}m1U1r!3?h=Fevde;3!TAxA-KxX)2=ul`24e)kB1VIxy0|NSDn1z)9 zIpB}C2syZW?lOV1E|q&+bTrup!5+tlkmW3v!b7he5Xhr-K3nG(^-xta1w!K!=c3NEZ~bpbt(jfkYFK2`=y)E!6}U z1@t2AQSk)j787nAPC|1E^FTZiZ>;-$r2nz?=4Cw%jp`esnQp z5iIDoRE`GU1;x9sJpD1-cpK!6>JZks1cn_e;;^C@4Pqi1jD{9b&o*Ncbtlxd1rOW^wiqf`Dka;l6lW;GAJ9XL9a+?@p{g(gq3EYz=}iZUt9B#aZXr1jVyy9O9!e2O^jmD1rG`RpB%+f5(i0&2nFPUU>^vKu?E&!+gD)~v`!L=z&ehubHGx~y> zcR8%RNhvfvS~n!UKYk?aBpn<&gc#Ld!Hr>9Lq7qN#MhO65>{hc8xc)JWo-~+g|0TL zs1WAjTg$Lp3aTV;EUk{?rHw;M4;3xnV^C!(G-s35u*UWKu?E7E24oTW!%Yre47+06=en$ z-e@?&a_uX%U{fD+4h4eugmm7h$u`(j2d29$^mIvSI3=Tjr3lX(h~O zH?p+yhKLhG=Vx*w0U+k$u&mSzI2Cje;o3UpO-tkl$X@8a#94T>?CxyTbnnMAP_8?( z^A!hn>QSf`u?lFNNh-?TARAQx9anA8uLBkAFYaZjQf0Rv=y%5Xp+bpk8yBdNcc)GsFWx03qXN&TIq{%%sAjd{f-QyFZbI;pD2 zy>V4U5u*7T(v4509;%MoH#}71_6AiGYMe!tD8y}J-}tex@8gSWjo_tDlhY~)eAS9R zj|Kzs?MHsdqe}cP1fgMvSn~OThQ<;^-)cp@&H*rVf`sYQ>@f*t0a^?efaIqtBnDQ& z`I>d*F;^bn9&i4gWlvJel(U&=h-VCgH18+e8v} zbvWUo?%q)svW-TH-jO90^3omnfa=)}C-vK4kp7#)?CQ7|wZJ!nZ;RF0`OdiAyP3$t zM1U{v5KwLZ#MJZ?JtM@bitj922CF*zK5VwauClhPFQ9C(8s;uyF8$co`OaKkVNJHc z&anru{u;aN)T@C5@wmqB$LMOx1iI|NU`Qi*bRfqiuf2-^zv|H#c#2B(S{q3?hqo?b^ zb3pV3{1JyuyR+|PwsW}`vQGlV4baa+chaDVm37qTfnx(?FF>bdjJV@xZ|=Z_aIu*S zX>PD;#qr$210KcyF&^#5D%0~t(|s(;S8<$QMa^^ga(u@T3ec|77k$#@Ezndk{y$O| BXPp25 diff --git a/lib/loader/umd/index.js b/lib/loader/umd/index.js index 3625fc2cc7..13efee721e 100644 --- a/lib/loader/umd/index.js +++ b/lib/loader/umd/index.js @@ -1,41 +1,64 @@ // GENERATED FILE. DO NOT EDIT. -var loader = (function(exports) { +(function (global, factory) { + function preferDefault(exports) { + return exports.default || exports; + } + if (typeof define === "function" && define.amd) { + define([], function () { + var exports = {}; + factory(exports); + return preferDefault(exports); + }); + } else if (typeof exports === "object") { + factory(exports); + if (typeof module === "object") module.exports = preferDefault(exports); + } else { + (function () { + var exports = {}; + factory(exports); + global.loader = preferDefault(exports); + })(); + } +})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) { "use strict"; - - Object.defineProperty(exports, "__esModule", { + + Object.defineProperty(_exports, "__esModule", { value: true }); - exports.instantiate = instantiate; - exports.instantiateSync = instantiateSync; - exports.instantiateStreaming = instantiateStreaming; - exports.demangle = demangle; - exports.default = void 0; + _exports.default = void 0; + _exports.demangle = demangle; + _exports.instantiate = instantiate; + _exports.instantiateStreaming = instantiateStreaming; + _exports.instantiateSync = instantiateSync; // Runtime header offsets const ID_OFFSET = -8; - const SIZE_OFFSET = -4; // Runtime ids + const SIZE_OFFSET = -4; + + // Runtime ids // const OBJECT_ID = 0; - const ARRAYBUFFER_ID = 1; - const STRING_ID = 2; // Runtime type information - + const STRING_ID = 2; + + // Runtime type information const ARRAYBUFFERVIEW = 1 << 0; const ARRAY = 1 << 1; - const STATICARRAY = 1 << 2; // const SET = 1 << 3; + const STATICARRAY = 1 << 2; + // const SET = 1 << 3; // const MAP = 1 << 4; - - const VAL_ALIGN_OFFSET = 6; // const VAL_ALIGN = 1 << VAL_ALIGN_OFFSET; - + const VAL_ALIGN_OFFSET = 6; + // const VAL_ALIGN = 1 << VAL_ALIGN_OFFSET; const VAL_SIGNED = 1 << 11; - const VAL_FLOAT = 1 << 12; // const VAL_NULLABLE = 1 << 13; - - const VAL_MANAGED = 1 << 14; // const KEY_ALIGN_OFFSET = 15; + const VAL_FLOAT = 1 << 12; + // const VAL_NULLABLE = 1 << 13; + const VAL_MANAGED = 1 << 14; + // const KEY_ALIGN_OFFSET = 15; // const KEY_ALIGN = 1 << KEY_ALIGN_OFFSET; // const KEY_SIGNED = 1 << 20; // const KEY_FLOAT = 1 << 21; // const KEY_NULLABLE = 1 << 22; // const KEY_MANAGED = 1 << 23; + // Array(BufferView) layout - const ARRAYBUFFERVIEW_BUFFER_OFFSET = 0; const ARRAYBUFFERVIEW_DATASTART_OFFSET = 4; const ARRAYBUFFERVIEW_BYTELENGTH_OFFSET = 8; @@ -44,158 +67,126 @@ var loader = (function(exports) { const ARRAY_SIZE = 16; const E_NO_EXPORT_TABLE = "Operation requires compiling with --exportTable"; const E_NO_EXPORT_RUNTIME = "Operation requires compiling with --exportRuntime"; - const F_NO_EXPORT_RUNTIME = () => { throw Error(E_NO_EXPORT_RUNTIME); }; - const BIGINT = typeof BigUint64Array !== "undefined"; const THIS = Symbol(); const STRING_SMALLSIZE = 192; // break-even point in V8 - const STRING_CHUNKSIZE = 1024; // mitigate stack overflow - const utf16 = new TextDecoder("utf-16le", { fatal: true }); // != wtf16 - + /** polyfill for Object.hasOwn */ - Object.hasOwn = Object.hasOwn || function (obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }; + /** Gets a string from memory. */ - - function getStringImpl(buffer, ptr) { let len = new Uint32Array(buffer)[ptr + SIZE_OFFSET >>> 2] >>> 1; const wtf16 = new Uint16Array(buffer, ptr, len); if (len <= STRING_SMALLSIZE) return String.fromCharCode(...wtf16); - try { return utf16.decode(wtf16); } catch { let str = "", - off = 0; - + off = 0; while (len - off > STRING_CHUNKSIZE) { str += String.fromCharCode(...wtf16.subarray(off, off += STRING_CHUNKSIZE)); } - return str + String.fromCharCode(...wtf16.subarray(off)); } } + /** Prepares the base module prior to instantiation. */ - - function preInstantiate(imports) { const extendedExports = {}; - function getString(memory, ptr) { if (!memory) return ""; return getStringImpl(memory.buffer, ptr); - } // add common imports used by stdlib for convenience - - + } + + // add common imports used by stdlib for convenience const env = imports.env = imports.env || {}; - env.abort = env.abort || function abort(msg, file, line, colm) { const memory = extendedExports.memory || env.memory; // prefer exported, otherwise try imported - throw Error(`abort: ${getString(memory, msg)} at ${getString(memory, file)}:${line}:${colm}`); }; - env.trace = env.trace || function trace(msg, n, ...args) { const memory = extendedExports.memory || env.memory; console.log(`trace: ${getString(memory, msg)}${n ? " " : ""}${args.slice(0, n).join(", ")}`); }; - env.seed = env.seed || Date.now; imports.Math = imports.Math || Math; imports.Date = imports.Date || Date; return extendedExports; } + /** Prepares the final module once instantiation is complete. */ - - function postInstantiate(extendedExports, instance) { const exports = instance.exports; const memory = exports.memory; const table = exports.table; - const __new = exports.__new || F_NO_EXPORT_RUNTIME; - const __pin = exports.__pin || F_NO_EXPORT_RUNTIME; - const __unpin = exports.__unpin || F_NO_EXPORT_RUNTIME; - const __collect = exports.__collect || F_NO_EXPORT_RUNTIME; - const __rtti_base = exports.__rtti_base; const getTypeinfoCount = __rtti_base ? arr => arr[__rtti_base >>> 2] : F_NO_EXPORT_RUNTIME; extendedExports.__new = __new; extendedExports.__pin = __pin; extendedExports.__unpin = __unpin; extendedExports.__collect = __collect; + /** Gets the runtime type info for the given id. */ - function getTypeinfo(id) { const U32 = new Uint32Array(memory.buffer); if ((id >>>= 0) >= getTypeinfoCount(U32)) throw Error(`invalid id: ${id}`); return U32[(__rtti_base + 4 >>> 2) + id]; } + /** Gets and validates runtime type info for the given id for array like objects */ - - function getArrayInfo(id) { const info = getTypeinfo(id); if (!(info & (ARRAYBUFFERVIEW | ARRAY | STATICARRAY))) throw Error(`not an array: ${id}, flags=${info}`); return info; } + /** Gets the runtime alignment of a collection's values. */ - - function getValueAlign(info) { return 31 - Math.clz32(info >>> VAL_ALIGN_OFFSET & 31); // -1 if none } + /** Gets the runtime alignment of a collection's keys. */ // function getKeyAlign(info) { // return 31 - Math.clz32((info >>> KEY_ALIGN_OFFSET) & 31); // -1 if none // } - + /** Allocates a new string in the module's memory and returns its pointer. */ - - function __newString(str) { if (str == null) return 0; const length = str.length; - const ptr = __new(length << 1, STRING_ID); - const U16 = new Uint16Array(memory.buffer); - for (let i = 0, p = ptr >>> 1; i < length; ++i) U16[p + i] = str.charCodeAt(i); - return ptr; } - extendedExports.__newString = __newString; + /** Allocates a new ArrayBuffer in the module's memory and returns its pointer. */ - function __newArrayBuffer(buf) { if (buf == null) return 0; const bufview = new Uint8Array(buf); - const ptr = __new(bufview.length, ARRAYBUFFER_ID); - const U8 = new Uint8Array(memory.buffer); U8.set(bufview, ptr); return ptr; } - extendedExports.__newArrayBuffer = __newArrayBuffer; + /** Reads a string from the module's memory by its pointer. */ - function __getString(ptr) { if (!ptr) return null; const buffer = memory.buffer; @@ -203,18 +194,15 @@ var loader = (function(exports) { if (id !== STRING_ID) throw Error(`not a string: ${ptr}`); return getStringImpl(buffer, ptr); } - extendedExports.__getString = __getString; + /** Gets the view matching the specified alignment, signedness and floatness. */ - function getView(alignLog2, signed, float) { const buffer = memory.buffer; - if (float) { switch (alignLog2) { case 2: return new Float32Array(buffer); - case 3: return new Float64Array(buffer); } @@ -222,43 +210,32 @@ var loader = (function(exports) { switch (alignLog2) { case 0: return new (signed ? Int8Array : Uint8Array)(buffer); - case 1: return new (signed ? Int16Array : Uint16Array)(buffer); - case 2: return new (signed ? Int32Array : Uint32Array)(buffer); - case 3: return new (signed ? BigInt64Array : BigUint64Array)(buffer); } } - throw Error(`unsupported align: ${alignLog2}`); } + /** Allocates a new array in the module's memory and returns its pointer. */ - - function __newArray(id, valuesOrCapacity = 0) { const input = valuesOrCapacity; const info = getArrayInfo(id); const align = getValueAlign(info); const isArrayLike = typeof input !== "number"; const length = isArrayLike ? input.length : input; - const buf = __new(length << align, info & STATICARRAY ? id : ARRAYBUFFER_ID); - let result; - if (info & STATICARRAY) { result = buf; } else { __pin(buf); - const arr = __new(info & ARRAY ? ARRAY_SIZE : ARRAYBUFFERVIEW_SIZE, id); - __unpin(buf); - const U32 = new Uint32Array(memory.buffer); U32[arr + ARRAYBUFFERVIEW_BUFFER_OFFSET >>> 2] = buf; U32[arr + ARRAYBUFFERVIEW_DATASTART_OFFSET >>> 2] = buf; @@ -266,11 +243,9 @@ var loader = (function(exports) { if (info & ARRAY) U32[arr + ARRAY_LENGTH_OFFSET >>> 2] = length; result = arr; } - if (isArrayLike) { const view = getView(align, info & VAL_SIGNED, info & VAL_FLOAT); const start = buf >>> align; - if (info & VAL_MANAGED) { for (let i = 0; i < length; ++i) { view[start + i] = input[i]; @@ -279,13 +254,11 @@ var loader = (function(exports) { view.set(input, start); } } - return result; } - extendedExports.__newArray = __newArray; + /** Gets a live view on an array's values in the module's memory. Infers the array type from RTTI. */ - function __getArrayView(arr) { const U32 = new Uint32Array(memory.buffer); const id = U32[arr + ID_OFFSET >>> 2]; @@ -295,88 +268,75 @@ var loader = (function(exports) { const length = info & ARRAY ? U32[arr + ARRAY_LENGTH_OFFSET >>> 2] : U32[buf + SIZE_OFFSET >>> 2] >>> align; return getView(align, info & VAL_SIGNED, info & VAL_FLOAT).subarray(buf >>>= align, buf + length); } - extendedExports.__getArrayView = __getArrayView; + /** Copies an array's values from the module's memory. Infers the array type from RTTI. */ - function __getArray(arr) { const input = __getArrayView(arr); - const len = input.length; const out = new Array(len); - for (let i = 0; i < len; i++) out[i] = input[i]; - return out; } - extendedExports.__getArray = __getArray; + /** Copies an ArrayBuffer's value from the module's memory. */ - function __getArrayBuffer(ptr) { const buffer = memory.buffer; const length = new Uint32Array(buffer)[ptr + SIZE_OFFSET >>> 2]; return buffer.slice(ptr, ptr + length); } - extendedExports.__getArrayBuffer = __getArrayBuffer; + /** Gets a function from poiner which contain table's index. */ - function __getFunction(ptr) { if (!table) throw Error(E_NO_EXPORT_TABLE); const index = new Uint32Array(memory.buffer)[ptr >>> 2]; return table.get(index); } - extendedExports.__getFunction = __getFunction; + /** Copies a typed array's values from the module's memory. */ - function getTypedArray(Type, alignLog2, ptr) { return new Type(getTypedArrayView(Type, alignLog2, ptr)); } + /** Gets a live view on a typed array's values in the module's memory. */ - - function getTypedArrayView(Type, alignLog2, ptr) { const buffer = memory.buffer; const U32 = new Uint32Array(buffer); return new Type(buffer, U32[ptr + ARRAYBUFFERVIEW_DATASTART_OFFSET >>> 2], U32[ptr + ARRAYBUFFERVIEW_BYTELENGTH_OFFSET >>> 2] >>> alignLog2); } + /** Attach a set of get TypedArray and View functions to the exports. */ - - function attachTypedArrayFunctions(ctor, name, align) { extendedExports[`__get${name}`] = getTypedArray.bind(null, ctor, align); extendedExports[`__get${name}View`] = getTypedArrayView.bind(null, ctor, align); } - [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array].forEach(ctor => { attachTypedArrayFunctions(ctor, ctor.name, 31 - Math.clz32(ctor.BYTES_PER_ELEMENT)); }); - if (BIGINT) { [BigUint64Array, BigInt64Array].forEach(ctor => { attachTypedArrayFunctions(ctor, ctor.name.slice(3), 3); }); - } // Pull basic exports to extendedExports so code in preInstantiate can use them - - + } + + // Pull basic exports to extendedExports so code in preInstantiate can use them extendedExports.memory = extendedExports.memory || memory; - extendedExports.table = extendedExports.table || table; // Demangle exports and provide the usual utility on the prototype - + extendedExports.table = extendedExports.table || table; + + // Demangle exports and provide the usual utility on the prototype return demangle(exports, extendedExports); } - function isResponse(src) { return typeof Response !== "undefined" && src instanceof Response; } - function isModule(src) { return src instanceof WebAssembly.Module; } + /** Asynchronously instantiates an AssemblyScript module from anything that can be instantiated. */ - - async function instantiate(source, imports = {}) { if (isResponse(source = await source)) return instantiateStreaming(source, imports); const module = isModule(source) ? source : await WebAssembly.compile(source); @@ -389,9 +349,8 @@ var loader = (function(exports) { exports }; } + /** Synchronously instantiates an AssemblyScript module from a WebAssembly.Module or binary buffer. */ - - function instantiateSync(source, imports = {}) { const module = isModule(source) ? source : new WebAssembly.Module(source); const extended = preInstantiate(imports); @@ -403,61 +362,49 @@ var loader = (function(exports) { exports }; } + /** Asynchronously instantiates an AssemblyScript module from a response, i.e. as obtained by `fetch`. */ - - async function instantiateStreaming(source, imports = {}) { if (!WebAssembly.instantiateStreaming) { return instantiate(isResponse(source = await source) ? source.arrayBuffer() : source, imports); } - const extended = preInstantiate(imports); const result = await WebAssembly.instantiateStreaming(source, imports); const exports = postInstantiate(extended, result.instance); - return { ...result, + return { + ...result, exports }; } + /** Demangles an AssemblyScript module's exports to a friendly object structure. */ - - function demangle(exports, extendedExports = {}) { const setArgumentsLength = exports["__argumentsLength"] ? length => { exports["__argumentsLength"].value = length; - } : exports["__setArgumentsLength"] || exports["__setargc"] || (() => { - /* nop */ - }); - + } : exports["__setArgumentsLength"] || exports["__setargc"] || (() => {/* nop */}); for (let internalName of Object.keys(exports)) { const elem = exports[internalName]; let parts = internalName.split("."); let curr = extendedExports; - while (parts.length > 1) { let part = parts.shift(); if (!Object.hasOwn(curr, part)) curr[part] = {}; curr = curr[part]; } - let name = parts[0]; let hash = name.indexOf("#"); - if (hash >= 0) { const className = name.substring(0, hash); const classElem = curr[className]; - if (typeof classElem === "undefined" || !classElem.prototype) { const ctor = function (...args) { return ctor.wrap(ctor.prototype.constructor(0, ...args)); }; - ctor.prototype = { valueOf() { return this[THIS]; } - }; - ctor.wrap = function (thisValue) { return Object.create(ctor.prototype, { [THIS]: { @@ -466,14 +413,11 @@ var loader = (function(exports) { } }); }; - if (classElem) Object.getOwnPropertyNames(classElem).forEach(name => Object.defineProperty(ctor, name, Object.getOwnPropertyDescriptor(classElem, name))); curr[className] = ctor; } - name = name.substring(hash + 1); curr = curr[className].prototype; - if (/^(get|set):/.test(name)) { if (!Object.hasOwn(curr, name = name.substring(4))) { let getter = exports[internalName.replace("set:", "get:")]; @@ -482,11 +426,9 @@ var loader = (function(exports) { get() { return getter(this[THIS]); }, - set(value) { setter(this[THIS], value); }, - enumerable: true }); } @@ -524,18 +466,12 @@ var loader = (function(exports) { } } } - return extendedExports; } - - var _default = { + var _default = _exports.default = { instantiate, instantiateSync, instantiateStreaming, demangle }; - exports.default = _default; - return exports; -})({}); -if (typeof define === 'function' && define.amd) define([], function() { return loader; }); -else if (typeof module === 'object' && typeof exports==='object') module.exports = loader; +}); \ No newline at end of file diff --git a/lib/rtrace/package.json b/lib/rtrace/package.json index 9ea43cdd48..dbad11fc56 100644 --- a/lib/rtrace/package.json +++ b/lib/rtrace/package.json @@ -34,8 +34,8 @@ "test": "node tests" }, "dependencies": { - "d3": "^6.3.1", - "jsdom": "^16.4.0" + "d3": "^7.9.0", + "jsdom": "^28.1.0" }, "files": [ "index.d.ts", diff --git a/lib/rtrace/umd/index.js b/lib/rtrace/umd/index.js index f4fdb0ad10..bf25d0dcd0 100644 --- a/lib/rtrace/umd/index.js +++ b/lib/rtrace/umd/index.js @@ -1,61 +1,64 @@ // GENERATED FILE. DO NOT EDIT. -var rtrace = (function(exports) { +(function (global, factory) { + function preferDefault(exports) { + return exports.default || exports; + } + if (typeof define === "function" && define.amd) { + define([], function () { + var exports = {}; + factory(exports); + return preferDefault(exports); + }); + } else if (typeof exports === "object") { + factory(exports); + if (typeof module === "object") module.exports = preferDefault(exports); + } else { + (function () { + var exports = {}; + factory(exports); + global.rtrace = preferDefault(exports); + })(); + } +})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) { "use strict"; - - Object.defineProperty(exports, "__esModule", { + + Object.defineProperty(_exports, "__esModule", { value: true }); - exports.default = exports.Rtrace = exports.TOTAL_OVERHEAD = exports.OBJECT_OVERHEAD = exports.BLOCK_OVERHEAD = void 0; + _exports.default = _exports.TOTAL_OVERHEAD = _exports.Rtrace = _exports.OBJECT_OVERHEAD = _exports.BLOCK_OVERHEAD = void 0; // WebAssembly pages are 65536 kb const PAGE_SIZE_BITS = 16; const PAGE_SIZE = 1 << PAGE_SIZE_BITS; - const PAGE_MASK = PAGE_SIZE - 1; // Wasm32 pointer size is 4 bytes - + const PAGE_MASK = PAGE_SIZE - 1; + + // Wasm32 pointer size is 4 bytes const PTR_SIZE_BITS = 2; const PTR_SIZE = 1 << PTR_SIZE_BITS; const PTR_MASK = PTR_SIZE - 1; const PTR_VIEW = Uint32Array; - const BLOCK_OVERHEAD = PTR_SIZE; - exports.BLOCK_OVERHEAD = BLOCK_OVERHEAD; - const OBJECT_OVERHEAD = 16; - exports.OBJECT_OVERHEAD = OBJECT_OVERHEAD; - const TOTAL_OVERHEAD = BLOCK_OVERHEAD + OBJECT_OVERHEAD; - exports.TOTAL_OVERHEAD = TOTAL_OVERHEAD; - + const BLOCK_OVERHEAD = _exports.BLOCK_OVERHEAD = PTR_SIZE; + const OBJECT_OVERHEAD = _exports.OBJECT_OVERHEAD = 16; + const TOTAL_OVERHEAD = _exports.TOTAL_OVERHEAD = BLOCK_OVERHEAD + OBJECT_OVERHEAD; function assert(x) { if (!x) throw Error("assertion failed"); return x; } - Error.stackTraceLimit = 15; - function trimStacktrace(stack, levels) { return stack.split(/\r?\n/).slice(1 + levels); } - const hrtime = typeof performance !== "undefined" && performance.now ? performance.now : typeof process !== "undefined" && process.hrtime ? () => { let t = process.hrtime(); return t[0] * 1e3 + t[1] / 1e6; } : Date.now; const mmTagsToString = ["", "FREE", "LEFTFREE", "FREE+LEFTFREE"]; const gcColorToString = ["BLACK/WHITE", "WHITE/BLACK", "GRAY", "INVALID"]; - class Rtrace { constructor(options) { this.options = options || {}; - - this.onerror = this.options.onerror || function () { - /* nop */ - }; - - this.oninfo = this.options.oninfo || function () { - /* nop */ - }; - - this.oncollect_ = this.options.oncollect || function () { - /* nop */ - }; - + this.onerror = this.options.onerror || function () {/* nop */}; + this.oninfo = this.options.oninfo || function () {/* nop */}; + this.oncollect_ = this.options.oncollect || function () {/* nop */}; this.memory = null; this.shadow = null; this.shadowStart = 0x100000000; @@ -70,7 +73,6 @@ var rtrace = (function(exports) { this.freeCount = 0; this.heapBase = 0x100000000; } - install(imports) { if (!imports) imports = {}; imports.rtrace = Object.assign(imports.rtrace || {}, { @@ -88,9 +90,8 @@ var rtrace = (function(exports) { }); return imports; } + /** Synchronizes the shadow memory with the module's memory. */ - - syncShadow() { if (!this.memory) { this.memory = assert(this.options.getMemory()); @@ -98,85 +99,71 @@ var rtrace = (function(exports) { initial: (this.memory.buffer.byteLength + PAGE_MASK & ~PAGE_MASK) >>> PAGE_SIZE_BITS }); } else { - var diff = this.memory.buffer.byteLength - this.shadow.buffer.byteLength; + let diff = this.memory.buffer.byteLength - this.shadow.buffer.byteLength; if (diff > 0) this.shadow.grow(diff >>> 16); } } + /** Marks a block's presence in shadow memory. */ - - markShadow(info, oldSize = 0) { assert(this.shadow && this.shadow.byteLength == this.memory.byteLength); assert((info.size & PTR_MASK) == 0); - if (info.ptr < this.shadowStart) { this.shadowStart = info.ptr; } - - var len = info.size >>> PTR_SIZE_BITS; - var view = new PTR_VIEW(this.shadow.buffer, info.ptr, len); - var errored = false; - var start = oldSize >>> PTR_SIZE_BITS; - + let len = info.size >>> PTR_SIZE_BITS; + let view = new PTR_VIEW(this.shadow.buffer, info.ptr, len); + let errored = false; + let start = oldSize >>> PTR_SIZE_BITS; for (let i = 0; i < start; ++i) { if (view[i] != info.ptr && !errored) { this.onerror(Error("shadow region mismatch: " + view[i] + " != " + info.ptr), info); errored = true; } } - errored = false; - for (let i = start; i < len; ++i) { if (view[i] != 0 && !errored) { this.onerror(Error("shadow region already in use: " + view[i] + " != 0"), info); errored = true; } - view[i] = info.ptr; } } + /** Unmarks a block's presence in shadow memory. */ - - unmarkShadow(info, oldSize = info.size) { assert(this.shadow && this.shadow.byteLength == this.memory.byteLength); - var len = oldSize >>> PTR_SIZE_BITS; - var view = new PTR_VIEW(this.shadow.buffer, info.ptr, len); - var errored = false; - var start = 0; - + let len = oldSize >>> PTR_SIZE_BITS; + let view = new PTR_VIEW(this.shadow.buffer, info.ptr, len); + let errored = false; + let start = 0; if (oldSize != info.size) { assert(oldSize > info.size); start = info.size >>> PTR_SIZE_BITS; } - for (let i = 0; i < len; ++i) { if (view[i] != info.ptr && !errored) { this.onerror(Error("shadow region mismatch: " + view[i] + " != " + info.ptr), info); errored = true; } - if (i >= start) view[i] = 0; } } + /** Performs an access to shadow memory. */ - - accessShadow(ptr, size, isLoad, isRT) { this.syncShadow(); if (ptr < this.shadowStart) return; - var value = new Uint32Array(this.shadow.buffer, ptr & ~PTR_MASK, 1)[0]; + let value = new Uint32Array(this.shadow.buffer, ptr & ~PTR_MASK, 1)[0]; if (value != 0) return; - if (!isRT) { let stack = trimStacktrace(new Error().stack, 2); this.onerror(new Error("OOB " + (isLoad ? "load" : "store") + 8 * size + " at address " + ptr + "\n" + stack.join("\n"))); } } + /** Obtains information about a block. */ - - getBlockInfo(ptr) { const [mmInfo, gcInfo, gcInfo2, rtId, rtSize] = new Uint32Array(this.memory.buffer, ptr, 5); const size = mmInfo & ~3; @@ -187,7 +174,6 @@ var rtrace = (function(exports) { mmInfo: { tags: mmTagsToString[mmInfo & 3], size: size // as stored excl. overhead - }, gcInfo: { color: gcColorToString[gcInfo & 3], @@ -198,71 +184,61 @@ var rtrace = (function(exports) { rtSize }; } + /** Checks if rtrace is active, i.e. at least one event has occurred. */ - - get active() { return Boolean(this.allocCount || this.resizeCount || this.moveCount || this.freeCount); } + /** Checks if there are any leaks and emits them via `oninfo`. Returns the number of live blocks. */ - - check() { if (this.oninfo) { for (let [ptr, info] of this.blocks) { this.oninfo("LIVE " + ptr + "\n" + info.allocStack.join("\n")); } } - return this.blocks.size; - } // Runtime instrumentation - - + } + + // Runtime instrumentation + oninit(heapBase) { this.heapBase = heapBase; this.gcProfileStart = 0; this.gcProfile.length = 0; this.oninfo("INIT heapBase=" + heapBase); } - onalloc(ptr) { this.syncShadow(); ++this.allocCount; - var info = this.getBlockInfo(ptr); - + let info = this.getBlockInfo(ptr); if (this.blocks.has(ptr)) { this.onerror(Error("duplicate alloc: " + ptr), info); } else { this.oninfo("ALLOC " + ptr + ".." + (ptr + info.size)); this.markShadow(info); let allocStack = trimStacktrace(new Error().stack, 1); // strip onalloc - this.blocks.set(ptr, Object.assign(info, { allocStack })); } } - onresize(ptr, oldSize) { this.syncShadow(); ++this.resizeCount; const info = this.getBlockInfo(ptr); - if (!this.blocks.has(ptr)) { this.onerror(Error("orphaned resize: " + ptr), info); } else { const beforeInfo = this.blocks.get(ptr); - if (beforeInfo.size != oldSize) { this.onerror(Error(`size mismatch upon resize: ${ptr} (${beforeInfo.size} != ${oldSize})`), info); } - const newSize = info.size; this.oninfo("RESIZE " + ptr + ".." + (ptr + newSize) + " (" + oldSize + "->" + newSize + ")"); this.blocks.set(ptr, Object.assign(info, { allocStack: beforeInfo.allocStack })); - if (newSize > oldSize) { this.markShadow(info, oldSize); } else if (newSize < oldSize) { @@ -270,13 +246,11 @@ var rtrace = (function(exports) { } } } - onmove(oldPtr, newPtr) { this.syncShadow(); ++this.moveCount; - var oldInfo = this.getBlockInfo(oldPtr); - var newInfo = this.getBlockInfo(newPtr); - + let oldInfo = this.getBlockInfo(oldPtr); + let newInfo = this.getBlockInfo(newPtr); if (!this.blocks.has(oldPtr)) { this.onerror(Error("orphaned move (old): " + oldPtr), oldInfo); } else { @@ -286,48 +260,39 @@ var rtrace = (function(exports) { const beforeInfo = this.blocks.get(oldPtr); const oldSize = oldInfo.size; const newSize = newInfo.size; - if (beforeInfo.size != oldSize) { this.onerror(Error(`size mismatch upon move: ${oldPtr} (${beforeInfo.size} != ${oldSize})`), oldInfo); } - - this.oninfo("MOVE " + oldPtr + ".." + (oldPtr + oldSize) + " -> " + newPtr + ".." + (newPtr + newSize)); // calls new alloc before and old free after + this.oninfo("MOVE " + oldPtr + ".." + (oldPtr + oldSize) + " -> " + newPtr + ".." + (newPtr + newSize)); + // calls new alloc before and old free after } } } - onvisit(ptr) { // Indicates that a block has been freed but it still visited by the GC if (ptr > this.heapBase && !this.blocks.has(ptr)) { let err = Error("orphaned visit: " + ptr); let info = this.freedBlocks.get(ptr); - if (info) { err.stack += "\n^ allocated at:\n" + info.allocStack.join("\n"); err.stack += "\n^ freed at:\n" + info.freeStack.join("\n"); } - this.onerror(err, null); return false; } - return true; } - onfree(ptr) { this.syncShadow(); ++this.freeCount; - var info = this.getBlockInfo(ptr); - + let info = this.getBlockInfo(ptr); if (!this.blocks.has(ptr)) { this.onerror(Error("orphaned free: " + ptr), info); } else { const oldInfo = this.blocks.get(ptr); - if (info.size != oldInfo.size) { this.onerror(Error(`size mismatch upon free: ${ptr} (${oldInfo.size} != ${info.size})`), info); } - this.oninfo("FREE " + ptr + ".." + (ptr + info.size)); this.unmarkShadow(info); const allocInfo = this.blocks.get(ptr); @@ -335,56 +300,47 @@ var rtrace = (function(exports) { const allocStack = allocInfo.allocStack; const freeStack = trimStacktrace(new Error().stack, 1); // strip onfree // (not much) TODO: Maintaining these is essentially a memory leak - this.freedBlocks.set(ptr, { allocStack, freeStack }); } } - oncollect(total) { this.oninfo(`COLLECT at ${total}`); this.plot(total); this.oncollect_(); - } // GC profiling - - + } + + // GC profiling + plot(total, pause = 0) { if (!this.gcProfileStart) this.gcProfileStart = Date.now(); this.gcProfile.push([Date.now() - this.gcProfileStart, total, pause]); } - oninterrupt(total) { this.interruptStart = hrtime(); this.plot(total); } - onyield(total) { - var pause = hrtime() - this.interruptStart; + let pause = hrtime() - this.interruptStart; if (pause >= 1) console.log("interrupted for " + pause.toFixed(1) + "ms"); this.plot(total, pause); - } // Memory instrumentation - - + } + + // Memory instrumentation + onstore(ptr, offset, bytes, isRT) { this.accessShadow(ptr + offset, bytes, false, isRT); return ptr; } - onload(ptr, offset, bytes, isRT) { this.accessShadow(ptr + offset, bytes, true, isRT); return ptr; } - } - - exports.Rtrace = Rtrace; - var _default = { + _exports.Rtrace = Rtrace; + var _default = _exports.default = { Rtrace }; - exports.default = _default; - return exports; -})({}); -if (typeof define === 'function' && define.amd) define([], function() { return rtrace; }); -else if (typeof module === 'object' && typeof exports==='object') module.exports = rtrace; +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 51fbae811f..8590fc82fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,18 +17,18 @@ "asinit": "bin/asinit.js" }, "devDependencies": { - "@eslint/js": "^9.39.2", - "@types/node": "^25.2.0", - "@typescript-eslint/eslint-plugin": "^8.54.0", - "@typescript-eslint/parser": "^8.54.0", + "@eslint/js": "^10.0.1", + "@types/node": "^25.3.5", + "@typescript-eslint/eslint-plugin": "^8.56.1", + "@typescript-eslint/parser": "^8.56.1", "as-float": "^1.0.1", "diff": "^8.0.3", - "esbuild": "^0.27.2", - "eslint": "^9.39.2", - "glob": "^13.0.1", - "globals": "^17.3.0", + "esbuild": "^0.27.3", + "eslint": "^10.0.3", + "glob": "^13.0.6", + "globals": "^17.4.0", "typescript": "^5.9.3", - "typescript-eslint": "^8.54.0" + "typescript-eslint": "^8.56.1" }, "engines": { "node": ">=24", @@ -40,9 +40,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", - "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", "cpu": [ "ppc64" ], @@ -57,9 +57,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", - "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", "cpu": [ "arm" ], @@ -74,9 +74,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", - "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", "cpu": [ "arm64" ], @@ -91,9 +91,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", - "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", "cpu": [ "x64" ], @@ -108,9 +108,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", - "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", "cpu": [ "arm64" ], @@ -125,9 +125,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", - "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", "cpu": [ "x64" ], @@ -142,9 +142,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", - "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", "cpu": [ "arm64" ], @@ -159,9 +159,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", - "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", "cpu": [ "x64" ], @@ -176,9 +176,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", - "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", "cpu": [ "arm" ], @@ -193,9 +193,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", - "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", "cpu": [ "arm64" ], @@ -210,9 +210,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", - "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", "cpu": [ "ia32" ], @@ -227,9 +227,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", - "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", "cpu": [ "loong64" ], @@ -244,9 +244,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", - "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", "cpu": [ "mips64el" ], @@ -261,9 +261,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", - "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", "cpu": [ "ppc64" ], @@ -278,9 +278,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", - "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", "cpu": [ "riscv64" ], @@ -295,9 +295,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", - "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", "cpu": [ "s390x" ], @@ -312,9 +312,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", - "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "cpu": [ "x64" ], @@ -329,9 +329,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", - "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", "cpu": [ "arm64" ], @@ -346,9 +346,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", - "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", "cpu": [ "x64" ], @@ -363,9 +363,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", - "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", "cpu": [ "arm64" ], @@ -380,9 +380,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", - "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", "cpu": [ "x64" ], @@ -397,9 +397,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", - "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", "cpu": [ "arm64" ], @@ -414,9 +414,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", - "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", "cpu": [ "x64" ], @@ -431,9 +431,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", - "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", "cpu": [ "arm64" ], @@ -448,9 +448,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", - "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", "cpu": [ "ia32" ], @@ -465,9 +465,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", - "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", "cpu": [ "x64" ], @@ -511,176 +511,89 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.23.3", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz", + "integrity": "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.7", + "@eslint/object-schema": "^3.0.3", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^10.2.4" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz", + "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.17.0" + "@eslint/core": "^1.1.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz", + "integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", - "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/js": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", "dev": true, "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz", + "integrity": "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz", + "integrity": "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.17.0", + "@eslint/core": "^1.1.1", "levn": "^0.4.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@humanfs/core": { @@ -735,28 +648,12 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", "dev": true, - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", - "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.8", @@ -773,27 +670,27 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.0.tgz", - "integrity": "sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==", + "version": "25.3.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.5.tgz", + "integrity": "sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.18.0" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.54.0.tgz", - "integrity": "sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz", + "integrity": "sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.54.0", - "@typescript-eslint/type-utils": "8.54.0", - "@typescript-eslint/utils": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0", + "@typescript-eslint/scope-manager": "8.56.1", + "@typescript-eslint/type-utils": "8.56.1", + "@typescript-eslint/utils": "8.56.1", + "@typescript-eslint/visitor-keys": "8.56.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -806,22 +703,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.54.0", - "eslint": "^8.57.0 || ^9.0.0", + "@typescript-eslint/parser": "^8.56.1", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.54.0.tgz", - "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.1.tgz", + "integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.54.0", - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0", + "@typescript-eslint/scope-manager": "8.56.1", + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/typescript-estree": "8.56.1", + "@typescript-eslint/visitor-keys": "8.56.1", "debug": "^4.4.3" }, "engines": { @@ -832,19 +729,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.54.0.tgz", - "integrity": "sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.1.tgz", + "integrity": "sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.54.0", - "@typescript-eslint/types": "^8.54.0", + "@typescript-eslint/tsconfig-utils": "^8.56.1", + "@typescript-eslint/types": "^8.56.1", "debug": "^4.4.3" }, "engines": { @@ -859,14 +756,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.54.0.tgz", - "integrity": "sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz", + "integrity": "sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0" + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/visitor-keys": "8.56.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -877,9 +774,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.54.0.tgz", - "integrity": "sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz", + "integrity": "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==", "dev": true, "license": "MIT", "engines": { @@ -894,15 +791,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.54.0.tgz", - "integrity": "sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz", + "integrity": "sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0", - "@typescript-eslint/utils": "8.54.0", + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/typescript-estree": "8.56.1", + "@typescript-eslint/utils": "8.56.1", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -914,14 +811,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.54.0.tgz", - "integrity": "sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.1.tgz", + "integrity": "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==", "dev": true, "license": "MIT", "engines": { @@ -933,18 +830,18 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.54.0.tgz", - "integrity": "sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz", + "integrity": "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.54.0", - "@typescript-eslint/tsconfig-utils": "8.54.0", - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0", + "@typescript-eslint/project-service": "8.56.1", + "@typescript-eslint/tsconfig-utils": "8.56.1", + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/visitor-keys": "8.56.1", "debug": "^4.4.3", - "minimatch": "^9.0.5", + "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.4.0" @@ -961,16 +858,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.54.0.tgz", - "integrity": "sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.1.tgz", + "integrity": "sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.54.0", - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0" + "@typescript-eslint/scope-manager": "8.56.1", + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/typescript-estree": "8.56.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -980,19 +877,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.54.0.tgz", - "integrity": "sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz", + "integrity": "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.54.0", - "eslint-visitor-keys": "^4.2.1" + "@typescript-eslint/types": "8.56.1", + "eslint-visitor-keys": "^5.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1003,22 +900,22 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", "bin": { @@ -1039,9 +936,9 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "dev": true, "license": "MIT", "dependencies": { @@ -1055,29 +952,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/as-float": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/as-float/-/as-float-1.0.1.tgz", @@ -1086,11 +960,14 @@ "license": "MIT" }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, "node_modules/binaryen": { "version": "125.0.0-nightly.20251209", @@ -1110,69 +987,18 @@ } }, "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "18 || 20 || >=22" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -1224,9 +1050,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", - "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1237,32 +1063,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.2", - "@esbuild/android-arm": "0.27.2", - "@esbuild/android-arm64": "0.27.2", - "@esbuild/android-x64": "0.27.2", - "@esbuild/darwin-arm64": "0.27.2", - "@esbuild/darwin-x64": "0.27.2", - "@esbuild/freebsd-arm64": "0.27.2", - "@esbuild/freebsd-x64": "0.27.2", - "@esbuild/linux-arm": "0.27.2", - "@esbuild/linux-arm64": "0.27.2", - "@esbuild/linux-ia32": "0.27.2", - "@esbuild/linux-loong64": "0.27.2", - "@esbuild/linux-mips64el": "0.27.2", - "@esbuild/linux-ppc64": "0.27.2", - "@esbuild/linux-riscv64": "0.27.2", - "@esbuild/linux-s390x": "0.27.2", - "@esbuild/linux-x64": "0.27.2", - "@esbuild/netbsd-arm64": "0.27.2", - "@esbuild/netbsd-x64": "0.27.2", - "@esbuild/openbsd-arm64": "0.27.2", - "@esbuild/openbsd-x64": "0.27.2", - "@esbuild/openharmony-arm64": "0.27.2", - "@esbuild/sunos-x64": "0.27.2", - "@esbuild/win32-arm64": "0.27.2", - "@esbuild/win32-ia32": "0.27.2", - "@esbuild/win32-x64": "0.27.2" + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" } }, "node_modules/escape-string-regexp": { @@ -1279,33 +1105,30 @@ } }, "node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.3.tgz", + "integrity": "sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", - "@eslint/plugin-kit": "^0.4.1", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.3", + "@eslint/config-helpers": "^0.5.2", + "@eslint/core": "^1.1.1", + "@eslint/plugin-kit": "^0.6.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.12.4", - "chalk": "^4.0.0", + "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.1.1", + "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", @@ -1315,8 +1138,7 @@ "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^10.2.4", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -1324,7 +1146,7 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://eslint.org/donate" @@ -1339,17 +1161,19 @@ } }, "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1368,25 +1192,14 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1402,45 +1215,32 @@ "node": ">= 4" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.15.0", + "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" + "eslint-visitor-keys": "^5.0.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1576,25 +1376,25 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.4.tgz", + "integrity": "sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==", "dev": true, "license": "ISC" }, "node_modules/glob": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.1.tgz", - "integrity": "sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.1.2", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1613,26 +1413,10 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz", - "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.1" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/globals": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.3.0.tgz", - "integrity": "sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==", + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", + "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", "dev": true, "license": "MIT", "engines": { @@ -1642,16 +1426,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/ignore": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", @@ -1662,23 +1436,6 @@ "node": ">= 4" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -1719,19 +1476,6 @@ "dev": true, "license": "ISC" }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -1793,13 +1537,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/long": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", @@ -1807,9 +1544,9 @@ "license": "Apache-2.0" }, "node_modules/lru-cache": { - "version": "11.2.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", - "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -1817,27 +1554,27 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -1906,19 +1643,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -1940,9 +1664,9 @@ } }, "node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -1950,7 +1674,7 @@ "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1989,20 +1713,10 @@ "node": ">=6" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -2035,32 +1749,6 @@ "node": ">=8" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -2119,16 +1807,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.54.0.tgz", - "integrity": "sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.56.1.tgz", + "integrity": "sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.54.0", - "@typescript-eslint/parser": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0", - "@typescript-eslint/utils": "8.54.0" + "@typescript-eslint/eslint-plugin": "8.56.1", + "@typescript-eslint/parser": "8.56.1", + "@typescript-eslint/typescript-estree": "8.56.1", + "@typescript-eslint/utils": "8.56.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2138,14 +1826,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 3ba77a72e3..c4977972c6 100644 --- a/package.json +++ b/package.json @@ -29,17 +29,17 @@ "long": "^5.3.2" }, "devDependencies": { - "@eslint/js": "^9.39.2", - "@types/node": "^25.2.0", - "@typescript-eslint/eslint-plugin": "^8.54.0", - "@typescript-eslint/parser": "^8.54.0", - "typescript-eslint": "^8.54.0", + "@eslint/js": "^10.0.1", + "@types/node": "^25.3.5", + "@typescript-eslint/eslint-plugin": "^8.56.1", + "@typescript-eslint/parser": "^8.56.1", + "typescript-eslint": "^8.56.1", "as-float": "^1.0.1", "diff": "^8.0.3", - "esbuild": "^0.27.2", - "eslint": "^9.39.2", - "globals": "^17.3.0", - "glob": "^13.0.1", + "esbuild": "^0.27.3", + "eslint": "^10.0.3", + "globals": "^17.4.0", + "glob": "^13.0.6", "typescript": "^5.9.3" }, "type": "module", diff --git a/src/asconfig.json b/src/asconfig.json index 8618a21c41..a0178d88ed 100644 --- a/src/asconfig.json +++ b/src/asconfig.json @@ -7,6 +7,7 @@ "exportStart": "_initialize", "exportRuntime": true, "initialMemory": 768, + "stackSize": 65536, "runtime": "incremental", "bindings": [ "esm" ], "stats": true diff --git a/src/compiler.ts b/src/compiler.ts index 6717b5b77a..a64c313304 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -567,7 +567,7 @@ export class Compiler extends DiagnosticEmitter { } // compile and export runtime if requested or necessary - if (this.options.exportRuntime || (this.options.bindingsHint && this.desiresExportRuntime)) { + if ((this.options.exportRuntime || (this.options.bindingsHint && this.desiresExportRuntime)) && this.options.runtime != Runtime.Memory) { for (let i = 0, k = runtimeFunctions.length; i < k; ++i) { let name = runtimeFunctions[i]; let instance = program.requireFunction(name); @@ -2084,7 +2084,7 @@ export class Compiler extends DiagnosticEmitter { module.local_get(1, valueTypeRef), valueTypeRef, property.memoryOffset ); - if (valueType.isManaged) { + if (valueType.isManaged && this.options.runtime != Runtime.Memory) { let parent = setterInstance.parent; assert(parent.kind == ElementKind.Class); if ((parent).type.isManaged) { @@ -7841,7 +7841,9 @@ export class Compiler extends DiagnosticEmitter { // During recompilation, check if this function already exists // Check in program.instancesByName using the internal name that would be generated let expectedInternalName = mangleInternalName(functionName, sourceFunction, false); - let existingInstance = this.program.instancesByName.get(expectedInternalName); + let existingInstance = this.program.instancesByName.has(expectedInternalName) + ? this.program.instancesByName.get(expectedInternalName) + : null; if (existingInstance && existingInstance.kind == ElementKind.Function) { let existingFunc = existingInstance; if (existingFunc.is(CommonFlags.Compiled)) { @@ -8543,7 +8545,7 @@ export class Compiler extends DiagnosticEmitter { for (let _keys = Map_keys(captures), i = 0, k = _keys.length; i < k; i++) { let local = _keys[i]; let owner = assert(local.envOwner); - let ownerCaptures = envOwners.get(owner); + let ownerCaptures = envOwners.has(owner) ? envOwners.get(owner) : null; if (!ownerCaptures) { ownerCaptures = new Map(); envOwners.set(owner, ownerCaptures); diff --git a/src/passes/shadowstack.ts b/src/passes/shadowstack.ts index 6f1857da37..704559cf97 100644 --- a/src/passes/shadowstack.ts +++ b/src/passes/shadowstack.ts @@ -332,10 +332,12 @@ export class ShadowStackPass extends Pass { module.global_get(BuiltinNames.stack_pointer, this.ptrType), module.global_get(BuiltinNames.data_end, this.ptrType) ), - this.compiler.makeStaticAbort( - this.compiler.ensureStaticString("stack overflow"), - Source.native - ) + this.compiler.options.hasFeature(Feature.ExceptionHandling) + ? module.unreachable() + : this.compiler.makeStaticAbort( + this.compiler.ensureStaticString("stack overflow"), + Source.native + ) ) ); } diff --git a/src/program.ts b/src/program.ts index 2ea69df6c0..809e29583a 100644 --- a/src/program.ts +++ b/src/program.ts @@ -1674,8 +1674,14 @@ export class Program extends DiagnosticEmitter { /** Requires that a global library element of the specified kind is present and returns it. */ private require(name: string, kind: ElementKind): Element { let element = this.lookup(name); - if (!element) throw new Error(`Missing standard library component: ${name}`); - if (element.kind != kind) throw Error(`Invalid standard library component kind: ${name}`); + if (!element) { + this.error(DiagnosticCode.Element_0_not_found, null, name); + throw new Error(`Missing standard library component: ${name}`); + } + if (element.kind != kind) { + this.error(DiagnosticCode.Element_0_not_found, null, name); + throw new Error(`Invalid standard library component kind: ${name}`); + } return element; } diff --git a/std/assembly/array.ts b/std/assembly/array.ts index faa6d9b38c..025ada36fd 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -31,7 +31,9 @@ function ensureCapacity(array: usize, newSize: usize, alignLog2: u32, canGrow: b if (newData != oldData) { // oldData has been free'd store(array, newData, offsetof("buffer")); store(array, newData, offsetof("dataStart")); - __link(array, changetype(newData), false); + if (ASC_RUNTIME != Runtime.Memory) { + __link(array, changetype(newData), false); + } } store(array, newCapacity, offsetof("byteLength")); } @@ -133,7 +135,9 @@ export class Array { } store(this.dataStart + (index << alignof()), value); if (isManaged()) { - __link(changetype(this), changetype(value), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } } } @@ -153,7 +157,9 @@ export class Array { fill(value: T, start: i32 = 0, end: i32 = i32.MAX_VALUE): Array { if (isManaged()) { FILL(this.dataStart, this.length_, changetype(value), start, end); - __link(changetype(this), changetype(value), false); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), false); + } } else { FILL(this.dataStart, this.length_, value, start, end); } @@ -209,7 +215,9 @@ export class Array { ensureCapacity(changetype(this), len, alignof()); if (isManaged()) { store(this.dataStart + (oldLen << alignof()), changetype(value)); - __link(changetype(this), changetype(value), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } } else { store(this.dataStart + (oldLen << alignof()), value); } @@ -230,7 +238,9 @@ export class Array { for (let offset: usize = 0; offset < thisSize; offset += sizeof()) { let ref = load(thisStart + offset); store(outStart + offset, ref); - __link(changetype(out), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), ref, true); + } } outStart += thisSize; let otherStart = other.dataStart; @@ -238,7 +248,9 @@ export class Array { for (let offset: usize = 0; offset < otherSize; offset += sizeof()) { let ref = load(otherStart + offset); store(outStart + offset, ref); - __link(changetype(out), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), ref, true); + } } } else { memory.copy(outStart, this.dataStart, thisSize); @@ -288,7 +300,9 @@ export class Array { let result = fn(load(this.dataStart + (i << alignof())), i, this); store(outStart + (i << alignof()), result); if (isManaged()) { - __link(changetype(out), changetype(result), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), changetype(result), true); + } } } return out; @@ -364,7 +378,9 @@ export class Array { ); store(ptr, value); if (isManaged()) { - __link(changetype(this), changetype(value), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } } this.length_ = len; return len; @@ -384,7 +400,9 @@ export class Array { while (off < end) { let ref = load(thisBase + off); store(sliceBase + off, ref); - __link(changetype(slice), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(slice), ref, true); + } off += sizeof(); } } else { @@ -472,7 +490,9 @@ export class Array { store(changetype(outArray), byteLength, offsetof("byteLength")); store(changetype(outArray), changetype(outBuffer), offsetof("dataStart")); store(changetype(outArray), changetype(outBuffer), offsetof("buffer")); - __link(changetype(outArray), changetype(outBuffer), false); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(outArray), changetype(outBuffer), false); + } // set the elements let resultOffset: usize = 0; @@ -498,7 +518,9 @@ export class Array { if (isManaged>()) { for (let i = 0; i < size; ++i) { let ref = load(changetype(outBuffer) + (i << usize(alignof>()))); - __link(changetype(outBuffer), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(outBuffer), ref, true); + } } } @@ -512,15 +534,17 @@ export class Array { // RT integration @unsafe private __visit(cookie: u32): void { - if (isManaged()) { - let cur = this.dataStart; - let end = cur + (this.length_ << alignof()); - while (cur < end) { - let val = load(cur); - if (val) __visit(val, cookie); - cur += sizeof(); + if (ASC_RUNTIME != Runtime.Memory) { + if (isManaged()) { + let cur = this.dataStart; + let end = cur + (this.length_ << alignof()); + while (cur < end) { + let val = load(cur); + if (val) __visit(val, cookie); + cur += sizeof(); + } } + __visit(changetype(this.buffer), cookie); } - __visit(changetype(this.buffer), cookie); } } diff --git a/std/assembly/builtins.ts b/std/assembly/builtins.ts index f22556f343..d6327b104f 100644 --- a/std/assembly/builtins.ts +++ b/std/assembly/builtins.ts @@ -2618,7 +2618,7 @@ function abort( lineNumber: u32 = 0, columnNumber: u32 = 0 ): void { - if (isDefined(ASC_FEATURE_EXCEPTION_HANDLING)) { + if (ASC_FEATURE_EXCEPTION_HANDLING) { let fullMessage = message ? message : "abort"; if (fileName) { fullMessage += " in " + fileName + ":" + lineNumber.toString() + ":" + columnNumber.toString(); diff --git a/std/assembly/function.ts b/std/assembly/function.ts index dd32696330..b3a04447ea 100644 --- a/std/assembly/function.ts +++ b/std/assembly/function.ts @@ -1,3 +1,5 @@ +import { Runtime } from "shared/runtime"; + type auto = i32; @final export abstract class Function { @@ -32,7 +34,9 @@ type auto = i32; // RT integration @unsafe private __visit(cookie: u32): void { - // Env is either `null` (nop) or compiler-generated - __visit(this._env, cookie); + if (ASC_RUNTIME != Runtime.Memory) { + // Env is either `null` (nop) or compiler-generated + __visit(this._env, cookie); + } } } diff --git a/std/assembly/map.ts b/std/assembly/map.ts index ab7302f717..731ca3c7fe 100644 --- a/std/assembly/map.ts +++ b/std/assembly/map.ts @@ -1,6 +1,7 @@ /// import { HASH } from "./util/hash"; +import { Runtime } from "shared/runtime"; import { E_KEYNOTFOUND } from "./util/error"; // A deterministic hash map based on CloseTable from https://github.com/jorendorff/dht @@ -113,7 +114,9 @@ export class Map { if (entry) { entry.value = value; if (isManaged()) { - __link(changetype(this), changetype(value), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } } } else { // check if rehashing is necessary @@ -130,11 +133,15 @@ export class Map { // link with the map entry.key = key; if (isManaged()) { - __link(changetype(this), changetype(key), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(key), true); + } } entry.value = value; if (isManaged()) { - __link(changetype(this), changetype(value), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } } ++this.entriesCount; // link with previous entry in bucket @@ -231,30 +238,32 @@ export class Map { // RT integration @unsafe private __visit(cookie: u32): void { - __visit(changetype(this.buckets), cookie); - let entries = changetype(this.entries); - if (isManaged() || isManaged()) { - let cur = entries; - let end = cur + this.entriesOffset * ENTRY_SIZE(); - while (cur < end) { - let entry = changetype>(cur); - if (!(entry.taggedNext & EMPTY)) { - if (isManaged()) { - let val = changetype(entry.key); - if (isNullable()) { - if (val) __visit(val, cookie); - } else __visit(val, cookie); - } - if (isManaged()) { - let val = changetype(entry.value); - if (isNullable()) { - if (val) __visit(val, cookie); - } else __visit(val, cookie); + if (ASC_RUNTIME != Runtime.Memory) { + __visit(changetype(this.buckets), cookie); + let entries = changetype(this.entries); + if (isManaged() || isManaged()) { + let cur = entries; + let end = cur + this.entriesOffset * ENTRY_SIZE(); + while (cur < end) { + let entry = changetype>(cur); + if (!(entry.taggedNext & EMPTY)) { + if (isManaged()) { + let val = changetype(entry.key); + if (isNullable()) { + if (val) __visit(val, cookie); + } else __visit(val, cookie); + } + if (isManaged()) { + let val = changetype(entry.value); + if (isNullable()) { + if (val) __visit(val, cookie); + } else __visit(val, cookie); + } } + cur += ENTRY_SIZE(); } - cur += ENTRY_SIZE(); } + __visit(entries, cookie); } - __visit(entries, cookie); } } diff --git a/std/assembly/rt.ts b/std/assembly/rt.ts index 403e4b2087..4f21c458ce 100644 --- a/std/assembly/rt.ts +++ b/std/assembly/rt.ts @@ -1,4 +1,5 @@ import { Typeinfo, TypeinfoFlags } from "./shared/typeinfo"; +import { Runtime } from "shared/runtime"; import { E_INDEXOUTOFRANGE } from "./util/error"; import { ArrayBufferView } from "./arraybuffer"; @@ -39,7 +40,9 @@ export function __newArray(length: i32, alignLog2: usize, id: u32, data: usize = // ...since allocating the array may trigger GC steps let array = __new(offsetof(), id); store(array, changetype(buffer), offsetof("buffer")); - __link(array, changetype(buffer), false); + if (ASC_RUNTIME != Runtime.Memory) { + __link(array, changetype(buffer), false); + } store(array, changetype(buffer), offsetof("dataStart")); store(array, bufferSize, offsetof("byteLength")); store(array, length, offsetof("length_")); diff --git a/std/assembly/rt/index-memory.ts b/std/assembly/rt/index-memory.ts new file mode 100644 index 0000000000..5200645ec6 --- /dev/null +++ b/std/assembly/rt/index-memory.ts @@ -0,0 +1 @@ +import "./memory-runtime"; diff --git a/std/assembly/rt/memory-runtime.ts b/std/assembly/rt/memory-runtime.ts new file mode 100644 index 0000000000..82094d0d52 --- /dev/null +++ b/std/assembly/rt/memory-runtime.ts @@ -0,0 +1,94 @@ +import { AL_MASK, OBJECT, OBJECT_OVERHEAD, BLOCK_MAXSIZE, BLOCK_OVERHEAD, BLOCK, OBJECT_MAXSIZE } from "./common"; +import { E_ALLOCATION_TOO_LARGE } from "../util/error"; + +// === Runtime "none": memory only, no GC === + +// @ts-ignore: decorator +@lazy let offset: usize = ((__heap_base + BLOCK_OVERHEAD + AL_MASK) & ~AL_MASK) - BLOCK_OVERHEAD; + +function maybeGrowMemory(newOffset: usize): void { + let pagesBefore = memory.size(); + let maxOffset = ((pagesBefore << 16) + AL_MASK) & ~AL_MASK; + if (newOffset > maxOffset) { + let pagesNeeded = (((newOffset - maxOffset + 0xffff) & ~0xffff) >>> 16); + let pagesWanted = max(pagesBefore, pagesNeeded); + if (memory.grow(pagesWanted) < 0) { + if (memory.grow(pagesNeeded) < 0) unreachable(); + } + } + offset = newOffset; +} + +// @ts-ignore: decorator +@inline function computeSize(size: usize): usize { + return ((size + BLOCK_OVERHEAD + AL_MASK) & ~AL_MASK) - BLOCK_OVERHEAD; +} + +// @ts-ignore: decorator +@unsafe @global +export function __alloc(size: usize): usize { + if (size > BLOCK_MAXSIZE) throw new Error(E_ALLOCATION_TOO_LARGE); + let block = changetype(offset); + let ptr = offset + BLOCK_OVERHEAD; + let payloadSize = computeSize(size); + maybeGrowMemory(ptr + payloadSize); + block.mmInfo = payloadSize; + return ptr; +} + +// @ts-ignore: decorator +@unsafe @global +export function __realloc(ptr: usize, size: usize): usize { + assert(ptr != 0 && !(ptr & AL_MASK)); + let block = changetype(ptr - BLOCK_OVERHEAD); + let actualSize = block.mmInfo; + let isLast = ptr + actualSize == offset; + let payloadSize = computeSize(size); + if (size > actualSize) { + if (isLast) { + if (size > BLOCK_MAXSIZE) throw new Error(E_ALLOCATION_TOO_LARGE); + maybeGrowMemory(ptr + payloadSize); + block.mmInfo = payloadSize; + } else { + let newPtr = __alloc(max(payloadSize, actualSize << 1)); + memory.copy(newPtr, ptr, actualSize); + block = changetype((ptr = newPtr) - BLOCK_OVERHEAD); + } + } else if (isLast) { + offset = ptr + payloadSize; + block.mmInfo = payloadSize; + } + return ptr; +} + +// @ts-ignore: decorator +@unsafe @global +export function __free(ptr: usize): void { + assert(ptr != 0 && !(ptr & AL_MASK)); + let block = changetype(ptr - BLOCK_OVERHEAD); + if (ptr + block.mmInfo == offset) { + offset = changetype(block); + } +} + +// @ts-ignore: decorator +@unsafe @global +export function __new(size: usize, id: u32): usize { + if (size > OBJECT_MAXSIZE) throw new Error(E_ALLOCATION_TOO_LARGE); + let ptr = __alloc(OBJECT_OVERHEAD + size); + let object = changetype(ptr - BLOCK_OVERHEAD); + object.gcInfo = 0; + object.gcInfo2 = 0; + object.rtId = id; + object.rtSize = size; + return ptr + OBJECT_OVERHEAD; +} + +// @ts-ignore: decorator +@unsafe @global +export function __renew(oldPtr: usize, size: usize): usize { + if (size > OBJECT_MAXSIZE) throw new Error(E_ALLOCATION_TOO_LARGE); + let newPtr = __realloc(oldPtr - OBJECT_OVERHEAD, OBJECT_OVERHEAD + size); + changetype(newPtr - BLOCK_OVERHEAD).rtSize = size; + return newPtr + OBJECT_OVERHEAD; +} diff --git a/std/assembly/set.ts b/std/assembly/set.ts index ca2d6e4eaf..cbad1ee7a9 100644 --- a/std/assembly/set.ts +++ b/std/assembly/set.ts @@ -1,6 +1,7 @@ /// import { HASH } from "./util/hash"; +import { Runtime } from "shared/runtime"; // A deterministic hash set based on CloseTable from https://github.com/jorendorff/dht @@ -113,7 +114,9 @@ export class Set { entry = changetype>(changetype(this.entries) + (this.entriesOffset++) * ENTRY_SIZE()); entry.key = key; if (isManaged()) { - __link(changetype(this), changetype(key), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(key), true); + } } ++this.entriesCount; // link with previous entry in bucket @@ -199,22 +202,24 @@ export class Set { // RT integration @unsafe private __visit(cookie: u32): void { - __visit(changetype(this.buckets), cookie); - let entries = changetype(this.entries); - if (isManaged()) { - let cur = entries; - let end = cur + this.entriesOffset * ENTRY_SIZE(); - while (cur < end) { - let entry = changetype>(cur); - if (!(entry.taggedNext & EMPTY)) { - let val = changetype(entry.key); - if (isNullable()) { - if (val) __visit(val, cookie); - } else __visit(val, cookie); + if (ASC_RUNTIME != Runtime.Memory) { + __visit(changetype(this.buckets), cookie); + let entries = changetype(this.entries); + if (isManaged()) { + let cur = entries; + let end = cur + this.entriesOffset * ENTRY_SIZE(); + while (cur < end) { + let entry = changetype>(cur); + if (!(entry.taggedNext & EMPTY)) { + let val = changetype(entry.key); + if (isNullable()) { + if (val) __visit(val, cookie); + } else __visit(val, cookie); + } + cur += ENTRY_SIZE(); } - cur += ENTRY_SIZE(); } + __visit(entries, cookie); } - __visit(entries, cookie); } } diff --git a/std/assembly/shared/runtime.ts b/std/assembly/shared/runtime.ts index 4092e20961..edd3c9388d 100644 --- a/std/assembly/shared/runtime.ts +++ b/std/assembly/shared/runtime.ts @@ -8,4 +8,6 @@ export enum Runtime { Minimal = 1, /** incremental GC. */ Incremental = 2, + /** Bare minimum allocator, no GC. */ + Memory = 3, } diff --git a/std/assembly/staticarray.ts b/std/assembly/staticarray.ts index 89cad68afc..82d8d66112 100644 --- a/std/assembly/staticarray.ts +++ b/std/assembly/staticarray.ts @@ -29,7 +29,9 @@ export class StaticArray { let off = i << alignof(); let ref = load(sourcePtr + off); store(changetype(out) + off, ref); - __link(changetype(out), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), ref, true); + } } } else { memory.copy(changetype(out), source.dataStart, outSize); @@ -97,14 +99,18 @@ export class StaticArray { @unsafe @operator("{}=") private __uset(index: i32, value: T): void { store(changetype(this) + (index << alignof()), value); if (isManaged()) { - __link(changetype(this), changetype(value), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } } } fill(value: T, start: i32 = 0, end: i32 = i32.MAX_VALUE): StaticArray { if (isManaged()) { FILL(changetype(this), this.length, changetype(value), start, end); - __link(changetype(this), changetype(value), false); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), false); + } } else { FILL(changetype(this), this.length, value, start, end); } @@ -191,14 +197,18 @@ export class StaticArray { for (let offset: usize = 0; offset < sourceSize; offset += sizeof()) { let ref = load(thisStart + offset); store(outStart + offset, ref); - __link(changetype(out), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), ref, true); + } } outStart += sourceSize; let otherSize = otherLen << alignof(); for (let offset: usize = 0; offset < otherSize; offset += sizeof()) { let ref = load(otherStart + offset); store(outStart + offset, ref); - __link(changetype(out), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), ref, true); + } } } else { memory.copy(outStart, thisStart, sourceSize); @@ -214,14 +224,18 @@ export class StaticArray { for (let offset: usize = 0; offset < sourceSize; offset += sizeof()) { let ref = load(thisStart + offset); store(outStart + offset, ref); - __link(changetype(out), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), ref, true); + } } outStart += sourceSize; let otherSize = otherLen << alignof(); for (let offset: usize = 0; offset < otherSize; offset += sizeof()) { let ref = load(otherStart + offset); store(outStart + offset, ref); - __link(changetype(out), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), ref, true); + } } } else { memory.copy(outStart, thisStart, sourceSize); @@ -253,7 +267,9 @@ export class StaticArray { while (off < size) { let ref = load(sourceStart + off); store(outStart + off, ref); - __link(changetype(out), ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), ref, true); + } off += sizeof(); } } else { @@ -268,7 +284,9 @@ export class StaticArray { while (off < size) { let ref = load(sourceStart + off); store(outStart + off, ref); - __link(outStart, ref, true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(outStart, ref, true); + } off += sizeof(); } } else { @@ -308,7 +326,9 @@ export class StaticArray { let result = fn(load(changetype(this) + (i << alignof())), i, this); store(outStart + (i << alignof()), result); if (isManaged()) { - __link(changetype(out), changetype(result), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), changetype(result), true); + } } } return out; @@ -388,13 +408,15 @@ export class StaticArray { // RT integration @unsafe private __visit(cookie: u32): void { - if (isManaged()) { - let cur = changetype(this); - let end = cur + changetype(changetype(this) - TOTAL_OVERHEAD).rtSize; - while (cur < end) { - let val = load(cur); - if (val) __visit(val, cookie); - cur += sizeof(); + if (ASC_RUNTIME != Runtime.Memory) { + if (isManaged()) { + let cur = changetype(this); + let end = cur + changetype(changetype(this) - TOTAL_OVERHEAD).rtSize; + while (cur < end) { + let val = load(cur); + if (val) __visit(val, cookie); + cur += sizeof(); + } } } } diff --git a/std/assembly/string.ts b/std/assembly/string.ts index 7675318003..0e0390cf7a 100644 --- a/std/assembly/string.ts +++ b/std/assembly/string.ts @@ -1,6 +1,7 @@ /// import { OBJECT, BLOCK_MAXSIZE, TOTAL_OVERHEAD } from "./rt/common"; +import { Runtime } from "shared/runtime"; import { compareImpl, strtol, strtod, isSpace, isAscii, isFinalSigma, toLower8, toUpper8 } from "./util/string"; import { SPECIALS_UPPER, casemap, bsearch } from "./util/casemap"; import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_UNPAIRED_SURROGATE } from "./util/error"; @@ -484,7 +485,9 @@ import { Array } from "./array"; let charStr = changetype(__new(2, idof())); store(changetype(charStr), load(changetype(this) + (i << 1))); store(resultStart + (i << alignof()), changetype(charStr)); // result[i] = charStr - __link(changetype(result), changetype(charStr), true); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(result), changetype(charStr), true); + } } return result; } else if (!length) { diff --git a/std/assembly/typedarray.ts b/std/assembly/typedarray.ts index 3eb3945568..e23f6e448c 100644 --- a/std/assembly/typedarray.ts +++ b/std/assembly/typedarray.ts @@ -1,6 +1,7 @@ import { COMPARATOR, SORT } from "./util/sort"; import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_NOTIMPLEMENTED } from "./util/error"; import { joinIntegerArray, joinFloatArray } from "./util/string"; +import { Runtime } from "shared/runtime"; import { REVERSE, FILL } from "./util/bytes"; import { idof } from "./builtins"; import { ArrayBufferView } from "./arraybuffer"; @@ -1603,7 +1604,9 @@ function SUBARRAY( let out = changetype(__new(offsetof(), idof())); let buf = changetype(array.buffer); store(changetype(out), buf, offsetof("buffer")); - __link(changetype(out), buf, false); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), buf, false); + } store(changetype(out), array.dataStart + (begin << alignof()), offsetof("dataStart")); store(changetype(out), (end - begin) << alignof(), offsetof("byteLength")); return out; @@ -1681,7 +1684,9 @@ function MAP( ); } store(changetype(out), changetype(buf), offsetof("buffer")); - __link(changetype(out), changetype(buf), false); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), changetype(buf), false); + } store(changetype(out), changetype(buf), offsetof("dataStart")); store(changetype(out), byteLength, offsetof("byteLength")); return out; @@ -1711,7 +1716,9 @@ function FILTER( let byteLength = j << alignof(); let data = __renew(changetype(buf), byteLength); store(changetype(out), data, offsetof("buffer")); - __link(changetype(out), data, false); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), data, false); + } store(changetype(out), byteLength, offsetof("byteLength")); store(changetype(out), data, offsetof("dataStart")); return out; @@ -1876,7 +1883,9 @@ function WRAP( } let out = changetype(__new(offsetof(), idof())); store(changetype(out), changetype(buffer), offsetof("buffer")); - __link(changetype(out), changetype(buffer), false); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(out), changetype(buffer), false); + } store(changetype(out), byteLength, offsetof("byteLength")); store(changetype(out), changetype(buffer) + byteOffset, offsetof("dataStart")); return out; diff --git a/tests/compiler/NonNullable.debug.wat b/tests/compiler/NonNullable.debug.wat index 3ae726a864..27e7992ac2 100644 --- a/tests/compiler/NonNullable.debug.wat +++ b/tests/compiler/NonNullable.debug.wat @@ -1759,14 +1759,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/NonNullable.release.wat b/tests/compiler/NonNullable.release.wat index 46e7550416..ba763be2c4 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -1275,12 +1275,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/abi.debug.wat b/tests/compiler/abi.debug.wat index 6f45a1592f..582fe19ee8 100644 --- a/tests/compiler/abi.debug.wat +++ b/tests/compiler/abi.debug.wat @@ -1657,14 +1657,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/assert-nonnull.debug.wat b/tests/compiler/assert-nonnull.debug.wat index 013383ff06..e1bbc07f12 100644 --- a/tests/compiler/assert-nonnull.debug.wat +++ b/tests/compiler/assert-nonnull.debug.wat @@ -1664,14 +1664,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index c048fb4069..990edadee0 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -1285,12 +1285,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/bigint-integration.debug.wat b/tests/compiler/bigint-integration.debug.wat index e9991cd04c..4765977970 100644 --- a/tests/compiler/bigint-integration.debug.wat +++ b/tests/compiler/bigint-integration.debug.wat @@ -1655,14 +1655,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/bigint-integration.release.wat b/tests/compiler/bigint-integration.release.wat index 5b543fdbd5..a5dde38c1b 100644 --- a/tests/compiler/bigint-integration.release.wat +++ b/tests/compiler/bigint-integration.release.wat @@ -1270,12 +1270,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/bool.debug.wat b/tests/compiler/bool.debug.wat index 38d655b62c..ccc5dfb20d 100644 --- a/tests/compiler/bool.debug.wat +++ b/tests/compiler/bool.debug.wat @@ -1687,14 +1687,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/builtins.debug.wat b/tests/compiler/builtins.debug.wat index b190f262d5..b2ab2de23f 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -1723,14 +1723,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index 6fc565fa4d..aec5554994 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -1322,12 +1322,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/call-optional.debug.wat b/tests/compiler/call-optional.debug.wat index 15506e631d..ac6415253a 100644 --- a/tests/compiler/call-optional.debug.wat +++ b/tests/compiler/call-optional.debug.wat @@ -1683,14 +1683,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/call-optional.release.wat b/tests/compiler/call-optional.release.wat index d93275d5ef..709188f727 100644 --- a/tests/compiler/call-optional.release.wat +++ b/tests/compiler/call-optional.release.wat @@ -1293,12 +1293,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-extends.debug.wat b/tests/compiler/class-extends.debug.wat index edb671c7d8..a4fc77a3d1 100644 --- a/tests/compiler/class-extends.debug.wat +++ b/tests/compiler/class-extends.debug.wat @@ -1645,14 +1645,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-extends.release.wat b/tests/compiler/class-extends.release.wat index 6844ba942d..c320ea44e9 100644 --- a/tests/compiler/class-extends.release.wat +++ b/tests/compiler/class-extends.release.wat @@ -1202,12 +1202,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-static-function.debug.wat b/tests/compiler/class-static-function.debug.wat index c943539770..eca463769f 100644 --- a/tests/compiler/class-static-function.debug.wat +++ b/tests/compiler/class-static-function.debug.wat @@ -1662,14 +1662,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-static-function.release.wat b/tests/compiler/class-static-function.release.wat index 4bfdbc78c7..5a35ede189 100644 --- a/tests/compiler/class-static-function.release.wat +++ b/tests/compiler/class-static-function.release.wat @@ -1270,12 +1270,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/closure-class.debug.wat b/tests/compiler/closure-class.debug.wat index 1de522c1dc..9f512233a2 100644 --- a/tests/compiler/closure-class.debug.wat +++ b/tests/compiler/closure-class.debug.wat @@ -2135,14 +2135,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/closure-class.release.wat b/tests/compiler/closure-class.release.wat index 948c2ce29f..2c5ca6e2b1 100644 --- a/tests/compiler/closure-class.release.wat +++ b/tests/compiler/closure-class.release.wat @@ -1814,12 +1814,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/closure-complex.debug.wat b/tests/compiler/closure-complex.debug.wat index 43d15cacb8..f6db036cfe 100644 --- a/tests/compiler/closure-complex.debug.wat +++ b/tests/compiler/closure-complex.debug.wat @@ -2093,14 +2093,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/closure-complex.release.wat b/tests/compiler/closure-complex.release.wat index de6ba188b1..99e9cd68ad 100644 --- a/tests/compiler/closure-complex.release.wat +++ b/tests/compiler/closure-complex.release.wat @@ -1724,12 +1724,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/closure-stress.debug.wat b/tests/compiler/closure-stress.debug.wat index 21e392bdae..9df373f8de 100644 --- a/tests/compiler/closure-stress.debug.wat +++ b/tests/compiler/closure-stress.debug.wat @@ -2182,14 +2182,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/closure-stress.release.wat b/tests/compiler/closure-stress.release.wat index 48c116fafd..e36e6864e4 100644 --- a/tests/compiler/closure-stress.release.wat +++ b/tests/compiler/closure-stress.release.wat @@ -1873,12 +1873,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/closure.debug.wat b/tests/compiler/closure.debug.wat index ffe32e942d..e201982f91 100644 --- a/tests/compiler/closure.debug.wat +++ b/tests/compiler/closure.debug.wat @@ -2113,14 +2113,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/closure.release.wat b/tests/compiler/closure.release.wat index d41d0330ac..a8703f445f 100644 --- a/tests/compiler/closure.release.wat +++ b/tests/compiler/closure.release.wat @@ -1751,12 +1751,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/comma.debug.wat b/tests/compiler/comma.debug.wat index 5add668f02..de63df4d04 100644 --- a/tests/compiler/comma.debug.wat +++ b/tests/compiler/comma.debug.wat @@ -1650,14 +1650,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/comma.release.wat b/tests/compiler/comma.release.wat index 148154864c..d1b14d9a7a 100644 --- a/tests/compiler/comma.release.wat +++ b/tests/compiler/comma.release.wat @@ -1265,12 +1265,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/declare.debug.wat b/tests/compiler/declare.debug.wat index 7353427c1f..f3dd8a76c8 100644 --- a/tests/compiler/declare.debug.wat +++ b/tests/compiler/declare.debug.wat @@ -1652,14 +1652,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/declare.release.wat b/tests/compiler/declare.release.wat index 1b74d7f2a2..ee3122e123 100644 --- a/tests/compiler/declare.release.wat +++ b/tests/compiler/declare.release.wat @@ -1267,12 +1267,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/enum-to-string.debug.wat b/tests/compiler/enum-to-string.debug.wat index 549e2217ea..a2b3c5839f 100644 --- a/tests/compiler/enum-to-string.debug.wat +++ b/tests/compiler/enum-to-string.debug.wat @@ -1793,14 +1793,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/enum-to-string.release.wat b/tests/compiler/enum-to-string.release.wat index ad96a42c70..0c79b61904 100644 --- a/tests/compiler/enum-to-string.release.wat +++ b/tests/compiler/enum-to-string.release.wat @@ -1275,12 +1275,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/exceptions.debug.wat b/tests/compiler/exceptions.debug.wat index f803e4e78d..36a9849982 100644 --- a/tests/compiler/exceptions.debug.wat +++ b/tests/compiler/exceptions.debug.wat @@ -2196,14 +2196,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/exceptions.release.wat b/tests/compiler/exceptions.release.wat index 943ec1f32c..c6845fe678 100644 --- a/tests/compiler/exceptions.release.wat +++ b/tests/compiler/exceptions.release.wat @@ -1636,12 +1636,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/features/gc.debug.wat b/tests/compiler/features/gc.debug.wat index e7e134f808..0c036d1ff6 100644 --- a/tests/compiler/features/gc.debug.wat +++ b/tests/compiler/features/gc.debug.wat @@ -1663,14 +1663,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/features/reference-types.debug.wat b/tests/compiler/features/reference-types.debug.wat index be7d7312e8..43edb675f1 100644 --- a/tests/compiler/features/reference-types.debug.wat +++ b/tests/compiler/features/reference-types.debug.wat @@ -1672,14 +1672,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/features/reference-types.release.wat b/tests/compiler/features/reference-types.release.wat index 6b3fc4d0c8..7d09db1aa4 100644 --- a/tests/compiler/features/reference-types.release.wat +++ b/tests/compiler/features/reference-types.release.wat @@ -1284,12 +1284,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/function-types.debug.wat b/tests/compiler/function-types.debug.wat index acee9df05d..4a59abf8cd 100644 --- a/tests/compiler/function-types.debug.wat +++ b/tests/compiler/function-types.debug.wat @@ -1668,14 +1668,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/function-types.release.wat b/tests/compiler/function-types.release.wat index 1643c171e5..71c4f32210 100644 --- a/tests/compiler/function-types.release.wat +++ b/tests/compiler/function-types.release.wat @@ -1281,12 +1281,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/getter-setter.debug.wat b/tests/compiler/getter-setter.debug.wat index 90e3a5c15c..cf6f09728e 100644 --- a/tests/compiler/getter-setter.debug.wat +++ b/tests/compiler/getter-setter.debug.wat @@ -1653,14 +1653,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/getter-setter.release.wat b/tests/compiler/getter-setter.release.wat index 51ac5c1cd2..4b1c7a0c01 100644 --- a/tests/compiler/getter-setter.release.wat +++ b/tests/compiler/getter-setter.release.wat @@ -1264,12 +1264,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/heap.debug.wat b/tests/compiler/heap.debug.wat index 719117b233..b92c169edf 100644 --- a/tests/compiler/heap.debug.wat +++ b/tests/compiler/heap.debug.wat @@ -1334,14 +1334,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/heap.release.wat b/tests/compiler/heap.release.wat index bad354e773..1814c8835f 100644 --- a/tests/compiler/heap.release.wat +++ b/tests/compiler/heap.release.wat @@ -950,12 +950,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/if.debug.wat b/tests/compiler/if.debug.wat index 45faab4c85..048702bdff 100644 --- a/tests/compiler/if.debug.wat +++ b/tests/compiler/if.debug.wat @@ -1664,14 +1664,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/if.release.wat b/tests/compiler/if.release.wat index a248d8b426..371409a43f 100644 --- a/tests/compiler/if.release.wat +++ b/tests/compiler/if.release.wat @@ -1274,12 +1274,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/import-memory.debug.wat b/tests/compiler/import-memory.debug.wat index ffa195d035..b579be55ae 100644 --- a/tests/compiler/import-memory.debug.wat +++ b/tests/compiler/import-memory.debug.wat @@ -1648,14 +1648,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/import-memory.release.wat b/tests/compiler/import-memory.release.wat index d3ee8dd98e..d06dd44ec8 100644 --- a/tests/compiler/import-memory.release.wat +++ b/tests/compiler/import-memory.release.wat @@ -1250,12 +1250,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/incremental-gc/call-indirect.debug.wat b/tests/compiler/incremental-gc/call-indirect.debug.wat index b0d818797a..e2b5900822 100644 --- a/tests/compiler/incremental-gc/call-indirect.debug.wat +++ b/tests/compiler/incremental-gc/call-indirect.debug.wat @@ -134,14 +134,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/inlining-blocklocals.debug.wat b/tests/compiler/inlining-blocklocals.debug.wat index 89beb8a268..d52e582da8 100644 --- a/tests/compiler/inlining-blocklocals.debug.wat +++ b/tests/compiler/inlining-blocklocals.debug.wat @@ -1652,14 +1652,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/inlining-blocklocals.release.wat b/tests/compiler/inlining-blocklocals.release.wat index 9e2826e6ea..b466425f0b 100644 --- a/tests/compiler/inlining-blocklocals.release.wat +++ b/tests/compiler/inlining-blocklocals.release.wat @@ -1266,12 +1266,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index c0473e10aa..40d2785c21 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -1662,14 +1662,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/1714.release.wat b/tests/compiler/issues/1714.release.wat index e52fcae034..136356749b 100644 --- a/tests/compiler/issues/1714.release.wat +++ b/tests/compiler/issues/1714.release.wat @@ -1265,12 +1265,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2825.debug.wat b/tests/compiler/issues/2825.debug.wat index 2a75e3f73f..7b839f092a 100644 --- a/tests/compiler/issues/2825.debug.wat +++ b/tests/compiler/issues/2825.debug.wat @@ -1649,14 +1649,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2825.release.wat b/tests/compiler/issues/2825.release.wat index 629aff33e3..58f5450b2a 100644 --- a/tests/compiler/issues/2825.release.wat +++ b/tests/compiler/issues/2825.release.wat @@ -1264,12 +1264,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/loop-flow.debug.wat b/tests/compiler/loop-flow.debug.wat index d5e440ca06..987c21fa26 100644 --- a/tests/compiler/loop-flow.debug.wat +++ b/tests/compiler/loop-flow.debug.wat @@ -1670,14 +1670,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/loop-flow.release.wat b/tests/compiler/loop-flow.release.wat index 5150e47264..0b37abca46 100644 --- a/tests/compiler/loop-flow.release.wat +++ b/tests/compiler/loop-flow.release.wat @@ -1279,12 +1279,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/many-locals.debug.wat b/tests/compiler/many-locals.debug.wat index c332e54c23..8defc65024 100644 --- a/tests/compiler/many-locals.debug.wat +++ b/tests/compiler/many-locals.debug.wat @@ -2038,14 +2038,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/memcpy.debug.wat b/tests/compiler/memcpy.debug.wat index b951544b71..e34cae5f90 100644 --- a/tests/compiler/memcpy.debug.wat +++ b/tests/compiler/memcpy.debug.wat @@ -2749,14 +2749,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/memcpy.release.wat b/tests/compiler/memcpy.release.wat index f648c36884..daee3f91e8 100644 --- a/tests/compiler/memcpy.release.wat +++ b/tests/compiler/memcpy.release.wat @@ -1953,12 +1953,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/memmove.debug.wat b/tests/compiler/memmove.debug.wat index 7174865abe..290b4152b4 100644 --- a/tests/compiler/memmove.debug.wat +++ b/tests/compiler/memmove.debug.wat @@ -1837,14 +1837,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/memmove.release.wat b/tests/compiler/memmove.release.wat index a2e54989f7..656e072dac 100644 --- a/tests/compiler/memmove.release.wat +++ b/tests/compiler/memmove.release.wat @@ -1447,12 +1447,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/memory.debug.wat b/tests/compiler/memory.debug.wat index 8dadcb0408..72568074f4 100644 --- a/tests/compiler/memory.debug.wat +++ b/tests/compiler/memory.debug.wat @@ -1686,14 +1686,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/memory.release.wat b/tests/compiler/memory.release.wat index 81c0ba4f4e..3f5376a349 100644 --- a/tests/compiler/memory.release.wat +++ b/tests/compiler/memory.release.wat @@ -1272,12 +1272,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/memset.debug.wat b/tests/compiler/memset.debug.wat index b6d7c13aeb..03f3684465 100644 --- a/tests/compiler/memset.debug.wat +++ b/tests/compiler/memset.debug.wat @@ -1911,14 +1911,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/memset.release.wat b/tests/compiler/memset.release.wat index 9c6835ca9a..2683ac68fe 100644 --- a/tests/compiler/memset.release.wat +++ b/tests/compiler/memset.release.wat @@ -1455,12 +1455,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/mutable-globals.debug.wat b/tests/compiler/mutable-globals.debug.wat index 393d6538a6..3b2b9157b2 100644 --- a/tests/compiler/mutable-globals.debug.wat +++ b/tests/compiler/mutable-globals.debug.wat @@ -1653,14 +1653,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/mutable-globals.release.wat b/tests/compiler/mutable-globals.release.wat index b39f1074d1..d4a1927894 100644 --- a/tests/compiler/mutable-globals.release.wat +++ b/tests/compiler/mutable-globals.release.wat @@ -1268,12 +1268,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/overflow.debug.wat b/tests/compiler/overflow.debug.wat index 68dd24728c..22b5f1d701 100644 --- a/tests/compiler/overflow.debug.wat +++ b/tests/compiler/overflow.debug.wat @@ -1648,14 +1648,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/polyfills.debug.wat b/tests/compiler/polyfills.debug.wat index 82af80875f..cf86eb1cbf 100644 --- a/tests/compiler/polyfills.debug.wat +++ b/tests/compiler/polyfills.debug.wat @@ -1659,14 +1659,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/portable-conversions.debug.wat b/tests/compiler/portable-conversions.debug.wat index e6bd515140..c8a881cb3a 100644 --- a/tests/compiler/portable-conversions.debug.wat +++ b/tests/compiler/portable-conversions.debug.wat @@ -1652,14 +1652,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/possibly-null.debug.wat b/tests/compiler/possibly-null.debug.wat index 2efb25389e..5a41e0d7ab 100644 --- a/tests/compiler/possibly-null.debug.wat +++ b/tests/compiler/possibly-null.debug.wat @@ -1883,14 +1883,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/possibly-null.release.wat b/tests/compiler/possibly-null.release.wat index fb6b9669b5..f4b64888df 100644 --- a/tests/compiler/possibly-null.release.wat +++ b/tests/compiler/possibly-null.release.wat @@ -1219,12 +1219,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index 2cd0259637..a989a5a350 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -1279,12 +1279,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-localortype.debug.wat b/tests/compiler/resolve-localortype.debug.wat index ba371961e4..c10beec043 100644 --- a/tests/compiler/resolve-localortype.debug.wat +++ b/tests/compiler/resolve-localortype.debug.wat @@ -1631,14 +1631,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-localortype.release.wat b/tests/compiler/resolve-localortype.release.wat index 4e2e6c91aa..bb13746ede 100644 --- a/tests/compiler/resolve-localortype.release.wat +++ b/tests/compiler/resolve-localortype.release.wat @@ -1202,12 +1202,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-nested.debug.wat b/tests/compiler/resolve-nested.debug.wat index 126d7fc89b..0f5a593f40 100644 --- a/tests/compiler/resolve-nested.debug.wat +++ b/tests/compiler/resolve-nested.debug.wat @@ -1643,14 +1643,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-nested.release.wat b/tests/compiler/resolve-nested.release.wat index 01ba8db1bb..b7ecf12bc0 100644 --- a/tests/compiler/resolve-nested.release.wat +++ b/tests/compiler/resolve-nested.release.wat @@ -1203,12 +1203,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/retain-i32.debug.wat b/tests/compiler/retain-i32.debug.wat index 7e1bd69e15..69d5020383 100644 --- a/tests/compiler/retain-i32.debug.wat +++ b/tests/compiler/retain-i32.debug.wat @@ -1660,14 +1660,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/return.debug.wat b/tests/compiler/return.debug.wat index af8e3ff051..3ede726c9a 100644 --- a/tests/compiler/return.debug.wat +++ b/tests/compiler/return.debug.wat @@ -1665,14 +1665,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/return.release.wat b/tests/compiler/return.release.wat index 6360db8643..9b3de97380 100644 --- a/tests/compiler/return.release.wat +++ b/tests/compiler/return.release.wat @@ -1242,12 +1242,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/alloc-large-memory.debug.wat b/tests/compiler/rt/alloc-large-memory.debug.wat index ea81a0fa5d..468dd26981 100644 --- a/tests/compiler/rt/alloc-large-memory.debug.wat +++ b/tests/compiler/rt/alloc-large-memory.debug.wat @@ -1332,14 +1332,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/alloc-large-memory.release.wat b/tests/compiler/rt/alloc-large-memory.release.wat index a08e3c7485..8f6f96f7fc 100644 --- a/tests/compiler/rt/alloc-large-memory.release.wat +++ b/tests/compiler/rt/alloc-large-memory.release.wat @@ -937,12 +937,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/flags.debug.wat b/tests/compiler/rt/flags.debug.wat index 1769df0b93..996570d0f3 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -1620,14 +1620,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/flags.release.wat b/tests/compiler/rt/flags.release.wat index 1d5352b8d5..a066a4205e 100644 --- a/tests/compiler/rt/flags.release.wat +++ b/tests/compiler/rt/flags.release.wat @@ -1247,12 +1247,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/static-this.debug.wat b/tests/compiler/static-this.debug.wat index da5088be2f..1b7c811126 100644 --- a/tests/compiler/static-this.debug.wat +++ b/tests/compiler/static-this.debug.wat @@ -1653,14 +1653,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/array-access.debug.wat b/tests/compiler/std/array-access.debug.wat index fc797d8a93..27b1c002b2 100644 --- a/tests/compiler/std/array-access.debug.wat +++ b/tests/compiler/std/array-access.debug.wat @@ -1662,14 +1662,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/array-access.release.wat b/tests/compiler/std/array-access.release.wat index 6f18b32459..8a7e0cf83f 100644 --- a/tests/compiler/std/array-access.release.wat +++ b/tests/compiler/std/array-access.release.wat @@ -1274,12 +1274,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/console.debug.wat b/tests/compiler/std/console.debug.wat index 69be587513..7983b6f417 100644 --- a/tests/compiler/std/console.debug.wat +++ b/tests/compiler/std/console.debug.wat @@ -1693,14 +1693,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/console.release.wat b/tests/compiler/std/console.release.wat index 8ae6a0e7ad..9af2b1126d 100644 --- a/tests/compiler/std/console.release.wat +++ b/tests/compiler/std/console.release.wat @@ -1360,12 +1360,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/hash.debug.wat b/tests/compiler/std/hash.debug.wat index 08ba932158..486f960e45 100644 --- a/tests/compiler/std/hash.debug.wat +++ b/tests/compiler/std/hash.debug.wat @@ -1895,14 +1895,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/hash.release.wat b/tests/compiler/std/hash.release.wat index 4b91d0cee3..89198cb130 100644 --- a/tests/compiler/std/hash.release.wat +++ b/tests/compiler/std/hash.release.wat @@ -1246,12 +1246,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/math.debug.wat b/tests/compiler/std/math.debug.wat index 0bbe0d798a..654ceaf7bb 100644 --- a/tests/compiler/std/math.debug.wat +++ b/tests/compiler/std/math.debug.wat @@ -2006,14 +2006,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat index 4d0067cb9f..7539b2afde 100644 --- a/tests/compiler/std/math.release.wat +++ b/tests/compiler/std/math.release.wat @@ -1644,12 +1644,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/mod.debug.wat b/tests/compiler/std/mod.debug.wat index 35c1d789e8..2ac0b53383 100644 --- a/tests/compiler/std/mod.debug.wat +++ b/tests/compiler/std/mod.debug.wat @@ -1958,14 +1958,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/mod.release.wat b/tests/compiler/std/mod.release.wat index 565e8c1322..bafc68e19b 100644 --- a/tests/compiler/std/mod.release.wat +++ b/tests/compiler/std/mod.release.wat @@ -1534,12 +1534,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/pointer.debug.wat b/tests/compiler/std/pointer.debug.wat index 7731d8d711..7c0aadb84c 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -1654,14 +1654,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/pointer.release.wat b/tests/compiler/std/pointer.release.wat index 4def5e41c3..8e3c5d4382 100644 --- a/tests/compiler/std/pointer.release.wat +++ b/tests/compiler/std/pointer.release.wat @@ -1268,12 +1268,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index c8ea2819e3..8dfe6fc24a 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -1301,12 +1301,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/string-nonnull.debug.wat b/tests/compiler/std/string-nonnull.debug.wat index 53dd1f41bf..6a07a9aa8d 100644 --- a/tests/compiler/std/string-nonnull.debug.wat +++ b/tests/compiler/std/string-nonnull.debug.wat @@ -1736,14 +1736,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/string-nonnull.release.wat b/tests/compiler/std/string-nonnull.release.wat index 68ebb2f950..75fd9f17ce 100644 --- a/tests/compiler/std/string-nonnull.release.wat +++ b/tests/compiler/std/string-nonnull.release.wat @@ -1325,12 +1325,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/tablebase.debug.wat b/tests/compiler/tablebase.debug.wat index fabd8f0666..2316bec7ed 100644 --- a/tests/compiler/tablebase.debug.wat +++ b/tests/compiler/tablebase.debug.wat @@ -1658,14 +1658,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/tablebase.release.wat b/tests/compiler/tablebase.release.wat index 547fbdd3aa..19adb7684d 100644 --- a/tests/compiler/tablebase.release.wat +++ b/tests/compiler/tablebase.release.wat @@ -1265,12 +1265,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/ternary.debug.wat b/tests/compiler/ternary.debug.wat index e5129c7973..129c2f8b9e 100644 --- a/tests/compiler/ternary.debug.wat +++ b/tests/compiler/ternary.debug.wat @@ -1728,14 +1728,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/ternary.release.wat b/tests/compiler/ternary.release.wat index 6ae4a3ab37..e573684a96 100644 --- a/tests/compiler/ternary.release.wat +++ b/tests/compiler/ternary.release.wat @@ -1241,12 +1241,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index 3535d5ee1c..8512250615 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -1657,14 +1657,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index 51f638b987..d3c23f6a36 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -1280,12 +1280,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/typealias.debug.wat b/tests/compiler/typealias.debug.wat index 2bb4822096..78c6912f83 100644 --- a/tests/compiler/typealias.debug.wat +++ b/tests/compiler/typealias.debug.wat @@ -1758,14 +1758,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/typealias.release.wat b/tests/compiler/typealias.release.wat index 94ff027fe1..399b6298de 100644 --- a/tests/compiler/typealias.release.wat +++ b/tests/compiler/typealias.release.wat @@ -1273,12 +1273,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold From 6dd4e704abec7bf1b45db86b357a7797b1a73c75 Mon Sep 17 00:00:00 2001 From: BlobMaster41 <96896824+BlobMaster41@users.noreply.github.com> Date: Sun, 8 Mar 2026 05:52:18 -0400 Subject: [PATCH 2/6] updated --- src/passes/shadowstack.ts | 52 +- std/assembly/fixedarray.ts | 173 + std/assembly/fixedmap.ts | 326 + std/assembly/fixedset.ts | 275 + std/assembly/index.d.ts | 39 + std/assembly/rt.ts | 2 +- std/assembly/util/error.ts | 4 + tests/compiler/NonNullable.debug.wat | 3233 +----- tests/compiler/NonNullable.release.wat | 2148 +--- tests/compiler/abi.debug.wat | 3130 +----- tests/compiler/abi.release.wat | 74 +- tests/compiler/assert-nonnull.debug.wat | 4135 +------- tests/compiler/assert-nonnull.release.wat | 2315 +--- tests/compiler/assignment-chain.debug.wat | 935 +- tests/compiler/assignment-chain.release.wat | 621 +- tests/compiler/bigint-integration.debug.wat | 3119 +----- tests/compiler/bigint-integration.release.wat | 2007 +--- tests/compiler/bindings/esm.debug.js | 11 + tests/compiler/bindings/esm.debug.wat | 3768 +++---- tests/compiler/bindings/esm.release.js | 11 + tests/compiler/bindings/esm.release.wat | 3776 +++---- .../bindings/noExportRuntime.debug.js | 17 +- .../bindings/noExportRuntime.debug.wat | 988 +- .../bindings/noExportRuntime.release.js | 17 +- .../bindings/noExportRuntime.release.wat | 657 +- tests/compiler/bindings/raw.debug.js | 11 + tests/compiler/bindings/raw.debug.wat | 3764 +++---- tests/compiler/bindings/raw.release.js | 11 + tests/compiler/bindings/raw.release.wat | 3776 +++---- tests/compiler/bool-Oz.debug.wat | 68 +- tests/compiler/bool-Oz.release.wat | 68 +- tests/compiler/bool.debug.wat | 3183 +----- tests/compiler/bool.release.wat | 76 +- tests/compiler/builtins.debug.wat | 3766 +------ tests/compiler/builtins.release.wat | 2341 +--- tests/compiler/call-inferred.debug.wat | 1019 +- tests/compiler/call-inferred.release.wat | 601 +- tests/compiler/call-optional.debug.wat | 3179 +----- tests/compiler/call-optional.release.wat | 2049 +--- tests/compiler/call-rest.debug.wat | 1069 +- tests/compiler/call-rest.release.wat | 859 +- tests/compiler/call-super.debug.wat | 949 +- tests/compiler/call-super.release.wat | 657 +- tests/compiler/class-extends.debug.wat | 3103 +----- tests/compiler/class-extends.release.wat | 1981 +--- tests/compiler/class-implements.debug.wat | 987 +- tests/compiler/class-implements.release.wat | 751 +- .../compiler/class-overloading-cast.debug.wat | 987 +- .../class-overloading-cast.release.wat | 975 +- tests/compiler/class-overloading.debug.wat | 1088 +- tests/compiler/class-overloading.release.wat | 1307 +-- tests/compiler/class-override.debug.wat | 923 +- tests/compiler/class-override.release.wat | 1172 +- .../compiler/class-static-function.debug.wat | 3161 +----- .../class-static-function.release.wat | 2037 +--- tests/compiler/class.debug.wat | 985 +- tests/compiler/class.release.wat | 655 +- tests/compiler/closure-class.debug.wat | 1535 +-- tests/compiler/closure-class.release.wat | 1624 ++- tests/compiler/closure-complex.debug.wat | 1077 +- tests/compiler/closure-complex.release.wat | 931 +- tests/compiler/closure-stress.debug.wat | 1569 +-- tests/compiler/closure-stress.release.wat | 1618 ++- tests/compiler/closure.debug.wat | 1131 +- tests/compiler/closure.release.wat | 891 +- tests/compiler/comma.debug.wat | 3131 +----- tests/compiler/comma.release.wat | 2014 +--- tests/compiler/constructor.debug.wat | 945 +- tests/compiler/constructor.release.wat | 645 +- tests/compiler/declare.debug.wat | 3117 +----- tests/compiler/declare.release.wat | 2003 +--- tests/compiler/do.debug.wat | 5353 ++++------ tests/compiler/do.release.wat | 959 +- tests/compiler/duplicate-fields.debug.wat | 921 +- tests/compiler/duplicate-fields.release.wat | 612 +- tests/compiler/empty-exportruntime.debug.wat | 935 +- .../compiler/empty-exportruntime.release.wat | 601 +- tests/compiler/empty-new.debug.wat | 921 +- tests/compiler/empty-new.release.wat | 844 +- tests/compiler/enum-to-string.debug.wat | 3143 +----- tests/compiler/enum-to-string.release.wat | 2085 +--- tests/compiler/exceptions.debug.wat | 15 +- tests/compiler/exceptions.release.wat | 843 +- .../compiler/exportstar-rereexport.debug.wat | 975 +- .../exportstar-rereexport.release.wat | 882 +- .../compiler/extends-baseaggregate.debug.wat | 951 +- .../extends-baseaggregate.release.wat | 624 +- tests/compiler/extends-recursive.debug.wat | 923 +- tests/compiler/extends-recursive.release.wat | 590 +- tests/compiler/features/gc.debug.wat | 3123 +----- tests/compiler/features/gc.release.wat | 79 +- .../features/reference-types.debug.wat | 3161 +----- .../features/reference-types.release.wat | 2019 +--- tests/compiler/field-initialization.debug.wat | 1043 +- .../compiler/field-initialization.release.wat | 805 +- tests/compiler/field.debug.wat | 942 +- tests/compiler/field.release.wat | 610 +- tests/compiler/for.debug.wat | 5263 ++++----- tests/compiler/for.release.wat | 955 +- tests/compiler/function-call.debug.wat | 1028 +- tests/compiler/function-call.release.wat | 970 +- tests/compiler/function-expression.debug.wat | 1488 +-- .../compiler/function-expression.release.wat | 1139 +- tests/compiler/function-types.debug.wat | 3287 +----- tests/compiler/function-types.release.wat | 2083 +--- tests/compiler/getter-call.debug.wat | 932 +- tests/compiler/getter-call.release.wat | 859 +- tests/compiler/getter-setter.debug.wat | 3121 +----- tests/compiler/getter-setter.release.wat | 2002 +--- tests/compiler/heap.debug.wat | 1825 +--- tests/compiler/heap.release.wat | 1320 +-- tests/compiler/if.debug.wat | 3130 +----- tests/compiler/if.release.wat | 2002 +--- tests/compiler/import-memory.debug.wat | 3115 +----- tests/compiler/import-memory.release.wat | 1988 +--- .../incremental-gc/call-indirect.debug.wat | 4536 ++++---- .../incremental-gc/call-indirect.release.wat | 2255 ++-- tests/compiler/infer-array.debug.wat | 1133 +- tests/compiler/infer-array.release.wat | 806 +- tests/compiler/infer-generic.debug.wat | 1182 +-- tests/compiler/infer-generic.release.wat | 749 +- tests/compiler/inlining-blocklocals.debug.wat | 3121 +----- .../compiler/inlining-blocklocals.release.wat | 2001 +--- tests/compiler/inlining.debug.wat | 2374 ++--- tests/compiler/inlining.release.wat | 659 +- tests/compiler/instanceof.debug.wat | 1061 +- tests/compiler/instanceof.release.wat | 1054 +- tests/compiler/issues/1095.debug.wat | 933 +- tests/compiler/issues/1095.release.wat | 612 +- tests/compiler/issues/1225.debug.wat | 927 +- tests/compiler/issues/1225.release.wat | 873 +- tests/compiler/issues/1699.debug.wat | 891 +- tests/compiler/issues/1699.release.wat | 582 +- tests/compiler/issues/1714.debug.wat | 3138 +----- tests/compiler/issues/1714.release.wat | 2044 +--- tests/compiler/issues/2166.debug.wat | 973 +- tests/compiler/issues/2166.release.wat | 909 +- tests/compiler/issues/2322/index.debug.wat | 919 +- tests/compiler/issues/2322/index.release.wat | 590 +- tests/compiler/issues/2622.debug.wat | 921 +- tests/compiler/issues/2622.release.wat | 858 +- tests/compiler/issues/2707.debug.wat | 934 +- tests/compiler/issues/2707.release.wat | 859 +- tests/compiler/issues/2825.debug.wat | 3116 +----- tests/compiler/issues/2825.release.wat | 1999 +--- tests/compiler/issues/2873.debug.wat | 807 +- tests/compiler/issues/2873.release.wat | 647 +- tests/compiler/logical.debug.wat | 1042 +- tests/compiler/logical.release.wat | 886 +- tests/compiler/loop-flow.debug.wat | 3153 +----- tests/compiler/loop-flow.release.wat | 2023 +--- tests/compiler/managed-cast.debug.wat | 949 +- tests/compiler/managed-cast.release.wat | 922 +- tests/compiler/many-locals.debug.wat | 3118 +----- tests/compiler/many-locals.release.wat | 76 +- tests/compiler/memcpy.debug.wat | 3139 +----- tests/compiler/memcpy.release.wat | 2042 +--- tests/compiler/memmove.debug.wat | 3139 +----- tests/compiler/memmove.release.wat | 2042 +--- tests/compiler/memory.debug.wat | 3260 +----- tests/compiler/memory.release.wat | 2114 +--- tests/compiler/memset.debug.wat | 3127 +----- tests/compiler/memset.release.wat | 2022 +--- tests/compiler/mutable-globals.debug.wat | 3121 +----- tests/compiler/mutable-globals.release.wat | 2011 +--- tests/compiler/new.debug.wat | 921 +- tests/compiler/new.release.wat | 876 +- tests/compiler/number.debug.wat | 848 +- tests/compiler/number.release.wat | 692 +- tests/compiler/object-literal.debug.wat | 1340 +-- tests/compiler/object-literal.release.wat | 1107 +- .../operator-overload-non-ambiguity.debug.wat | 931 +- ...perator-overload-non-ambiguity.release.wat | 872 +- .../optional-typeparameters.debug.wat | 928 +- .../optional-typeparameters.release.wat | 870 +- tests/compiler/overflow.debug.wat | 3193 +----- tests/compiler/overflow.release.wat | 76 +- tests/compiler/polyfills.debug.wat | 3142 +----- tests/compiler/polyfills.release.wat | 76 +- tests/compiler/portable-conversions.debug.wat | 3217 +----- .../compiler/portable-conversions.release.wat | 76 +- tests/compiler/possibly-null.debug.wat | 3222 +----- tests/compiler/possibly-null.release.wat | 1964 +--- tests/compiler/reexport.debug.wat | 957 +- tests/compiler/reexport.release.wat | 865 +- tests/compiler/rereexport.debug.wat | 971 +- tests/compiler/rereexport.release.wat | 878 +- tests/compiler/resolve-access.debug.wat | 1955 ++-- tests/compiler/resolve-access.release.wat | 928 +- tests/compiler/resolve-binary.debug.wat | 978 +- tests/compiler/resolve-binary.release.wat | 1258 +-- .../compiler/resolve-elementaccess.debug.wat | 1697 ++- .../resolve-elementaccess.release.wat | 974 +- .../resolve-function-expression.debug.wat | 727 +- .../resolve-function-expression.release.wat | 1665 ++- tests/compiler/resolve-localortype.debug.wat | 3097 +----- .../compiler/resolve-localortype.release.wat | 1939 +--- tests/compiler/resolve-nested.debug.wat | 3174 +----- tests/compiler/resolve-nested.release.wat | 1928 +--- tests/compiler/resolve-new.debug.wat | 919 +- tests/compiler/resolve-new.release.wat | 851 +- .../compiler/resolve-propertyaccess.debug.wat | 730 +- .../resolve-propertyaccess.release.wat | 858 +- tests/compiler/resolve-ternary.debug.wat | 743 +- tests/compiler/resolve-ternary.release.wat | 654 +- tests/compiler/resolve-unary.debug.wat | 799 +- tests/compiler/resolve-unary.release.wat | 974 +- tests/compiler/retain-i32.debug.wat | 3178 +----- tests/compiler/retain-i32.release.wat | 72 +- tests/compiler/return-unreachable.debug.wat | 867 +- tests/compiler/return-unreachable.release.wat | 513 +- tests/compiler/return.debug.wat | 3136 +----- tests/compiler/return.release.wat | 1942 +--- .../compiler/rt/alloc-large-memory.debug.wat | 1768 +--- .../rt/alloc-large-memory.release.wat | 1403 +-- tests/compiler/rt/finalize.debug.wat | 925 +- tests/compiler/rt/finalize.release.wat | 857 +- tests/compiler/rt/flags.debug.wat | 7140 ++----------- tests/compiler/rt/flags.release.wat | 2581 +---- tests/compiler/rt/ids.debug.wat | 1 + tests/compiler/rt/issue-2719.debug.wat | 925 +- tests/compiler/rt/issue-2719.release.wat | 604 +- .../rt/runtime-incremental-export.debug.wat | 935 +- .../rt/runtime-incremental-export.release.wat | 601 +- .../rt/runtime-minimal-export.debug.wat | 774 +- .../rt/runtime-minimal-export.release.wat | 472 +- .../compiler/rt/runtime-stub-export.debug.wat | 685 +- .../rt/runtime-stub-export.release.wat | 294 +- tests/compiler/simd.debug.wat | 1270 +-- tests/compiler/simd.release.wat | 745 +- tests/compiler/static-this.debug.wat | 3116 +----- tests/compiler/static-this.release.wat | 76 +- tests/compiler/std/array-access.debug.wat | 4379 +------- tests/compiler/std/array-access.release.wat | 2559 +---- tests/compiler/std/array-literal.debug.wat | 1091 +- tests/compiler/std/array-literal.release.wat | 831 +- tests/compiler/std/array.debug.wat | 3853 +++---- tests/compiler/std/array.release.wat | 8214 +++++++------- tests/compiler/std/arraybuffer.debug.wat | 991 +- tests/compiler/std/arraybuffer.release.wat | 684 +- tests/compiler/std/console.debug.wat | 3064 +----- tests/compiler/std/console.release.wat | 2118 +--- tests/compiler/std/dataview.debug.wat | 1229 +-- tests/compiler/std/dataview.release.wat | 1045 +- tests/compiler/std/date.debug.wat | 2489 ++--- tests/compiler/std/date.release.wat | 3112 +++--- tests/compiler/std/hash.debug.wat | 3054 +----- tests/compiler/std/hash.release.wat | 1922 +--- tests/compiler/std/map.debug.wat | 1773 +--- tests/compiler/std/map.release.wat | 2027 ++-- tests/compiler/std/math.debug.wat | 9412 ++++++----------- tests/compiler/std/math.release.wat | 8091 ++++++-------- tests/compiler/std/mod.debug.wat | 3395 +----- tests/compiler/std/mod.release.wat | 2426 +---- tests/compiler/std/new.debug.wat | 925 +- tests/compiler/std/new.release.wat | 850 +- tests/compiler/std/object.debug.wat | 1178 +-- tests/compiler/std/object.release.wat | 612 +- .../std/operator-overloading.debug.wat | 1045 +- .../std/operator-overloading.release.wat | 1077 +- tests/compiler/std/pointer.debug.wat | 3169 +----- tests/compiler/std/pointer.release.wat | 2072 +--- tests/compiler/std/set.debug.wat | 1551 +-- tests/compiler/std/set.release.wat | 1705 ++- tests/compiler/std/static-array.debug.wat | 1105 +- tests/compiler/std/static-array.release.wat | 1519 +-- tests/compiler/std/staticarray.debug.wat | 1546 +-- tests/compiler/std/staticarray.release.wat | 1541 +-- .../compiler/std/string-casemapping.debug.wat | 2496 ++--- .../std/string-casemapping.release.wat | 2239 ++-- tests/compiler/std/string-encoding.debug.wat | 1152 +- .../compiler/std/string-encoding.release.wat | 1017 +- tests/compiler/std/string-nonnull.debug.wat | 3052 +----- tests/compiler/std/string-nonnull.release.wat | 2069 +--- tests/compiler/std/string.debug.wat | 7183 +++++++------ tests/compiler/std/string.release.wat | 7427 +++++++------ tests/compiler/std/symbol.debug.wat | 1217 +-- tests/compiler/std/symbol.release.wat | 1018 +- tests/compiler/std/typedarray.debug.wat | 5904 ++++++----- tests/compiler/std/typedarray.release.wat | 8426 ++++++++------- tests/compiler/std/uri.debug.wat | 1336 +-- tests/compiler/std/uri.release.wat | 1201 +-- tests/compiler/super-inline.debug.wat | 921 +- tests/compiler/super-inline.release.wat | 862 +- tests/compiler/switch.debug.wat | 1905 ++-- tests/compiler/switch.release.wat | 980 +- tests/compiler/tablebase.debug.wat | 3158 +----- tests/compiler/tablebase.release.wat | 2040 +--- tests/compiler/templateliteral.debug.wat | 902 +- tests/compiler/templateliteral.release.wat | 1031 +- tests/compiler/ternary.debug.wat | 3090 +----- tests/compiler/ternary.release.wat | 1925 +--- tests/compiler/throw.debug.wat | 1923 +--- tests/compiler/throw.release.wat | 1503 +-- tests/compiler/typealias.debug.wat | 3247 +----- tests/compiler/typealias.release.wat | 2099 +--- tests/compiler/typeof.debug.wat | 1084 +- tests/compiler/typeof.release.wat | 1112 +- tests/compiler/while.debug.wat | 5285 ++++----- tests/compiler/while.release.wat | 967 +- 300 files changed, 91171 insertions(+), 420741 deletions(-) create mode 100644 std/assembly/fixedarray.ts create mode 100644 std/assembly/fixedmap.ts create mode 100644 std/assembly/fixedset.ts diff --git a/src/passes/shadowstack.ts b/src/passes/shadowstack.ts index 704559cf97..57d0b91041 100644 --- a/src/passes/shadowstack.ts +++ b/src/passes/shadowstack.ts @@ -667,13 +667,8 @@ export class ShadowStackPass extends Pass { // Walk globals (only once, since they don't trigger new function compilation) this.walkGlobals(); - // Update functions we added more locals to - // TODO: _BinaryenFunctionAddVar ? - for (let _keys = Map_keys(this.tempMaps), i = 0, k = _keys.length; i < k; ++i) { - this.updateFunction(_keys[i]); - } - - // Update exports taking managed arguments + // Update exports taking managed arguments. This may trigger compilation + // of new functions (e.g., abort via makeStackCheck -> makeStaticAbort). let exportMap = this.exportMap; for (let _keys = Map_keys(exportMap), i = 0, k = _keys.length; i < k; ++i) { let exportName = _keys[i]; @@ -681,6 +676,49 @@ export class ShadowStackPass extends Pass { let managedOperandIndices = changetype(exportMap.get(exportName)); this.updateExport(exportRef, managedOperandIndices); } + + // Walk and instrument any functions added during export processing + let postExportNumFunctions = _BinaryenGetNumFunctions(moduleRef); + while (lastNumFunctions < postExportNumFunctions) { + for (let i = lastNumFunctions; i < postExportNumFunctions; ++i) { + this.walkFunction(_BinaryenGetFunctionByIndex(moduleRef, i)); + } + let instrumentReturns = new InstrumentReturns(this); + for (let _keys = Map_keys(this.slotMaps), i = 0, k = _keys.length; i < k; ++i) { + let func = _keys[i]; + if (instrumentedFunctions.has(func)) continue; + instrumentedFunctions.add(func); + let slotMap = changetype(this.slotMaps.get(func)); + let frameSize = slotMap.size * this.ptrSize; + instrumentReturns.frameSize = frameSize; + instrumentReturns.walkFunction(func); + let stmts = new Array(); + stmts.push(this.makeStackOffset(-frameSize)); + this.makeStackFill(frameSize, stmts); + let body = _BinaryenFunctionGetBody(func); + let bodyType = _BinaryenExpressionGetType(body); + if (bodyType == TypeRef.Unreachable) { + stmts.push(body); + } else if (bodyType == TypeRef.None) { + stmts.push(body); + stmts.push(this.makeStackOffset(+frameSize)); + } else { + let temp = this.getSharedTemp(func, bodyType); + stmts.push(module.local_set(temp, body, false)); + stmts.push(this.makeStackOffset(+frameSize)); + stmts.push(module.local_get(temp, bodyType)); + } + _BinaryenFunctionSetBody(func, module.flatten(stmts, bodyType)); + } + lastNumFunctions = postExportNumFunctions; + postExportNumFunctions = _BinaryenGetNumFunctions(moduleRef); + } + + // Update functions we added more locals to + // TODO: _BinaryenFunctionAddVar ? + for (let _keys = Map_keys(this.tempMaps), i = 0, k = _keys.length; i < k; ++i) { + this.updateFunction(_keys[i]); + } } } diff --git a/std/assembly/fixedarray.ts b/std/assembly/fixedarray.ts new file mode 100644 index 0000000000..1b12cd586e --- /dev/null +++ b/std/assembly/fixedarray.ts @@ -0,0 +1,173 @@ +/// + +import { Runtime } from "shared/runtime"; +import { BLOCK_MAXSIZE } from "./rt/common"; +import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_EMPTYARRAY, E_CAPACITYEXCEEDED } from "./util/error"; + +// Pre-allocated contiguous array with fixed capacity. +// Single buffer, no dynamic growth, zero GC overhead under runtime=memory. + +@final +export class FixedArray { + [key: number]: T; + + private dataPtr: usize = 0; + private capacity_: i32 = 0; + private length_: i32 = 0; + + constructor(capacity: i32) { + if (capacity > BLOCK_MAXSIZE >>> alignof()) throw new RangeError(E_INVALIDLENGTH); + + let bufferSize = capacity << alignof(); + let ptr: usize; + if (ASC_RUNTIME == Runtime.Memory) { + ptr = __alloc(bufferSize); + } else { + ptr = __new(bufferSize, idof()); + } + if (ASC_RUNTIME != Runtime.Incremental) { + memory.fill(ptr, 0, bufferSize); + } + this.dataPtr = ptr; + this.capacity_ = capacity; + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), ptr, false); + } + } + + get length(): i32 { + return this.length_; + } + + set length(value: i32) { + if (value > this.capacity_) throw new RangeError(E_INVALIDLENGTH); + this.length_ = value; + } + + get capacity(): i32 { + return this.capacity_; + } + + @operator("[]") private __get(index: i32): T { + if (index >= this.length_) throw new RangeError(E_INDEXOUTOFRANGE); + return load(this.dataPtr + (index << alignof())); + } + + @unsafe @operator("{}") private __uget(index: i32): T { + return load(this.dataPtr + (index << alignof())); + } + + @operator("[]=") private __set(index: i32, value: T): void { + if (index >= this.length_) throw new RangeError(E_INDEXOUTOFRANGE); + this.__uset(index, value); + } + + @unsafe @operator("{}=") private __uset(index: i32, value: T): void { + store(this.dataPtr + (index << alignof()), value); + if (isManaged()) { + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } + } + } + + push(value: T): i32 { + let len = this.length_; + if (len >= this.capacity_) throw new Error(E_CAPACITYEXCEEDED); + store(this.dataPtr + (len << alignof()), value); + if (isManaged()) { + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } + } + let newLen = len + 1; + this.length_ = newLen; + return newLen; + } + + pop(): T { + let len = this.length_; + if (len <= 0) throw new Error(E_EMPTYARRAY); + let newLen = len - 1; + let value = load(this.dataPtr + (newLen << alignof())); + this.length_ = newLen; + return value; + } + + swapDelete(index: i32): void { + let len = this.length_; + if (index >= len) throw new RangeError(E_INDEXOUTOFRANGE); + let newLen = len - 1; + if (index != newLen) { + let data = this.dataPtr; + let deletedOff = index << alignof(); + let lastOff = newLen << alignof(); + store(data + deletedOff, load(data + lastOff)); + } + this.length_ = newLen; + } + + indexOf(value: T, fromIndex: i32 = 0): i32 { + let length = this.length_; + if (length == 0 || fromIndex >= length) return -1; + if (fromIndex < 0) fromIndex = max(length + fromIndex, 0); + let data = this.dataPtr; + while (fromIndex < length) { + if (load(data + (fromIndex << alignof())) == value) return fromIndex; + ++fromIndex; + } + return -1; + } + + includes(value: T, fromIndex: i32 = 0): bool { + return this.indexOf(value, fromIndex) >= 0; + } + + fill(value: T, start: i32 = 0, end: i32 = i32.MAX_VALUE): this { + let len = this.length_; + start = start < 0 ? max(len + start, 0) : min(start, len); + end = end < 0 ? max(len + end, 0) : min(end, len); + let data = this.dataPtr; + if (isManaged()) { + for (let i = start; i < end; ++i) { + store(data + (i << alignof()), changetype(value)); + } + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), false); + } + } else { + for (let i = start; i < end; ++i) { + store(data + (i << alignof()), value); + } + } + return this; + } + + clear(): void { + this.length_ = 0; + } + + toString(): string { + return "[object FixedArray]"; + } + + // RT integration + + @unsafe private __visit(cookie: u32): void { + if (ASC_RUNTIME != Runtime.Memory) { + let data = this.dataPtr; + if (data) { + if (isManaged()) { + let cur = data; + let end = cur + (this.length_ << alignof()); + while (cur < end) { + let val = load(cur); + if (val) __visit(val, cookie); + cur += sizeof(); + } + } + __visit(data, cookie); + } + } + } +} diff --git a/std/assembly/fixedmap.ts b/std/assembly/fixedmap.ts new file mode 100644 index 0000000000..f3aa60b0d1 --- /dev/null +++ b/std/assembly/fixedmap.ts @@ -0,0 +1,326 @@ +/// + +import { HASH } from "./util/hash"; +import { Runtime } from "shared/runtime"; +import { E_KEYNOTFOUND } from "./util/error"; + +// Open-addressing hash map with linear probing. +// Single contiguous buffer, cache-friendly, zero GC overhead under runtime=memory. + +// @ts-ignore: decorator +@inline const SLOT_EMPTY: u8 = 0; +// @ts-ignore: decorator +@inline const SLOT_OCCUPIED: u8 = 1; +// @ts-ignore: decorator +@inline const SLOT_DELETED: u8 = 2; + +// @ts-ignore: decorator +@inline const FM_INITIAL_CAPACITY: i32 = 16; + +// Max load factor 75% = 3/4 +// @ts-ignore: decorator +@inline const FM_LOAD_N: i32 = 3; +// @ts-ignore: decorator +@inline const FM_LOAD_D: i32 = 4; + +/** Structure of a FixedMap slot. */ +@unmanaged class FixedMapSlot { + hash: u32; + state: u8; + key: K; + value: V; +} + +/** Computes the alignment of a slot. */ +// @ts-ignore: decorator +@inline +function FM_SLOT_ALIGN(): usize { + const maxkv = sizeof() > sizeof() ? sizeof() : sizeof(); + const maxAll = maxkv > sizeof() ? maxkv : sizeof(); + return maxAll - 1; +} + +/** Computes the aligned size of a slot. */ +// @ts-ignore: decorator +@inline +function FM_SLOT_SIZE(): usize { + const align = FM_SLOT_ALIGN(); + return (offsetof>() + align) & ~align; +} + +@final +export class FixedMap { + + private dataPtr: usize = 0; + private _capacity: i32 = 0; + private capacityMask: u32 = 0; + private _count: i32 = 0; + private _entriesUsed: i32 = 0; + + constructor(initialCapacity: i32 = FM_INITIAL_CAPACITY) { + if (initialCapacity < 4) initialCapacity = 4; + let cap: i32 = 4; + while (cap < initialCapacity) cap <<= 1; + + let bufferSize = cap * FM_SLOT_SIZE(); + let ptr: usize; + if (ASC_RUNTIME == Runtime.Memory) { + ptr = __alloc(bufferSize); + } else { + ptr = __new(bufferSize, idof()); + } + memory.fill(ptr, 0, bufferSize); + this.dataPtr = ptr; + this._capacity = cap; + this.capacityMask = (cap - 1); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), ptr, false); + } + } + + get size(): i32 { + return this._count; + } + + has(key: K): bool { + return this.findSlot(key, HASH(key)) != -1; + } + + @operator("[]") + get(key: K): V { + let idx = this.findSlot(key, HASH(key)); + if (idx == -1) throw new Error(E_KEYNOTFOUND); + let slot = changetype>( + this.dataPtr + idx * FM_SLOT_SIZE() + ); + return slot.value; + } + + @operator("[]=") + set(key: K, value: V): this { + // Check load factor before insert + if (this._entriesUsed * FM_LOAD_D >= this._capacity * FM_LOAD_N) { + this.rehash( + this._count * 2 > this._capacity + ? this._capacity << 1 + : this._capacity + ); + } + + let hashCode = HASH(key); + let mask = this.capacityMask; + let start = hashCode & mask; + let i = start; + let data = this.dataPtr; + let slotSize = FM_SLOT_SIZE(); + let firstDeleted: i32 = -1; + + do { + let slot = changetype>(data + i * slotSize); + let state = slot.state; + + if (state == SLOT_OCCUPIED) { + if (slot.hash == hashCode && slot.key == key) { + slot.value = value; + if (isManaged()) { + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } + } + return this; + } + } else if (state == SLOT_EMPTY) { + let insertIdx: u32 = firstDeleted != -1 ? firstDeleted : i; + let insertSlot = changetype>(data + insertIdx * slotSize); + insertSlot.hash = hashCode; + insertSlot.state = SLOT_OCCUPIED; + insertSlot.key = key; + insertSlot.value = value; + ++this._count; + if (firstDeleted == -1) ++this._entriesUsed; + if (isManaged()) { + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(key), true); + } + } + if (isManaged()) { + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } + } + return this; + } else { // DELETED + if (firstDeleted == -1) firstDeleted = i; + } + + i = (i + 1) & mask; + } while (i != start); + + // All slots are OCCUPIED or DELETED (shouldn't happen with load factor check) + // Insert at firstDeleted if available + if (firstDeleted != -1) { + let insertSlot = changetype>(data + firstDeleted * slotSize); + insertSlot.hash = hashCode; + insertSlot.state = SLOT_OCCUPIED; + insertSlot.key = key; + insertSlot.value = value; + ++this._count; + if (isManaged()) { + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(key), true); + } + } + if (isManaged()) { + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(value), true); + } + } + } + return this; + } + + delete(key: K): bool { + let idx = this.findSlot(key, HASH(key)); + if (idx == -1) return false; + let slot = changetype>( + this.dataPtr + idx * FM_SLOT_SIZE() + ); + slot.state = SLOT_DELETED; + --this._count; + return true; + } + + clear(): void { + memory.fill(this.dataPtr, 0, this._capacity * FM_SLOT_SIZE()); + this._count = 0; + this._entriesUsed = 0; + } + + keys(): K[] { + let data = this.dataPtr; + let cap = this._capacity; + let slotSize = FM_SLOT_SIZE(); + let keys = new Array(this._count); + let length = 0; + for (let i = 0; i < cap; ++i) { + let slot = changetype>(data + i * slotSize); + if (slot.state == SLOT_OCCUPIED) { + unchecked(keys[length++] = slot.key); + } + } + keys.length = length; + return keys; + } + + values(): V[] { + let data = this.dataPtr; + let cap = this._capacity; + let slotSize = FM_SLOT_SIZE(); + let values = new Array(this._count); + let length = 0; + for (let i = 0; i < cap; ++i) { + let slot = changetype>(data + i * slotSize); + if (slot.state == SLOT_OCCUPIED) { + unchecked(values[length++] = slot.value); + } + } + values.length = length; + return values; + } + + toString(): string { + return "[object FixedMap]"; + } + + @inline + private findSlot(key: K, hashCode: u32): i32 { + let mask = this.capacityMask; + let start = hashCode & mask; + let i = start; + let data = this.dataPtr; + let slotSize = FM_SLOT_SIZE(); + do { + let slot = changetype>(data + i * slotSize); + let state = slot.state; + if (state == SLOT_EMPTY) return -1; + if (state == SLOT_OCCUPIED && slot.hash == hashCode && slot.key == key) { + return i; + } + i = (i + 1) & mask; + } while (i != start); + return -1; + } + + private rehash(newCapacity: i32): void { + let oldData = this.dataPtr; + let oldCapacity = this._capacity; + let slotSize = FM_SLOT_SIZE(); + let newMask = (newCapacity - 1); + let bufferSize = newCapacity * slotSize; + + let newData: usize; + if (ASC_RUNTIME == Runtime.Memory) { + newData = __alloc(bufferSize); + } else { + newData = __new(bufferSize, idof()); + } + memory.fill(newData, 0, bufferSize); + + for (let i = 0; i < oldCapacity; ++i) { + let oldSlot = changetype>(oldData + i * slotSize); + if (oldSlot.state == SLOT_OCCUPIED) { + let h = oldSlot.hash; + let j = h & newMask; + while (changetype>(newData + j * slotSize).state != SLOT_EMPTY) { + j = (j + 1) & newMask; + } + let newSlot = changetype>(newData + j * slotSize); + newSlot.hash = h; + newSlot.state = SLOT_OCCUPIED; + newSlot.key = oldSlot.key; + newSlot.value = oldSlot.value; + } + } + + this.dataPtr = newData; + this._capacity = newCapacity; + this.capacityMask = newMask; + this._entriesUsed = this._count; + + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), newData, false); + } + } + + // RT integration + + @unsafe private __visit(cookie: u32): void { + if (ASC_RUNTIME != Runtime.Memory) { + let data = this.dataPtr; + if (data) { + if (isManaged() || isManaged()) { + let cap = this._capacity; + let slotSize = FM_SLOT_SIZE(); + for (let i = 0; i < cap; ++i) { + let slot = changetype>(data + i * slotSize); + if (slot.state == SLOT_OCCUPIED) { + if (isManaged()) { + let val = changetype(slot.key); + if (isNullable()) { + if (val) __visit(val, cookie); + } else __visit(val, cookie); + } + if (isManaged()) { + let val = changetype(slot.value); + if (isNullable()) { + if (val) __visit(val, cookie); + } else __visit(val, cookie); + } + } + } + } + __visit(data, cookie); + } + } + } +} diff --git a/std/assembly/fixedset.ts b/std/assembly/fixedset.ts new file mode 100644 index 0000000000..351a6ba879 --- /dev/null +++ b/std/assembly/fixedset.ts @@ -0,0 +1,275 @@ +/// + +import { HASH } from "./util/hash"; +import { Runtime } from "shared/runtime"; + +// Open-addressing hash set with linear probing. +// Single contiguous buffer, cache-friendly, zero GC overhead under runtime=memory. + +// @ts-ignore: decorator +@inline const SLOT_EMPTY: u8 = 0; +// @ts-ignore: decorator +@inline const SLOT_OCCUPIED: u8 = 1; +// @ts-ignore: decorator +@inline const SLOT_DELETED: u8 = 2; + +// @ts-ignore: decorator +@inline const FS_INITIAL_CAPACITY: i32 = 16; + +// Max load factor 75% = 3/4 +// @ts-ignore: decorator +@inline const FS_LOAD_N: i32 = 3; +// @ts-ignore: decorator +@inline const FS_LOAD_D: i32 = 4; + +/** Structure of a FixedSet slot. */ +@unmanaged class FixedSetSlot { + hash: u32; + state: u8; + key: T; +} + +/** Computes the alignment of a slot. */ +// @ts-ignore: decorator +@inline +function FS_SLOT_ALIGN(): usize { + const maxAll = sizeof() > sizeof() ? sizeof() : sizeof(); + return maxAll - 1; +} + +/** Computes the aligned size of a slot. */ +// @ts-ignore: decorator +@inline +function FS_SLOT_SIZE(): usize { + const align = FS_SLOT_ALIGN(); + return (offsetof>() + align) & ~align; +} + +@final +export class FixedSet { + + private dataPtr: usize = 0; + private _capacity: i32 = 0; + private capacityMask: u32 = 0; + private _count: i32 = 0; + private _entriesUsed: i32 = 0; + + constructor(initialCapacity: i32 = FS_INITIAL_CAPACITY) { + if (initialCapacity < 4) initialCapacity = 4; + let cap: i32 = 4; + while (cap < initialCapacity) cap <<= 1; + + let bufferSize = cap * FS_SLOT_SIZE(); + let ptr: usize; + if (ASC_RUNTIME == Runtime.Memory) { + ptr = __alloc(bufferSize); + } else { + ptr = __new(bufferSize, idof()); + } + memory.fill(ptr, 0, bufferSize); + this.dataPtr = ptr; + this._capacity = cap; + this.capacityMask = (cap - 1); + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), ptr, false); + } + } + + get size(): i32 { + return this._count; + } + + @operator("[]") + has(key: T): bool { + return this.findSlot(key, HASH(key)) != -1; + } + + add(key: T): this { + // Check load factor before insert + if (this._entriesUsed * FS_LOAD_D >= this._capacity * FS_LOAD_N) { + this.rehash( + this._count * 2 > this._capacity + ? this._capacity << 1 + : this._capacity + ); + } + + let hashCode = HASH(key); + let mask = this.capacityMask; + let start = hashCode & mask; + let i = start; + let data = this.dataPtr; + let slotSize = FS_SLOT_SIZE(); + let firstDeleted: i32 = -1; + + do { + let slot = changetype>(data + i * slotSize); + let state = slot.state; + + if (state == SLOT_OCCUPIED) { + if (slot.hash == hashCode && slot.key == key) { + return this; // already exists + } + } else if (state == SLOT_EMPTY) { + let insertIdx: u32 = firstDeleted != -1 ? firstDeleted : i; + let insertSlot = changetype>(data + insertIdx * slotSize); + insertSlot.hash = hashCode; + insertSlot.state = SLOT_OCCUPIED; + insertSlot.key = key; + ++this._count; + if (firstDeleted == -1) ++this._entriesUsed; + if (isManaged()) { + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(key), true); + } + } + return this; + } else { // DELETED + if (firstDeleted == -1) firstDeleted = i; + } + + i = (i + 1) & mask; + } while (i != start); + + // Fallback: insert at firstDeleted + if (firstDeleted != -1) { + let insertSlot = changetype>(data + firstDeleted * slotSize); + insertSlot.hash = hashCode; + insertSlot.state = SLOT_OCCUPIED; + insertSlot.key = key; + ++this._count; + if (isManaged()) { + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), changetype(key), true); + } + } + } + return this; + } + + @operator("[]=") + private __set(key: T, value: bool): void { + if (value) this.add(key); + else this.delete(key); + } + + delete(key: T): bool { + let idx = this.findSlot(key, HASH(key)); + if (idx == -1) return false; + let slot = changetype>( + this.dataPtr + idx * FS_SLOT_SIZE() + ); + slot.state = SLOT_DELETED; + --this._count; + return true; + } + + clear(): void { + memory.fill(this.dataPtr, 0, this._capacity * FS_SLOT_SIZE()); + this._count = 0; + this._entriesUsed = 0; + } + + values(): T[] { + let data = this.dataPtr; + let cap = this._capacity; + let slotSize = FS_SLOT_SIZE(); + let values = new Array(this._count); + let length = 0; + for (let i = 0; i < cap; ++i) { + let slot = changetype>(data + i * slotSize); + if (slot.state == SLOT_OCCUPIED) { + unchecked(values[length++] = slot.key); + } + } + values.length = length; + return values; + } + + toString(): string { + return "[object FixedSet]"; + } + + @inline + private findSlot(key: T, hashCode: u32): i32 { + let mask = this.capacityMask; + let start = hashCode & mask; + let i = start; + let data = this.dataPtr; + let slotSize = FS_SLOT_SIZE(); + do { + let slot = changetype>(data + i * slotSize); + let state = slot.state; + if (state == SLOT_EMPTY) return -1; + if (state == SLOT_OCCUPIED && slot.hash == hashCode && slot.key == key) { + return i; + } + i = (i + 1) & mask; + } while (i != start); + return -1; + } + + private rehash(newCapacity: i32): void { + let oldData = this.dataPtr; + let oldCapacity = this._capacity; + let slotSize = FS_SLOT_SIZE(); + let newMask = (newCapacity - 1); + let bufferSize = newCapacity * slotSize; + + let newData: usize; + if (ASC_RUNTIME == Runtime.Memory) { + newData = __alloc(bufferSize); + } else { + newData = __new(bufferSize, idof()); + } + memory.fill(newData, 0, bufferSize); + + for (let i = 0; i < oldCapacity; ++i) { + let oldSlot = changetype>(oldData + i * slotSize); + if (oldSlot.state == SLOT_OCCUPIED) { + let h = oldSlot.hash; + let j = h & newMask; + while (changetype>(newData + j * slotSize).state != SLOT_EMPTY) { + j = (j + 1) & newMask; + } + let newSlot = changetype>(newData + j * slotSize); + newSlot.hash = h; + newSlot.state = SLOT_OCCUPIED; + newSlot.key = oldSlot.key; + } + } + + this.dataPtr = newData; + this._capacity = newCapacity; + this.capacityMask = newMask; + this._entriesUsed = this._count; + + if (ASC_RUNTIME != Runtime.Memory) { + __link(changetype(this), newData, false); + } + } + + // RT integration + + @unsafe private __visit(cookie: u32): void { + if (ASC_RUNTIME != Runtime.Memory) { + let data = this.dataPtr; + if (data) { + if (isManaged()) { + let cap = this._capacity; + let slotSize = FS_SLOT_SIZE(); + for (let i = 0; i < cap; ++i) { + let slot = changetype>(data + i * slotSize); + if (slot.state == SLOT_OCCUPIED) { + let val = changetype(slot.key); + if (isNullable()) { + if (val) __visit(val, cookie); + } else __visit(val, cookie); + } + } + } + __visit(data, cookie); + } + } + } +} diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index a604397320..81c9d813e0 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2417,6 +2417,45 @@ declare class Set { toString(): string; } +declare class FixedMap { + constructor(initialCapacity?: i32); + readonly size: i32; + has(key: K): bool; + get(key: K): V; + set(key: K, value: V): this; + delete(key: K): bool; + clear(): void; + keys(): K[]; + values(): V[]; + toString(): string; +} + +declare class FixedArray { + [key: number]: T; + constructor(capacity: i32); + length: i32; + readonly capacity: i32; + push(value: T): i32; + pop(): T; + swapDelete(index: i32): void; + indexOf(value: T, fromIndex?: i32): i32; + includes(value: T, fromIndex?: i32): bool; + fill(value: T, start?: i32, end?: i32): this; + clear(): void; + toString(): string; +} + +declare class FixedSet { + constructor(initialCapacity?: i32); + readonly size: i32; + has(key: T): bool; + add(key: T): this; + delete(key: T): bool; + clear(): void; + values(): T[]; + toString(): string; +} + interface SymbolConstructor { readonly hasInstance: symbol; readonly isConcatSpreadable: symbol; diff --git a/std/assembly/rt.ts b/std/assembly/rt.ts index 4f21c458ce..7c6d9d9b7e 100644 --- a/std/assembly/rt.ts +++ b/std/assembly/rt.ts @@ -51,7 +51,7 @@ export function __newArray(length: i32, alignLog2: usize, id: u32, data: usize = // @ts-ignore: decorator @global @unsafe -function __tostack(ptr: usize): usize { // eslint-disable-line +export function __tostack(ptr: usize): usize { // eslint-disable-line return ptr; } diff --git a/std/assembly/util/error.ts b/std/assembly/util/error.ts index ba3425265b..3c02bb905b 100644 --- a/std/assembly/util/error.ts +++ b/std/assembly/util/error.ts @@ -52,3 +52,7 @@ export const E_INVALIDDATE: string = "Invalid Date"; // @ts-ignore: decorator @lazy @inline export const E_UNPAIRED_SURROGATE: string = "Unpaired surrogate"; + +// @ts-ignore: decorator +@lazy @inline +export const E_CAPACITYEXCEEDED: string = "Capacity exceeded"; diff --git a/tests/compiler/NonNullable.debug.wat b/tests/compiler/NonNullable.debug.wat index 27e7992ac2..28df12368a 100644 --- a/tests/compiler/NonNullable.debug.wat +++ b/tests/compiler/NonNullable.debug.wat @@ -1,64 +1,28 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) + (type $0 (func)) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32))) + (type $5 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/native/ASC_SHRINK_LEVEL 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 $NonNullable/z (mut i32) (i32.const 2592)) - (global $~lib/rt/__rtti_base i32 (i32.const 2736)) - (global $~lib/memory/__data_end i32 (i32.const 2760)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35528)) - (global $~lib/memory/__heap_base i32 (i32.const 35528)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $NonNullable/z (mut i32) (i32.const 224)) + (global $~lib/memory/__data_end i32 (i32.const 364)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33132)) + (global $~lib/memory/__heap_base i32 (i32.const 33132)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\003\002\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s\00") - (data $21 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") - (data $22 (i32.const 2492) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00z\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2604) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2736) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02A\00\00") + (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s\00") + (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") + (data $3 (i32.const 124) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00z\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 236) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\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 "memory" (memory $0)) @@ -180,2625 +144,6 @@ i32.const 0 return ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 352 - i32.const 416 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 224 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 224 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 160 - i32.const 496 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 160 - i32.const 224 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~start call $start:NonNullable ) @@ -2807,8 +152,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35552 - i32.const 35600 + i32.const 33152 + i32.const 33200 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2911,12 +256,8 @@ local.get $3 return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2925,196 +266,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/string/String.__ne (param $left i32) (param $right i32) (result i32) (local $2 i32) @@ -3172,7 +344,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 9 i32.const 3 call $~lib/builtins/abort @@ -3226,54 +398,37 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - 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 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 448 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 32 i32.const 32 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 3 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2480 - i32.const 2480 + i32.const 112 + i32.const 112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 4 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2512 - i32.const 2512 + i32.const 144 + i32.const 144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -3287,8 +442,8 @@ if (result i32) local.get $0 else - i32.const 2624 - i32.const 2432 + i32.const 256 + i32.const 64 i32.const 20 i32.const 40 call $~lib/builtins/abort @@ -3312,306 +467,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $NonNullable/z - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 160 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1216 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2272 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/array/Array<~lib/string/String>#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/array/Array<~lib/string/String>#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/array/Array<~lib/string/String> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $invalid - end - return - 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 - unreachable - ) - (func $~lib/array/Array<~lib/string/String>#__visit (param $this i32) (param $cookie i32) - (local $cur i32) - (local $end i32) - (local $val i32) - (local $5 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 $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.set $cur - local.get $cur - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length_ - i32.const 2 - i32.shl - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - i32.load - local.set $val - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/string/String>#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/NonNullable.release.wat b/tests/compiler/NonNullable.release.wat index ba763be2c4..4d998505d9 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -1,1757 +1,25 @@ (module - (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (result i32))) - (type $5 (func (param i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36552)) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34156)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\06\00\00\00u\003\002") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) ",") - (data $20.1 (i32.const 3448) "\02\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s") - (data $21 (i32.const 3484) "\1c") - (data $21.1 (i32.const 3496) "\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g") - (data $22 (i32.const 3516) "L") - (data $22.1 (i32.const 3528) "\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>") - (data $23 (i32.const 3596) "\1c") - (data $23.1 (i32.const 3608) "\02\00\00\00\02\00\00\00z") - (data $24 (i32.const 3628) "|") - (data $24.1 (i32.const 3640) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") - (data $25 (i32.const 3760) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02A") + (data $1 (i32.const 1068) ",") + (data $1.1 (i32.const 1080) "\02\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s") + (data $2 (i32.const 1116) "\1c") + (data $2.1 (i32.const 1128) "\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g") + (data $3 (i32.const 1148) "L") + (data $3.1 (i32.const 1160) "\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>") + (data $4 (i32.const 1228) "\1c") + (data $4.1 (i32.const 1240) "\02\00\00\00\02\00\00\00z") + (data $5 (i32.const 1260) "|") + (data $5.1 (i32.const 1272) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 3616 - call $~lib/rt/itcms/__visit - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 2240 - call $~lib/rt/itcms/__visit - i32.const 3296 - call $~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 1248 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$135 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36552 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$135 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3760 - i32.load - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3764 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1520 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1520 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1520 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1520 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1520 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36560 - i32.const 0 - i32.store - i32.const 38128 - 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 36560 - 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 36560 - 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 36560 - i32.const 38132 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36560 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36552 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1248 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36552 - 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 - local.tee $0 - i32.const 36552 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1520 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1520 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1184 - i32.const 1248 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1184 - i32.const 1520 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1520 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3784 - i32.lt_s - if - i32.const 36576 - i32.const 36624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1759,108 +27,76 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3784 + i32.const 1388 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - memory.size - i32.const 16 - i32.shl - i32.const 36552 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/fromSpace i32.const 1056 i32.const 1056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 3 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3504 - i32.const 3504 + i32.const 1136 + i32.const 1136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 4 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3536 - i32.const 3536 + i32.const 1168 + i32.const 1168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 5 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3616 + i32.const 1248 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3616 + i32.const 1248 i32.store call $NonNullable/assertNonNull<~lib/string/String> global.get $~lib/memory/__stack_pointer - i32.const 3616 + i32.const 1248 i32.store 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 3784 + i32.const 1388 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3616 + i32.const 1248 i32.store call $~lib/string/String.__ne if global.get $~lib/memory/__stack_pointer - i32.const 3616 + i32.const 1248 i32.store call $NonNullable/assertNonNull<~lib/string/String> end @@ -1874,8 +110,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36576 - i32.const 36624 + i32.const 34176 + i32.const 34224 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1891,11 +127,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3784 + i32.const 1388 i32.lt_s if - i32.const 36576 - i32.const 36624 + i32.const 34176 + i32.const 34224 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1994,7 +230,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$77 + block $__inlined_func$~lib/util/string/compareImpl$3 loop $while-continue|1 local.get $0 local.tee $3 @@ -2014,7 +250,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$77 + br_if $__inlined_func$~lib/util/string/compareImpl$3 local.get $2 i32.const 2 i32.add @@ -2043,204 +279,40 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3784 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3784 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$140 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$140 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36576 - i32.const 36624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3784 + i32.const 1388 i32.lt_s if - i32.const 36576 - i32.const 36624 + i32.const 34176 + i32.const 34224 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String.__ne (result i32) (local $0 i32) @@ -2249,11 +321,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3784 + i32.const 1388 i32.lt_s if - i32.const 36576 - i32.const 36624 + i32.const 34176 + i32.const 34224 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2263,12 +335,12 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 3616 + i32.const 1248 i32.store global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=4 - i32.const 3616 + i32.const 1248 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -2283,11 +355,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3784 + i32.const 1388 i32.lt_s if - i32.const 36576 - i32.const 36624 + i32.const 34176 + i32.const 34224 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2297,13 +369,13 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3616 + i32.const 1248 i32.store call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 9 i32.const 3 call $~lib/builtins/abort @@ -2314,98 +386,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $invalid - block $~lib/array/Array<~lib/string/String> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 3784 - i32.lt_s - if - i32.const 36576 - i32.const 36624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $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 $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable - ) ) diff --git a/tests/compiler/abi.debug.wat b/tests/compiler/abi.debug.wat index 582fe19ee8..98b74bc82c 100644 --- a/tests/compiler/abi.debug.wat +++ b/tests/compiler/abi.debug.wat @@ -1,59 +1,16 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (result i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func (result i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $abi/condition (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $abi/y (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2416)) - (global $~lib/memory/__data_end i32 (i32.const 2436)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35204)) - (global $~lib/memory/__heap_base i32 (i32.const 35204)) + (global $~lib/memory/__data_end i32 (i32.const 44)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32812)) + (global $~lib/memory/__heap_base i32 (i32.const 32812)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s\00") - (data $20 (i32.const 2416) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "exported" (func $abi/exported)) @@ -65,2638 +22,6 @@ i32.const 128 return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:abi (local $x i32) (local $x|1 i32) @@ -2708,23 +33,6 @@ i32.const 0 i32.eqz global.set $abi/condition - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 256 local.set $x local.get $x @@ -2733,7 +41,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -2761,7 +69,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -2789,7 +97,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 58 i32.const 3 call $~lib/builtins/abort @@ -2803,7 +111,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -2818,7 +126,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 72 i32.const 3 call $~lib/builtins/abort @@ -2833,7 +141,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -2846,7 +154,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 77 i32.const 3 call $~lib/builtins/abort @@ -2859,7 +167,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 79 i32.const 3 call $~lib/builtins/abort @@ -2888,92 +196,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35232 - i32.const 35280 + i32.const 32832 + i32.const 32880 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2982,322 +214,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/abi.release.wat b/tests/compiler/abi.release.wat index 3c9093d806..5320131fcb 100644 --- a/tests/compiler/abi.release.wat +++ b/tests/compiler/abi.release.wat @@ -1,85 +1,13 @@ (module (type $0 (func (result i32))) - (type $1 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s") - (data $20 (i32.const 3440) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0.1 (i32.const 1048) "\02\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s") (export "exported" (func $abi/exported)) (export "exportedExported" (func $abi/exported)) (export "exportedInternal" (func $abi/exported)) (export "memory" (memory $0)) - (start $~start) (func $abi/exported (result i32) i32.const -128 ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36228 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/assert-nonnull.debug.wat b/tests/compiler/assert-nonnull.debug.wat index e1bbc07f12..4bcfff8cd2 100644 --- a/tests/compiler/assert-nonnull.debug.wat +++ b/tests/compiler/assert-nonnull.debug.wat @@ -1,61 +1,25 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (result i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $1 (func (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2752)) - (global $~lib/memory/__data_end i32 (i32.const 2788)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35556)) - (global $~lib/memory/__heap_base i32 (i32.const 35556)) + (global $~lib/memory/__data_end i32 (i32.const 444)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33212)) + (global $~lib/memory/__heap_base i32 (i32.const 33212)) (memory $0 1) (data $0 (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 668) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 796) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 892) "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 $17 (i32.const 1292) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2348) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2508) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $22 (i32.const 2620) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $23 (i32.const 2752) "\08\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\02a\00\00") + (data $1 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $4 (i32.const 316) "|\00\00\00\00\00\00\00\00\00\00\00\02\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") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -71,2639 +35,6 @@ (export "testRet" (func $export:assert-nonnull/testRet)) (export "testObjFn" (func $export:assert-nonnull/testObjFn)) (export "testObjRet" (func $export:assert-nonnull/testObjRet)) - (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - 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 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 448 - i32.const 512 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 320 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - 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/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - 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/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 256 - i32.const 592 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 256 - i32.const 320 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 892 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 892 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 892 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 892 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1312 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1312 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2368 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2368 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $assert-nonnull/Foo#get:bar (param $this i32) (result i32) local.get $this i32.load @@ -2728,242 +59,278 @@ local.get $this i32.load offset=4 ) - (func $~start - 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 - ) (func $~stack_check global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35584 - i32.const 35632 + i32.const 33232 + i32.const 33280 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $export:assert-nonnull/testVar (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $6 + local.get $0 + i32.store + local.get $0 + call $assert-nonnull/testVar + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testObj (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 - local.get $6 + local.get $0 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 + local.get $0 + call $assert-nonnull/testObj + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testProp (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 - local.get $6 + local.get $0 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize + local.get $0 + call $assert-nonnull/testProp + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 224 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testArr (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $assert-nonnull/testArr + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testElem (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 + local.get $0 + i32.store + local.get $0 + call $assert-nonnull/testElem + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testAll (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 + local.get $0 + i32.store + local.get $0 + call $assert-nonnull/testAll + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testAll2 (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 + local.get $0 + i32.store + local.get $0 + call $assert-nonnull/testAll2 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testFn (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 + local.get $0 + i32.store + local.get $0 + call $assert-nonnull/testFn + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testFn2 (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 + local.get $0 + i32.store + local.get $0 + call $assert-nonnull/testFn2 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testRet (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 + local.get $0 + i32.store + local.get $0 + call $assert-nonnull/testRet + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:assert-nonnull/testObjFn (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 + local.get $0 + i32.store + local.get $0 + call $assert-nonnull/testObjFn + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.get $1 ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $export:assert-nonnull/testObjRet (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $0 + call $assert-nonnull/testObjRet + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return + local.get $1 ) (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + 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 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 160 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 192 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 656 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 656 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2464 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $assert-nonnull/testObj (param $foo i32) (result i32) (local $1 i32) @@ -2985,7 +352,7 @@ local.get $1 else i32.const 32 - i32.const 2528 + i32.const 160 i32.const 11 i32.const 10 call $~lib/builtins/abort @@ -3031,7 +398,7 @@ local.get $1 else i32.const 32 - i32.const 2528 + i32.const 160 i32.const 15 i32.const 10 call $~lib/builtins/abort @@ -3066,9 +433,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 448 - i32.const 2592 - i32.const 114 + i32.const 224 + i32.const 288 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3096,9 +463,9 @@ local.get $value i32.eqz if - i32.const 2640 - i32.const 2592 - i32.const 118 + i32.const 336 + i32.const 288 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -3132,7 +499,7 @@ local.get $1 else i32.const 32 - i32.const 2528 + i32.const 160 i32.const 19 i32.const 10 call $~lib/builtins/abort @@ -3174,9 +541,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 448 - i32.const 2592 - i32.const 114 + i32.const 224 + i32.const 288 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3237,7 +604,7 @@ local.get $1 else i32.const 32 - i32.const 2528 + i32.const 160 i32.const 23 i32.const 10 call $~lib/builtins/abort @@ -3276,7 +643,7 @@ local.get $1 else i32.const 32 - i32.const 2528 + i32.const 160 i32.const 27 i32.const 10 call $~lib/builtins/abort @@ -3296,7 +663,7 @@ local.get $2 else i32.const 32 - i32.const 2528 + i32.const 160 i32.const 27 i32.const 10 call $~lib/builtins/abort @@ -3315,7 +682,7 @@ local.get $3 else i32.const 32 - i32.const 2528 + i32.const 160 i32.const 27 i32.const 10 call $~lib/builtins/abort @@ -3354,7 +721,7 @@ local.get $1 else i32.const 32 - i32.const 2528 + i32.const 160 i32.const 31 i32.const 10 call $~lib/builtins/abort @@ -3374,368 +741,42 @@ local.get $2 else i32.const 32 - i32.const 2528 - i32.const 31 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $assert-nonnull/Foo#get:bar - local.tee $3 - i32.store offset=16 - local.get $3 - if (result i32) - local.get $3 - else - i32.const 32 - i32.const 2528 - i32.const 31 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - ) - (func $assert-nonnull/testObjFn (param $foo i32) (result 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 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $foo - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $assert-nonnull/Foo#get:baz - local.tee $1 - i32.store offset=4 - local.get $1 - if (result i32) - local.get $1 - else - i32.const 32 - i32.const 2528 - i32.const 48 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - i32.load - call_indirect (type $4) - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $assert-nonnull/testObjRet (param $foo i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 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/memory/__stack_pointer - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $foo - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $assert-nonnull/Foo#get:baz - local.tee $1 - i32.store offset=4 - local.get $1 - if (result i32) - local.get $1 - else - i32.const 32 - i32.const 2528 - i32.const 52 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - i32.load - call_indirect (type $4) - local.tee $2 - i32.store offset=8 - local.get $2 - if (result i32) - local.get $2 - else - i32.const 32 - i32.const 2528 - i32.const 52 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 688 - i32.const 816 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 880 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $assert-nonnull/testVar (param $n i32) (result i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $n - local.tee $1 - i32.store - local.get $1 - if (result i32) - local.get $1 - else - i32.const 32 - i32.const 2528 - i32.const 2 + i32.const 160 + i32.const 31 i32.const 10 call $~lib/builtins/abort unreachable end - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $assert-nonnull/testFn (param $fn i32) (result 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 0 - global.set $~argumentsLength + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $1 + local.get $4 i32.store - local.get $1 + local.get $4 + call $assert-nonnull/Foo#get:bar + local.tee $3 + i32.store offset=16 + local.get $3 if (result i32) - local.get $1 + local.get $3 else i32.const 32 - i32.const 2528 - i32.const 35 + i32.const 160 + i32.const 31 i32.const 10 call $~lib/builtins/abort unreachable end - i32.load - call_indirect (type $4) - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 return ) - (func $assert-nonnull/testFn2 (param $fn i32) (result i32) + (func $assert-nonnull/testObjFn (param $foo i32) (result i32) (local $1 i32) - (local $fn2 i32) - (local $3 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3744,43 +785,45 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.get $foo + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $1 + local.get $2 i32.store + local.get $2 + call $assert-nonnull/Foo#get:baz + local.tee $1 + i32.store offset=4 local.get $1 if (result i32) local.get $1 else i32.const 32 - i32.const 2528 - i32.const 39 - i32.const 13 + i32.const 160 + i32.const 48 + i32.const 10 call $~lib/builtins/abort unreachable end - local.tee $fn2 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - local.get $fn2 i32.load - call_indirect (type $4) - local.set $3 + call_indirect (type $1) + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return ) - (func $assert-nonnull/testRet (param $fn i32) (result i32) + (func $assert-nonnull/testObjRet (param $foo i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -3789,546 +832,220 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $1 + local.get $foo + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store + local.get $3 + call $assert-nonnull/Foo#get:baz + local.tee $1 + i32.store offset=4 local.get $1 if (result i32) local.get $1 else i32.const 32 - i32.const 2528 - i32.const 44 + i32.const 160 + i32.const 52 i32.const 10 call $~lib/builtins/abort unreachable end i32.load - call_indirect (type $4) + call_indirect (type $1) local.tee $2 - i32.store offset=4 + i32.store offset=8 local.get $2 if (result i32) local.get $2 else - i32.const 32 - i32.const 2528 - i32.const 44 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - ) - (func $export:assert-nonnull/testVar (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 - local.get $0 - i32.store - local.get $0 - call $assert-nonnull/testVar - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:assert-nonnull/testObj (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 - local.get $0 - i32.store - local.get $0 - call $assert-nonnull/testObj - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:assert-nonnull/testProp (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 - local.get $0 - i32.store - local.get $0 - call $assert-nonnull/testProp - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:assert-nonnull/testArr (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 - local.get $0 - i32.store - local.get $0 - call $assert-nonnull/testArr - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:assert-nonnull/testElem (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 - local.get $0 - i32.store - local.get $0 - call $assert-nonnull/testElem - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:assert-nonnull/testAll (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 - local.get $0 - i32.store - local.get $0 - call $assert-nonnull/testAll - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:assert-nonnull/testAll2 (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 - local.get $0 - i32.store - local.get $0 - call $assert-nonnull/testAll2 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:assert-nonnull/testFn (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 - local.get $0 - i32.store - local.get $0 - call $assert-nonnull/testFn - local.set $1 + i32.const 32 + i32.const 160 + i32.const 52 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + return ) - (func $export:assert-nonnull/testFn2 (param $0 i32) (result i32) + (func $assert-nonnull/testVar (param $n i32) (result 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 - local.get $0 + i32.const 0 i32.store - local.get $0 - call $assert-nonnull/testFn2 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:assert-nonnull/testRet (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 - local.get $0 + local.get $n + local.tee $1 i32.store - local.get $0 - call $assert-nonnull/testRet - local.set $1 + local.get $1 + if (result i32) + local.get $1 + else + i32.const 32 + i32.const 160 + i32.const 2 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + return ) - (func $export:assert-nonnull/testObjFn (param $0 i32) (result i32) + (func $assert-nonnull/testFn (param $fn i32) (result 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 - local.get $0 + i32.const 0 i32.store - local.get $0 - call $assert-nonnull/testObjFn - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:assert-nonnull/testObjRet (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 + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $fn + local.tee $1 i32.store - local.get $0 - call $assert-nonnull/testObjRet - local.set $1 + local.get $1 + if (result i32) + local.get $1 + else + i32.const 32 + i32.const 160 + i32.const 35 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + i32.load + call_indirect (type $1) + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + return ) - (func $~lib/rt/__visit_globals (param $0 i32) + (func $assert-nonnull/testFn2 (param $fn i32) (result i32) (local $1 i32) - i32.const 448 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2640 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 256 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1312 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2368 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/error/Error~visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $assert-nonnull/Foo~visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/array/Array - block $~lib/array/Array - block $assert-nonnull/Foo - block $~lib/error/Error - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/error/Error $assert-nonnull/Foo $~lib/array/Array $~lib/array/Array $invalid - end - return - 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/error/Error~visit - return - end - local.get $0 - local.get $1 - call $assert-nonnull/Foo~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - unreachable - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $cur i32) - (local $end i32) - (local $val i32) - (local $5 i32) + (local $fn2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 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 $this - local.set $5 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:dataStart - local.set $cur - local.get $cur - local.get $this - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $fn + local.tee $1 i32.store - local.get $5 - call $~lib/array/Array#get:length_ - i32.const 2 - i32.shl - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - i32.load - local.set $val - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 - end + local.get $1 + if (result i32) + local.get $1 + else + i32.const 32 + i32.const 160 + i32.const 39 + i32.const 13 + call $~lib/builtins/abort + unreachable end - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit + local.tee $fn2 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + local.get $fn2 + i32.load + call_indirect (type $1) + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + return ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $cur i32) - (local $end i32) - (local $val i32) - (local $5 i32) + (func $assert-nonnull/testRet (param $fn i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 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 $this - local.set $5 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:dataStart - local.set $cur - local.get $cur - local.get $this - local.set $5 + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $fn + local.tee $1 i32.store - local.get $5 - call $~lib/array/Array#get:length_ - i32.const 2 - i32.shl - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - i32.load - local.set $val - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 - end + local.get $1 + if (result i32) + local.get $1 + else + i32.const 32 + i32.const 160 + i32.const 44 + i32.const 10 + call $~lib/builtins/abort + unreachable end - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit + i32.load + call_indirect (type $1) + local.tee $2 + i32.store offset=4 + local.get $2 + if (result i32) + local.get $2 + else + i32.const 32 + i32.const 160 + i32.const 44 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + return ) ) diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index 990edadee0..e4c116de2d 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -1,65 +1,20 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (result i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36580)) + (type $2 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34236)) (memory $0 1) (data $0 (i32.const 1036) "|") (data $0.1 (i32.const 1048) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") - (data $1 (i32.const 1164) "\1c") - (data $1.1 (i32.const 1176) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1196) "\1c") - (data $2.1 (i32.const 1208) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1228) "\1c") - (data $3.1 (i32.const 1240) "\02") - (data $4 (i32.const 1260) "<") - (data $4.1 (i32.const 1272) "\02\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 $5 (i32.const 1324) "<") - (data $5.1 (i32.const 1336) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1452) "<") - (data $8.1 (i32.const 1464) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1516) ",") - (data $9.1 (i32.const 1528) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1596) "<") - (data $11.1 (i32.const 1608) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1660) "\1c") - (data $12.1 (i32.const 1672) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1692) "|") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1820) "<") - (data $14.1 (i32.const 1832) "\02\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 $15 (i32.const 1884) "\1c") - (data $15.1 (i32.const 1896) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1916) "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 $17 (i32.const 2316) "\1c\04") - (data $17.1 (i32.const 2328) "\02\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 $18 (i32.const 3372) "\\") - (data $18.1 (i32.const 3384) "\02\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 $19 (i32.const 3468) "<") - (data $19.1 (i32.const 3480) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3532) "<") - (data $20.1 (i32.const 3544) "\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s") - (data $21 (i32.const 3596) ",") - (data $21.1 (i32.const 3608) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $22 (i32.const 3644) "|") - (data $22.1 (i32.const 3656) "\02\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 $23 (i32.const 3776) "\08\00\00\00 \00\00\00 \00\00\00 ") - (data $23.1 (i32.const 3804) "\02A\00\00\02a") + (data $1 (i32.const 1164) "<") + (data $1.1 (i32.const 1176) "\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s") + (data $2 (i32.const 1228) "<") + (data $2.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $3 (i32.const 1292) ",") + (data $3.1 (i32.const 1304) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $4 (i32.const 1340) "|") + (data $4.1 (i32.const 1352) "\02\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") (table $0 1 1 funcref) (export "memory" (memory $0)) (export "testVar" (func $export:assert-nonnull/testVar)) @@ -74,1975 +29,6 @@ (export "testRet" (func $export:assert-nonnull/testRet)) (export "testObjFn" (func $export:assert-nonnull/testObjFn)) (export "testObjRet" (func $export:assert-nonnull/testObjRet)) - (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 3664 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 2336 - call $~lib/rt/itcms/__visit - i32.const 3392 - call $~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 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$177 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36580 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$177 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3776 - i32.load - i32.gt_u - if - i32.const 1472 - i32.const 1536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3780 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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/builtins/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/builtins/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/builtins/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/builtins/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/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36592 - i32.const 0 - i32.store - i32.const 38160 - 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 36592 - 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 36592 - 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 36592 - i32.const 38164 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36592 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36580 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36580 - 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 - local.tee $0 - i32.const 36580 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 334 - i32.const 14 - call $~lib/builtins/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 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1280 - i32.const 1344 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1280 - i32.const 1616 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1616 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3812 - i32.lt_s - if - i32.const 36608 - i32.const 36656 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1904 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1916 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1916 - 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 1916 - 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 1916 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36580 - 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 - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3812 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3812 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$182 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1248 - local.set $0 - br $__inlined_func$~lib/string/String#concat$182 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36608 - i32.const 36656 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3812 - i32.lt_s - if - i32.const 36608 - i32.const 36656 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1184 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1216 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1680 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1680 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3488 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__get (param $0 i32) (result 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 3812 - i32.lt_s - if - i32.const 36608 - i32.const 36656 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eqz - if - i32.const 1472 - i32.const 3616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.load - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) (func $export:assert-nonnull/testVar (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2050,7 +36,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2061,7 +47,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2074,7 +60,7 @@ i32.eqz if i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 2 i32.const 10 call $~lib/builtins/abort @@ -2091,8 +77,8 @@ local.get $0 return end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2105,7 +91,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2116,7 +102,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2129,7 +115,7 @@ i32.eqz if i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 11 i32.const 10 call $~lib/builtins/abort @@ -2150,8 +136,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2164,7 +150,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2175,7 +161,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2193,7 +179,7 @@ i32.eqz if i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 15 i32.const 10 call $~lib/builtins/abort @@ -2210,8 +196,8 @@ local.get $0 return end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2224,7 +210,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2235,7 +221,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2248,7 +234,7 @@ i32.eqz if i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 19 i32.const 10 call $~lib/builtins/abort @@ -2262,7 +248,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2275,9 +261,9 @@ i32.load offset=12 i32.eqz if - i32.const 1472 - i32.const 3616 - i32.const 114 + i32.const 1248 + i32.const 1312 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2294,9 +280,9 @@ local.get $0 i32.eqz if - i32.const 3664 - i32.const 3616 - i32.const 118 + i32.const 1360 + i32.const 1312 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -2316,8 +302,8 @@ local.get $0 return end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2330,7 +316,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2341,7 +327,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2359,7 +345,7 @@ i32.eqz if i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 23 i32.const 10 call $~lib/builtins/abort @@ -2376,8 +362,8 @@ local.get $0 return end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2392,7 +378,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2403,7 +389,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2449,15 +435,15 @@ local.get $0 return end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 27 i32.const 10 call $~lib/builtins/abort @@ -2472,7 +458,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2483,7 +469,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2529,15 +515,15 @@ local.get $0 return end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 31 i32.const 10 call $~lib/builtins/abort @@ -2550,7 +536,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2561,7 +547,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2574,7 +560,7 @@ i32.eqz if i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 35 i32.const 10 call $~lib/builtins/abort @@ -2585,8 +571,8 @@ call_indirect (type $1) unreachable end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2600,7 +586,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2611,7 +597,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2625,7 +611,7 @@ i32.eqz if i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 39 i32.const 13 call $~lib/builtins/abort @@ -2638,8 +624,8 @@ call_indirect (type $1) unreachable end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2653,7 +639,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2664,7 +650,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2681,15 +667,15 @@ call_indirect (type $1) unreachable end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 44 i32.const 10 call $~lib/builtins/abort @@ -2702,7 +688,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2713,7 +699,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2731,7 +717,7 @@ i32.eqz if i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 48 i32.const 10 call $~lib/builtins/abort @@ -2742,8 +728,8 @@ call_indirect (type $1) unreachable end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2757,7 +743,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2768,7 +754,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2793,142 +779,101 @@ call_indirect (type $1) unreachable end - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1056 - i32.const 3552 + i32.const 1184 i32.const 52 i32.const 10 call $~lib/builtins/abort unreachable ) - (func $~lib/array/Array~visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3812 + i32.const 1468 i32.lt_s if - i32.const 36608 - i32.const 36656 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 - i32.load offset=4 - local.set $1 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (result 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 1468 + i32.lt_s + if + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $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 $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end + i32.eqz + if + i32.const 1248 + i32.const 1312 + i32.const 116 + i32.const 42 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.load offset=4 i32.load - call $~lib/rt/itcms/__visit + local.tee $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/array/Array - block $~lib/array/Array - block $assert-nonnull/Foo - block $~lib/error/Error - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/error/Error $assert-nonnull/Foo $~lib/array/Array $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - unreachable + local.get $0 ) ) diff --git a/tests/compiler/assignment-chain.debug.wat b/tests/compiler/assignment-chain.debug.wat index 124fb88a66..9427163890 100644 --- a/tests/compiler/assignment-chain.debug.wat +++ b/tests/compiler/assignment-chain.debug.wat @@ -2,22 +2,17 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64))) - (type $7 (func (param i32 f64))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i64) (result i32))) - (type $12 (func (result i32))) - (type $13 (func (param f64))) - (type $14 (func (param i32 i32 i32 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)) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i64))) + (type $8 (func (param i32 f64))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (type $11 (func (param f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -26,37 +21,30 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $assignment-chain/C._setter_cnt (mut i32) (i32.const 0)) (global $assignment-chain/C._y (mut f64) (f64.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2476)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35244)) - (global $~lib/memory/__heap_base i32 (i32.const 35244)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 508)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33276)) + (global $~lib/memory/__heap_base i32 (i32.const 33276)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00a\00s\00s\00i\00g\00n\00m\00e\00n\00t\00-\00c\00h\00a\00i\00n\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2448) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00a\00s\00s\00i\00g\00n\00m\00e\00n\00t\00-\00c\00h\00a\00i\00n\00.\00t\00s\00\00\00\00\00\00\00") + (data $9 (i32.const 480) "\06\00\00\00 \00\00\00 \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 "normal_assignment_chain" (func $assignment-chain/normal_assignment_chain)) @@ -64,435 +52,6 @@ (export "static_setter_assignment_chain" (func $assignment-chain/static_setter_assignment_chain)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -557,7 +116,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -627,7 +186,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -644,7 +203,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -674,9 +233,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -743,7 +302,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -895,7 +454,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -915,7 +474,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -978,7 +537,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1131,7 +690,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1148,7 +707,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1237,7 +796,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1280,7 +839,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1298,7 +857,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1366,7 +925,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1483,7 +1042,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1529,7 +1088,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1561,7 +1120,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1805,7 +1364,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2025,7 +1584,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2136,8 +1695,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2239,7 +1798,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2310,7 +1869,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2467,7 +2026,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2582,7 +2141,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2602,7 +2161,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2650,8 +2209,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2750,7 +2309,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -2766,13 +2325,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $assignment-chain/normal_assignment_chain @@ -2787,20 +2346,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35264 - i32.const 35312 + i32.const 33296 + i32.const 33344 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2809,196 +2364,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $assignment-chain/A#constructor (param $this i32) (result i32) (local $1 i32) @@ -3107,7 +2493,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -3268,7 +2654,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 30 i32.const 3 call $~lib/builtins/abort @@ -3286,7 +2672,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 31 i32.const 3 call $~lib/builtins/abort @@ -3297,153 +2683,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3474,16 +2713,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/assignment-chain.release.wat b/tests/compiler/assignment-chain.release.wat index 6afeb59448..590d065e98 100644 --- a/tests/compiler/assignment-chain.release.wat +++ b/tests/compiler/assignment-chain.release.wat @@ -1,12 +1,13 @@ (module (type $0 (func)) (type $1 (func (param i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32 i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,255 +19,32 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $assignment-chain/C._setter_cnt (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36268)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34300)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00&\00\00\00a\00s\00s\00i\00g\00n\00m\00e\00n\00t\00-\00c\00h\00a\00i\00n\00.\00t\00s") - (data $20 (i32.const 3472) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00&\00\00\00a\00s\00s\00i\00g\00n\00m\00e\00n\00t\00-\00c\00h\00a\00i\00n\00.\00t\00s") + (data $9 (i32.const 1504) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "normal_assignment_chain" (func $assignment-chain/normal_assignment_chain)) (export "setter_assignment_chain" (func $assignment-chain/setter_assignment_chain)) (export "static_setter_assignment_chain" (func $assignment-chain/static_setter_assignment_chain)) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3500 - i32.lt_s - if - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -287,7 +65,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -335,7 +113,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -344,7 +122,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$142 + block $__inlined_func$~lib/rt/itcms/Object#unlink$130 local.get $1 i32.load offset=4 i32.const -4 @@ -356,19 +134,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36268 + i32.const 34300 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$142 + br $__inlined_func$~lib/rt/itcms/Object#unlink$130 end local.get $1 i32.load offset=8 @@ -376,7 +154,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -405,13 +183,13 @@ i32.const 1 else local.get $0 - i32.const 3472 + i32.const 1504 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -419,7 +197,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3476 + i32.const 1508 i32.add i32.load i32.const 32 @@ -471,7 +249,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -485,7 +263,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -531,7 +309,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -614,7 +392,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -628,7 +406,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -689,7 +467,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -722,7 +500,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -737,7 +515,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -788,7 +566,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -860,7 +638,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -885,7 +663,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -912,7 +690,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -984,10 +762,10 @@ if unreachable end - i32.const 36272 + i32.const 34304 i32.const 0 i32.store - i32.const 37840 + i32.const 35872 i32.const 0 i32.store loop $for-loop|0 @@ -998,7 +776,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36272 + i32.const 34304 i32.add i32.const 0 i32.store offset=4 @@ -1016,7 +794,7 @@ i32.add i32.const 2 i32.shl - i32.const 36272 + i32.const 34304 i32.add i32.const 0 i32.store offset=96 @@ -1034,14 +812,14 @@ br $for-loop|0 end end - i32.const 36272 - i32.const 37844 + i32.const 34304 + i32.const 35876 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36272 + i32.const 34304 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1126,7 +904,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36268 + i32.const 34300 i32.lt_u if local.get $0 @@ -1215,14 +993,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36268 + i32.const 34300 i32.lt_u if local.get $0 @@ -1245,7 +1023,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36268 + i32.const 34300 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1274,7 +1052,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1358,7 +1136,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1410,7 +1188,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1442,8 +1220,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1453,7 +1231,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1470,7 +1248,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1503,8 +1281,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1606,7 +1384,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1621,7 +1399,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1640,7 +1418,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1759,7 +1537,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -1770,238 +1548,73 @@ memory.size i32.const 16 i32.shl - i32.const 36268 + i32.const 34300 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $assignment-chain/normal_assignment_chain call $assignment-chain/setter_assignment_chain call $assignment-chain/static_setter_assignment_chain ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3500 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3500 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$147 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$147 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3500 + i32.const 1532 i32.lt_s if - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $assignment-chain/normal_assignment_chain (local $0 i32) @@ -2012,7 +1625,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3500 + i32.const 1532 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2027,7 +1640,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3500 + i32.const 1532 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2083,8 +1696,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2096,11 +1709,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3500 + i32.const 1532 i32.lt_s if - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2141,7 +1754,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3500 + i32.const 1532 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2156,7 +1769,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3500 + i32.const 1532 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2219,7 +1832,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 30 i32.const 3 call $~lib/builtins/abort @@ -2232,7 +1845,7 @@ i32.load offset=4 if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 31 i32.const 3 call $~lib/builtins/abort @@ -2244,8 +1857,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2257,11 +1870,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3500 + i32.const 1532 i32.lt_s if - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/bigint-integration.debug.wat b/tests/compiler/bigint-integration.debug.wat index 4765977970..9cc7019e7a 100644 --- a/tests/compiler/bigint-integration.debug.wat +++ b/tests/compiler/bigint-integration.debug.wat @@ -1,2725 +1,32 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i64))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (result i64))) (import "bigint-integration" "externalValue" (global $bigint-integration/externalValue i64)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "bigint-integration" "getExternalValue" (func $bigint-integration/getExternalValue (result i64))) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $bigint-integration/internalValue i64 (i64.const 9007199254740991)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2468)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35236)) - (global $~lib/memory/__heap_base i32 (i32.const 35236)) + (global $~lib/memory/__data_end i32 (i32.const 76)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32844)) + (global $~lib/memory/__heap_base i32 (i32.const 32844)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00b\00i\00g\00i\00n\00t\00-\00i\00n\00t\00e\00g\00r\00a\00t\00i\00o\00n\00.\00t\00s\00\00\00") - (data $20 (i32.const 2448) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00b\00i\00g\00i\00n\00t\00-\00i\00n\00t\00e\00g\00r\00a\00t\00i\00o\00n\00.\00t\00s\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "internalValue" (global $bigint-integration/internalValue)) (export "getInternalValue" (func $bigint-integration/getInternalValue)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:bigint-integration - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $bigint-integration/externalValue i64.const 9007199254740991 i64.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4 i32.const 1 call $~lib/builtins/abort @@ -2731,7 +38,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -2756,92 +63,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35264 - i32.const 35312 + i32.const 32864 + i32.const 32912 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2850,322 +81,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/bigint-integration.release.wat b/tests/compiler/bigint-integration.release.wat index a5dde38c1b..303a8081ad 100644 --- a/tests/compiler/bigint-integration.release.wat +++ b/tests/compiler/bigint-integration.release.wat @@ -1,1752 +1,21 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (result i64))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $0 (func (result i64))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param i32 i32 i32))) (import "bigint-integration" "externalValue" (global $bigint-integration/externalValue i64)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "bigint-integration" "getExternalValue" (func $bigint-integration/getExternalValue (result i64))) - (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 $bigint-integration/internalValue i64 (i64.const 9007199254740991)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36260)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33868)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00*\00\00\00b\00i\00g\00i\00n\00t\00-\00i\00n\00t\00e\00g\00r\00a\00t\00i\00o\00n\00.\00t\00s") - (data $20 (i32.const 3472) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00*\00\00\00b\00i\00g\00i\00n\00t\00-\00i\00n\00t\00e\00g\00r\00a\00t\00i\00o\00n\00.\00t\00s") (export "internalValue" (global $bigint-integration/internalValue)) (export "getInternalValue" (func $bigint-integration/getInternalValue)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$120 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36260 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$120 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3472 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3476 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36272 - i32.const 0 - i32.store - i32.const 37840 - 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 36272 - 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 36272 - 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 36272 - i32.const 37844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36272 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36260 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36260 - 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 - local.tee $0 - i32.const 36260 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3492 - i32.lt_s - if - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $bigint-integration/getInternalValue (result i64) i64.const 9007199254740991 ) @@ -1757,46 +26,13 @@ end i32.const 1 global.set $~started - memory.size - i32.const 16 - i32.shl - i32.const 36260 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $bigint-integration/externalValue i64.const 9007199254740991 i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1805,235 +41,44 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 5 - i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$125 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$125 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1100 i32.lt_s if - i32.const 36288 - i32.const 36336 - i32.const 1 + i32.const 33888 + i32.const 33936 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/bindings/esm.debug.js b/tests/compiler/bindings/esm.debug.js index 37b67ff1a1..e4e2421f4f 100644 --- a/tests/compiler/bindings/esm.debug.js +++ b/tests/compiler/bindings/esm.debug.js @@ -33,6 +33,17 @@ async function instantiate(module, imports = {}) { return new Date().getTimezoneOffset(); })(); }, + abort(message, fileName, lineNumber, columnNumber) { + // ~lib/builtins/__abort_impl(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void + message = __liftString(message >>> 0); + fileName = __liftString(fileName >>> 0); + lineNumber = lineNumber >>> 0; + columnNumber = columnNumber >>> 0; + (() => { + // @external.js + throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); + })(); + }, }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index 380823a390..fe16f22960 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -3,24 +3,21 @@ (type $1 (func (param i32) (result i32))) (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func)) + (type $4 (func)) + (type $5 (func (param i32 i32 i32))) (type $6 (func (result i32))) - (type $7 (func (param i32 i64))) - (type $8 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i64))) (type $9 (func (param i32 i32 f64 f64 f64 f64 f64))) (type $10 (func (param f64) (result f64))) (type $11 (func (param i64 i64) (result i64))) (type $12 (func (result i64))) (type $13 (func (param i32 i32 i64) (result i32))) - (type $14 (func (param i32 i64 i32))) - (type $15 (func (param i64 i32) (result i32))) - (type $16 (func (param i32 i64 i32 i32))) - (type $17 (func (param i32 f32))) - (type $18 (func (param i32 f64))) - (type $19 (func (param i32 i32 i32) (result i32))) - (type $20 (func (param i32 i32 i64))) - (type $21 (func (param i32 i32) (result f32))) + (type $14 (func (param i32 f32))) + (type $15 (func (param i32 f64))) + (type $16 (func (param i32 i32 i32) (result i32))) + (type $17 (func (param i32 i32 i64))) + (type $18 (func (param i32 i32) (result f32))) (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64)) (import "env" "globalThis" (global $bindings/esm/immutableGlobal externref)) (import "env" "globalThis.globalThis" (global $bindings/esm/immutableGlobalNested externref)) @@ -28,6 +25,7 @@ (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) (import "env" "Date.getTimezoneOffset" (func $bindings/esm/Date_getTimezoneOffset (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $bindings/esm/plainGlobal i32 (i32.const 1)) (global $bindings/esm/plainMutableGlobal (mut i32) (i32.const 2)) (global $bindings/esm/stringGlobal i32 (i32.const 32)) @@ -44,6 +42,8 @@ (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -55,13 +55,12 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3120)) - (global $~lib/memory/__data_end i32 (i32.const 3188)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35956)) - (global $~lib/memory/__heap_base i32 (i32.const 35956)) + (global $~lib/rt/__rtti_base i32 (i32.const 1184)) + (global $~lib/memory/__data_end i32 (i32.const 1252)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34020)) + (global $~lib/memory/__heap_base i32 (i32.const 34020)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") @@ -69,34 +68,24 @@ (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00t\00r\00a\00c\00e\00\00\00") (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\004\002\00 \00f\00r\00o\00m\00 \00c\00o\00n\00s\00o\00l\00e\00.\00l\00o\00g\00\00\00\00\00\00\00") - (data $5 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $6 (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $7 (i32.const 268) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 464) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 492) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 556) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 608) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 636) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 732) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 860) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 956) "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 $21 (i32.const 1356) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $22 (i32.const 2412) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $23 (i32.const 2508) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $25 (i32.const 2620) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $26 (i32.const 2684) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $27 (i32.const 2748) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") - (data $28 (i32.const 2812) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $29 (i32.const 2860) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $30 (i32.const 2988) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") - (data $31 (i32.const 3052) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") - (data $32 (i32.const 3120) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\81\08\00\00\01\19\00\00\01\02\00\00$\t\00\00\a4\00\00\00$\n\00\00\02\t\00\00\02A\00\00\00\00\00\00A\00\00\00 \00\00\00") + (data $5 (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $6 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 624) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 748) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 812) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") + (data $18 (i32.const 876) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $19 (i32.const 924) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 1052) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") + (data $21 (i32.const 1116) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") + (data $22 (i32.const 1184) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\81\08\00\00\01\19\00\00\01\02\00\00$\t\00\00\a4\00\00\00$\n\00\00\02\t\00\00\02A\00\00\00\00\00\00A\00\00\00 \00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:bindings/esm~anonymous|0) (export "plainGlobal" (global $bindings/esm/plainGlobal)) @@ -189,15 +178,6 @@ call $~lib/rt/common/OBJECT#get:rtSize return ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -262,7 +242,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -332,7 +312,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -349,7 +329,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -379,9 +359,9 @@ i32.load i32.gt_u if - i32.const 512 - i32.const 576 - i32.const 21 + i32.const 528 + i32.const 592 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -448,7 +428,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 384 + i32.const 400 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -600,7 +580,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -620,7 +600,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -683,7 +663,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -836,7 +816,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -853,7 +833,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -942,7 +922,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -985,7 +965,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1003,7 +983,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1071,7 +1051,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1188,7 +1168,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1234,7 +1214,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1266,7 +1246,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1510,7 +1490,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1730,7 +1710,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1841,8 +1821,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 320 - i32.const 656 + i32.const 336 + i32.const 672 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1944,7 +1924,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2015,7 +1995,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2172,7 +2152,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2287,7 +2267,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2307,7 +2287,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2355,8 +2335,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 320 - i32.const 384 + i32.const 336 + i32.const 400 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2401,420 +2381,13 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 956 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 956 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 956 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 956 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1376 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1376 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2432 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2432 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 + i32.shr_u return ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) @@ -2832,7 +2405,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -3184,8 +2757,8 @@ i32.const 3 i32.eq if - i32.const 3008 - i32.const 384 + i32.const 1072 + i32.const 400 i32.const 338 i32.const 7 call $~lib/builtins/abort @@ -3217,8 +2790,8 @@ i32.const 3 i32.ne if - i32.const 3072 - i32.const 384 + i32.const 1136 + i32.const 400 i32.const 352 i32.const 5 call $~lib/builtins/abort @@ -3305,13 +2878,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 432 + i32.const 448 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 464 + i32.const 480 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 608 + i32.const 624 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace ) @@ -3320,91 +2893,38 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35984 - i32.const 36032 + i32.const 34048 + i32.const 34096 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result 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 - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 288 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out + local.get $1 i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $1 + call $bindings/esm/bufferFunction + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.get $2 ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) + (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3412,184 +2932,45 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - local.get $right - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat + local.get $0 + local.get $1 + call $bindings/esm/stringFunction local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 224 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 256 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 720 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 720 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2528 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) - (func $bindings/esm/bufferFunction (param $a i32) (param $b i32) (result i32) - (local $aByteLength i32) - (local $bByteLength i32) - (local $out i32) - (local $5 i32) + (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result 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 - local.get $a - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $aByteLength - local.get $b - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bByteLength global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $aByteLength - local.get $bByteLength - i32.add - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $out + local.get $1 i32.store offset=4 - local.get $out - local.get $a - local.get $aByteLength - memory.copy - local.get $out - local.get $aByteLength - i32.add - local.get $b - local.get $bByteLength - memory.copy - local.get $out - local.set $5 + local.get $0 + local.get $1 + call $bindings/esm/stringFunctionOptional@varargs + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.get $2 ) - (func $bindings/esm/stringFunction (param $a i32) (param $b i32) (result i32) + (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3597,30 +2978,22 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $a - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - local.get $b - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - call $~lib/string/String.__concat + local.get $0 + local.get $1 + call $bindings/esm/typedarrayFunction local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - return ) - (func $bindings/esm/stringFunctionOptional (param $a i32) (param $b i32) (result i32) + (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3628,189 +3001,106 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $a - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - local.get $b - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - call $~lib/string/String.__concat + local.get $0 + local.get $1 + call $bindings/esm/staticarrayFunction local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - return ) - (func $bindings/esm/stringFunctionOptional@varargs (param $a i32) (param $b i32) (result i32) - (local $2 i32) + (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 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.store + local.get $0 + call $bindings/esm/staticarrayU16 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 64 - local.tee $b - i32.store - end - local.get $a - local.set $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:bindings/esm/staticarrayI64 (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $b - local.set $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $bindings/esm/stringFunctionOptional - local.set $2 + local.get $0 + i32.store + local.get $0 + call $bindings/esm/staticarrayI64 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) - (local $buffer i32) - (local $4 i32) + (func $export:bindings/esm/arrayFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + 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.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength - local.get $length - i32.const 1073741820 - local.get $alignLog2 - i32.shr_u - i32.gt_u - if - i32.const 2592 - i32.const 2640 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $length - local.get $alignLog2 - i32.shl - local.tee $length - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buffer - i32.store offset=8 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $this - local.set $4 + local.get $0 + local.get $1 + call $bindings/esm/arrayFunction + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $buffer - local.set $4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $buffer - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - local.get $length - call $~lib/arraybuffer/ArrayBufferView#set:byteLength - local.get $this - local.set $4 + local.get $0 + local.get $1 + call $bindings/esm/arrayOfStringsFunction + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $2 ) - (func $~lib/typedarray/Uint64Array#constructor (param $this i32) (param $length i32) (result i32) + (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3818,31 +3108,14 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $2 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - local.get $length - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $this - i32.store - local.get $this + local.get $0 + local.get $1 + call $bindings/esm/objectFunction local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3850,34 +3123,30 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Int16Array#get:length (param $this i32) (result i32) - (local $1 i32) + (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store - local.get $this - local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=4 + local.get $0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 1 - i32.shr_u - local.set $1 + call $bindings/esm/internrefFunction + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - return + local.get $2 ) - (func $~lib/typedarray/Float32Array#get:length (param $this i32) (result i32) + (func $export:bindings/esm/functionFunction (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3885,300 +3154,577 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 2 - i32.shr_u + local.get $0 + call $bindings/esm/functionFunction local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - return ) - (func $~lib/typedarray/Int16Array#__get (param $this i32) (param $index i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + 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.store - local.get $index - local.get $this - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 512 - i32.const 2704 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $2 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return ) - (func $~lib/typedarray/Uint64Array#__set (param $this i32) (param $index i32) (param $value i64) - (local $3 i32) + (func $bindings/esm/bufferFunction (param $a i32) (param $b i32) (result i32) + (local $aByteLength i32) + (local $bByteLength i32) + (local $out i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this - local.set $3 + i64.const 0 + i64.store + local.get $a + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 512 - i32.const 2704 - i32.const 1173 - i32.const 64 - call $~lib/builtins/abort - unreachable - end + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $aByteLength + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bByteLength + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $aByteLength + local.get $bByteLength + i32.add + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $out + i32.store offset=4 + local.get $out + local.get $a + local.get $aByteLength + memory.copy + local.get $out + local.get $aByteLength + i32.add + local.get $b + local.get $bByteLength + memory.copy + local.get $out + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.store - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $index - i32.const 3 + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize i32.add - local.get $value - i64.store + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 736 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $6 + return ) - (func $~lib/typedarray/Float32Array#__get (param $this i32) (param $index i32) (result f32) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) (local $2 i32) - (local $3 f32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this + i64.const 0 + i64.store + local.get $left local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 512 - i32.const 2704 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $this + local.get $right local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store + i32.store offset=4 local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - f32.load - local.set $3 + call $~lib/string/String#concat + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return ) - (func $bindings/esm/typedarrayFunction (param $a i32) (param $b i32) (result i32) - (local $out i32) - (local $i i32) - (local $i|4 i32) - (local $5 i32) + (func $bindings/esm/stringFunction (param $a i32) (param $b i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + 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 $a + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $2 + i32.store + local.get $2 + local.get $b + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String.__concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $bindings/esm/stringFunctionOptional (param $a i32) (param $b i32) (result 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 local.get $a - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.store - local.get $5 - call $~lib/typedarray/Int16Array#get:length + local.get $2 local.get $b - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.add - call $~lib/typedarray/Uint64Array#constructor - local.tee $out + local.get $2 i32.store offset=4 + local.get $2 + call $~lib/string/String.__concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $bindings/esm/stringFunctionOptional@varargs (param $a i32) (param $b i32) (result i32) + (local $2 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 - local.set $i - loop $for-loop|0 - local.get $i - local.get $a - local.set $5 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 64 + local.tee $b i32.store - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.lt_s - if - local.get $out - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $i - local.get $a - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $i - call $~lib/typedarray/Int16Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end end + local.get $a + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $b + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $bindings/esm/stringFunctionOptional + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) + (local $buffer i32) + (local $4 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 0 - local.set $i|4 - loop $for-loop|1 - local.get $i|4 - local.get $b - local.set $5 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $length + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 224 + i32.const 272 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $length + local.get $alignLog2 + i32.shl + local.tee $length + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $buffer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $buffer + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $length + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Uint64Array#constructor (param $this i32) (param $length i32) (result 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 + local.get $this + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this i32.store - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.lt_s - if - local.get $out - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $a - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/typedarray/Int16Array#get:length - local.get $i|4 - i32.add - local.get $b - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $i|4 - call $~lib/typedarray/Float32Array#__get - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $i|4 - i32.const 1 - i32.add - local.set $i|4 - br $for-loop|1 - end end - local.get $out - local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $length + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $this + i32.store + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $2 + ) + (func $~lib/typedarray/Int16Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 return ) - (func $~lib/staticarray/StaticArray#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) + (func $~lib/typedarray/Float32Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 2 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/typedarray/Int16Array#__get (param $this i32) (param $index 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 $index + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 528 + i32.const 768 + i32.const 453 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/typedarray/Uint64Array#__set (param $this i32) (param $index i32) (param $value i64) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4195,36 +3741,39 @@ local.get $3 i32.store local.get $3 - call $~lib/staticarray/StaticArray#get:length + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 3 + i32.shr_u i32.ge_u if - i32.const 512 - i32.const 2768 - i32.const 78 - i32.const 41 + i32.const 528 + i32.const 768 + i32.const 1174 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - local.set $value - i32.const 0 - drop local.get $value - local.set $3 + i64.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $~lib/staticarray/StaticArray#__set (param $this i32) (param $index i32) (param $value i32) - (local $3 i32) + (func $~lib/typedarray/Float32Array#__get (param $this i32) (param $index i32) (result f32) + (local $2 i32) + (local $3 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4235,37 +3784,45 @@ i32.store local.get $index local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 - call $~lib/staticarray/StaticArray#get:length + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 2 + i32.shr_u i32.ge_u if - i32.const 512 - i32.const 2768 - i32.const 93 - i32.const 41 + i32.const 528 + i32.const 768 + i32.const 1305 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index - local.get $value - call $~lib/staticarray/StaticArray#__uset + i32.const 2 + i32.shl + i32.add + f32.load + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + return ) - (func $bindings/esm/staticarrayFunction (param $a i32) (param $b i32) (result i32) - (local $c i32) + (func $bindings/esm/typedarrayFunction (param $a i32) (param $b i32) (result i32) + (local $out i32) (local $i i32) (local $i|4 i32) (local $5 i32) @@ -4288,17 +3845,17 @@ local.get $5 i32.store local.get $5 - call $~lib/staticarray/StaticArray#get:length + call $~lib/typedarray/Int16Array#get:length local.get $b local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - call $~lib/staticarray/StaticArray#get:length + call $~lib/typedarray/Float32Array#get:length i32.add - call $~lib/staticarray/StaticArray#constructor - local.tee $c + call $~lib/typedarray/Uint64Array#constructor + local.tee $out i32.store offset=4 i32.const 0 local.set $i @@ -4310,10 +3867,10 @@ local.get $5 i32.store local.get $5 - call $~lib/staticarray/StaticArray#get:length + call $~lib/typedarray/Int16Array#get:length i32.lt_s if - local.get $c + local.get $out local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 @@ -4327,8 +3884,9 @@ i32.store offset=8 local.get $5 local.get $i - call $~lib/staticarray/StaticArray#__get - call $~lib/staticarray/StaticArray#__set + call $~lib/typedarray/Int16Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $i i32.const 1 i32.add @@ -4346,213 +3904,51 @@ local.get $5 i32.store local.get $5 - call $~lib/staticarray/StaticArray#get:length + call $~lib/typedarray/Float32Array#get:length i32.lt_s if - local.get $c + local.get $out local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 local.get $a - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/staticarray/StaticArray#get:length - local.get $i|4 - i32.add - local.get $b - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $i|4 - call $~lib/staticarray/StaticArray#__get - call $~lib/staticarray/StaticArray#__set - local.get $i|4 - i32.const 1 - i32.add - local.set $i|4 - br $for-loop|1 - end - end - local.get $c - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - ) - (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $bufferSize i32) - (local $buffer i32) - (local $6 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 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ - local.get $length - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 2592 - i32.const 2832 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $length - 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 $bufferSize - global.get $~lib/memory/__stack_pointer - local.get $bufferSize - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buffer - i32.store offset=8 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $buffer - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $buffer - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $bufferSize - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $length - call $~lib/array/Array#set:length_ - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/array/Array#get:length (param $this 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 $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length_ - local.set $1 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.get $i|4 + i32.add + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + local.get $i|4 + call $~lib/typedarray/Float32Array#__get + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|1 + end + end + local.get $out + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $5 return ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (func $~lib/staticarray/StaticArray#__get (param $this i32) (param $index i32) (result i32) (local $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -4570,23 +3966,17 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:length_ + call $~lib/staticarray/StaticArray#get:length i32.ge_u if - i32.const 512 - i32.const 2832 - i32.const 114 - i32.const 42 + i32.const 528 + i32.const 832 + i32.const 80 + i32.const 41 call $~lib/builtins/abort unreachable end local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -4604,126 +3994,7 @@ local.get $3 return ) - (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) - (local $oldCapacity i32) - (local $oldData i32) - (local $6 i32) - (local $7 i32) - (local $newCapacity i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $newData i32) - (local $14 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 $array - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - local.set $oldCapacity - local.get $newSize - local.get $oldCapacity - local.get $alignLog2 - i32.shr_u - i32.gt_u - if - local.get $newSize - i32.const 1073741820 - local.get $alignLog2 - i32.shr_u - i32.gt_u - if - i32.const 2592 - i32.const 2832 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $array - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $oldData - local.get $newSize - local.tee $6 - i32.const 8 - local.tee $7 - local.get $6 - local.get $7 - i32.gt_u - select - local.get $alignLog2 - i32.shl - local.set $newCapacity - local.get $canGrow - if - local.get $oldCapacity - i32.const 1 - i32.shl - local.tee $9 - i32.const 1073741820 - local.tee $10 - local.get $9 - local.get $10 - i32.lt_u - select - local.tee $11 - local.get $newCapacity - local.tee $12 - local.get $11 - local.get $12 - i32.gt_u - select - local.set $newCapacity - end - local.get $oldData - local.get $newCapacity - call $~lib/rt/itcms/__renew - local.set $newData - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $newData - local.get $oldData - i32.ne - if - local.get $array - local.get $newData - i32.store - local.get $array - local.get $newData - i32.store offset=4 - local.get $array - local.get $newData - i32.const 0 - call $~lib/rt/itcms/__link - end - local.get $array - local.get $newCapacity - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) + (func $~lib/staticarray/StaticArray#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4740,37 +4011,15 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:length_ + call $~lib/staticarray/StaticArray#get:length i32.ge_u if - local.get $index - i32.const 0 - i32.lt_s - if - i32.const 512 - i32.const 2832 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.get $index - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $index - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ + i32.const 528 + i32.const 832 + i32.const 95 + i32.const 41 + call $~lib/builtins/abort + unreachable end local.get $this local.set $3 @@ -4778,21 +4027,15 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:dataStart local.get $index - i32.const 2 - i32.shl - i32.add local.get $value - i32.store - i32.const 0 - drop + call $~lib/staticarray/StaticArray#__uset global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $bindings/esm/arrayFunction (param $a i32) (param $b i32) (result i32) + (func $bindings/esm/staticarrayFunction (param $a i32) (param $b i32) (result i32) (local $c i32) (local $i i32) (local $i|4 i32) @@ -4816,16 +4059,16 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length local.get $b local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length i32.add - call $~lib/array/Array#constructor + call $~lib/staticarray/StaticArray#constructor local.tee $c i32.store offset=4 i32.const 0 @@ -4838,7 +4081,7 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length i32.lt_s if local.get $c @@ -4855,8 +4098,8 @@ i32.store offset=8 local.get $5 local.get $i - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/staticarray/StaticArray#__get + call $~lib/staticarray/StaticArray#__set local.get $i i32.const 1 i32.add @@ -4874,7 +4117,7 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length i32.lt_s if local.get $c @@ -4889,7 +4132,7 @@ local.get $5 i32.store offset=8 local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length local.get $i|4 i32.add local.get $b @@ -4899,8 +4142,8 @@ i32.store offset=8 local.get $5 local.get $i|4 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/staticarray/StaticArray#__get + call $~lib/staticarray/StaticArray#__set local.get $i|4 i32.const 1 i32.add @@ -4917,7 +4160,7 @@ local.get $5 return ) - (func $~lib/array/Array<~lib/string/String>#constructor (param $this i32) (param $length i32) (result i32) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) (local $bufferSize i32) @@ -4939,7 +4182,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 12 + i32.const 11 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -4951,7 +4194,7 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:buffer + call $~lib/array/Array#set:buffer local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -4959,7 +4202,7 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:dataStart + call $~lib/array/Array#set:dataStart local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -4967,7 +4210,7 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:byteLength + call $~lib/array/Array#set:byteLength local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -4975,16 +4218,16 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:length_ + call $~lib/array/Array#set:length_ local.get $length i32.const 1073741820 i32.const 2 i32.shr_u i32.gt_u if - i32.const 2592 - i32.const 2832 - i32.const 70 + i32.const 224 + i32.const 896 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -5022,7 +4265,7 @@ local.get $6 i32.store offset=12 local.get $6 - call $~lib/array/Array<~lib/string/String>#set:buffer + call $~lib/array/Array#set:buffer local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -5030,7 +4273,7 @@ i32.store offset=4 local.get $6 local.get $buffer - call $~lib/array/Array<~lib/string/String>#set:dataStart + call $~lib/array/Array#set:dataStart local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -5038,7 +4281,7 @@ i32.store offset=4 local.get $6 local.get $bufferSize - call $~lib/array/Array<~lib/string/String>#set:byteLength + call $~lib/array/Array#set:byteLength local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -5046,7 +4289,7 @@ i32.store offset=4 local.get $6 local.get $length - call $~lib/array/Array<~lib/string/String>#set:length_ + call $~lib/array/Array#set:length_ local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -5055,7 +4298,7 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $~lib/array/Array<~lib/string/String>#get:length (param $this i32) (result i32) + (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5071,7 +4314,7 @@ local.get $1 i32.store local.get $1 - call $~lib/array/Array<~lib/string/String>#get:length_ + call $~lib/array/Array#get:length_ local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5080,17 +4323,17 @@ local.get $1 return ) - (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) (local $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 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.store local.get $index local.get $this local.set $3 @@ -5098,56 +4341,164 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/string/String>#get:length_ + call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 512 - i32.const 2832 - i32.const 114 + i32.const 528 + i32.const 896 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $this local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/string/String>#get:dataStart + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl i32.add i32.load - local.tee $value - i32.store offset=4 - i32.const 1 - drop + local.set $value i32.const 0 - i32.eqz drop local.get $value - i32.eqz - if - i32.const 2880 - i32.const 2832 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - local.get $value local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $3 return ) - (func $~lib/array/Array<~lib/string/String>#__set (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) + (local $oldCapacity i32) + (local $oldData i32) + (local $6 i32) + (local $7 i32) + (local $newCapacity i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $newData i32) + (local $14 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 $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + local.set $oldCapacity + local.get $newSize + local.get $oldCapacity + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + local.get $newSize + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 224 + i32.const 896 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $oldData + local.get $newSize + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $alignLog2 + i32.shl + local.set $newCapacity + local.get $canGrow + if + local.get $oldCapacity + i32.const 1 + i32.shl + local.tee $9 + i32.const 1073741820 + local.tee $10 + local.get $9 + local.get $10 + i32.lt_u + select + local.tee $11 + local.get $newCapacity + local.tee $12 + local.get $11 + local.get $12 + i32.gt_u + select + local.set $newCapacity + end + local.get $oldData + local.get $newCapacity + call $~lib/rt/itcms/__renew + local.set $newData + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $newData + local.get $oldData + i32.ne + if + local.get $array + local.get $newData + i32.store + local.get $array + local.get $newData + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $array + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $array + local.get $newCapacity + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5164,16 +4515,16 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/string/String>#get:length_ + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index i32.const 0 i32.lt_s if - i32.const 512 - i32.const 2832 - i32.const 130 + i32.const 528 + i32.const 896 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -5194,7 +4545,7 @@ local.get $index i32.const 1 i32.add - call $~lib/array/Array<~lib/string/String>#set:length_ + call $~lib/array/Array#set:length_ end local.get $this local.set $3 @@ -5202,31 +4553,27 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/string/String>#get:dataStart + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl i32.add local.get $value i32.store - i32.const 1 + i32.const 0 drop - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $bindings/esm/arrayOfStringsFunction (param $a i32) (param $b i32) (result i32) + (func $bindings/esm/arrayFunction (param $a i32) (param $b i32) (result i32) (local $c i32) (local $i i32) (local $i|4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -5234,8 +4581,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 local.get $a @@ -5244,16 +4591,16 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length local.get $b local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length i32.add - call $~lib/array/Array<~lib/string/String>#constructor + call $~lib/array/Array#constructor local.tee $c i32.store offset=4 i32.const 0 @@ -5266,7 +4613,7 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length i32.lt_s if local.get $c @@ -5280,16 +4627,11 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 - local.get $5 - local.get $i - call $~lib/array/Array<~lib/string/String>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=8 local.get $5 - call $~lib/array/Array<~lib/string/String>#__set + local.get $i + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $i i32.const 1 i32.add @@ -5307,7 +4649,7 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length i32.lt_s if local.get $c @@ -5320,25 +4662,20 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 + i32.store offset=8 local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length local.get $i|4 i32.add local.get $b local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 - local.get $5 - local.get $i|4 - call $~lib/array/Array<~lib/string/String>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=8 local.get $5 - call $~lib/array/Array<~lib/string/String>#__set + local.get $i|4 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $i|4 i32.const 1 i32.add @@ -5349,399 +4686,243 @@ local.get $c local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $5 return ) - (func $bindings/esm/PlainObject#constructor (param $this i32) (result i32) - (local $1 i32) + (func $~lib/array/Array<~lib/string/String>#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/object/Object#constructor - local.tee $this - i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:a - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:b - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:c - local.get $this - local.set $1 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i64.const 0 - call $bindings/esm/PlainObject#set:d + i64.store offset=8 local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:e + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $bindings/esm/PlainObject#set:f + call $~lib/array/Array<~lib/string/String>#set:buffer local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $bindings/esm/PlainObject#set:g - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i64.const 0 - call $bindings/esm/PlainObject#set:h + call $~lib/array/Array<~lib/string/String>#set:dataStart local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $bindings/esm/PlainObject#set:i + call $~lib/array/Array<~lib/string/String>#set:byteLength local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $bindings/esm/PlainObject#set:j - local.get $this - local.set $1 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 224 + i32.const 896 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + 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 $bufferSize global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:k + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - f32.const 0 - call $bindings/esm/PlainObject#set:l - local.get $this - local.set $1 + local.get $6 + local.get $buffer + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const 0 - call $bindings/esm/PlainObject#set:m + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array<~lib/string/String>#set:buffer local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:n + local.get $6 + local.get $buffer + call $~lib/array/Array<~lib/string/String>#set:dataStart local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:o + local.get $6 + local.get $bufferSize + call $~lib/array/Array<~lib/string/String>#set:byteLength local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:p + local.get $6 + local.get $length + call $~lib/array/Array<~lib/string/String>#set:length_ local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $6 ) - (func $bindings/esm/objectFunction (param $a i32) (param $b i32) (result i32) - (local $ref i32) - (local $3 i32) + (func $~lib/array/Array<~lib/string/String>#get:length (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 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/memory/__stack_pointer i32.const 0 - call $bindings/esm/PlainObject#constructor - local.tee $ref i32.store - local.get $ref - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $a - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $bindings/esm/PlainObject#get:a - local.get $b - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $bindings/esm/PlainObject#get:a - i32.add - call $bindings/esm/PlainObject#set:a - local.get $ref - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $a - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $bindings/esm/PlainObject#get:b - local.get $b - local.set $3 + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $bindings/esm/PlainObject#get:b - i32.add - call $bindings/esm/PlainObject#set:b - local.get $ref - local.set $3 + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/string/String>#get:length_ + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length_ + i32.ge_u if - i32.const 752 - i32.const 880 - i32.const 350 - i32.const 5 + i32.const 528 + i32.const 896 + i32.const 116 + i32.const 42 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $value i32.eqz if i32.const 944 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end + i32.const 896 + i32.const 120 + i32.const 40 + call $~lib/builtins/abort + unreachable end - local.get $out - local.set $12 + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $3 return ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) - (local $buffer i32) + (func $~lib/array/Array<~lib/string/String>#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5751,386 +4932,564 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $length - i32.const 1073741820 - i32.gt_u + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length_ + i32.ge_u if - i32.const 2592 - i32.const 2640 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 528 + i32.const 896 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array<~lib/string/String>#set:length_ end + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $length - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buffer + local.get $3 i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.get $index i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental + i32.shl + i32.add + local.get $value + i32.store + i32.const 1 + drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory i32.ne drop - local.get $buffer - local.set $3 + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $~lib/staticarray/StaticArray#constructor (param $this i32) (param $length i32) (result i32) - (local $outSize i32) - (local $out i32) - (local $4 i32) + (func $bindings/esm/arrayOfStringsFunction (param $a i32) (param $b i32) (result i32) + (local $c i32) + (local $i i32) + (local $i|4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $a + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store - local.get $length - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 2592 - i32.const 2768 - i32.const 51 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + i32.add + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $c + i32.store offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $a + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + i32.lt_s + if + local.get $c + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $i + local.get $a + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + local.get $i + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/array/Array<~lib/string/String>#__set + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + i32.const 0 + local.set $i|4 + loop $for-loop|1 + local.get $i|4 + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + i32.lt_s + if + local.get $c + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $a + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + local.get $i|4 + i32.add + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + local.get $i|4 + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/array/Array<~lib/string/String>#__set + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|1 + end end - local.get $length - i32.const 2 - i32.shl - local.set $outSize - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $out - local.set $4 + local.get $c + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) - (func $~lib/object/Object#constructor (param $this i32) (result i32) + (func $bindings/esm/PlainObject#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store local.get $this i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 + i32.const 68 + i32.const 13 call $~lib/rt/itcms/__new local.tee $this i32.store end + global.get $~lib/memory/__stack_pointer local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - ) - (func $bindings/esm/NonPlainObject#constructor (param $this 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 offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this i32.store local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - ) - (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result 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 - local.get $0 - i32.store + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:a + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/bufferFunction - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result 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 - local.get $0 - i32.store + i32.const 0 + call $bindings/esm/PlainObject#set:b + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/stringFunction - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result 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 - local.get $0 - i32.store + i32.const 0 + call $bindings/esm/PlainObject#set:c + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/stringFunctionOptional@varargs - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + i64.const 0 + call $bindings/esm/PlainObject#set:d + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:e + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/typedarrayFunction - local.set $2 + i32.const 0 + call $bindings/esm/PlainObject#set:f + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:g + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $bindings/esm/PlainObject#set:h + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:i + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/staticarrayFunction - local.set $2 + i32.const 0 + call $bindings/esm/PlainObject#set:j + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) - (local $1 i32) + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:k + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $1 + i32.store offset=4 + local.get $1 + f32.const 0 + call $bindings/esm/PlainObject#set:l + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $bindings/esm/staticarrayU16 + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 0 + call $bindings/esm/PlainObject#set:m + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - ) - (func $export:bindings/esm/staticarrayI64 (param $0 i32) (result i32) - (local $1 i32) + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:n + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:o + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $bindings/esm/staticarrayI64 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:p + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $export:bindings/esm/arrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $bindings/esm/objectFunction (param $a i32) (param $b i32) (result i32) + (local $ref i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $bindings/esm/PlainObject#constructor + local.tee $ref i32.store + local.get $ref + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/arrayFunction - local.set $2 + local.get $3 + local.get $a + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 + i32.store offset=8 + local.get $3 + call $bindings/esm/PlainObject#get:a + local.get $b + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $bindings/esm/PlainObject#get:a + i32.add + call $bindings/esm/PlainObject#set:a + local.get $ref + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $a + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $bindings/esm/PlainObject#get:b + local.get $b + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $bindings/esm/PlainObject#get:b + i32.add + call $bindings/esm/PlainObject#set:b + local.get $ref + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 + return ) - (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) + (local $buffer i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store + local.get $length + i32.const 1073741820 + i32.gt_u + if + i32.const 224 + i32.const 272 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/arrayOfStringsFunction - local.set $2 + local.get $length + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $buffer + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 + return ) - (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/staticarray/StaticArray#constructor (param $this i32) (param $length i32) (result i32) + (local $outSize i32) + (local $out i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 224 + i32.const 832 + i32.const 53 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + i32.const 2 + i32.shl + local.set $outSize global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/objectFunction - local.set $2 - global.get $~lib/memory/__stack_pointer + local.get $outSize i32.const 8 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $out + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 + return ) - (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/object/Object#constructor (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/internrefFunction - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) - (func $export:bindings/esm/functionFunction (param $0 i32) (result i32) + (func $bindings/esm/NonPlainObject#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6138,10 +5497,19 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - local.get $0 - call $bindings/esm/functionFunction + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6165,28 +5533,22 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 512 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2592 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2880 + i32.const 528 local.get $0 call $~lib/rt/itcms/__visit - i32.const 320 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 3008 + i32.const 944 local.get $0 call $~lib/rt/itcms/__visit - i32.const 3072 + i32.const 336 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1376 + i32.const 1072 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2432 + i32.const 1136 local.get $0 call $~lib/rt/itcms/__visit ) @@ -6371,6 +5733,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6395,6 +5761,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -6424,6 +5794,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/bindings/esm.release.js b/tests/compiler/bindings/esm.release.js index e1c1a18a45..193f7090cf 100644 --- a/tests/compiler/bindings/esm.release.js +++ b/tests/compiler/bindings/esm.release.js @@ -33,6 +33,17 @@ async function instantiate(module, imports = {}) { return new Date().getTimezoneOffset(); })(); }, + abort(message, fileName, lineNumber, columnNumber) { + // ~lib/builtins/__abort_impl(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void + message = __liftString(message >>> 0); + fileName = __liftString(fileName >>> 0); + lineNumber = lineNumber >>> 0; + columnNumber = columnNumber >>> 0; + (() => { + // @external.js + throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); + })(); + }, }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index 1241e06a29..137a174549 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -6,17 +6,18 @@ (type $4 (func)) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $9 (func (param f64) (result f64))) - (type $10 (func (param i64 i64) (result i64))) - (type $11 (func (result i64))) - (type $12 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64))) + (type $9 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $10 (func (param f64) (result f64))) + (type $11 (func (param i64 i64) (result i64))) + (type $12 (func (result i64))) (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64)) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) (import "env" "Date.getTimezoneOffset" (func $bindings/esm/Date_getTimezoneOffset (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $bindings/esm/plainGlobal i32 (i32.const 1)) (global $bindings/esm/plainMutableGlobal (mut i32) (i32.const 2)) (global $bindings/esm/stringGlobal i32 (i32.const 1056)) @@ -39,8 +40,8 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 4144)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36980)) + (global $~lib/rt/__rtti_base i32 (i32.const 2208)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35044)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") @@ -53,55 +54,36 @@ (data $3.1 (i32.const 1144) "\02\00\00\00\n\00\00\00t\00r\00a\00c\00e") (data $4 (i32.const 1164) "<") (data $4.1 (i32.const 1176) "\02\00\00\00&\00\00\004\002\00 \00f\00r\00o\00m\00 \00c\00o\00n\00s\00o\00l\00e\00.\00l\00o\00g") - (data $5 (i32.const 1228) "\1c") - (data $5.1 (i32.const 1240) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $6 (i32.const 1260) "\1c") - (data $6.1 (i32.const 1272) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $7 (i32.const 1292) "\1c") - (data $7.1 (i32.const 1304) "\02") - (data $8 (i32.const 1324) "<") - (data $8.1 (i32.const 1336) "\02\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 $9 (i32.const 1388) "<") - (data $9.1 (i32.const 1400) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $12 (i32.const 1516) "<") - (data $12.1 (i32.const 1528) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $13 (i32.const 1580) ",") - (data $13.1 (i32.const 1592) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $15 (i32.const 1660) "<") - (data $15.1 (i32.const 1672) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $16 (i32.const 1724) "\1c") - (data $16.1 (i32.const 1736) "\02\00\00\00\02\00\00\00:") - (data $17 (i32.const 1756) "|") - (data $17.1 (i32.const 1768) "\02\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 $18 (i32.const 1884) "<") - (data $18.1 (i32.const 1896) "\02\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 $19 (i32.const 1948) "\1c") - (data $19.1 (i32.const 1960) "\02\00\00\00\02\00\00\000") - (data $20 (i32.const 1980) "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 $21 (i32.const 2380) "\1c\04") - (data $21.1 (i32.const 2392) "\02\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 $22 (i32.const 3436) "\\") - (data $22.1 (i32.const 3448) "\02\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 $23 (i32.const 3532) "<") - (data $23.1 (i32.const 3544) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $24 (i32.const 3596) ",") - (data $24.1 (i32.const 3608) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $25 (i32.const 3644) "<") - (data $25.1 (i32.const 3656) "\02\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 $26 (i32.const 3708) "<") - (data $26.1 (i32.const 3720) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") - (data $27 (i32.const 3772) "<") - (data $27.1 (i32.const 3784) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") - (data $28 (i32.const 3836) ",") - (data $28.1 (i32.const 3848) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $29 (i32.const 3884) "|") - (data $29.1 (i32.const 3896) "\02\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 $30 (i32.const 4012) "<") - (data $30.1 (i32.const 4024) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") - (data $31 (i32.const 4076) "<") - (data $31.1 (i32.const 4088) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") - (data $32 (i32.const 4144) "\10\00\00\00 \00\00\00 \00\00\00 ") - (data $32.1 (i32.const 4168) "\81\08\00\00\01\19\00\00\01\02\00\00$\t\00\00\a4\00\00\00$\n\00\00\02\t\00\00\02A\00\00\00\00\00\00A\00\00\00 ") + (data $5 (i32.const 1228) ",") + (data $5.1 (i32.const 1240) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $6 (i32.const 1276) "<") + (data $6.1 (i32.const 1288) "\02\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 $7 (i32.const 1340) "<") + (data $7.1 (i32.const 1352) "\02\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 $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $11 (i32.const 1532) "<") + (data $11.1 (i32.const 1544) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $12 (i32.const 1596) ",") + (data $12.1 (i32.const 1608) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $14 (i32.const 1676) "<") + (data $14.1 (i32.const 1688) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $15 (i32.const 1740) "\1c") + (data $15.1 (i32.const 1752) "\02") + (data $16 (i32.const 1772) "<") + (data $16.1 (i32.const 1784) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data $17 (i32.const 1836) "<") + (data $17.1 (i32.const 1848) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") + (data $18 (i32.const 1900) ",") + (data $18.1 (i32.const 1912) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $19 (i32.const 1948) "|") + (data $19.1 (i32.const 1960) "\02\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 $20 (i32.const 2076) "<") + (data $20.1 (i32.const 2088) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") + (data $21 (i32.const 2140) "<") + (data $21.1 (i32.const 2152) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") + (data $22 (i32.const 2208) "\10\00\00\00 \00\00\00 \00\00\00 ") + (data $22.1 (i32.const 2232) "\81\08\00\00\01\19\00\00\01\02\00\00$\t\00\00\a4\00\00\00$\n\00\00\02\t\00\00\02A\00\00\00\00\00\00A\00\00\00 ") (export "plainGlobal" (global $bindings/esm/plainGlobal)) (export "plainMutableGlobal" (global $bindings/esm/plainMutableGlobal)) (export "stringGlobal" (global $bindings/esm/stringGlobal)) @@ -165,21 +147,17 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1536 + i32.const 1552 call $~lib/rt/itcms/__visit - i32.const 3616 - call $~lib/rt/itcms/__visit - i32.const 3904 - call $~lib/rt/itcms/__visit - i32.const 1344 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 4032 + i32.const 1968 call $~lib/rt/itcms/__visit - i32.const 4096 + i32.const 1360 call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 2096 call $~lib/rt/itcms/__visit - i32.const 3456 + i32.const 2160 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -200,7 +178,7 @@ i32.ne if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -232,13 +210,13 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36980 + i32.const 35044 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -252,7 +230,7 @@ i32.eqz if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -284,7 +262,7 @@ i32.eqz if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -306,13 +284,13 @@ i32.const 1 else local.get $2 - i32.const 4144 + i32.const 2208 i32.load i32.gt_u if - i32.const 1536 - i32.const 1600 - i32.const 21 + i32.const 1552 + i32.const 1616 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -320,7 +298,7 @@ local.get $2 i32.const 2 i32.shl - i32.const 4148 + i32.const 2212 i32.add i32.load i32.const 32 @@ -391,7 +369,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -405,7 +383,7 @@ i32.lt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -451,7 +429,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -534,7 +512,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -548,7 +526,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -609,7 +587,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -642,7 +620,7 @@ i32.lt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -657,7 +635,7 @@ i32.ne if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -708,7 +686,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -780,7 +758,7 @@ i64.lt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -805,7 +783,7 @@ i32.gt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -832,7 +810,7 @@ i32.gt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -904,10 +882,10 @@ if unreachable end - i32.const 36992 + i32.const 35056 i32.const 0 i32.store - i32.const 38560 + i32.const 36624 i32.const 0 i32.store loop $for-loop|0 @@ -918,7 +896,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36992 + i32.const 35056 i32.add i32.const 0 i32.store offset=4 @@ -936,7 +914,7 @@ i32.add i32.const 2 i32.shl - i32.const 36992 + i32.const 35056 i32.add i32.const 0 i32.store offset=96 @@ -954,14 +932,14 @@ br $for-loop|0 end end - i32.const 36992 - i32.const 38564 + i32.const 35056 + i32.const 36628 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36992 + i32.const 35056 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1046,7 +1024,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36980 + i32.const 35044 i32.lt_u if local.get $0 @@ -1135,14 +1113,14 @@ i32.ne if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36980 + i32.const 35044 i32.lt_u if local.get $0 @@ -1165,7 +1143,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36980 + i32.const 35044 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1194,7 +1172,7 @@ end if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1278,7 +1256,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1330,7 +1308,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1362,8 +1340,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1344 - i32.const 1408 + i32.const 1360 + i32.const 1424 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1373,7 +1351,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$70 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1390,7 +1368,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$70 end local.get $2 i32.const 0 @@ -1423,8 +1401,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1344 - i32.const 1680 + i32.const 1360 + i32.const 1696 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1526,7 +1504,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1541,7 +1519,7 @@ i32.gt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1560,7 +1538,7 @@ i32.and if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1665,204 +1643,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$75 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1968 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$75 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1980 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1980 - 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 1980 - 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 1980 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -1874,7 +1654,7 @@ i32.eqz if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1929,11 +1709,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s if - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1970,8 +1750,8 @@ i32.const 3 i32.eq if - i32.const 4032 - i32.const 1408 + i32.const 2096 + i32.const 1424 i32.const 338 i32.const 7 call $~lib/builtins/abort @@ -2023,8 +1803,8 @@ i32.const 3 i32.ne if - i32.const 4096 - i32.const 1408 + i32.const 2160 + i32.const 1424 i32.const 352 i32.const 5 call $~lib/builtins/abort @@ -2128,53 +1908,51 @@ memory.size i32.const 16 i32.shl - i32.const 36980 + i32.const 35044 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1460 - i32.const 1456 + i32.const 1476 + i32.const 1472 i32.store - i32.const 1464 - i32.const 1456 + i32.const 1480 + i32.const 1472 i32.store - i32.const 1456 + i32.const 1472 global.set $~lib/rt/itcms/pinSpace - i32.const 1492 - i32.const 1488 + i32.const 1508 + i32.const 1504 i32.store - i32.const 1496 - i32.const 1488 + i32.const 1512 + i32.const 1504 i32.store - i32.const 1488 + i32.const 1504 global.set $~lib/rt/itcms/toSpace - i32.const 1636 - i32.const 1632 + i32.const 1652 + i32.const 1648 i32.store - i32.const 1640 - i32.const 1632 + i32.const 1656 + i32.const 1648 i32.store - i32.const 1632 + i32.const 1648 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) (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 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2185,199 +1963,111 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $2 i32.store local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const -2 - i32.and - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$288 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1312 - local.set $0 - br $__inlined_func$~lib/string/String#concat$288 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $4 + local.get $2 + i32.add + local.set $5 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 local.get $0 - return - end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1248 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1280 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1744 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=28 - local.get $1 + memory.copy local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1744 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.add local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 + local.get $4 + memory.copy global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end - local.get $0 - i32.const 3552 - i32.const 2626 - i32.const 5 + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable ) - (func $bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result 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 4212 + i32.const 2276 i32.lt_s if - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2385,355 +2075,322 @@ i32.store offset=4 local.get $0 local.get $1 - call $~lib/string/String.__concat + call $bindings/esm/stringFunction global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) + (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 1088 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $bindings/esm/stringFunction + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 + i32.const 35072 + i32.const 35120 i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#get:length (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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 1536 - i32.const 3728 - i32.const 1173 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 i32) + (local $4 i32) + (local $5 f32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store - block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 - i32.add - local.set $5 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + 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/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.tee $2 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $4 + i32.add + local.set $6 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $6 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 3 + i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $1 + local.get $6 + i32.store + local.get $1 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 0 i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u if - i32.const 3616 - i32.const 3664 - i32.const 19 - i32.const 57 + i32.const 1552 + i32.const 1792 + i32.const 453 + i32.const 64 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 3 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $2 - local.get $5 + local.get $0 i32.store - local.get $2 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor - end - br $folding-inner1 - end - local.tee $2 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - 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 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1536 - i32.const 3728 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $3 - local.get $5 + local.get $4 i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set local.get $3 @@ -2747,15 +2404,15 @@ local.set $3 loop $for-loop|1 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/typedarray/Float32Array#get:length local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -2764,56 +2421,56 @@ call $~lib/typedarray/Int16Array#get:length local.get $3 i32.add - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 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 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $3 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.ge_u if - i32.const 1536 - i32.const 3728 - i32.const 1304 + i32.const 1552 + i32.const 1792 + i32.const 1305 i32.const 64 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add f32.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $1 local.get $4 + local.get $5 i64.trunc_sat_f32_u call $~lib/typedarray/Uint64Array#__set local.get $3 @@ -2827,545 +2484,246 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 return end - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/staticarray/StaticArray#__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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1536 - i32.const 3792 - i32.const 78 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1536 - i32.const 3792 - i32.const 93 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#get:length (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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1536 - i32.const 3856 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 2 - i32.shr_u - i32.gt_u - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + 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/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.add + local.set $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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $4 i32.const 268435455 i32.gt_u if - i32.const 3616 - i32.const 3856 - i32.const 19 - i32.const 48 + i32.const 1248 + i32.const 1856 + i32.const 53 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $4 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$262 - i32.const 1073741820 - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - i32.lt_u - select - local.tee $3 local.get $0 - i32.load - local.tee $2 i32.const 20 i32.sub - local.tee $4 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $4 - local.get $3 - i32.store offset=16 local.get $2 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$262 + local.get $0 + local.get $2 + call $~lib/staticarray/StaticArray#__get + call $~lib/staticarray/StaticArray#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $3 - local.get $4 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $2 - local.get $3 - local.get $4 - i32.load offset=16 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_u - select - memory.copy end - local.get $1 - local.get $2 - i32.ne - if - local.get $0 + i32.const 0 + local.set $2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $4 + local.get $3 + local.get $1 + local.get $2 + call $~lib/staticarray/StaticArray#__get + call $~lib/staticarray/StaticArray#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end end - local.get $0 - local.get $3 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + local.get $4 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $export:bindings/esm/staticarrayU16 (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 4212 + i32.const 2276 i32.lt_s if - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.store - 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 1536 - i32.const 3856 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1536 - i32.const 3856 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 offset=4 - local.get $0 - i32.eqz - if - i32.const 3904 - i32.const 3856 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1536 - i32.const 3856 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/arrayFunction (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 - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3373,138 +2731,243 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 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/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $2 + call $~lib/array/Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $4 - local.get $2 + call $~lib/array/Array#get:length + local.get $4 i32.add local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 i32.const 0 i32.store + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 local.get $5 - i32.const 1073741820 + i32.const 268435455 i32.gt_u if - i32.const 3616 - i32.const 3664 - i32.const 52 - i32.const 43 + i32.const 1248 + i32.const 1920 + i32.const 72 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 8 local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 - i32.store + local.tee $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $6 + local.get $4 + i32.store + local.get $6 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 local.get $5 - local.get $0 - local.get $2 - memory.copy - local.get $2 - local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.get $1 - local.get $4 - memory.copy + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $6 + local.get $2 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $6 + local.get $3 + local.get $1 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 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 - local.get $5 + local.get $6 return end - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/stringFunction - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/arrayOfStringsFunction (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 - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3512,467 +2975,143 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 1088 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - end + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - call $bindings/esm/stringFunction + call $~lib/array/Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $4 i32.add - global.set $~lib/memory/__stack_pointer + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + i32.const 16 + i32.sub global.set $~lib/memory/__stack_pointer - return - end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/typedarrayFunction - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - block $__inlined_func$bindings/esm/staticarrayFunction$1 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner0 - 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/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.add - local.set $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 4212 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $4 - i32.const 268435455 - i32.gt_u - if - i32.const 3616 - i32.const 3792 - i32.const 51 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $4 - local.get $2 - local.get $0 - local.get $2 - call $~lib/staticarray/StaticArray#__get - call $~lib/staticarray/StaticArray#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $4 - local.get $3 - local.get $1 - local.get $2 - call $~lib/staticarray/StaticArray#__get - call $~lib/staticarray/StaticArray#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - br $__inlined_func$bindings/esm/staticarrayFunction$1 - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:bindings/esm/staticarrayU16 (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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $export:bindings/esm/arrayFunction (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 - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4212 - i32.lt_s - br_if $folding-inner1 - 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/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store - local.get $6 + local.get $5 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=12 - local.get $5 + local.get $4 i32.const 268435455 i32.gt_u if - i32.const 3616 - i32.const 3856 - i32.const 70 + i32.const 1248 + i32.const 1920 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $3 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.store - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 + local.get $5 local.get $6 - local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 local.get $5 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -3984,251 +3123,7 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - 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 - local.get $6 - return - end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:bindings/esm/arrayOfStringsFunction (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 - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store - local.get $5 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u - if - i32.const 3616 - i32.const 3856 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $5 - local.get $3 - i32.store - local.get $5 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -4305,8 +3200,8 @@ local.get $5 return end - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4321,7 +3216,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4335,7 +3230,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4345,14 +3240,14 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$4 (result i32) + block $__inlined_func$bindings/esm/PlainObject#constructor$2 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer @@ -4373,7 +3268,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer @@ -4508,94 +3403,881 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$4 + br $__inlined_func$bindings/esm/PlainObject#constructor$2 + end + br $folding-inner1 + end + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load8_s + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load16_s offset=2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $1 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + local.get $2 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result 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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$286 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1760 + local.set $2 + br $__inlined_func$~lib/string/String#concat$286 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $3 + memory.copy + local.get $2 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 + local.get $2 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/typedarray/Int16Array#get:length (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#get:length (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + 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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1174 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray#__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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1856 + i32.const 80 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1856 + i32.const 95 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#get:length (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1552 + i32.const 1920 + i32.const 116 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$263 + i32.const 1073741820 + local.get $2 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $3 + local.get $0 + i32.load + local.tee $2 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $4 + local.get $3 + i32.store offset=16 + local.get $2 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$263 end - br $folding-inner1 + local.get $3 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $2 + local.get $3 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_u + select + memory.copy end - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load8_s - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $3 local.get $1 - i32.load8_s - i32.add - i32.store8 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.ne + if + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + end local.get $0 + local.get $3 i32.store offset=8 - local.get $0 - i32.load16_s offset=2 - local.set $0 - global.get $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if local.get $1 - i32.store offset=8 - local.get $2 + i32.const 0 + i32.lt_s + if + i32.const 1552 + i32.const 1920 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end local.get $0 local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $3 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result 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 4212 + i32.const 2276 i32.lt_s if - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1552 + i32.const 1920 + i32.const 116 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store 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 offset=4 + local.get $0 + i32.eqz + if + i32.const 1968 + i32.const 1920 + i32.const 120 + i32.const 40 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1552 + i32.const 1920 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) (local $2 i32) @@ -4632,7 +4314,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4661,7 +4343,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4674,7 +4356,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4732,8 +4414,8 @@ end unreachable end - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/bindings/noExportRuntime.debug.js b/tests/compiler/bindings/noExportRuntime.debug.js index 3ec19de160..50dfd34e18 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.js +++ b/tests/compiler/bindings/noExportRuntime.debug.js @@ -1,5 +1,20 @@ async function instantiate(module, imports = {}) { - const { exports } = await WebAssembly.instantiate(module, imports); + const adaptedImports = { + env: Object.setPrototypeOf({ + abort(message, fileName, lineNumber, columnNumber) { + // ~lib/builtins/__abort_impl(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void + message = __liftString(message >>> 0); + fileName = __liftString(fileName >>> 0); + lineNumber = lineNumber >>> 0; + columnNumber = columnNumber >>> 0; + (() => { + // @external.js + throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); + })(); + }, + }, Object.assign(Object.create(globalThis), imports.env || {})), + }; + const { exports } = await WebAssembly.instantiate(module, adaptedImports); const memory = exports.memory || imports.env.memory; const adaptedExports = Object.setPrototypeOf({ isString: { diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index df83510f8a..e51b1ad8e4 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -1,22 +1,22 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) + (type $0 (func (param i32 i32))) + (type $1 (func (param i32) (result i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (result i32))) - (type $5 (func)) + (type $3 (func (result i32))) + (type $4 (func)) + (type $5 (func (param i32 i32) (result i32))) (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) - (type $12 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $bindings/noExportRuntime/isBasic (mut i32) (i32.const 0)) (global $bindings/noExportRuntime/isString i32 (i32.const 32)) (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -28,44 +28,33 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $bindings/noExportRuntime/isBuffer (mut i32) (i32.const 0)) (global $bindings/noExportRuntime/isTypedArray (mut i32) (i32.const 0)) - (global $bindings/noExportRuntime/isArrayOfBasic i32 (i32.const 2544)) - (global $bindings/noExportRuntime/isArrayOfArray i32 (i32.const 2624)) - (global $~lib/rt/__rtti_base i32 (i32.const 2656)) - (global $~lib/memory/__data_end i32 (i32.const 2692)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35460)) - (global $~lib/memory/__heap_base i32 (i32.const 35460)) + (global $bindings/noExportRuntime/isArrayOfBasic i32 (i32.const 608)) + (global $bindings/noExportRuntime/isArrayOfArray i32 (i32.const 688)) + (global $~lib/rt/__rtti_base i32 (i32.const 720)) + (global $~lib/memory/__data_end i32 (i32.const 756)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33524)) + (global $~lib/memory/__heap_base i32 (i32.const 33524)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2492) "\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 $22 (i32.const 2524) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\10\00\00\00\d0\t\00\00\d0\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2572) "\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 $24 (i32.const 2604) ",\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\10\00\00\00 \n\00\00 \n\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2656) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\01\t\00\00\02\t\00\00\02A\00\00 \00\00\00") + (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $2 (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 220) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 464) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 492) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 556) "\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 $12 (i32.const 588) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\10\00\00\00@\02\00\00@\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 636) "\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 $14 (i32.const 668) ",\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\10\00\00\00\90\02\00\00\90\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 720) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\01\t\00\00\02\t\00\00\02A\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "isBasic" (global $bindings/noExportRuntime/isBasic)) @@ -84,19 +73,6 @@ (export "_start" (func $~start)) (export "takesNonPlainObject" (func $export:bindings/noExportRuntime/takesNonPlainObject)) (export "takesFunction" (func $export:bindings/noExportRuntime/takesFunction)) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -161,7 +137,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -231,7 +207,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -248,7 +224,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -278,9 +254,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 368 + i32.const 432 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -347,7 +323,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 240 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -499,7 +475,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -519,7 +495,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -582,7 +558,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -735,7 +711,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -752,7 +728,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -841,7 +817,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -884,7 +860,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -902,7 +878,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -970,7 +946,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1087,7 +1063,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1133,7 +1109,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1165,7 +1141,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1409,7 +1385,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1629,7 +1605,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1740,8 +1716,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 176 + i32.const 512 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1843,7 +1819,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1914,7 +1890,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2071,7 +2047,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2186,7 +2162,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2206,7 +2182,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2254,8 +2230,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 176 + i32.const 240 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2300,422 +2276,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2731,7 +2291,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2814,13 +2374,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 240 + i32.const 288 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 272 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 416 + i32.const 464 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -2874,218 +2434,77 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35488 - i32.const 35536 + i32.const 33552 + i32.const 33600 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $export:bindings/noExportRuntime/takesNonPlainObject (param $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 32 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 + local.get $0 + call $bindings/noExportRuntime/takesNonPlainObject global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - return ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $export:bindings/noExportRuntime/takesFunction (param $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $0 + call $bindings/noExportRuntime/takesFunction global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return ) (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + 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 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) @@ -3141,8 +2560,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 64 + i32.const 112 i32.const 19 i32.const 57 call $~lib/builtins/abort @@ -3238,153 +2657,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) (local $buffer i32) (local $3 i32) @@ -3400,8 +2672,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 64 + i32.const 112 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -3426,38 +2698,6 @@ local.get $3 return ) - (func $export:bindings/noExportRuntime/takesNonPlainObject (param $0 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 - local.get $0 - i32.store - local.get $0 - call $bindings/noExportRuntime/takesNonPlainObject - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:bindings/noExportRuntime/takesFunction (param $0 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 - local.get $0 - i32.store - local.get $0 - call $bindings/noExportRuntime/takesFunction - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $bindings/noExportRuntime/isString @@ -3495,19 +2735,13 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2400 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 + i32.const 368 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 176 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3616,6 +2850,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -3645,6 +2883,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/bindings/noExportRuntime.release.js b/tests/compiler/bindings/noExportRuntime.release.js index 331bab6bef..118f207742 100644 --- a/tests/compiler/bindings/noExportRuntime.release.js +++ b/tests/compiler/bindings/noExportRuntime.release.js @@ -1,5 +1,20 @@ async function instantiate(module, imports = {}) { - const { exports } = await WebAssembly.instantiate(module, imports); + const adaptedImports = { + env: Object.setPrototypeOf({ + abort(message, fileName, lineNumber, columnNumber) { + // ~lib/builtins/__abort_impl(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void + message = __liftString(message >>> 0); + fileName = __liftString(fileName >>> 0); + lineNumber = lineNumber >>> 0; + columnNumber = columnNumber >>> 0; + (() => { + // @external.js + throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); + })(); + }, + }, Object.assign(Object.create(globalThis), imports.env || {})), + }; + const { exports } = await WebAssembly.instantiate(module, adaptedImports); const memory = exports.memory || imports.env.memory; const adaptedExports = Object.setPrototypeOf({ isString: { diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index b2a4e5e828..d1b28b02d2 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -3,10 +3,11 @@ (type $1 (func (param i32))) (type $2 (func)) (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32) (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $bindings/noExportRuntime/isBasic (mut i32) (i32.const 0)) (global $bindings/noExportRuntime/isString i32 (i32.const 1056)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -21,55 +22,36 @@ (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $bindings/noExportRuntime/isBuffer (mut i32) (i32.const 0)) (global $bindings/noExportRuntime/isTypedArray (mut i32) (i32.const 0)) - (global $bindings/noExportRuntime/isArrayOfBasic i32 (i32.const 3568)) - (global $bindings/noExportRuntime/isArrayOfArray i32 (i32.const 3648)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36484)) + (global $bindings/noExportRuntime/isArrayOfBasic i32 (i32.const 1632)) + (global $bindings/noExportRuntime/isArrayOfArray i32 (i32.const 1712)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34548)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) "<") - (data $20.1 (i32.const 3464) "\02\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 $21 (i32.const 3516) "\1c") - (data $21.1 (i32.const 3528) "\01") - (data $22 (i32.const 3548) ",") - (data $22.1 (i32.const 3560) "\05\00\00\00\10\00\00\00\d0\r\00\00\d0\r") - (data $23 (i32.const 3596) "\1c") - (data $23.1 (i32.const 3608) "\01") - (data $24 (i32.const 3628) ",") - (data $24.1 (i32.const 3640) "\06\00\00\00\10\00\00\00 \0e\00\00 \0e") - (data $25 (i32.const 3680) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\01\t\00\00\02\t\00\00\02A\00\00 ") + (data $1 (i32.const 1068) ",") + (data $1.1 (i32.const 1080) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $2 (i32.const 1116) "<") + (data $2.1 (i32.const 1128) "\02\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 $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\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 $4 (i32.const 1244) "<") + (data $4.1 (i32.const 1256) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $8 (i32.const 1436) ",") + (data $8.1 (i32.const 1448) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $10 (i32.const 1516) "<") + (data $10.1 (i32.const 1528) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $11 (i32.const 1580) "\1c") + (data $11.1 (i32.const 1592) "\01") + (data $12 (i32.const 1612) ",") + (data $12.1 (i32.const 1624) "\05\00\00\00\10\00\00\00@\06\00\00@\06") + (data $13 (i32.const 1660) "\1c") + (data $13.1 (i32.const 1672) "\01") + (data $14 (i32.const 1692) ",") + (data $14.1 (i32.const 1704) "\06\00\00\00\10\00\00\00\90\06\00\00\90\06") + (data $15 (i32.const 1744) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\01\t\00\00\02\t\00\00\02A\00\00 ") (export "isBasic" (global $bindings/noExportRuntime/isBasic)) (export "takesReturnsBasic" (func $bindings/noExportRuntime/takesReturnsBasic)) (export "isString" (global $bindings/noExportRuntime/isString)) @@ -103,19 +85,15 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3568 + i32.const 1632 call $~lib/rt/itcms/__visit - i32.const 3648 + i32.const 1712 call $~lib/rt/itcms/__visit - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 3424 - call $~lib/rt/itcms/__visit - i32.const 1152 + i32.const 1392 call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 1088 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1200 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -136,7 +114,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -169,7 +147,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -178,7 +156,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$145 + block $__inlined_func$~lib/rt/itcms/Object#unlink$133 local.get $0 i32.load offset=4 i32.const -4 @@ -190,19 +168,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36484 + i32.const 34548 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$145 + br $__inlined_func$~lib/rt/itcms/Object#unlink$133 end local.get $0 i32.load offset=8 @@ -210,7 +188,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -239,13 +217,13 @@ i32.const 1 else local.get $1 - i32.const 3680 + i32.const 1744 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1392 + i32.const 1456 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -253,7 +231,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3684 + i32.const 1748 i32.add i32.load i32.const 32 @@ -324,7 +302,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -338,7 +316,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -384,7 +362,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -467,7 +445,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -481,7 +459,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -542,7 +520,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -575,7 +553,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -590,7 +568,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -641,7 +619,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -713,7 +691,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -738,7 +716,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -765,7 +743,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -837,10 +815,10 @@ if unreachable end - i32.const 36496 + i32.const 34560 i32.const 0 i32.store - i32.const 38064 + i32.const 36128 i32.const 0 i32.store loop $for-loop|0 @@ -851,7 +829,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36496 + i32.const 34560 i32.add i32.const 0 i32.store offset=4 @@ -869,7 +847,7 @@ i32.add i32.const 2 i32.shl - i32.const 36496 + i32.const 34560 i32.add i32.const 0 i32.store offset=96 @@ -887,14 +865,14 @@ br $for-loop|0 end end - i32.const 36496 - i32.const 38068 + i32.const 34560 + i32.const 36132 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36496 + i32.const 34560 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -979,7 +957,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36484 + i32.const 34548 i32.lt_u if local.get $0 @@ -1068,14 +1046,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36484 + i32.const 34548 i32.lt_u if local.get $0 @@ -1098,7 +1076,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36484 + i32.const 34548 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1127,7 +1105,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1211,7 +1189,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1263,7 +1241,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1295,8 +1273,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1200 + i32.const 1264 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1306,7 +1284,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1323,7 +1301,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1356,8 +1334,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1200 + i32.const 1536 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1459,7 +1437,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1474,7 +1452,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1493,7 +1471,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1598,204 +1576,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3716 - i32.lt_s - if - i32.const 36512 - i32.const 36560 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -1806,7 +1586,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1864,10 +1644,10 @@ global.get $bindings/noExportRuntime/isTypedArray ) (func $bindings/noExportRuntime/returnsArrayOfBasic (result i32) - i32.const 3568 + i32.const 1632 ) (func $bindings/noExportRuntime/returnsArrayOfArray (result i32) - i32.const 3648 + i32.const 1712 ) (func $~start (local $0 i32) @@ -1882,34 +1662,34 @@ memory.size i32.const 16 i32.shl - i32.const 36484 + i32.const 34548 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1316 + i32.const 1312 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1320 + i32.const 1312 i32.store - i32.const 1264 + i32.const 1312 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1348 + i32.const 1344 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1352 + i32.const 1344 i32.store - i32.const 1296 + i32.const 1344 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1492 + i32.const 1488 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1496 + i32.const 1488 i32.store - i32.const 1440 + i32.const 1488 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1918,7 +1698,7 @@ block $__inlined_func$start:bindings/noExportRuntime block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1780 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1941,7 +1721,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1780 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1962,7 +1742,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1780 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2040,235 +1820,70 @@ global.set $bindings/noExportRuntime/isTypedArray br $__inlined_func$start:bindings/noExportRuntime end - i32.const 36512 - i32.const 36560 + i32.const 34576 + i32.const 34624 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3716 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3716 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$150 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#concat$150 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36512 - i32.const 36560 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) + (func $export:bindings/noExportRuntime/takesNonPlainObject (param $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1780 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34576 + i32.const 34624 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1088 local.get $0 - select - local.tee $0 i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $export:bindings/noExportRuntime/takesNonPlainObject (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 3716 + i32.const 1780 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34576 + i32.const 34624 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2314,7 +1929,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1780 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2327,7 +1942,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1780 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2374,8 +1989,8 @@ end unreachable end - i32.const 36512 - i32.const 36560 + i32.const 34576 + i32.const 34624 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/bindings/raw.debug.js b/tests/compiler/bindings/raw.debug.js index 20418eeab3..5ecef61fe5 100644 --- a/tests/compiler/bindings/raw.debug.js +++ b/tests/compiler/bindings/raw.debug.js @@ -33,6 +33,17 @@ export async function instantiate(module, imports = {}) { return new Date().getTimezoneOffset(); })(); }, + abort(message, fileName, lineNumber, columnNumber) { + // ~lib/builtins/__abort_impl(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void + message = __liftString(message >>> 0); + fileName = __liftString(fileName >>> 0); + lineNumber = lineNumber >>> 0; + columnNumber = columnNumber >>> 0; + (() => { + // @external.js + throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); + })(); + }, }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 8b987cc7d2..377a4d465a 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -6,21 +6,18 @@ (type $4 (func)) (type $5 (func (param i32 i32 i32))) (type $6 (func (result i32))) - (type $7 (func (param i32 i64))) - (type $8 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i64))) (type $9 (func (param i32 i32 f64 f64 f64 f64 f64))) (type $10 (func (param f64) (result f64))) (type $11 (func (param i64 i64) (result i64))) (type $12 (func (result i64))) (type $13 (func (param i32 i32 i64) (result i32))) - (type $14 (func (param i32 i64 i32))) - (type $15 (func (param i64 i32) (result i32))) - (type $16 (func (param i32 i64 i32 i32))) - (type $17 (func (param i32 f32))) - (type $18 (func (param i32 f64))) - (type $19 (func (param i32 i32 i32) (result i32))) - (type $20 (func (param i32 i32 i64))) - (type $21 (func (param i32 i32) (result f32))) + (type $14 (func (param i32 f32))) + (type $15 (func (param i32 f64))) + (type $16 (func (param i32 i32 i32) (result i32))) + (type $17 (func (param i32 i32 i64))) + (type $18 (func (param i32 i32) (result f32))) (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64)) (import "env" "globalThis" (global $bindings/esm/immutableGlobal externref)) (import "env" "globalThis.globalThis" (global $bindings/esm/immutableGlobalNested externref)) @@ -28,6 +25,7 @@ (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) (import "env" "Date.getTimezoneOffset" (func $bindings/esm/Date_getTimezoneOffset (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $bindings/esm/plainGlobal i32 (i32.const 1)) (global $bindings/esm/plainMutableGlobal (mut i32) (i32.const 2)) (global $bindings/esm/stringGlobal i32 (i32.const 32)) @@ -44,6 +42,8 @@ (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -55,13 +55,12 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3120)) - (global $~lib/memory/__data_end i32 (i32.const 3188)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35956)) - (global $~lib/memory/__heap_base i32 (i32.const 35956)) + (global $~lib/rt/__rtti_base i32 (i32.const 1184)) + (global $~lib/memory/__data_end i32 (i32.const 1252)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34020)) + (global $~lib/memory/__heap_base i32 (i32.const 34020)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") @@ -69,34 +68,24 @@ (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00t\00r\00a\00c\00e\00\00\00") (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\004\002\00 \00f\00r\00o\00m\00 \00c\00o\00n\00s\00o\00l\00e\00.\00l\00o\00g\00\00\00\00\00\00\00") - (data $5 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $6 (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $7 (i32.const 268) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 464) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 492) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 556) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 608) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 636) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 732) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 860) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 956) "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 $21 (i32.const 1356) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $22 (i32.const 2412) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $23 (i32.const 2508) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $25 (i32.const 2620) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $26 (i32.const 2684) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $27 (i32.const 2748) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") - (data $28 (i32.const 2812) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $29 (i32.const 2860) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $30 (i32.const 2988) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") - (data $31 (i32.const 3052) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") - (data $32 (i32.const 3120) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\81\08\00\00\01\19\00\00\01\02\00\00$\t\00\00\a4\00\00\00$\n\00\00\02\t\00\00\02A\00\00\00\00\00\00A\00\00\00 \00\00\00") + (data $5 (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $6 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 624) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 748) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 812) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") + (data $18 (i32.const 876) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $19 (i32.const 924) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 1052) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") + (data $21 (i32.const 1116) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") + (data $22 (i32.const 1184) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\81\08\00\00\01\19\00\00\01\02\00\00$\t\00\00\a4\00\00\00$\n\00\00\02\t\00\00\02A\00\00\00\00\00\00A\00\00\00 \00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:bindings/esm~anonymous|0) (export "plainGlobal" (global $bindings/esm/plainGlobal)) @@ -192,15 +181,6 @@ call $~lib/rt/common/OBJECT#get:rtSize return ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -265,7 +245,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -335,7 +315,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -352,7 +332,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -382,9 +362,9 @@ i32.load i32.gt_u if - i32.const 512 - i32.const 576 - i32.const 21 + i32.const 528 + i32.const 592 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -451,7 +431,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 384 + i32.const 400 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -603,7 +583,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -623,7 +603,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -686,7 +666,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -839,7 +819,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -856,7 +836,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -945,7 +925,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -988,7 +968,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1006,7 +986,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1074,7 +1054,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1191,7 +1171,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1237,7 +1217,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1269,7 +1249,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1513,7 +1493,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1733,7 +1713,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1844,8 +1824,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 320 - i32.const 656 + i32.const 336 + i32.const 672 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1947,7 +1927,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2018,7 +1998,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2175,7 +2155,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2290,7 +2270,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2310,7 +2290,7 @@ i32.eqz if i32.const 0 - i32.const 656 + i32.const 672 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2358,8 +2338,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 320 - i32.const 384 + i32.const 336 + i32.const 400 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2404,420 +2384,13 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 956 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 956 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 956 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 956 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1376 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1376 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2432 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2432 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 + i32.shr_u return ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) @@ -2835,7 +2408,7 @@ i32.eqz if i32.const 0 - i32.const 384 + i32.const 400 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -3187,8 +2760,8 @@ i32.const 3 i32.eq if - i32.const 3008 - i32.const 384 + i32.const 1072 + i32.const 400 i32.const 338 i32.const 7 call $~lib/builtins/abort @@ -3220,8 +2793,8 @@ i32.const 3 i32.ne if - i32.const 3072 - i32.const 384 + i32.const 1136 + i32.const 400 i32.const 352 i32.const 5 call $~lib/builtins/abort @@ -3308,13 +2881,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 432 + i32.const 448 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 464 + i32.const 480 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 608 + i32.const 624 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace ) @@ -3323,91 +2896,38 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35984 - i32.const 36032 + i32.const 34048 + i32.const 34096 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result 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 - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 288 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out + local.get $1 i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $1 + call $bindings/esm/bufferFunction + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.get $2 ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) + (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3415,184 +2935,45 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - local.get $right - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat + local.get $0 + local.get $1 + call $bindings/esm/stringFunction local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 224 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 256 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 720 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 720 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2528 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) - (func $bindings/esm/bufferFunction (param $a i32) (param $b i32) (result i32) - (local $aByteLength i32) - (local $bByteLength i32) - (local $out i32) - (local $5 i32) + (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result 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 - local.get $a - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $aByteLength - local.get $b - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bByteLength global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $aByteLength - local.get $bByteLength - i32.add - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $out + local.get $1 i32.store offset=4 - local.get $out - local.get $a - local.get $aByteLength - memory.copy - local.get $out - local.get $aByteLength - i32.add - local.get $b - local.get $bByteLength - memory.copy - local.get $out - local.set $5 + local.get $0 + local.get $1 + call $bindings/esm/stringFunctionOptional@varargs + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.get $2 ) - (func $bindings/esm/stringFunction (param $a i32) (param $b i32) (result i32) + (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3600,30 +2981,22 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $a - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - local.get $b - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - call $~lib/string/String.__concat + local.get $0 + local.get $1 + call $bindings/esm/typedarrayFunction local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - return ) - (func $bindings/esm/stringFunctionOptional (param $a i32) (param $b i32) (result i32) + (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3631,189 +3004,106 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $a - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - local.get $b - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - call $~lib/string/String.__concat + local.get $0 + local.get $1 + call $bindings/esm/staticarrayFunction local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - return ) - (func $bindings/esm/stringFunctionOptional@varargs (param $a i32) (param $b i32) (result i32) - (local $2 i32) + (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 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.store + local.get $0 + call $bindings/esm/staticarrayU16 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 64 - local.tee $b - i32.store - end - local.get $a - local.set $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:bindings/esm/staticarrayI64 (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $b - local.set $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $bindings/esm/stringFunctionOptional - local.set $2 + local.get $0 + i32.store + local.get $0 + call $bindings/esm/staticarrayI64 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) - (local $buffer i32) - (local $4 i32) + (func $export:bindings/esm/arrayFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + 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.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength - local.get $length - i32.const 1073741820 - local.get $alignLog2 - i32.shr_u - i32.gt_u - if - i32.const 2592 - i32.const 2640 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $length - local.get $alignLog2 - i32.shl - local.tee $length - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buffer - i32.store offset=8 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $this - local.set $4 + local.get $0 + local.get $1 + call $bindings/esm/arrayFunction + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $buffer - local.set $4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $buffer - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - local.get $length - call $~lib/arraybuffer/ArrayBufferView#set:byteLength - local.get $this - local.set $4 + local.get $0 + local.get $1 + call $bindings/esm/arrayOfStringsFunction + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $2 ) - (func $~lib/typedarray/Uint64Array#constructor (param $this i32) (param $length i32) (result i32) + (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3821,31 +3111,14 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $2 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - local.get $length - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $this - i32.store - local.get $this + local.get $0 + local.get $1 + call $bindings/esm/objectFunction local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3853,34 +3126,30 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Int16Array#get:length (param $this i32) (result i32) - (local $1 i32) + (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store - local.get $this - local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=4 + local.get $0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 1 - i32.shr_u - local.set $1 + call $bindings/esm/internrefFunction + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - return + local.get $2 ) - (func $~lib/typedarray/Float32Array#get:length (param $this i32) (result i32) + (func $export:bindings/esm/functionFunction (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3888,300 +3157,577 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 2 - i32.shr_u + local.get $0 + call $bindings/esm/functionFunction local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - return ) - (func $~lib/typedarray/Int16Array#__get (param $this i32) (param $index i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + 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.store - local.get $index - local.get $this - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 512 - i32.const 2704 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $2 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return ) - (func $~lib/typedarray/Uint64Array#__set (param $this i32) (param $index i32) (param $value i64) - (local $3 i32) + (func $bindings/esm/bufferFunction (param $a i32) (param $b i32) (result i32) + (local $aByteLength i32) + (local $bByteLength i32) + (local $out i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this - local.set $3 + i64.const 0 + i64.store + local.get $a + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 512 - i32.const 2704 - i32.const 1173 - i32.const 64 - call $~lib/builtins/abort - unreachable - end + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $aByteLength + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bByteLength + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $aByteLength + local.get $bByteLength + i32.add + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $out + i32.store offset=4 + local.get $out + local.get $a + local.get $aByteLength + memory.copy + local.get $out + local.get $aByteLength + i32.add + local.get $b + local.get $bByteLength + memory.copy + local.get $out + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.store - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $index - i32.const 3 + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize i32.add - local.get $value - i64.store + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 736 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $6 + return ) - (func $~lib/typedarray/Float32Array#__get (param $this i32) (param $index i32) (result f32) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) (local $2 i32) - (local $3 f32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $index - local.get $this + i64.const 0 + i64.store + local.get $left local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 512 - i32.const 2704 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $this + local.get $right local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store + i32.store offset=4 local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - f32.load - local.set $3 + call $~lib/string/String#concat + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return ) - (func $bindings/esm/typedarrayFunction (param $a i32) (param $b i32) (result i32) - (local $out i32) - (local $i i32) - (local $i|4 i32) - (local $5 i32) + (func $bindings/esm/stringFunction (param $a i32) (param $b i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + 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 $a + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $2 + i32.store + local.get $2 + local.get $b + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String.__concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $bindings/esm/stringFunctionOptional (param $a i32) (param $b i32) (result 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 local.get $a - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.store - local.get $5 - call $~lib/typedarray/Int16Array#get:length + local.get $2 local.get $b - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.add - call $~lib/typedarray/Uint64Array#constructor - local.tee $out + local.get $2 i32.store offset=4 + local.get $2 + call $~lib/string/String.__concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $bindings/esm/stringFunctionOptional@varargs (param $a i32) (param $b i32) (result i32) + (local $2 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 - local.set $i - loop $for-loop|0 - local.get $i - local.get $a - local.set $5 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 64 + local.tee $b i32.store - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.lt_s - if - local.get $out - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $i - local.get $a - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $i - call $~lib/typedarray/Int16Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end end + local.get $a + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $b + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $bindings/esm/stringFunctionOptional + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) + (local $buffer i32) + (local $4 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 0 - local.set $i|4 - loop $for-loop|1 - local.get $i|4 - local.get $b - local.set $5 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $length + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 224 + i32.const 272 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $length + local.get $alignLog2 + i32.shl + local.tee $length + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $buffer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $buffer + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $length + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Uint64Array#constructor (param $this i32) (param $length i32) (result 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 + local.get $this + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this i32.store - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.lt_s - if - local.get $out - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $a - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/typedarray/Int16Array#get:length - local.get $i|4 - i32.add - local.get $b - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $i|4 - call $~lib/typedarray/Float32Array#__get - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $i|4 - i32.const 1 - i32.add - local.set $i|4 - br $for-loop|1 - end end - local.get $out - local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $length + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $this + i32.store + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $2 + ) + (func $~lib/typedarray/Int16Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 return ) - (func $~lib/staticarray/StaticArray#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) + (func $~lib/typedarray/Float32Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 2 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/typedarray/Int16Array#__get (param $this i32) (param $index 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 $index + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 528 + i32.const 768 + i32.const 453 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/typedarray/Uint64Array#__set (param $this i32) (param $index i32) (param $value i64) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4198,36 +3744,39 @@ local.get $3 i32.store local.get $3 - call $~lib/staticarray/StaticArray#get:length + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 3 + i32.shr_u i32.ge_u if - i32.const 512 - i32.const 2768 - i32.const 78 - i32.const 41 + i32.const 528 + i32.const 768 + i32.const 1174 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - local.set $value - i32.const 0 - drop local.get $value - local.set $3 + i64.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $~lib/staticarray/StaticArray#__set (param $this i32) (param $index i32) (param $value i32) - (local $3 i32) + (func $~lib/typedarray/Float32Array#__get (param $this i32) (param $index i32) (result f32) + (local $2 i32) + (local $3 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4238,37 +3787,45 @@ i32.store local.get $index local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 - call $~lib/staticarray/StaticArray#get:length + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 2 + i32.shr_u i32.ge_u if - i32.const 512 - i32.const 2768 - i32.const 93 - i32.const 41 + i32.const 528 + i32.const 768 + i32.const 1305 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index - local.get $value - call $~lib/staticarray/StaticArray#__uset + i32.const 2 + i32.shl + i32.add + f32.load + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + return ) - (func $bindings/esm/staticarrayFunction (param $a i32) (param $b i32) (result i32) - (local $c i32) + (func $bindings/esm/typedarrayFunction (param $a i32) (param $b i32) (result i32) + (local $out i32) (local $i i32) (local $i|4 i32) (local $5 i32) @@ -4291,17 +3848,17 @@ local.get $5 i32.store local.get $5 - call $~lib/staticarray/StaticArray#get:length + call $~lib/typedarray/Int16Array#get:length local.get $b local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - call $~lib/staticarray/StaticArray#get:length + call $~lib/typedarray/Float32Array#get:length i32.add - call $~lib/staticarray/StaticArray#constructor - local.tee $c + call $~lib/typedarray/Uint64Array#constructor + local.tee $out i32.store offset=4 i32.const 0 local.set $i @@ -4313,10 +3870,10 @@ local.get $5 i32.store local.get $5 - call $~lib/staticarray/StaticArray#get:length + call $~lib/typedarray/Int16Array#get:length i32.lt_s if - local.get $c + local.get $out local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 @@ -4330,8 +3887,9 @@ i32.store offset=8 local.get $5 local.get $i - call $~lib/staticarray/StaticArray#__get - call $~lib/staticarray/StaticArray#__set + call $~lib/typedarray/Int16Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $i i32.const 1 i32.add @@ -4349,213 +3907,51 @@ local.get $5 i32.store local.get $5 - call $~lib/staticarray/StaticArray#get:length + call $~lib/typedarray/Float32Array#get:length i32.lt_s if - local.get $c + local.get $out local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 local.get $a - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/staticarray/StaticArray#get:length - local.get $i|4 - i32.add - local.get $b - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $i|4 - call $~lib/staticarray/StaticArray#__get - call $~lib/staticarray/StaticArray#__set - local.get $i|4 - i32.const 1 - i32.add - local.set $i|4 - br $for-loop|1 - end - end - local.get $c - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - ) - (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $bufferSize i32) - (local $buffer i32) - (local $6 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 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ - local.get $length - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 2592 - i32.const 2832 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $length - 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 $bufferSize - global.get $~lib/memory/__stack_pointer - local.get $bufferSize - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buffer - i32.store offset=8 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $buffer - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $buffer - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $bufferSize - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $length - call $~lib/array/Array#set:length_ - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/array/Array#get:length (param $this 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 $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length_ - local.set $1 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.get $i|4 + i32.add + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + local.get $i|4 + call $~lib/typedarray/Float32Array#__get + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|1 + end + end + local.get $out + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $5 return ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (func $~lib/staticarray/StaticArray#__get (param $this i32) (param $index i32) (result i32) (local $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -4573,23 +3969,17 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:length_ + call $~lib/staticarray/StaticArray#get:length i32.ge_u if - i32.const 512 - i32.const 2832 - i32.const 114 - i32.const 42 + i32.const 528 + i32.const 832 + i32.const 80 + i32.const 41 call $~lib/builtins/abort unreachable end local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -4607,126 +3997,7 @@ local.get $3 return ) - (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) - (local $oldCapacity i32) - (local $oldData i32) - (local $6 i32) - (local $7 i32) - (local $newCapacity i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $newData i32) - (local $14 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 $array - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - local.set $oldCapacity - local.get $newSize - local.get $oldCapacity - local.get $alignLog2 - i32.shr_u - i32.gt_u - if - local.get $newSize - i32.const 1073741820 - local.get $alignLog2 - i32.shr_u - i32.gt_u - if - i32.const 2592 - i32.const 2832 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $array - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $oldData - local.get $newSize - local.tee $6 - i32.const 8 - local.tee $7 - local.get $6 - local.get $7 - i32.gt_u - select - local.get $alignLog2 - i32.shl - local.set $newCapacity - local.get $canGrow - if - local.get $oldCapacity - i32.const 1 - i32.shl - local.tee $9 - i32.const 1073741820 - local.tee $10 - local.get $9 - local.get $10 - i32.lt_u - select - local.tee $11 - local.get $newCapacity - local.tee $12 - local.get $11 - local.get $12 - i32.gt_u - select - local.set $newCapacity - end - local.get $oldData - local.get $newCapacity - call $~lib/rt/itcms/__renew - local.set $newData - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $newData - local.get $oldData - i32.ne - if - local.get $array - local.get $newData - i32.store - local.get $array - local.get $newData - i32.store offset=4 - local.get $array - local.get $newData - i32.const 0 - call $~lib/rt/itcms/__link - end - local.get $array - local.get $newCapacity - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) + (func $~lib/staticarray/StaticArray#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4743,37 +4014,15 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:length_ + call $~lib/staticarray/StaticArray#get:length i32.ge_u if - local.get $index - i32.const 0 - i32.lt_s - if - i32.const 512 - i32.const 2832 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.get $index - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $index - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ + i32.const 528 + i32.const 832 + i32.const 95 + i32.const 41 + call $~lib/builtins/abort + unreachable end local.get $this local.set $3 @@ -4781,21 +4030,15 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array#get:dataStart local.get $index - i32.const 2 - i32.shl - i32.add local.get $value - i32.store - i32.const 0 - drop + call $~lib/staticarray/StaticArray#__uset global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $bindings/esm/arrayFunction (param $a i32) (param $b i32) (result i32) + (func $bindings/esm/staticarrayFunction (param $a i32) (param $b i32) (result i32) (local $c i32) (local $i i32) (local $i|4 i32) @@ -4819,16 +4062,16 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length local.get $b local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length i32.add - call $~lib/array/Array#constructor + call $~lib/staticarray/StaticArray#constructor local.tee $c i32.store offset=4 i32.const 0 @@ -4841,7 +4084,7 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length i32.lt_s if local.get $c @@ -4858,8 +4101,8 @@ i32.store offset=8 local.get $5 local.get $i - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/staticarray/StaticArray#__get + call $~lib/staticarray/StaticArray#__set local.get $i i32.const 1 i32.add @@ -4877,7 +4120,7 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length i32.lt_s if local.get $c @@ -4892,7 +4135,7 @@ local.get $5 i32.store offset=8 local.get $5 - call $~lib/array/Array#get:length + call $~lib/staticarray/StaticArray#get:length local.get $i|4 i32.add local.get $b @@ -4902,8 +4145,8 @@ i32.store offset=8 local.get $5 local.get $i|4 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/staticarray/StaticArray#__get + call $~lib/staticarray/StaticArray#__set local.get $i|4 i32.const 1 i32.add @@ -4920,7 +4163,7 @@ local.get $5 return ) - (func $~lib/array/Array<~lib/string/String>#constructor (param $this i32) (param $length i32) (result i32) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) (local $bufferSize i32) @@ -4942,7 +4185,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 12 + i32.const 11 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -4954,7 +4197,7 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:buffer + call $~lib/array/Array#set:buffer local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -4962,7 +4205,7 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:dataStart + call $~lib/array/Array#set:dataStart local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -4970,7 +4213,7 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:byteLength + call $~lib/array/Array#set:byteLength local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -4978,16 +4221,16 @@ i32.store offset=4 local.get $6 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:length_ + call $~lib/array/Array#set:length_ local.get $length i32.const 1073741820 i32.const 2 i32.shr_u i32.gt_u if - i32.const 2592 - i32.const 2832 - i32.const 70 + i32.const 224 + i32.const 896 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -5025,7 +4268,7 @@ local.get $6 i32.store offset=12 local.get $6 - call $~lib/array/Array<~lib/string/String>#set:buffer + call $~lib/array/Array#set:buffer local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -5033,7 +4276,7 @@ i32.store offset=4 local.get $6 local.get $buffer - call $~lib/array/Array<~lib/string/String>#set:dataStart + call $~lib/array/Array#set:dataStart local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -5041,7 +4284,7 @@ i32.store offset=4 local.get $6 local.get $bufferSize - call $~lib/array/Array<~lib/string/String>#set:byteLength + call $~lib/array/Array#set:byteLength local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -5049,7 +4292,7 @@ i32.store offset=4 local.get $6 local.get $length - call $~lib/array/Array<~lib/string/String>#set:length_ + call $~lib/array/Array#set:length_ local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -5058,7 +4301,7 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $~lib/array/Array<~lib/string/String>#get:length (param $this i32) (result i32) + (func $~lib/array/Array#get:length (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5074,7 +4317,7 @@ local.get $1 i32.store local.get $1 - call $~lib/array/Array<~lib/string/String>#get:length_ + call $~lib/array/Array#get:length_ local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5083,17 +4326,17 @@ local.get $1 return ) - (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) (local $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 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.store local.get $index local.get $this local.set $3 @@ -5101,56 +4344,164 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/string/String>#get:length_ + call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 512 - i32.const 2832 - i32.const 114 + i32.const 528 + i32.const 896 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $this local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/string/String>#get:dataStart + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl i32.add i32.load - local.tee $value - i32.store offset=4 - i32.const 1 - drop + local.set $value i32.const 0 - i32.eqz drop local.get $value - i32.eqz - if - i32.const 2880 - i32.const 2832 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - local.get $value local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $3 return ) - (func $~lib/array/Array<~lib/string/String>#__set (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) + (local $oldCapacity i32) + (local $oldData i32) + (local $6 i32) + (local $7 i32) + (local $newCapacity i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $newData i32) + (local $14 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 $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + local.set $oldCapacity + local.get $newSize + local.get $oldCapacity + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + local.get $newSize + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 224 + i32.const 896 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $oldData + local.get $newSize + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $alignLog2 + i32.shl + local.set $newCapacity + local.get $canGrow + if + local.get $oldCapacity + i32.const 1 + i32.shl + local.tee $9 + i32.const 1073741820 + local.tee $10 + local.get $9 + local.get $10 + i32.lt_u + select + local.tee $11 + local.get $newCapacity + local.tee $12 + local.get $11 + local.get $12 + i32.gt_u + select + local.set $newCapacity + end + local.get $oldData + local.get $newCapacity + call $~lib/rt/itcms/__renew + local.set $newData + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $newData + local.get $oldData + i32.ne + if + local.get $array + local.get $newData + i32.store + local.get $array + local.get $newData + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $array + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $array + local.get $newCapacity + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5167,16 +4518,16 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/string/String>#get:length_ + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index i32.const 0 i32.lt_s if - i32.const 512 - i32.const 2832 - i32.const 130 + i32.const 528 + i32.const 896 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -5197,7 +4548,7 @@ local.get $index i32.const 1 i32.add - call $~lib/array/Array<~lib/string/String>#set:length_ + call $~lib/array/Array#set:length_ end local.get $this local.set $3 @@ -5205,31 +4556,27 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/string/String>#get:dataStart + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl i32.add local.get $value i32.store - i32.const 1 + i32.const 0 drop - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $bindings/esm/arrayOfStringsFunction (param $a i32) (param $b i32) (result i32) + (func $bindings/esm/arrayFunction (param $a i32) (param $b i32) (result i32) (local $c i32) (local $i i32) (local $i|4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -5237,8 +4584,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 local.get $a @@ -5247,16 +4594,16 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length local.get $b local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length i32.add - call $~lib/array/Array<~lib/string/String>#constructor + call $~lib/array/Array#constructor local.tee $c i32.store offset=4 i32.const 0 @@ -5269,7 +4616,7 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length i32.lt_s if local.get $c @@ -5283,16 +4630,11 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 - local.get $5 - local.get $i - call $~lib/array/Array<~lib/string/String>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=8 local.get $5 - call $~lib/array/Array<~lib/string/String>#__set + local.get $i + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $i i32.const 1 i32.add @@ -5310,7 +4652,7 @@ local.get $5 i32.store local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length i32.lt_s if local.get $c @@ -5323,25 +4665,20 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 + i32.store offset=8 local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length + call $~lib/array/Array#get:length local.get $i|4 i32.add local.get $b local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 - local.get $5 - local.get $i|4 - call $~lib/array/Array<~lib/string/String>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=8 local.get $5 - call $~lib/array/Array<~lib/string/String>#__set + local.get $i|4 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $i|4 i32.const 1 i32.add @@ -5352,399 +4689,243 @@ local.get $c local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $5 return ) - (func $bindings/esm/PlainObject#constructor (param $this i32) (result i32) - (local $1 i32) + (func $~lib/array/Array<~lib/string/String>#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/object/Object#constructor - local.tee $this - i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:a - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:b - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:c - local.get $this - local.set $1 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i64.const 0 - call $bindings/esm/PlainObject#set:d + i64.store offset=8 local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:e + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $bindings/esm/PlainObject#set:f + call $~lib/array/Array<~lib/string/String>#set:buffer local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $bindings/esm/PlainObject#set:g - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i64.const 0 - call $bindings/esm/PlainObject#set:h + call $~lib/array/Array<~lib/string/String>#set:dataStart local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $bindings/esm/PlainObject#set:i + call $~lib/array/Array<~lib/string/String>#set:byteLength local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $bindings/esm/PlainObject#set:j - local.get $this - local.set $1 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 224 + i32.const 896 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + 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 $bufferSize global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:k + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - f32.const 0 - call $bindings/esm/PlainObject#set:l - local.get $this - local.set $1 + local.get $6 + local.get $buffer + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const 0 - call $bindings/esm/PlainObject#set:m + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array<~lib/string/String>#set:buffer local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:n + local.get $6 + local.get $buffer + call $~lib/array/Array<~lib/string/String>#set:dataStart local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:o + local.get $6 + local.get $bufferSize + call $~lib/array/Array<~lib/string/String>#set:byteLength local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - i32.const 0 - call $bindings/esm/PlainObject#set:p + local.get $6 + local.get $length + call $~lib/array/Array<~lib/string/String>#set:length_ local.get $this - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $6 ) - (func $bindings/esm/objectFunction (param $a i32) (param $b i32) (result i32) - (local $ref i32) - (local $3 i32) + (func $~lib/array/Array<~lib/string/String>#get:length (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 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/memory/__stack_pointer i32.const 0 - call $bindings/esm/PlainObject#constructor - local.tee $ref i32.store - local.get $ref - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $a - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $bindings/esm/PlainObject#get:a - local.get $b - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $bindings/esm/PlainObject#get:a - i32.add - call $bindings/esm/PlainObject#set:a - local.get $ref - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $a - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $bindings/esm/PlainObject#get:b - local.get $b - local.set $3 + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $bindings/esm/PlainObject#get:b - i32.add - call $bindings/esm/PlainObject#set:b - local.get $ref - local.set $3 + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/string/String>#get:length_ + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length_ + i32.ge_u if - i32.const 752 - i32.const 880 - i32.const 350 - i32.const 5 + i32.const 528 + i32.const 896 + i32.const 116 + i32.const 42 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $value i32.eqz if i32.const 944 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end + i32.const 896 + i32.const 120 + i32.const 40 + call $~lib/builtins/abort + unreachable end - local.get $out - local.set $12 + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $3 return ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) - (local $buffer i32) + (func $~lib/array/Array<~lib/string/String>#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5754,386 +4935,564 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $length - i32.const 1073741820 - i32.gt_u + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length_ + i32.ge_u if - i32.const 2592 - i32.const 2640 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 528 + i32.const 896 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array<~lib/string/String>#set:length_ end + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $length - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buffer + local.get $3 i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.get $index i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental + i32.shl + i32.add + local.get $value + i32.store + i32.const 1 + drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory i32.ne drop - local.get $buffer - local.set $3 + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $~lib/staticarray/StaticArray#constructor (param $this i32) (param $length i32) (result i32) - (local $outSize i32) - (local $out i32) - (local $4 i32) + (func $bindings/esm/arrayOfStringsFunction (param $a i32) (param $b i32) (result i32) + (local $c i32) + (local $i i32) + (local $i|4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $a + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store - local.get $length - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 2592 - i32.const 2768 - i32.const 51 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + i32.add + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $c + i32.store offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $a + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + i32.lt_s + if + local.get $c + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $i + local.get $a + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + local.get $i + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/array/Array<~lib/string/String>#__set + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + i32.const 0 + local.set $i|4 + loop $for-loop|1 + local.get $i|4 + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + i32.lt_s + if + local.get $c + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $a + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length + local.get $i|4 + i32.add + local.get $b + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + local.get $i|4 + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/array/Array<~lib/string/String>#__set + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|1 + end end - local.get $length - i32.const 2 - i32.shl - local.set $outSize - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $out - local.set $4 + local.get $c + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) - (func $~lib/object/Object#constructor (param $this i32) (result i32) + (func $bindings/esm/PlainObject#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store local.get $this i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 + i32.const 68 + i32.const 13 call $~lib/rt/itcms/__new local.tee $this i32.store end + global.get $~lib/memory/__stack_pointer local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - ) - (func $bindings/esm/NonPlainObject#constructor (param $this 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 offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this i32.store local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - ) - (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result 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 - local.get $0 - i32.store + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:a + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/bufferFunction - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result 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 - local.get $0 - i32.store + i32.const 0 + call $bindings/esm/PlainObject#set:b + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/stringFunction - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result 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 - local.get $0 - i32.store + i32.const 0 + call $bindings/esm/PlainObject#set:c + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/stringFunctionOptional@varargs - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + i64.const 0 + call $bindings/esm/PlainObject#set:d + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:e + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/typedarrayFunction - local.set $2 + i32.const 0 + call $bindings/esm/PlainObject#set:f + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:g + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $bindings/esm/PlainObject#set:h + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:i + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $bindings/esm/staticarrayFunction - local.set $2 + i32.const 0 + call $bindings/esm/PlainObject#set:j + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) - (local $1 i32) + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:k + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $1 + i32.store offset=4 + local.get $1 + f32.const 0 + call $bindings/esm/PlainObject#set:l + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $bindings/esm/staticarrayU16 + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 0 + call $bindings/esm/PlainObject#set:m + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - ) - (func $export:bindings/esm/staticarrayI64 (param $0 i32) (result i32) - (local $1 i32) + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:n + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:o + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $bindings/esm/staticarrayI64 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $bindings/esm/PlainObject#set:p + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $export:bindings/esm/arrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $bindings/esm/objectFunction (param $a i32) (param $b i32) (result i32) + (local $ref i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $bindings/esm/PlainObject#constructor + local.tee $ref i32.store + local.get $ref + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/arrayFunction - local.set $2 + local.get $3 + local.get $a + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 + i32.store offset=8 + local.get $3 + call $bindings/esm/PlainObject#get:a + local.get $b + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $bindings/esm/PlainObject#get:a + i32.add + call $bindings/esm/PlainObject#set:a + local.get $ref + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $a + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $bindings/esm/PlainObject#get:b + local.get $b + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $bindings/esm/PlainObject#get:b + i32.add + call $bindings/esm/PlainObject#set:b + local.get $ref + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 + return ) - (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) + (local $buffer i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store + local.get $length + i32.const 1073741820 + i32.gt_u + if + i32.const 224 + i32.const 272 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/arrayOfStringsFunction - local.set $2 + local.get $length + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $buffer + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 + return ) - (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/staticarray/StaticArray#constructor (param $this i32) (param $length i32) (result i32) + (local $outSize i32) + (local $out i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 224 + i32.const 832 + i32.const 53 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + i32.const 2 + i32.shl + local.set $outSize global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/objectFunction - local.set $2 - global.get $~lib/memory/__stack_pointer + local.get $outSize i32.const 8 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $out + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 + return ) - (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/object/Object#constructor (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/internrefFunction - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) - (func $export:bindings/esm/functionFunction (param $0 i32) (result i32) + (func $bindings/esm/NonPlainObject#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6141,10 +5500,19 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - local.get $0 - call $bindings/esm/functionFunction + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6154,28 +5522,22 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 512 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2592 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2880 + i32.const 528 local.get $0 call $~lib/rt/itcms/__visit - i32.const 320 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 3008 + i32.const 944 local.get $0 call $~lib/rt/itcms/__visit - i32.const 3072 + i32.const 336 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1376 + i32.const 1072 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2432 + i32.const 1136 local.get $0 call $~lib/rt/itcms/__visit global.get $bindings/esm/stringGlobal @@ -6374,6 +5736,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6398,6 +5764,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -6427,6 +5797,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/bindings/raw.release.js b/tests/compiler/bindings/raw.release.js index 20418eeab3..5ecef61fe5 100644 --- a/tests/compiler/bindings/raw.release.js +++ b/tests/compiler/bindings/raw.release.js @@ -33,6 +33,17 @@ export async function instantiate(module, imports = {}) { return new Date().getTimezoneOffset(); })(); }, + abort(message, fileName, lineNumber, columnNumber) { + // ~lib/builtins/__abort_impl(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void + message = __liftString(message >>> 0); + fileName = __liftString(fileName >>> 0); + lineNumber = lineNumber >>> 0; + columnNumber = columnNumber >>> 0; + (() => { + // @external.js + throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); + })(); + }, }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index 7f7493fc3f..91888d58e4 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -6,17 +6,18 @@ (type $4 (func)) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $9 (func (param f64) (result f64))) - (type $10 (func (param i64 i64) (result i64))) - (type $11 (func (result i64))) - (type $12 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64))) + (type $9 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $10 (func (param f64) (result f64))) + (type $11 (func (param i64 i64) (result i64))) + (type $12 (func (result i64))) (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64)) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) (import "env" "Date.getTimezoneOffset" (func $bindings/esm/Date_getTimezoneOffset (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $bindings/esm/plainGlobal i32 (i32.const 1)) (global $bindings/esm/plainMutableGlobal (mut i32) (i32.const 2)) (global $bindings/esm/stringGlobal i32 (i32.const 1056)) @@ -39,8 +40,8 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 4144)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36980)) + (global $~lib/rt/__rtti_base i32 (i32.const 2208)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35044)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") @@ -53,55 +54,36 @@ (data $3.1 (i32.const 1144) "\02\00\00\00\n\00\00\00t\00r\00a\00c\00e") (data $4 (i32.const 1164) "<") (data $4.1 (i32.const 1176) "\02\00\00\00&\00\00\004\002\00 \00f\00r\00o\00m\00 \00c\00o\00n\00s\00o\00l\00e\00.\00l\00o\00g") - (data $5 (i32.const 1228) "\1c") - (data $5.1 (i32.const 1240) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $6 (i32.const 1260) "\1c") - (data $6.1 (i32.const 1272) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $7 (i32.const 1292) "\1c") - (data $7.1 (i32.const 1304) "\02") - (data $8 (i32.const 1324) "<") - (data $8.1 (i32.const 1336) "\02\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 $9 (i32.const 1388) "<") - (data $9.1 (i32.const 1400) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $12 (i32.const 1516) "<") - (data $12.1 (i32.const 1528) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $13 (i32.const 1580) ",") - (data $13.1 (i32.const 1592) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $15 (i32.const 1660) "<") - (data $15.1 (i32.const 1672) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $16 (i32.const 1724) "\1c") - (data $16.1 (i32.const 1736) "\02\00\00\00\02\00\00\00:") - (data $17 (i32.const 1756) "|") - (data $17.1 (i32.const 1768) "\02\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 $18 (i32.const 1884) "<") - (data $18.1 (i32.const 1896) "\02\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 $19 (i32.const 1948) "\1c") - (data $19.1 (i32.const 1960) "\02\00\00\00\02\00\00\000") - (data $20 (i32.const 1980) "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 $21 (i32.const 2380) "\1c\04") - (data $21.1 (i32.const 2392) "\02\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 $22 (i32.const 3436) "\\") - (data $22.1 (i32.const 3448) "\02\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 $23 (i32.const 3532) "<") - (data $23.1 (i32.const 3544) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $24 (i32.const 3596) ",") - (data $24.1 (i32.const 3608) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $25 (i32.const 3644) "<") - (data $25.1 (i32.const 3656) "\02\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 $26 (i32.const 3708) "<") - (data $26.1 (i32.const 3720) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") - (data $27 (i32.const 3772) "<") - (data $27.1 (i32.const 3784) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") - (data $28 (i32.const 3836) ",") - (data $28.1 (i32.const 3848) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $29 (i32.const 3884) "|") - (data $29.1 (i32.const 3896) "\02\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 $30 (i32.const 4012) "<") - (data $30.1 (i32.const 4024) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") - (data $31 (i32.const 4076) "<") - (data $31.1 (i32.const 4088) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") - (data $32 (i32.const 4144) "\10\00\00\00 \00\00\00 \00\00\00 ") - (data $32.1 (i32.const 4168) "\81\08\00\00\01\19\00\00\01\02\00\00$\t\00\00\a4\00\00\00$\n\00\00\02\t\00\00\02A\00\00\00\00\00\00A\00\00\00 ") + (data $5 (i32.const 1228) ",") + (data $5.1 (i32.const 1240) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $6 (i32.const 1276) "<") + (data $6.1 (i32.const 1288) "\02\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 $7 (i32.const 1340) "<") + (data $7.1 (i32.const 1352) "\02\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 $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $11 (i32.const 1532) "<") + (data $11.1 (i32.const 1544) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $12 (i32.const 1596) ",") + (data $12.1 (i32.const 1608) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $14 (i32.const 1676) "<") + (data $14.1 (i32.const 1688) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $15 (i32.const 1740) "\1c") + (data $15.1 (i32.const 1752) "\02") + (data $16 (i32.const 1772) "<") + (data $16.1 (i32.const 1784) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data $17 (i32.const 1836) "<") + (data $17.1 (i32.const 1848) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") + (data $18 (i32.const 1900) ",") + (data $18.1 (i32.const 1912) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $19 (i32.const 1948) "|") + (data $19.1 (i32.const 1960) "\02\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 $20 (i32.const 2076) "<") + (data $20.1 (i32.const 2088) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") + (data $21 (i32.const 2140) "<") + (data $21.1 (i32.const 2152) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") + (data $22 (i32.const 2208) "\10\00\00\00 \00\00\00 \00\00\00 ") + (data $22.1 (i32.const 2232) "\81\08\00\00\01\19\00\00\01\02\00\00$\t\00\00\a4\00\00\00$\n\00\00\02\t\00\00\02A\00\00\00\00\00\00A\00\00\00 ") (export "plainGlobal" (global $bindings/esm/plainGlobal)) (export "plainMutableGlobal" (global $bindings/esm/plainMutableGlobal)) (export "stringGlobal" (global $bindings/esm/stringGlobal)) @@ -157,21 +139,17 @@ (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1536 + i32.const 1552 call $~lib/rt/itcms/__visit - i32.const 3616 - call $~lib/rt/itcms/__visit - i32.const 3904 - call $~lib/rt/itcms/__visit - i32.const 1344 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 4032 + i32.const 1968 call $~lib/rt/itcms/__visit - i32.const 4096 + i32.const 1360 call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 2096 call $~lib/rt/itcms/__visit - i32.const 3456 + i32.const 2160 call $~lib/rt/itcms/__visit i32.const 1056 call $~lib/rt/itcms/__visit @@ -200,7 +178,7 @@ i32.ne if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -232,13 +210,13 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36980 + i32.const 35044 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -252,7 +230,7 @@ i32.eqz if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -284,7 +262,7 @@ i32.eqz if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -306,13 +284,13 @@ i32.const 1 else local.get $2 - i32.const 4144 + i32.const 2208 i32.load i32.gt_u if - i32.const 1536 - i32.const 1600 - i32.const 21 + i32.const 1552 + i32.const 1616 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -320,7 +298,7 @@ local.get $2 i32.const 2 i32.shl - i32.const 4148 + i32.const 2212 i32.add i32.load i32.const 32 @@ -391,7 +369,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -405,7 +383,7 @@ i32.lt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -451,7 +429,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -534,7 +512,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -548,7 +526,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -609,7 +587,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -642,7 +620,7 @@ i32.lt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -657,7 +635,7 @@ i32.ne if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -708,7 +686,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -780,7 +758,7 @@ i64.lt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -805,7 +783,7 @@ i32.gt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -832,7 +810,7 @@ i32.gt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -904,10 +882,10 @@ if unreachable end - i32.const 36992 + i32.const 35056 i32.const 0 i32.store - i32.const 38560 + i32.const 36624 i32.const 0 i32.store loop $for-loop|0 @@ -918,7 +896,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36992 + i32.const 35056 i32.add i32.const 0 i32.store offset=4 @@ -936,7 +914,7 @@ i32.add i32.const 2 i32.shl - i32.const 36992 + i32.const 35056 i32.add i32.const 0 i32.store offset=96 @@ -954,14 +932,14 @@ br $for-loop|0 end end - i32.const 36992 - i32.const 38564 + i32.const 35056 + i32.const 36628 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36992 + i32.const 35056 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1046,7 +1024,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36980 + i32.const 35044 i32.lt_u if local.get $0 @@ -1135,14 +1113,14 @@ i32.ne if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36980 + i32.const 35044 i32.lt_u if local.get $0 @@ -1165,7 +1143,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36980 + i32.const 35044 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1194,7 +1172,7 @@ end if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1278,7 +1256,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1330,7 +1308,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1362,8 +1340,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1344 - i32.const 1408 + i32.const 1360 + i32.const 1424 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1373,7 +1351,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$72 + block $__inlined_func$~lib/rt/itcms/interrupt$71 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1390,7 +1368,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$72 + br $__inlined_func$~lib/rt/itcms/interrupt$71 end local.get $2 i32.const 0 @@ -1423,8 +1401,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1344 - i32.const 1680 + i32.const 1360 + i32.const 1696 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1526,7 +1504,7 @@ i32.eqz if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1541,7 +1519,7 @@ i32.gt_u if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1560,7 +1538,7 @@ i32.and if i32.const 0 - i32.const 1680 + i32.const 1696 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1665,204 +1643,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$76 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1968 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$76 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1980 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1980 - 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 1980 - 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 1980 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -1874,7 +1654,7 @@ i32.eqz if i32.const 0 - i32.const 1408 + i32.const 1424 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1929,11 +1709,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s if - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1970,8 +1750,8 @@ i32.const 3 i32.eq if - i32.const 4032 - i32.const 1408 + i32.const 2096 + i32.const 1424 i32.const 338 i32.const 7 call $~lib/builtins/abort @@ -2023,8 +1803,8 @@ i32.const 3 i32.ne if - i32.const 4096 - i32.const 1408 + i32.const 2160 + i32.const 1424 i32.const 352 i32.const 5 call $~lib/builtins/abort @@ -2128,53 +1908,51 @@ memory.size i32.const 16 i32.shl - i32.const 36980 + i32.const 35044 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1460 - i32.const 1456 + i32.const 1476 + i32.const 1472 i32.store - i32.const 1464 - i32.const 1456 + i32.const 1480 + i32.const 1472 i32.store - i32.const 1456 + i32.const 1472 global.set $~lib/rt/itcms/pinSpace - i32.const 1492 - i32.const 1488 + i32.const 1508 + i32.const 1504 i32.store - i32.const 1496 - i32.const 1488 + i32.const 1512 + i32.const 1504 i32.store - i32.const 1488 + i32.const 1504 global.set $~lib/rt/itcms/toSpace - i32.const 1636 - i32.const 1632 + i32.const 1652 + i32.const 1648 i32.store - i32.const 1640 - i32.const 1632 + i32.const 1656 + i32.const 1648 i32.store - i32.const 1632 + i32.const 1648 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) (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 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2185,199 +1963,111 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $2 i32.store local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const -2 - i32.and - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$289 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1312 - local.set $0 - br $__inlined_func$~lib/string/String#concat$289 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $4 + local.get $2 + i32.add + local.set $5 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 local.get $0 - return - end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1248 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1280 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1744 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=28 - local.get $1 + memory.copy local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1744 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.add local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 + local.get $4 + memory.copy global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end - local.get $0 - i32.const 3552 - i32.const 2626 - i32.const 5 + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable ) - (func $bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result 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 4212 + i32.const 2276 i32.lt_s if - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2385,355 +2075,322 @@ i32.store offset=4 local.get $0 local.get $1 - call $~lib/string/String.__concat + call $bindings/esm/stringFunction global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) + (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 1088 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $bindings/esm/stringFunction + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 + i32.const 35072 + i32.const 35120 i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#get:length (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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 1536 - i32.const 3728 - i32.const 1173 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 i32) + (local $4 i32) + (local $5 f32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store - block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 - i32.add - local.set $5 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + 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/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.tee $2 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $4 + i32.add + local.set $6 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $6 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 3 + i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $1 + local.get $6 + i32.store + local.get $1 + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 0 i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u if - i32.const 3616 - i32.const 3664 - i32.const 19 - i32.const 57 + i32.const 1552 + i32.const 1792 + i32.const 453 + i32.const 64 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 3 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $2 - local.get $5 + local.get $0 i32.store - local.get $2 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor - end - br $folding-inner1 - end - local.tee $2 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - 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 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1536 - i32.const 3728 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $3 - local.get $5 + local.get $4 i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set local.get $3 @@ -2747,15 +2404,15 @@ local.set $3 loop $for-loop|1 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/typedarray/Float32Array#get:length local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -2764,56 +2421,56 @@ call $~lib/typedarray/Int16Array#get:length local.get $3 i32.add - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 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 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $3 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.ge_u if - i32.const 1536 - i32.const 3728 - i32.const 1304 + i32.const 1552 + i32.const 1792 + i32.const 1305 i32.const 64 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add f32.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $1 local.get $4 + local.get $5 i64.trunc_sat_f32_u call $~lib/typedarray/Uint64Array#__set local.get $3 @@ -2827,545 +2484,246 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 return end - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/staticarray/StaticArray#__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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1536 - i32.const 3792 - i32.const 78 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1536 - i32.const 3792 - i32.const 93 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#get:length (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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1536 - i32.const 3856 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 2 - i32.shr_u - i32.gt_u - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + 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/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.add + local.set $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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $4 i32.const 268435455 i32.gt_u if - i32.const 3616 - i32.const 3856 - i32.const 19 - i32.const 48 + i32.const 1248 + i32.const 1856 + i32.const 53 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $4 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$263 - i32.const 1073741820 - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - i32.lt_u - select - local.tee $3 local.get $0 - i32.load - local.tee $2 i32.const 20 i32.sub - local.tee $4 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $4 - local.get $3 - i32.store offset=16 local.get $2 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$263 + local.get $0 + local.get $2 + call $~lib/staticarray/StaticArray#__get + call $~lib/staticarray/StaticArray#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $3 - local.get $4 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $2 - local.get $3 - local.get $4 - i32.load offset=16 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_u - select - memory.copy end - local.get $1 - local.get $2 - i32.ne - if - local.get $0 + i32.const 0 + local.set $2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $4 + local.get $3 + local.get $1 + local.get $2 + call $~lib/staticarray/StaticArray#__get + call $~lib/staticarray/StaticArray#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end end - local.get $0 - local.get $3 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + local.get $4 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $export:bindings/esm/staticarrayU16 (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 4212 + i32.const 2276 i32.lt_s if - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.store - 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 1536 - i32.const 3856 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1536 - i32.const 3856 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 offset=4 - local.get $0 - i32.eqz - if - i32.const 3904 - i32.const 3856 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1536 - i32.const 3856 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/arrayFunction (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 - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3373,138 +2731,243 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 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/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $2 + call $~lib/array/Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $4 - local.get $2 + call $~lib/array/Array#get:length + local.get $4 i32.add local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 i32.const 0 i32.store + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 local.get $5 - i32.const 1073741820 + i32.const 268435455 i32.gt_u if - i32.const 3616 - i32.const 3664 - i32.const 52 - i32.const 43 + i32.const 1248 + i32.const 1920 + i32.const 72 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 8 local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 - i32.store + local.tee $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $6 + local.get $4 + i32.store + local.get $6 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 local.get $5 - local.get $0 - local.get $2 - memory.copy - local.get $2 - local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.get $1 - local.get $4 - memory.copy + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $6 + local.get $2 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $6 + local.get $3 + local.get $1 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 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 - local.get $5 + local.get $6 return end - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/stringFunction - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/arrayOfStringsFunction (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 - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3512,467 +2975,143 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 1088 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - end + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - call $bindings/esm/stringFunction + call $~lib/array/Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $4 i32.add - global.set $~lib/memory/__stack_pointer + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + i32.const 16 + i32.sub global.set $~lib/memory/__stack_pointer - return - end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result 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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $bindings/esm/typedarrayFunction - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - block $__inlined_func$bindings/esm/staticarrayFunction$1 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner0 - 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/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.add - local.set $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 4212 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $4 - i32.const 268435455 - i32.gt_u - if - i32.const 3616 - i32.const 3792 - i32.const 51 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $4 - local.get $2 - local.get $0 - local.get $2 - call $~lib/staticarray/StaticArray#__get - call $~lib/staticarray/StaticArray#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $4 - local.get $3 - local.get $1 - local.get $2 - call $~lib/staticarray/StaticArray#__get - call $~lib/staticarray/StaticArray#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - br $__inlined_func$bindings/esm/staticarrayFunction$1 - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:bindings/esm/staticarrayU16 (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 4212 - i32.lt_s - if - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $export:bindings/esm/arrayFunction (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 - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4212 - i32.lt_s - br_if $folding-inner1 - 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/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store - local.get $6 + local.get $5 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=12 - local.get $5 + local.get $4 i32.const 268435455 i32.gt_u if - i32.const 3616 - i32.const 3856 - i32.const 70 + i32.const 1248 + i32.const 1920 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $3 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.store - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 + local.get $5 local.get $6 - local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 local.get $5 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -3984,251 +3123,7 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - 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 - local.get $6 - return - end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:bindings/esm/arrayOfStringsFunction (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 - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4212 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store - local.get $5 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u - if - i32.const 3616 - i32.const 3856 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $5 - local.get $3 - i32.store - local.get $5 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -4305,8 +3200,8 @@ local.get $5 return end - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4321,7 +3216,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4335,7 +3230,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4345,14 +3240,14 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$4 (result i32) + block $__inlined_func$bindings/esm/PlainObject#constructor$2 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer @@ -4373,7 +3268,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer @@ -4508,94 +3403,881 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$4 + br $__inlined_func$bindings/esm/PlainObject#constructor$2 + end + br $folding-inner1 + end + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load8_s + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load16_s offset=2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $1 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + 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 + local.get $2 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result 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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$287 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1760 + local.set $2 + br $__inlined_func$~lib/string/String#concat$287 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $3 + memory.copy + local.get $2 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 + local.get $2 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/typedarray/Int16Array#get:length (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#get:length (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + 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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1174 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray#__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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1856 + i32.const 80 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1856 + i32.const 95 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#get:length (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1552 + i32.const 1920 + i32.const 116 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$264 + i32.const 1073741820 + local.get $2 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $3 + local.get $0 + i32.load + local.tee $2 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $4 + local.get $3 + i32.store offset=16 + local.get $2 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$264 end - br $folding-inner1 + local.get $3 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $2 + local.get $3 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_u + select + memory.copy end - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load8_s - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $3 local.get $1 - i32.load8_s - i32.add - i32.store8 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.ne + if + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + end local.get $0 + local.get $3 i32.store offset=8 - local.get $0 - i32.load16_s offset=2 - local.set $0 - global.get $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if local.get $1 - i32.store offset=8 - local.get $2 + i32.const 0 + i32.lt_s + if + i32.const 1552 + i32.const 1920 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end local.get $0 local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $3 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 end - i32.const 37008 - i32.const 37056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result 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 4212 + i32.const 2276 i32.lt_s if - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1552 + i32.const 1920 + i32.const 116 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store 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 offset=4 + local.get $0 + i32.eqz + if + i32.const 1968 + i32.const 1920 + i32.const 120 + i32.const 40 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1552 + i32.const 1920 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) (local $2 i32) @@ -4632,7 +4314,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4661,7 +4343,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4674,7 +4356,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4212 + i32.const 2276 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4732,8 +4414,8 @@ end unreachable end - i32.const 37008 - i32.const 37056 + i32.const 35072 + i32.const 35120 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/bool-Oz.debug.wat b/tests/compiler/bool-Oz.debug.wat index e156f6d51d..87fb6ce2d2 100644 --- a/tests/compiler/bool-Oz.debug.wat +++ b/tests/compiler/bool-Oz.debug.wat @@ -1,70 +1,6 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 12) "\1c") - (data $0.1 (i32.const 24) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 44) "\1c") - (data $1.1 (i32.const 56) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 76) "\1c") - (data $2.1 (i32.const 88) "\02") - (data $3 (i32.const 108) "<") - (data $3.1 (i32.const 120) "\02\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 $4 (i32.const 172) "<") - (data $4.1 (i32.const 184) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 300) "<") - (data $7.1 (i32.const 312) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 364) ",") - (data $8.1 (i32.const 376) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 444) "<") - (data $10.1 (i32.const 456) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 508) "\1c") - (data $11.1 (i32.const 520) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 540) "|") - (data $12.1 (i32.const 552) "\02\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 $13 (i32.const 668) "<") - (data $13.1 (i32.const 680) "\02\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 $14 (i32.const 732) "\1c") - (data $14.1 (i32.const 744) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 764) "\\") - (data $15.1 (i32.const 776) "\02\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 $16 (i32.const 860) "<") - (data $16.1 (i32.const 872) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $17 (i32.const 924) ",") - (data $17.1 (i32.const 936) "\02\00\00\00\14\00\00\00b\00o\00o\00l\00-\00O\00z\00.\00t\00s") - (data $18 (i32.const 976) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 12) ",") + (data $0.1 (i32.const 24) "\02\00\00\00\14\00\00\00b\00o\00o\00l\00-\00O\00z\00.\00t\00s") (export "memory" (memory $0)) - (start $~start) - (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) - local.get $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - local.get $0 - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 33764 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/bool-Oz.release.wat b/tests/compiler/bool-Oz.release.wat index e156f6d51d..87fb6ce2d2 100644 --- a/tests/compiler/bool-Oz.release.wat +++ b/tests/compiler/bool-Oz.release.wat @@ -1,70 +1,6 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 12) "\1c") - (data $0.1 (i32.const 24) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 44) "\1c") - (data $1.1 (i32.const 56) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 76) "\1c") - (data $2.1 (i32.const 88) "\02") - (data $3 (i32.const 108) "<") - (data $3.1 (i32.const 120) "\02\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 $4 (i32.const 172) "<") - (data $4.1 (i32.const 184) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 300) "<") - (data $7.1 (i32.const 312) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 364) ",") - (data $8.1 (i32.const 376) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 444) "<") - (data $10.1 (i32.const 456) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 508) "\1c") - (data $11.1 (i32.const 520) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 540) "|") - (data $12.1 (i32.const 552) "\02\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 $13 (i32.const 668) "<") - (data $13.1 (i32.const 680) "\02\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 $14 (i32.const 732) "\1c") - (data $14.1 (i32.const 744) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 764) "\\") - (data $15.1 (i32.const 776) "\02\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 $16 (i32.const 860) "<") - (data $16.1 (i32.const 872) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $17 (i32.const 924) ",") - (data $17.1 (i32.const 936) "\02\00\00\00\14\00\00\00b\00o\00o\00l\00-\00O\00z\00.\00t\00s") - (data $18 (i32.const 976) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 12) ",") + (data $0.1 (i32.const 24) "\02\00\00\00\14\00\00\00b\00o\00o\00l\00-\00O\00z\00.\00t\00s") (export "memory" (memory $0)) - (start $~start) - (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) - local.get $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - local.get $0 - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 33764 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/bool.debug.wat b/tests/compiler/bool.debug.wat index ccc5dfb20d..a6bb7ccd47 100644 --- a/tests/compiler/bool.debug.wat +++ b/tests/compiler/bool.debug.wat @@ -1,32 +1,9 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $bool/i (mut 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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $bool/I (mut i64) (i64.const 2)) (global $bool/u (mut i32) (i32.const 2)) (global $bool/U (mut i64) (i64.const 2)) @@ -65,2686 +42,16 @@ (global $bool/F12 (mut f64) (f64.const 0)) (global $bool/F13 (mut f64) (f64.const 0)) (global $bool/uu (mut i32) (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00b\00o\00o\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00b\00o\00o\00l\00.\00t\00s\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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:bool - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $bool/i i32.const 0 i32.ne @@ -2753,7 +60,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2 i32.const 1 call $~lib/builtins/abort @@ -2767,7 +74,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4 i32.const 1 call $~lib/builtins/abort @@ -2781,7 +88,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -2795,7 +102,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -2814,7 +121,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -2833,7 +140,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -2852,7 +159,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -2871,7 +178,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -2893,7 +200,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -2914,7 +221,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -2936,7 +243,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -2955,7 +262,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -2977,7 +284,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -2998,7 +305,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -3020,7 +327,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -3042,7 +349,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -3066,7 +373,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -3090,7 +397,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 37 i32.const 1 call $~lib/builtins/abort @@ -3114,7 +421,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 39 i32.const 1 call $~lib/builtins/abort @@ -3133,7 +440,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -3152,7 +459,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -3171,7 +478,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 46 i32.const 1 call $~lib/builtins/abort @@ -3190,7 +497,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 48 i32.const 1 call $~lib/builtins/abort @@ -3212,7 +519,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -3233,7 +540,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 52 i32.const 1 call $~lib/builtins/abort @@ -3255,7 +562,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -3274,7 +581,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 56 i32.const 1 call $~lib/builtins/abort @@ -3296,7 +603,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 58 i32.const 1 call $~lib/builtins/abort @@ -3317,7 +624,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 60 i32.const 1 call $~lib/builtins/abort @@ -3339,7 +646,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -3361,7 +668,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 64 i32.const 1 call $~lib/builtins/abort @@ -3385,7 +692,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 66 i32.const 1 call $~lib/builtins/abort @@ -3409,7 +716,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 68 i32.const 1 call $~lib/builtins/abort @@ -3433,7 +740,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 70 i32.const 1 call $~lib/builtins/abort @@ -3447,7 +754,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 73 i32.const 1 call $~lib/builtins/abort @@ -3462,92 +769,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3556,322 +787,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + local.set $4 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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/bool.release.wat b/tests/compiler/bool.release.wat index 8157fb9c9b..b107d68536 100644 --- a/tests/compiler/bool.release.wat +++ b/tests/compiler/bool.release.wat @@ -1,78 +1,6 @@ (module - (type $0 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\0e\00\00\00b\00o\00o\00l\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\0e\00\00\00b\00o\00o\00l\00.\00t\00s") (export "memory" (memory $0)) - (start $~start) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/builtins.debug.wat b/tests/compiler/builtins.debug.wat index b2ab2de23f..76d15e6209 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -1,2768 +1,100 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) + (type $1 (func)) (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i32 i32))) - (type $8 (func (param i32 i32 i64) (result i32))) - (type $9 (func (result i32))) - (type $10 (func (param i32 i64 i32))) - (type $11 (func (param i64 i32) (result i32))) - (type $12 (func (param i32 i64 i32 i32))) - (type $13 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $14 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $3 (func (param i32 i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $6 (func (param i32 i32 f64 f64 f64 f64 f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $builtins/b (mut i32) (i32.const 0)) (global $builtins/i (mut i32) (i32.const 0)) (global $builtins/l (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $builtins/v (mut i32) (i32.const 0)) - (global $builtins/I (mut i64) (i64.const 0)) - (global $builtins/f (mut f32) (f32.const 0)) - (global $~lib/builtins/f32.NaN f32 (f32.const nan:0x400000)) - (global $builtins/F (mut f64) (f64.const 0)) - (global $~lib/builtins/f64.NaN f64 (f64.const nan:0x8000000000000)) - (global $builtins/constantOffset i32 (i32.const 8)) - (global $builtins/u (mut i32) (i32.const 0)) - (global $builtins/U (mut i64) (i64.const 0)) - (global $builtins/s (mut i32) (i32.const 0)) - (global $builtins/fn (mut i32) (i32.const 2480)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128)) - (global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127)) - (global $~lib/builtins/i16.MIN_VALUE i32 (i32.const -32768)) - (global $~lib/builtins/i16.MAX_VALUE i32 (i32.const 32767)) - (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) - (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) - (global $~lib/builtins/i64.MIN_VALUE i64 (i64.const -9223372036854775808)) - (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) - (global $~lib/builtins/u8.MIN_VALUE i32 (i32.const 0)) - (global $~lib/builtins/u8.MAX_VALUE i32 (i32.const 255)) - (global $~lib/builtins/u16.MIN_VALUE i32 (i32.const 0)) - (global $~lib/builtins/u16.MAX_VALUE i32 (i32.const 65535)) - (global $~lib/builtins/u32.MIN_VALUE i32 (i32.const 0)) - (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) - (global $~lib/builtins/u64.MIN_VALUE i64 (i64.const 0)) - (global $~lib/builtins/u64.MAX_VALUE i64 (i64.const -1)) - (global $~lib/builtins/bool.MIN_VALUE i32 (i32.const 0)) - (global $~lib/builtins/bool.MAX_VALUE i32 (i32.const 1)) - (global $~lib/builtins/f32.MIN_NORMAL_VALUE f32 (f32.const 1.1754943508222875e-38)) - (global $~lib/builtins/f32.MIN_VALUE f32 (f32.const 1.401298464324817e-45)) - (global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14)) - (global $~lib/builtins/f32.MIN_SAFE_INTEGER f32 (f32.const -16777215)) - (global $~lib/builtins/f32.MAX_SAFE_INTEGER f32 (f32.const 16777215)) - (global $~lib/builtins/f32.EPSILON f32 (f32.const 1.1920928955078125e-07)) - (global $~lib/builtins/f64.MIN_NORMAL_VALUE f64 (f64.const 2.2250738585072014e-308)) - (global $~lib/builtins/f64.MIN_VALUE f64 (f64.const 5e-324)) - (global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284)) - (global $~lib/builtins/f64.MIN_SAFE_INTEGER f64 (f64.const -9007199254740991)) - (global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991)) - (global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16)) - (global $~lib/rt/__rtti_base i32 (i32.const 3344)) - (global $~lib/memory/__data_end i32 (i32.const 3404)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36172)) - (global $~lib/memory/__heap_base i32 (i32.const 36172)) - (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00c\00\00\00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00") - (data $21 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2492) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\008\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00(\00)\00 \00{\00 \00[\00n\00a\00t\00i\00v\00e\00 \00c\00o\00d\00e\00]\00 \00}\00\00\00\00\00") - (data $23 (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00i\00g\00n\00a\00t\00u\00r\00e\00s\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2620) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00t\00e\00s\00t\00i\00n\00g\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2668) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00F\00u\00n\00c\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") - (data $28 (i32.const 2780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00b\00o\00o\00l\00\00\00\00\00") - (data $29 (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00i\008\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00u\008\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\001\006\00\00\00\00\00\00\00") - (data $32 (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\001\006\00\00\00\00\00\00\00") - (data $33 (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") - (data $34 (i32.const 2972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\003\002\00\00\00\00\00\00\00") - (data $35 (i32.const 3004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00f\003\002\00\00\00\00\00\00\00") - (data $36 (i32.const 3036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\006\004\00\00\00\00\00\00\00") - (data $37 (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\006\004\00\00\00\00\00\00\00") - (data $38 (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00f\006\004\00\00\00\00\00\00\00") - (data $39 (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00i\00s\00i\00z\00e\00\00\00") - (data $40 (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00u\00s\00i\00z\00e\00\00\00") - (data $41 (i32.const 3196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00v\00o\00i\00d\00\00\00\00\00") - (data $42 (i32.const 3228) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00o\00m\00e\00 \00v\00a\00l\00u\00e\00\00\00\00\00\00\00\00\00") - (data $43 (i32.const 3276) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $44 (i32.const 3308) "\1c\00\00\00\00\00\00\00\00\00\00\00\r\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $45 (i32.const 3344) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00A\00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (table $0 4 4 funcref) - (elem $0 (i32.const 1) $start:builtins~anonymous|0 $start:builtins~anonymous|1 $start:builtins~anonymous|2) - (export "test" (func $builtins/test)) - (export "memory" (memory $0)) - (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 352 - i32.const 416 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 224 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 224 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 160 - i32.const 496 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 160 - i32.const 224 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $builtins/v (mut i32) (i32.const 0)) + (global $builtins/I (mut i64) (i64.const 0)) + (global $builtins/f (mut f32) (f32.const 0)) + (global $~lib/builtins/f32.NaN f32 (f32.const nan:0x400000)) + (global $builtins/F (mut f64) (f64.const 0)) + (global $~lib/builtins/f64.NaN f64 (f64.const nan:0x8000000000000)) + (global $builtins/constantOffset i32 (i32.const 8)) + (global $builtins/u (mut i32) (i32.const 0)) + (global $builtins/U (mut i64) (i64.const 0)) + (global $builtins/s (mut i32) (i32.const 0)) + (global $builtins/fn (mut i32) (i32.const 144)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128)) + (global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127)) + (global $~lib/builtins/i16.MIN_VALUE i32 (i32.const -32768)) + (global $~lib/builtins/i16.MAX_VALUE i32 (i32.const 32767)) + (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $~lib/builtins/i64.MIN_VALUE i64 (i64.const -9223372036854775808)) + (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) + (global $~lib/builtins/u8.MIN_VALUE i32 (i32.const 0)) + (global $~lib/builtins/u8.MAX_VALUE i32 (i32.const 255)) + (global $~lib/builtins/u16.MIN_VALUE i32 (i32.const 0)) + (global $~lib/builtins/u16.MAX_VALUE i32 (i32.const 65535)) + (global $~lib/builtins/u32.MIN_VALUE i32 (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/builtins/u64.MIN_VALUE i64 (i64.const 0)) + (global $~lib/builtins/u64.MAX_VALUE i64 (i64.const -1)) + (global $~lib/builtins/bool.MIN_VALUE i32 (i32.const 0)) + (global $~lib/builtins/bool.MAX_VALUE i32 (i32.const 1)) + (global $~lib/builtins/f32.MIN_NORMAL_VALUE f32 (f32.const 1.1754943508222875e-38)) + (global $~lib/builtins/f32.MIN_VALUE f32 (f32.const 1.401298464324817e-45)) + (global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14)) + (global $~lib/builtins/f32.MIN_SAFE_INTEGER f32 (f32.const -16777215)) + (global $~lib/builtins/f32.MAX_SAFE_INTEGER f32 (f32.const 16777215)) + (global $~lib/builtins/f32.EPSILON f32 (f32.const 1.1920928955078125e-07)) + (global $~lib/builtins/f64.MIN_NORMAL_VALUE f64 (f64.const 2.2250738585072014e-308)) + (global $~lib/builtins/f64.MIN_VALUE f64 (f64.const 5e-324)) + (global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284)) + (global $~lib/builtins/f64.MIN_SAFE_INTEGER f64 (f64.const -9007199254740991)) + (global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991)) + (global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16)) + (global $~lib/memory/__data_end i32 (i32.const 1004)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33772)) + (global $~lib/memory/__heap_base i32 (i32.const 33772)) + (memory $0 1) + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00c\00\00\00\00\00\00\00") + (data $2 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00") + (data $3 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 156) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\008\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00(\00)\00 \00{\00 \00[\00n\00a\00t\00i\00v\00e\00 \00c\00o\00d\00e\00]\00 \00}\00\00\00\00\00") + (data $5 (i32.const 236) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00i\00g\00n\00a\00t\00u\00r\00e\00s\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 284) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00t\00e\00s\00t\00i\00n\00g\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 332) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00F\00u\00n\00c\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") + (data $10 (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00b\00o\00o\00l\00\00\00\00\00") + (data $11 (i32.const 476) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00i\008\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00u\008\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\001\006\00\00\00\00\00\00\00") + (data $14 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\001\006\00\00\00\00\00\00\00") + (data $15 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") + (data $16 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\003\002\00\00\00\00\00\00\00") + (data $17 (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00f\003\002\00\00\00\00\00\00\00") + (data $18 (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\006\004\00\00\00\00\00\00\00") + (data $19 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\006\004\00\00\00\00\00\00\00") + (data $20 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00f\006\004\00\00\00\00\00\00\00") + (data $21 (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00i\00s\00i\00z\00e\00\00\00") + (data $22 (i32.const 828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00u\00s\00i\00z\00e\00\00\00") + (data $23 (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00v\00o\00i\00d\00\00\00\00\00") + (data $24 (i32.const 892) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00o\00m\00e\00 \00v\00a\00l\00u\00e\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\r\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (table $0 4 4 funcref) + (elem $0 (i32.const 1) $start:builtins~anonymous|0 $start:builtins~anonymous|1 $start:builtins~anonymous|2) + (export "test" (func $builtins/test)) + (export "memory" (memory $0)) + (start $~start) (func $start:builtins~anonymous|0 (param $a i32) (param $b i32) (result i32) local.get $a local.get $b @@ -2778,6 +110,19 @@ i32.const 32 return ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -2887,7 +232,7 @@ return ) (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#toString (param $this i32) (result i32) - i32.const 2512 + i32.const 176 return ) (func $~lib/atomics/Atomics.isLockFree (param $size i32) (result i32) @@ -3046,20 +391,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 36192 - i32.const 36240 + i32.const 33792 + i32.const 33840 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3068,196 +409,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 32 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 96 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 128 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -3515,30 +687,13 @@ i32.add i32.extend8_s global.set $builtins/l - 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 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 448 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $builtins/l i32.const 3 i32.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 53 i32.const 20 call $~lib/builtins/abort @@ -3555,7 +710,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 54 i32.const 20 call $~lib/builtins/abort @@ -3571,7 +726,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 55 i32.const 20 call $~lib/builtins/abort @@ -3588,7 +743,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 56 i32.const 20 call $~lib/builtins/abort @@ -3604,7 +759,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 57 i32.const 19 call $~lib/builtins/abort @@ -3620,7 +775,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 58 i32.const 19 call $~lib/builtins/abort @@ -3636,7 +791,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 59 i32.const 19 call $~lib/builtins/abort @@ -3652,7 +807,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 60 i32.const 19 call $~lib/builtins/abort @@ -3682,7 +837,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 63 i32.const 34 call $~lib/builtins/abort @@ -3712,7 +867,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 64 i32.const 34 call $~lib/builtins/abort @@ -3857,7 +1012,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 98 i32.const 20 call $~lib/builtins/abort @@ -3878,7 +1033,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 99 i32.const 21 call $~lib/builtins/abort @@ -3899,7 +1054,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 100 i32.const 21 call $~lib/builtins/abort @@ -3915,7 +1070,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 101 i32.const 21 call $~lib/builtins/abort @@ -3931,7 +1086,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 102 i32.const 21 call $~lib/builtins/abort @@ -3947,7 +1102,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 103 i32.const 21 call $~lib/builtins/abort @@ -3963,7 +1118,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 104 i32.const 21 call $~lib/builtins/abort @@ -3979,7 +1134,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 105 i32.const 20 call $~lib/builtins/abort @@ -3995,7 +1150,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 106 i32.const 20 call $~lib/builtins/abort @@ -4011,7 +1166,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 107 i32.const 20 call $~lib/builtins/abort @@ -4027,7 +1182,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 108 i32.const 20 call $~lib/builtins/abort @@ -4043,7 +1198,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 109 i32.const 21 call $~lib/builtins/abort @@ -4059,7 +1214,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 110 i32.const 22 call $~lib/builtins/abort @@ -4158,7 +1313,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 136 i32.const 20 call $~lib/builtins/abort @@ -4179,7 +1334,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 137 i32.const 21 call $~lib/builtins/abort @@ -4200,7 +1355,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 138 i32.const 21 call $~lib/builtins/abort @@ -4216,7 +1371,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 139 i32.const 21 call $~lib/builtins/abort @@ -4232,7 +1387,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 140 i32.const 21 call $~lib/builtins/abort @@ -4248,7 +1403,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 141 i32.const 21 call $~lib/builtins/abort @@ -4264,7 +1419,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 142 i32.const 21 call $~lib/builtins/abort @@ -4280,7 +1435,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 143 i32.const 20 call $~lib/builtins/abort @@ -4296,7 +1451,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 144 i32.const 20 call $~lib/builtins/abort @@ -4312,7 +1467,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 145 i32.const 20 call $~lib/builtins/abort @@ -4328,7 +1483,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 146 i32.const 20 call $~lib/builtins/abort @@ -4344,7 +1499,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 147 i32.const 21 call $~lib/builtins/abort @@ -4360,7 +1515,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 148 i32.const 22 call $~lib/builtins/abort @@ -4558,7 +1713,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 200 i32.const 25 call $~lib/builtins/abort @@ -4574,7 +1729,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 201 i32.const 25 call $~lib/builtins/abort @@ -4590,7 +1745,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 202 i32.const 25 call $~lib/builtins/abort @@ -4606,7 +1761,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 203 i32.const 25 call $~lib/builtins/abort @@ -4622,7 +1777,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 204 i32.const 26 call $~lib/builtins/abort @@ -4651,7 +1806,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 209 i32.const 24 call $~lib/builtins/abort @@ -4667,7 +1822,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 210 i32.const 24 call $~lib/builtins/abort @@ -4683,7 +1838,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 211 i32.const 24 call $~lib/builtins/abort @@ -4699,7 +1854,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 212 i32.const 24 call $~lib/builtins/abort @@ -4921,7 +2076,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 268 i32.const 25 call $~lib/builtins/abort @@ -4937,7 +2092,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 269 i32.const 25 call $~lib/builtins/abort @@ -4953,7 +2108,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 270 i32.const 25 call $~lib/builtins/abort @@ -4969,7 +2124,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 271 i32.const 25 call $~lib/builtins/abort @@ -5002,7 +2157,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 277 i32.const 24 call $~lib/builtins/abort @@ -5018,7 +2173,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 278 i32.const 24 call $~lib/builtins/abort @@ -5034,7 +2189,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 279 i32.const 24 call $~lib/builtins/abort @@ -5050,7 +2205,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 280 i32.const 24 call $~lib/builtins/abort @@ -5246,7 +2401,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 342 i32.const 23 call $~lib/builtins/abort @@ -5299,7 +2454,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 361 i32.const 23 call $~lib/builtins/abort @@ -5396,7 +2551,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 400 i32.const 1 call $~lib/builtins/abort @@ -5417,7 +2572,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 401 i32.const 1 call $~lib/builtins/abort @@ -5440,7 +2595,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 402 i32.const 1 call $~lib/builtins/abort @@ -5458,7 +2613,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 403 i32.const 1 call $~lib/builtins/abort @@ -5476,7 +2631,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 404 i32.const 1 call $~lib/builtins/abort @@ -5494,12 +2649,12 @@ local.get $53 i32.store local.get $53 - i32.const 2512 + i32.const 176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 405 i32.const 1 call $~lib/builtins/abort @@ -6041,7 +3196,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 587 i32.const 1 call $~lib/builtins/abort @@ -6054,7 +3209,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 588 i32.const 1 call $~lib/builtins/abort @@ -6067,7 +3222,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 589 i32.const 1 call $~lib/builtins/abort @@ -6080,7 +3235,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 590 i32.const 1 call $~lib/builtins/abort @@ -6093,7 +3248,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 591 i32.const 1 call $~lib/builtins/abort @@ -6106,7 +3261,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 592 i32.const 1 call $~lib/builtins/abort @@ -6119,7 +3274,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 593 i32.const 1 call $~lib/builtins/abort @@ -6129,13 +3284,13 @@ local.set $48 i32.const 0 local.set $49 - i32.const 42 + i32.const 51 local.set $50 - i32.const 100 + i32.const 52 local.set $51 - i32.const 100 + i32.const 52 local.set $52 - i32.const 2592 + i32.const 256 i32.const 5 local.get $48 f64.convert_i32_u @@ -6153,8 +3308,8 @@ i32.eq i32.eqz if - i32.const 2640 - i32.const 2432 + i32.const 304 + i32.const 96 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -6166,19 +3321,19 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 604 i32.const 3 call $~lib/builtins/abort unreachable end local.get $50 - i32.const 42 + i32.const 51 i32.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -6190,247 +3345,247 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 606 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2688 - i32.const 2688 + i32.const 352 + i32.const 352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2688 - i32.const 2688 + i32.const 352 + i32.const 352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 611 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2736 - i32.const 2736 + i32.const 400 + i32.const 400 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 612 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2768 - i32.const 2768 + i32.const 432 + i32.const 432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 613 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2800 - i32.const 2800 + i32.const 464 + i32.const 464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 614 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2832 - i32.const 2832 + i32.const 496 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 615 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2864 - i32.const 2864 + i32.const 528 + i32.const 528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 616 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2896 - i32.const 2896 + i32.const 560 + i32.const 560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 617 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2928 - i32.const 2928 + i32.const 592 + i32.const 592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 618 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2960 - i32.const 2960 + i32.const 624 + i32.const 624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 619 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2992 - i32.const 2992 + i32.const 656 + i32.const 656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 620 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3024 - i32.const 3024 + i32.const 688 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 621 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3056 - i32.const 3056 + i32.const 720 + i32.const 720 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 622 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3088 - i32.const 3088 + i32.const 752 + i32.const 752 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 623 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3120 - i32.const 3120 + i32.const 784 + i32.const 784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 624 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3152 - i32.const 3152 + i32.const 816 + i32.const 816 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 625 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3184 - i32.const 3184 + i32.const 848 + i32.const 848 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 626 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3216 - i32.const 3216 + i32.const 880 + i32.const 880 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 627 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2768 - i32.const 2768 + i32.const 432 + i32.const 432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 628 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2688 - i32.const 2688 + i32.const 352 + i32.const 352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -6511,7 +3666,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 663 i32.const 1 call $~lib/builtins/abort @@ -6526,7 +3681,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 668 i32.const 1 call $~lib/builtins/abort @@ -6541,7 +3696,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 673 i32.const 1 call $~lib/builtins/abort @@ -6556,7 +3711,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 96 i32.const 678 i32.const 1 call $~lib/builtins/abort @@ -6567,399 +3722,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 160 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1216 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2272 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit - ) - (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28%29=>void>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2Ci32%29=>void>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2Ci32%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2Ci32%2Ci32%29=>void>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/function/Function<%28i32%2Ci32%2Ci32%2Ci32%29=>void> - block $~lib/function/Function<%28%29=>void> - block $builtins/Foo - block $builtins/Bar - block $builtins/Foo - block $builtins/Foo - block $~lib/function/Function<%28i32%2Ci32%29=>i32> - block $builtins/C - block $~lib/typedarray/Uint8Array - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/typedarray/Uint8Array $builtins/C $~lib/function/Function<%28i32%2Ci32%29=>i32> $builtins/Foo $builtins/Foo $builtins/Bar $builtins/Foo $~lib/function/Function<%28%29=>void> $~lib/function/Function<%28i32%2Ci32%2Ci32%2Ci32%29=>void> $invalid - end - return - 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~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array~visit - return - end - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit - return - end - return - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2Ci32%2Ci32%29=>void>~visit - return - end - unreachable - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (param $this i32) (param $cookie 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 $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/function/Function<%28%29=>void>#__visit (param $this i32) (param $cookie 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 $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28%29=>void>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2Ci32%29=>void>#__visit (param $this i32) (param $cookie 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 $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28i32%2Ci32%2Ci32%2Ci32%29=>void>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index aec5554994..3a17e17829 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -1,1804 +1,75 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param i32 i32 f64 f64 f64 f64 f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $builtins/i (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 $builtins/I (mut i64) (i64.const 0)) (global $builtins/f (mut f32) (f32.const 0)) (global $builtins/F (mut f64) (f64.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37196)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34796)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02") (data $1 (i32.const 1068) "\1c") (data $1.1 (i32.const 1080) "\02\00\00\00\06\00\00\00a\00b\00c") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) ",") - (data $20.1 (i32.const 3448) "\02\00\00\00\16\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $21 (i32.const 3484) "\1c") - (data $21.1 (i32.const 3496) "\07\00\00\00\08\00\00\00\01") - (data $22 (i32.const 3516) "L") - (data $22.1 (i32.const 3528) "\02\00\00\008\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00(\00)\00 \00{\00 \00[\00n\00a\00t\00i\00v\00e\00 \00c\00o\00d\00e\00]\00 \00}") - (data $23 (i32.const 3596) ",") - (data $23.1 (i32.const 3608) "\02\00\00\00\14\00\00\00s\00i\00g\00n\00a\00t\00u\00r\00e\00s") - (data $24 (i32.const 3644) ",") - (data $24.1 (i32.const 3656) "\02\00\00\00\0e\00\00\00t\00e\00s\00t\00i\00n\00g") - (data $25 (i32.const 3692) ",") - (data $25.1 (i32.const 3704) "\02\00\00\00\10\00\00\00F\00u\00n\00c\00t\00i\00o\00n") - (data $26 (i32.const 3740) "\1c") - (data $26.1 (i32.const 3752) "\02\00\00\00\02\00\00\00C") - (data $27 (i32.const 3772) "\1c") - (data $27.1 (i32.const 3784) "\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g") - (data $28 (i32.const 3804) "\1c") - (data $28.1 (i32.const 3816) "\02\00\00\00\08\00\00\00b\00o\00o\00l") - (data $29 (i32.const 3836) "\1c") - (data $29.1 (i32.const 3848) "\02\00\00\00\04\00\00\00i\008") - (data $30 (i32.const 3868) "\1c") - (data $30.1 (i32.const 3880) "\02\00\00\00\04\00\00\00u\008") - (data $31 (i32.const 3900) "\1c") - (data $31.1 (i32.const 3912) "\02\00\00\00\06\00\00\00i\001\006") - (data $32 (i32.const 3932) "\1c") - (data $32.1 (i32.const 3944) "\02\00\00\00\06\00\00\00u\001\006") - (data $33 (i32.const 3964) "\1c") - (data $33.1 (i32.const 3976) "\02\00\00\00\06\00\00\00i\003\002") - (data $34 (i32.const 3996) "\1c") - (data $34.1 (i32.const 4008) "\02\00\00\00\06\00\00\00u\003\002") - (data $35 (i32.const 4028) "\1c") - (data $35.1 (i32.const 4040) "\02\00\00\00\06\00\00\00f\003\002") - (data $36 (i32.const 4060) "\1c") - (data $36.1 (i32.const 4072) "\02\00\00\00\06\00\00\00i\006\004") - (data $37 (i32.const 4092) "\1c") - (data $37.1 (i32.const 4104) "\02\00\00\00\06\00\00\00u\006\004") - (data $38 (i32.const 4124) "\1c") - (data $38.1 (i32.const 4136) "\02\00\00\00\06\00\00\00f\006\004") - (data $39 (i32.const 4156) "\1c") - (data $39.1 (i32.const 4168) "\02\00\00\00\n\00\00\00i\00s\00i\00z\00e") - (data $40 (i32.const 4188) "\1c") - (data $40.1 (i32.const 4200) "\02\00\00\00\n\00\00\00u\00s\00i\00z\00e") - (data $41 (i32.const 4220) "\1c") - (data $41.1 (i32.const 4232) "\02\00\00\00\08\00\00\00v\00o\00i\00d") - (data $42 (i32.const 4252) ",") - (data $42.1 (i32.const 4264) "\02\00\00\00\14\00\00\00s\00o\00m\00e\00 \00v\00a\00l\00u\00e") - (data $43 (i32.const 4300) "\1c") - (data $43.1 (i32.const 4312) "\0c\00\00\00\08\00\00\00\02") - (data $44 (i32.const 4332) "\1c") - (data $44.1 (i32.const 4344) "\r\00\00\00\08\00\00\00\03") - (data $45 (i32.const 4368) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00A\00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $2 (i32.const 1100) ",") + (data $2.1 (i32.const 1112) "\02\00\00\00\16\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") + (data $3 (i32.const 1148) "\1c") + (data $3.1 (i32.const 1160) "\07\00\00\00\08\00\00\00\01") + (data $4 (i32.const 1180) "L") + (data $4.1 (i32.const 1192) "\02\00\00\008\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00(\00)\00 \00{\00 \00[\00n\00a\00t\00i\00v\00e\00 \00c\00o\00d\00e\00]\00 \00}") + (data $5 (i32.const 1260) ",") + (data $5.1 (i32.const 1272) "\02\00\00\00\14\00\00\00s\00i\00g\00n\00a\00t\00u\00r\00e\00s") + (data $6 (i32.const 1308) ",") + (data $6.1 (i32.const 1320) "\02\00\00\00\0e\00\00\00t\00e\00s\00t\00i\00n\00g") + (data $7 (i32.const 1356) ",") + (data $7.1 (i32.const 1368) "\02\00\00\00\10\00\00\00F\00u\00n\00c\00t\00i\00o\00n") + (data $8 (i32.const 1404) "\1c") + (data $8.1 (i32.const 1416) "\02\00\00\00\02\00\00\00C") + (data $9 (i32.const 1436) "\1c") + (data $9.1 (i32.const 1448) "\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g") + (data $10 (i32.const 1468) "\1c") + (data $10.1 (i32.const 1480) "\02\00\00\00\08\00\00\00b\00o\00o\00l") + (data $11 (i32.const 1500) "\1c") + (data $11.1 (i32.const 1512) "\02\00\00\00\04\00\00\00i\008") + (data $12 (i32.const 1532) "\1c") + (data $12.1 (i32.const 1544) "\02\00\00\00\04\00\00\00u\008") + (data $13 (i32.const 1564) "\1c") + (data $13.1 (i32.const 1576) "\02\00\00\00\06\00\00\00i\001\006") + (data $14 (i32.const 1596) "\1c") + (data $14.1 (i32.const 1608) "\02\00\00\00\06\00\00\00u\001\006") + (data $15 (i32.const 1628) "\1c") + (data $15.1 (i32.const 1640) "\02\00\00\00\06\00\00\00i\003\002") + (data $16 (i32.const 1660) "\1c") + (data $16.1 (i32.const 1672) "\02\00\00\00\06\00\00\00u\003\002") + (data $17 (i32.const 1692) "\1c") + (data $17.1 (i32.const 1704) "\02\00\00\00\06\00\00\00f\003\002") + (data $18 (i32.const 1724) "\1c") + (data $18.1 (i32.const 1736) "\02\00\00\00\06\00\00\00i\006\004") + (data $19 (i32.const 1756) "\1c") + (data $19.1 (i32.const 1768) "\02\00\00\00\06\00\00\00u\006\004") + (data $20 (i32.const 1788) "\1c") + (data $20.1 (i32.const 1800) "\02\00\00\00\06\00\00\00f\006\004") + (data $21 (i32.const 1820) "\1c") + (data $21.1 (i32.const 1832) "\02\00\00\00\n\00\00\00i\00s\00i\00z\00e") + (data $22 (i32.const 1852) "\1c") + (data $22.1 (i32.const 1864) "\02\00\00\00\n\00\00\00u\00s\00i\00z\00e") + (data $23 (i32.const 1884) "\1c") + (data $23.1 (i32.const 1896) "\02\00\00\00\08\00\00\00v\00o\00i\00d") + (data $24 (i32.const 1916) ",") + (data $24.1 (i32.const 1928) "\02\00\00\00\14\00\00\00s\00o\00m\00e\00 \00v\00a\00l\00u\00e") + (data $25 (i32.const 1964) "\1c") + (data $25.1 (i32.const 1976) "\0c\00\00\00\08\00\00\00\02") + (data $26 (i32.const 1996) "\1c") + (data $26.1 (i32.const 2008) "\r\00\00\00\08\00\00\00\03") (table $0 4 4 funcref) (elem $0 (i32.const 1) $start:builtins~anonymous|0 $start:builtins~anonymous|1 $start:builtins~anonymous|2) (export "test" (func $start:builtins~anonymous|1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 2240 - call $~lib/rt/itcms/__visit - i32.const 3296 - call $~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 1248 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$150 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 37196 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$150 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 4368 - i32.load - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 4372 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1520 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1520 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1520 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1520 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1520 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 37200 - i32.const 0 - i32.store - i32.const 38768 - 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 37200 - 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 37200 - 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 37200 - i32.const 38772 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 37200 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 37196 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1248 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 37196 - 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 - local.tee $0 - i32.const 37196 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1520 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1520 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1184 - i32.const 1248 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1184 - i32.const 1520 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1520 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 4428 - i32.lt_s - if - i32.const 37216 - i32.const 37264 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $start:builtins~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 @@ -1812,204 +83,40 @@ (func $~start call $start:builtins ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 4428 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4428 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$155 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#concat$155 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 37216 - i32.const 37264 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4428 + i32.const 2028 i32.lt_s if - i32.const 37216 - i32.const 37264 + i32.const 34816 + i32.const 34864 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1120 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1152 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2021,11 +128,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4428 + i32.const 2028 i32.lt_s if - i32.const 37216 - i32.const 37264 + i32.const 34816 + i32.const 34864 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2124,7 +231,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$79 + block $__inlined_func$~lib/util/string/compareImpl$3 loop $while-continue|1 local.get $0 local.tee $3 @@ -2144,7 +251,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$79 + br_if $__inlined_func$~lib/util/string/compareImpl$3 local.get $2 i32.const 2 i32.add @@ -2179,11 +286,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4428 + i32.const 2028 i32.lt_s if - i32.const 37216 - i32.const 37264 + i32.const 34816 + i32.const 34864 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2192,38 +299,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - memory.size - i32.const 16 - i32.shl - i32.const 37196 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/fromSpace i32.const 1 global.set $builtins/i i32.const 0 @@ -2577,39 +652,39 @@ global.set $builtins/F i32.const 1 i32.const 2 - i32.const 3504 + i32.const 1168 i32.load call_indirect (type $0) i32.const 3 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 400 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1168 i32.store i32.const 2 i32.const 3 - i32.const 3504 + i32.const 1168 i32.load call_indirect (type $0) i32.const 5 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 401 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1168 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1056 @@ -2620,31 +695,31 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 402 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1168 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1168 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1168 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 1200 i32.store - i32.const 3536 - i32.const 3536 + i32.const 1200 + i32.const 1200 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 405 i32.const 1 call $~lib/builtins/abort @@ -2719,249 +794,249 @@ i32.const 8 f64.const 1 f64.store - i32.const 3616 + i32.const 1280 i32.const 5 f64.const 0 f64.const 0 - f64.const 42 - f64.const 100 - f64.const 100 + f64.const 51 + f64.const 52 + f64.const 52 call $~lib/builtins/trace - i32.const 3712 - i32.const 3712 + i32.const 1376 + i32.const 1376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3712 - i32.const 3712 + i32.const 1376 + i32.const 1376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 611 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3760 - i32.const 3760 + i32.const 1424 + i32.const 1424 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 612 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3792 - i32.const 3792 + i32.const 1456 + i32.const 1456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 613 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3824 - i32.const 3824 + i32.const 1488 + i32.const 1488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 614 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3856 - i32.const 3856 + i32.const 1520 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 615 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3888 - i32.const 3888 + i32.const 1552 + i32.const 1552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 616 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3920 - i32.const 3920 + i32.const 1584 + i32.const 1584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 617 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3952 - i32.const 3952 + i32.const 1616 + i32.const 1616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 618 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3984 - i32.const 3984 + i32.const 1648 + i32.const 1648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 619 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4016 - i32.const 4016 + i32.const 1680 + i32.const 1680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 620 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4048 - i32.const 4048 + i32.const 1712 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 621 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4080 - i32.const 4080 + i32.const 1744 + i32.const 1744 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 622 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4112 - i32.const 4112 + i32.const 1776 + i32.const 1776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 623 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4144 - i32.const 4144 + i32.const 1808 + i32.const 1808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 624 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4176 - i32.const 4176 + i32.const 1840 + i32.const 1840 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 625 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4208 - i32.const 4208 + i32.const 1872 + i32.const 1872 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 626 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4240 - i32.const 4240 + i32.const 1904 + i32.const 1904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 627 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3792 - i32.const 3792 + i32.const 1456 + i32.const 1456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 628 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3712 - i32.const 3712 + i32.const 1376 + i32.const 1376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1120 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -2972,106 +1047,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $builtins/Foo - block $builtins/Bar - block $builtins/Foo - block $builtins/Foo - block $builtins/C - block $~lib/typedarray/Uint8Array - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/typedarray/Uint8Array $builtins/C $folding-inner0 $builtins/Foo $builtins/Foo $builtins/Bar $builtins/Foo $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 4428 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - return - end - return - end - return - end - unreachable - end - 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 4428 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 37216 - i32.const 37264 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/call-inferred.debug.wat b/tests/compiler/call-inferred.debug.wat index af86bf33a5..09fda345ba 100644 --- a/tests/compiler/call-inferred.debug.wat +++ b/tests/compiler/call-inferred.debug.wat @@ -1,21 +1,18 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param f32) (result f32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param f64) (result f64))) - (type $13 (func (param i32 i32 i32 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)) + (type $5 (func (param f32) (result f32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param f64) (result f64))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -24,37 +21,28 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2480)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35248)) - (global $~lib/memory/__heap_base i32 (i32.const 35248)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 512)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33280)) + (global $~lib/memory/__heap_base i32 (i32.const 33280)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2448) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 384) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 480) "\07\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") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -63,19 +51,33 @@ local.get $a return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 + (func $call-inferred/foo (param $a f64) (result f64) + local.get $a + return ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u + (func $call-inferred/foo (param $a f32) (result f32) + local.get $a + return + ) + (func $call-inferred/bar (param $a f32) (result f32) + local.get $a return ) + (func $call-inferred/bar@varargs (param $a f32) (result f32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + f32.const 42 + local.set $a + end + local.get $a + call $call-inferred/bar + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -140,7 +142,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 160 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -210,7 +212,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 160 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -227,7 +229,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 160 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -257,9 +259,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 288 + i32.const 352 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -326,7 +328,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 160 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -478,7 +480,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -498,7 +500,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -561,7 +563,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -714,7 +716,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -731,7 +733,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -820,7 +822,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -863,7 +865,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -881,7 +883,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -949,7 +951,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1066,7 +1068,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1112,7 +1114,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1144,7 +1146,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1388,7 +1390,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1608,7 +1610,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 160 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1719,8 +1721,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 96 + i32.const 432 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1822,7 +1824,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1893,7 +1895,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2050,7 +2052,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2165,7 +2167,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2185,7 +2187,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 432 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2233,8 +2235,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 96 + i32.const 160 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2279,449 +2281,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $call-inferred/foo (param $a f64) (result f64) - local.get $a - return - ) - (func $call-inferred/foo (param $a f32) (result f32) - local.get $a - return - ) - (func $call-inferred/bar (param $a f32) (result f32) - local.get $a - return - ) - (func $call-inferred/bar@varargs (param $a f32) (result f32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - f32.const 42 - local.set $a - end - local.get $a - call $call-inferred/bar - ) (func $call-inferred/Foo#set:value (param $this i32) (param $value i32) local.get $this local.get $value @@ -2749,20 +2308,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35280 - i32.const 35328 + i32.const 33312 + i32.const 33360 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2771,196 +2326,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $call-inferred/Foo#constructor (param $this i32) (param $value i32) (result i32) (local $2 i32) @@ -3085,23 +2471,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 42 call $call-inferred/foo i32.const 42 @@ -3109,7 +2478,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -3122,7 +2491,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -3135,7 +2504,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 7 i32.const 1 call $~lib/builtins/abort @@ -3150,12 +2519,29 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 1 call $~lib/builtins/abort unreachable end + 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 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 240 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 384 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace i32.const 0 i32.const 42 call $call-inferred/Foo#constructor @@ -3170,7 +2556,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -3189,7 +2575,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -3209,7 +2595,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -3229,7 +2615,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -3240,153 +2626,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3417,16 +2656,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 288 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 96 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/call-inferred.release.wat b/tests/compiler/call-inferred.release.wat index 4b5b848ea6..c94bcc5ecd 100644 --- a/tests/compiler/call-inferred.release.wat +++ b/tests/compiler/call-inferred.release.wat @@ -1,12 +1,13 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,54 +18,29 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36272)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34304)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s") - (data $20 (i32.const 3472) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s") + (data $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\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 $2 (i32.const 1164) "<") + (data $2.1 (i32.const 1176) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1292) "<") + (data $5.1 (i32.const 1304) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1356) ",") + (data $6.1 (i32.const 1368) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1504) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 + i32.const 1312 call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1120 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -85,7 +61,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1184 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -133,7 +109,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1184 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -142,7 +118,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$138 + block $__inlined_func$~lib/rt/itcms/Object#unlink$126 local.get $1 i32.load offset=4 i32.const -4 @@ -154,19 +130,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36272 + i32.const 34304 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1184 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$138 + br $__inlined_func$~lib/rt/itcms/Object#unlink$126 end local.get $1 i32.load offset=8 @@ -174,7 +150,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1184 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -203,13 +179,13 @@ i32.const 1 else local.get $0 - i32.const 3472 + i32.const 1504 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1312 + i32.const 1376 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -217,7 +193,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3476 + i32.const 1508 i32.add i32.load i32.const 32 @@ -269,7 +245,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -283,7 +259,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -329,7 +305,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -412,7 +388,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -426,7 +402,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -487,7 +463,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -520,7 +496,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -535,7 +511,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -586,7 +562,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -658,7 +634,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -683,7 +659,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -710,7 +686,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -782,10 +758,10 @@ if unreachable end - i32.const 36272 + i32.const 34304 i32.const 0 i32.store - i32.const 37840 + i32.const 35872 i32.const 0 i32.store loop $for-loop|0 @@ -796,7 +772,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36272 + i32.const 34304 i32.add i32.const 0 i32.store offset=4 @@ -814,7 +790,7 @@ i32.add i32.const 2 i32.shl - i32.const 36272 + i32.const 34304 i32.add i32.const 0 i32.store offset=96 @@ -832,14 +808,14 @@ br $for-loop|0 end end - i32.const 36272 - i32.const 37844 + i32.const 34304 + i32.const 35876 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36272 + i32.const 34304 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -924,7 +900,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36272 + i32.const 34304 i32.lt_u if local.get $0 @@ -1013,14 +989,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1184 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36272 + i32.const 34304 i32.lt_u if local.get $0 @@ -1043,7 +1019,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36272 + i32.const 34304 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1072,7 +1048,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1156,7 +1132,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1208,7 +1184,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1240,8 +1216,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1120 + i32.const 1184 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1301,8 +1277,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1120 + i32.const 1456 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1404,7 +1380,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1419,7 +1395,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1438,7 +1414,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1456 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1543,204 +1519,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3504 - i32.lt_s - if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start (local $0 i32) (local $1 i32) @@ -1750,7 +1528,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1536 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1759,11 +1537,19 @@ memory.size i32.const 16 i32.shl - i32.const 36272 + i32.const 34304 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/pinSpace i32.const 1268 i32.const 1264 i32.store @@ -1771,22 +1557,14 @@ i32.const 1264 i32.store i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1412 + i32.const 1408 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1416 + i32.const 1408 i32.store - i32.const 1440 + i32.const 1408 global.set $~lib/rt/itcms/fromSpace i32.const 0 call $call-inferred/Foo#constructor @@ -1800,7 +1578,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -1818,7 +1596,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -1829,7 +1607,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1536 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1850,7 +1628,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1536 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1884,7 +1662,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1536 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1917,7 +1695,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -1929,212 +1707,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3504 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3504 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$144 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$144 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1536 i32.lt_s if - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $call-inferred/Foo#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2142,11 +1755,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1536 i32.lt_s if - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/call-optional.debug.wat b/tests/compiler/call-optional.debug.wat index ac6415253a..1b0a910bab 100644 --- a/tests/compiler/call-optional.debug.wat +++ b/tests/compiler/call-optional.debug.wat @@ -1,61 +1,17 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32 i32 i32) (result i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32) (result i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~argumentsLength (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $call-optional/optIndirect (mut i32) (i32.const 2464)) - (global $~lib/rt/__rtti_base i32 (i32.const 2480)) - (global $~lib/memory/__data_end i32 (i32.const 2504)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35272)) - (global $~lib/memory/__heap_base i32 (i32.const 35272)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $call-optional/optIndirect (mut i32) (i32.const 96)) + (global $~lib/memory/__data_end i32 (i32.const 108)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32876)) + (global $~lib/memory/__heap_base i32 (i32.const 32876)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2444) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2480) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $call-optional/opt@varargs) (export "memory" (memory $0)) @@ -91,2656 +47,7 @@ local.get $c call $call-optional/opt ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:call-optional - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 3 i32.const 0 i32.const 1 @@ -2752,7 +59,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4 i32.const 1 call $~lib/builtins/abort @@ -2769,7 +76,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -2784,7 +91,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -2797,13 +104,13 @@ global.set $~argumentsLength global.get $call-optional/optIndirect i32.load - call_indirect (type $4) + call_indirect (type $0) i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -2816,13 +123,13 @@ global.set $~argumentsLength global.get $call-optional/optIndirect i32.load - call_indirect (type $4) + call_indirect (type $0) i32.const 5 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -2835,13 +142,13 @@ global.set $~argumentsLength global.get $call-optional/optIndirect i32.load - call_indirect (type $4) + call_indirect (type $0) i32.const 12 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -2856,92 +163,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 32896 + i32.const 32944 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2950,363 +181,25 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32> $invalid - end - return - 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/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32>~visit - return - end - unreachable - ) - (func $~lib/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32>#__visit (param $this i32) (param $cookie i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $4 i32.store - local.get $this - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/call-optional.release.wat b/tests/compiler/call-optional.release.wat index 709188f727..d1bdc29586 100644 --- a/tests/compiler/call-optional.release.wat +++ b/tests/compiler/call-optional.release.wat @@ -1,62 +1,16 @@ (module (type $0 (func (param i32 i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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 $~lib/memory/__stack_pointer (mut i32) (i32.const 36296)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33900)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s") - (data $20 (i32.const 3468) "\1c") - (data $20.1 (i32.const 3480) "\04\00\00\00\08\00\00\00\01") - (data $21 (i32.const 3504) "\05\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s") + (data $1 (i32.const 1100) "\1c") + (data $1.1 (i32.const 1112) "\04\00\00\00\08\00\00\00\01") (table $0 2 2 funcref) (elem $0 (i32.const 1) $call-optional/opt@varargs) (export "memory" (memory $0)) @@ -85,1724 +39,7 @@ local.get $2 i32.add ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$127 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36296 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$127 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3504 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3508 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36304 - i32.const 0 - i32.store - i32.const 37872 - 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 36304 - 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 36304 - 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 36304 - i32.const 37876 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36304 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36296 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36296 - 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 - local.tee $0 - i32.const 36296 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3528 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$75 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$75 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36296 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace i32.const 1 global.set $~argumentsLength i32.const 2 @@ -1812,14 +49,13 @@ i32.const 3 i32.const 0 i32.const 0 - i32.const 3488 + i32.const 1120 i32.load call_indirect (type $0) if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 9 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1828,16 +64,15 @@ i32.const 3 i32.const 4 i32.const 0 - i32.const 3488 + i32.const 1120 i32.load call_indirect (type $0) i32.const 5 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 10 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1846,273 +81,51 @@ i32.const 3 i32.const 4 i32.const 5 - i32.const 3488 + i32.const 1120 i32.load call_indirect (type $0) i32.const 12 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 11 - i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$132 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$132 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1132 i32.lt_s if - i32.const 36320 - i32.const 36368 - i32.const 1 + i32.const 33920 + i32.const 33968 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%2Ci32?%2Ci32?%29=>i32> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 3528 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/call-rest.debug.wat b/tests/compiler/call-rest.debug.wat index 38a1f4af55..60dab752d7 100644 --- a/tests/compiler/call-rest.debug.wat +++ b/tests/compiler/call-rest.debug.wat @@ -1,21 +1,22 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func)) - (type $7 (func (param i32 i32 i32 i32) (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32 i32) (result i32))) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func)) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32) (result i32))) (type $9 (func (param i32 i32 i64) (result i32))) (type $10 (func (result i32))) - (type $11 (func (param i32 i64 i32))) - (type $12 (func (param i64 i32) (result i32))) - (type $13 (func (param i32 i64 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -27,54 +28,41 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $call-rest/indirect (mut i32) (i32.const 2592)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 3040)) - (global $~lib/memory/__data_end i32 (i32.const 3080)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35848)) - (global $~lib/memory/__heap_base i32 (i32.const 35848)) + (global $call-rest/indirect (mut i32) (i32.const 624)) + (global $~lib/rt/__rtti_base i32 (i32.const 1072)) + (global $~lib/memory/__data_end i32 (i32.const 1112)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33880)) + (global $~lib/memory/__heap_base i32 (i32.const 33880)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $20 (i32.const 2428) "\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 $21 (i32.const 2460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00c\00a\00l\00l\00-\00r\00e\00s\00t\00.\00t\00s\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data $27 (i32.const 2668) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $28 (i32.const 2716) "\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 $29 (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data $31 (i32.const 2812) "\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 $32 (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data $34 (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 2972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 3004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00p\0b\00\00\90\0b\00\00\b0\0b\00\00") - (data $38 (i32.const 3040) "\t\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\01\00\00\00\00\00\00\00\00\00\00\02A\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $2 (i32.const 124) "\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 $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 220) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00c\00a\00l\00l\00-\00r\00e\00s\00t\00.\00t\00s\00\00\00\00\00") + (data $11 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data $13 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data $16 (i32.const 700) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $17 (i32.const 748) "\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 $18 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data $20 (i32.const 844) "\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 $21 (i32.const 876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data $23 (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\c0\03\00\00\e0\03\00\00\00\04\00\00") + (data $27 (i32.const 1072) "\t\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\01\00\00\00\00\00\00\00\00\00\00\02A\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $call-rest/fn@varargs) (export "memory" (memory $0)) @@ -83,18 +71,9 @@ local.get $this i32.load offset=12 ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + i32.load offset=4 ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -160,7 +139,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -230,7 +209,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -247,7 +226,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -277,9 +256,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 32 + i32.const 368 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -346,7 +325,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 240 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -498,7 +477,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -518,7 +497,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -581,7 +560,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -734,7 +713,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -751,7 +730,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -840,7 +819,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -883,7 +862,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -901,7 +880,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -969,7 +948,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1086,7 +1065,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1132,7 +1111,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1164,7 +1143,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1408,7 +1387,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1628,7 +1607,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1739,8 +1718,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 176 + i32.const 448 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1842,7 +1821,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1913,7 +1892,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2070,7 +2049,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2185,7 +2164,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2205,7 +2184,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2253,8 +2232,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 176 + i32.const 240 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2299,426 +2278,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) (func $~lib/rt/__newBuffer (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) local.get $size @@ -2750,7 +2309,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2891,8 +2450,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35872 - i32.const 35920 + i32.const 33904 + i32.const 33952 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2924,12 +2483,8 @@ local.get $1 return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2938,196 +2493,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3150,9 +2536,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 320 - i32.const 2400 - i32.const 114 + i32.const 32 + i32.const 96 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3269,7 +2655,7 @@ i32.const 0 i32.const 2 i32.const 5 - i32.const 2448 + i32.const 144 call $~lib/rt/__newArray local.tee $rest i32.store @@ -3330,8 +2716,8 @@ i32.shr_u i32.gt_u if - i32.const 2688 - i32.const 2400 + i32.const 720 + i32.const 96 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -3395,6 +2781,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -3433,9 +2823,9 @@ i32.const 0 i32.lt_s if - i32.const 320 - i32.const 2400 - i32.const 130 + i32.const 32 + i32.const 96 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3686,7 +3076,7 @@ i32.const 0 i32.const 2 i32.const 5 - i32.const 2736 + i32.const 768 call $~lib/rt/__newArray local.tee $rest i32.store @@ -3830,7 +3220,7 @@ i32.const 0 i32.const 2 i32.const 5 - i32.const 2832 + i32.const 864 call $~lib/rt/__newArray local.tee $args i32.store @@ -3926,13 +3316,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 240 + i32.const 288 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 272 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 416 + i32.const 400 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 1 @@ -3946,7 +3336,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -3963,7 +3353,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -3974,7 +3364,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 2528 + i32.const 560 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -3987,7 +3377,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -3998,7 +3388,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 2560 + i32.const 592 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -4011,7 +3401,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -4024,13 +3414,13 @@ global.set $~argumentsLength global.get $call-rest/indirect i32.load - call_indirect (type $4) + call_indirect (type $3) i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -4043,13 +3433,13 @@ global.set $~argumentsLength global.get $call-rest/indirect i32.load - call_indirect (type $4) + call_indirect (type $3) i32.const 3 i32.eq i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -4060,7 +3450,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 2624 + i32.const 656 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -4071,13 +3461,13 @@ global.set $~argumentsLength global.get $call-rest/indirect i32.load - call_indirect (type $4) + call_indirect (type $3) i32.const 6 i32.eq i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -4088,7 +3478,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 2656 + i32.const 688 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -4099,13 +3489,13 @@ global.set $~argumentsLength global.get $call-rest/indirect i32.load - call_indirect (type $4) + call_indirect (type $3) i32.const 15 i32.eq i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -4129,7 +3519,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -4153,7 +3543,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -4165,7 +3555,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 2768 + i32.const 800 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -4184,7 +3574,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -4196,7 +3586,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 2800 + i32.const 832 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -4215,7 +3605,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -4230,7 +3620,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 49 i32.const 1 call $~lib/builtins/abort @@ -4239,7 +3629,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 2864 + i32.const 896 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -4252,7 +3642,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -4261,7 +3651,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 2896 + i32.const 928 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -4274,7 +3664,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -4283,7 +3673,7 @@ i32.const 3 i32.const 2 i32.const 8 - i32.const 3024 + i32.const 1056 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -4296,7 +3686,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -4307,153 +3697,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) (local $buffer i32) @@ -4485,6 +3728,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -4509,19 +3756,13 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2688 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 720 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 176 local.get $0 call $~lib/rt/itcms/__visit ) @@ -4664,6 +3905,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -4690,6 +3935,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -4716,6 +3965,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -4743,6 +3996,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index 6000bb6524..fb3b182a83 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -1,14 +1,16 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (param i32 i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) - (type $3 (func)) - (type $4 (func (param i32))) - (type $5 (func (param i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func)) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (result i32))) (type $9 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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)) @@ -19,80 +21,58 @@ (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 $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36872)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34904)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $20 (i32.const 3452) "\1c") - (data $20.1 (i32.const 3464) "\01") - (data $21 (i32.const 3484) ",") - (data $21.1 (i32.const 3496) "\02\00\00\00\18\00\00\00c\00a\00l\00l\00-\00r\00e\00s\00t\00.\00t\00s") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\01\00\00\00\04\00\00\00\03") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\06\00\00\00\08\00\00\00\01") - (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\01\00\00\00\04\00\00\00\03") - (data $26 (i32.const 3660) "\1c") - (data $26.1 (i32.const 3672) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") - (data $27 (i32.const 3692) ",") - (data $27.1 (i32.const 3704) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $28 (i32.const 3740) "\1c") - (data $28.1 (i32.const 3752) "\01") - (data $29 (i32.const 3772) "\1c") - (data $29.1 (i32.const 3784) "\01\00\00\00\04\00\00\00\03") - (data $30 (i32.const 3804) "\1c") - (data $30.1 (i32.const 3816) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") - (data $31 (i32.const 3836) "\1c") - (data $31.1 (i32.const 3848) "\01") - (data $32 (i32.const 3868) "\1c") - (data $32.1 (i32.const 3880) "\01\00\00\00\04\00\00\00\01") - (data $33 (i32.const 3900) "\1c") - (data $33.1 (i32.const 3912) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data $34 (i32.const 3932) "\1c") - (data $34.1 (i32.const 3944) "\02\00\00\00\02\00\00\00a") - (data $35 (i32.const 3964) "\1c") - (data $35.1 (i32.const 3976) "\02\00\00\00\02\00\00\00b") - (data $36 (i32.const 3996) "\1c") - (data $36.1 (i32.const 4008) "\02\00\00\00\02\00\00\00c") - (data $37 (i32.const 4028) "\1c") - (data $37.1 (i32.const 4040) "\01\00\00\00\0c\00\00\00p\0f\00\00\90\0f\00\00\b0\0f") - (data $38 (i32.const 4064) "\t\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\01") - (data $38.1 (i32.const 4100) "\02A") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $1 (i32.const 1100) ",") + (data $1.1 (i32.const 1112) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $2 (i32.const 1148) "\1c") + (data $2.1 (i32.const 1160) "\01") + (data $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\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 $4 (i32.const 1244) "<") + (data $4.1 (i32.const 1256) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $7 (i32.const 1372) ",") + (data $7.1 (i32.const 1384) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1452) "<") + (data $9.1 (i32.const 1464) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1516) ",") + (data $10.1 (i32.const 1528) "\02\00\00\00\18\00\00\00c\00a\00l\00l\00-\00r\00e\00s\00t\00.\00t\00s") + (data $11 (i32.const 1564) "\1c") + (data $11.1 (i32.const 1576) "\01\00\00\00\04\00\00\00\03") + (data $12 (i32.const 1596) "\1c") + (data $12.1 (i32.const 1608) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") + (data $13 (i32.const 1628) "\1c") + (data $13.1 (i32.const 1640) "\06\00\00\00\08\00\00\00\01") + (data $14 (i32.const 1660) "\1c") + (data $14.1 (i32.const 1672) "\01\00\00\00\04\00\00\00\03") + (data $15 (i32.const 1692) "\1c") + (data $15.1 (i32.const 1704) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") + (data $16 (i32.const 1724) ",") + (data $16.1 (i32.const 1736) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $17 (i32.const 1772) "\1c") + (data $17.1 (i32.const 1784) "\01") + (data $18 (i32.const 1804) "\1c") + (data $18.1 (i32.const 1816) "\01\00\00\00\04\00\00\00\03") + (data $19 (i32.const 1836) "\1c") + (data $19.1 (i32.const 1848) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") + (data $20 (i32.const 1868) "\1c") + (data $20.1 (i32.const 1880) "\01") + (data $21 (i32.const 1900) "\1c") + (data $21.1 (i32.const 1912) "\01\00\00\00\04\00\00\00\01") + (data $22 (i32.const 1932) "\1c") + (data $22.1 (i32.const 1944) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data $23 (i32.const 1964) "\1c") + (data $23.1 (i32.const 1976) "\02\00\00\00\02\00\00\00a") + (data $24 (i32.const 1996) "\1c") + (data $24.1 (i32.const 2008) "\02\00\00\00\02\00\00\00b") + (data $25 (i32.const 2028) "\1c") + (data $25.1 (i32.const 2040) "\02\00\00\00\02\00\00\00c") + (data $26 (i32.const 2060) "\1c") + (data $26.1 (i32.const 2072) "\01\00\00\00\0c\00\00\00\c0\07\00\00\e0\07\00\00\00\08") + (data $27 (i32.const 2096) "\t\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\01") + (data $27.1 (i32.const 2132) "\02A") (table $0 2 2 funcref) (elem $0 (i32.const 1) $call-rest/fn@varargs) (export "memory" (memory $0)) @@ -100,15 +80,11 @@ (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 3712 - call $~lib/rt/itcms/__visit - i32.const 1152 + i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 1744 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1200 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -129,7 +105,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -162,7 +138,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -171,7 +147,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$173 + block $__inlined_func$~lib/rt/itcms/Object#unlink$161 local.get $0 i32.load offset=4 i32.const -4 @@ -183,19 +159,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36872 + i32.const 34904 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$173 + br $__inlined_func$~lib/rt/itcms/Object#unlink$161 end local.get $0 i32.load offset=8 @@ -203,7 +179,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -232,13 +208,13 @@ i32.const 1 else local.get $1 - i32.const 4064 + i32.const 2096 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1056 + i32.const 1392 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -246,7 +222,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 4068 + i32.const 2100 i32.add i32.load i32.const 32 @@ -317,7 +293,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -331,7 +307,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -377,7 +353,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -460,7 +436,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -474,7 +450,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -535,7 +511,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -568,7 +544,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -583,7 +559,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -634,7 +610,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -706,7 +682,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -731,7 +707,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -758,7 +734,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -830,10 +806,10 @@ if unreachable end - i32.const 36880 + i32.const 34912 i32.const 0 i32.store - i32.const 38448 + i32.const 36480 i32.const 0 i32.store loop $for-loop|0 @@ -844,7 +820,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36880 + i32.const 34912 i32.add i32.const 0 i32.store offset=4 @@ -862,7 +838,7 @@ i32.add i32.const 2 i32.shl - i32.const 36880 + i32.const 34912 i32.add i32.const 0 i32.store offset=96 @@ -880,14 +856,14 @@ br $for-loop|0 end end - i32.const 36880 - i32.const 38452 + i32.const 34912 + i32.const 36484 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36880 + i32.const 34912 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -972,7 +948,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36872 + i32.const 34904 i32.lt_u if local.get $0 @@ -1061,14 +1037,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36872 + i32.const 34904 i32.lt_u if local.get $0 @@ -1091,7 +1067,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36872 + i32.const 34904 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1120,7 +1096,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1204,7 +1180,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1256,7 +1232,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1288,8 +1264,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1200 + i32.const 1264 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1299,7 +1275,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1316,7 +1292,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1349,8 +1325,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1200 + i32.const 1472 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1452,7 +1428,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1467,7 +1443,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1486,7 +1462,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1591,204 +1567,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 4104 - i32.lt_s - if - i32.const 36896 - i32.const 36944 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 i32.eqz @@ -1799,7 +1577,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1852,11 +1630,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1875,205 +1653,40 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 4104 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4104 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$178 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$178 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36896 - i32.const 36944 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2081,11 +1694,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2102,9 +1715,9 @@ i32.load offset=12 i32.ge_u if - i32.const 1344 - i32.const 3424 - i32.const 114 + i32.const 1056 + i32.const 1120 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2132,11 +1745,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2188,11 +1801,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2218,7 +1831,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 - i32.const 3472 + i32.const 1168 call $~lib/rt/__newArray local.tee $2 i32.store @@ -2243,11 +1856,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2271,8 +1884,8 @@ i32.const 268435455 i32.gt_u if - i32.const 3712 - i32.const 3424 + i32.const 1744 + i32.const 1120 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -2281,7 +1894,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$157 + block $__inlined_func$~lib/rt/itcms/__renew$145 i32.const 1073741820 local.get $2 i32.const 1 @@ -2324,7 +1937,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$157 + br $__inlined_func$~lib/rt/itcms/__renew$145 end local.get $3 local.get $4 @@ -2372,11 +1985,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2397,9 +2010,9 @@ i32.const 0 i32.lt_s if - i32.const 1344 - i32.const 3424 - i32.const 130 + i32.const 1056 + i32.const 1120 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -2446,7 +2059,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2530,7 +2143,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2582,8 +2195,8 @@ local.get $2 return end - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2596,11 +2209,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2629,7 +2242,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 - i32.const 3760 + i32.const 1792 call $~lib/rt/__newArray local.tee $1 i32.store @@ -2658,11 +2271,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2720,11 +2333,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2751,7 +2364,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2760,34 +2373,34 @@ memory.size i32.const 16 i32.shl - i32.const 36872 + i32.const 34904 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1316 + i32.const 1312 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1320 + i32.const 1312 i32.store - i32.const 1264 + i32.const 1312 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1348 + i32.const 1344 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1352 + i32.const 1344 i32.store - i32.const 1296 + i32.const 1344 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1428 + i32.const 1424 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1432 + i32.const 1424 i32.store - i32.const 1440 + i32.const 1424 global.set $~lib/rt/itcms/fromSpace i32.const 1 global.set $~argumentsLength @@ -2799,7 +2412,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -2815,7 +2428,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -2823,7 +2436,7 @@ end i32.const 1 i32.const 4 - i32.const 3552 + i32.const 1584 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -2836,7 +2449,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -2844,7 +2457,7 @@ end i32.const 3 i32.const 4 - i32.const 3584 + i32.const 1616 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -2857,7 +2470,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -2868,14 +2481,14 @@ i32.const 1 i32.const 0 i32.const 0 - i32.const 3616 + i32.const 1648 i32.load - call_indirect (type $1) + call_indirect (type $0) i32.const 1 i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -2886,14 +2499,14 @@ i32.const 1 i32.const 2 i32.const 0 - i32.const 3616 + i32.const 1648 i32.load - call_indirect (type $1) + call_indirect (type $0) i32.const 3 i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -2901,7 +2514,7 @@ end i32.const 1 i32.const 4 - i32.const 3648 + i32.const 1680 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -2912,14 +2525,14 @@ i32.const 1 i32.const 2 local.get $0 - i32.const 3616 + i32.const 1648 i32.load - call_indirect (type $1) + call_indirect (type $0) i32.const 6 i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -2927,7 +2540,7 @@ end i32.const 3 i32.const 4 - i32.const 3680 + i32.const 1712 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -2938,14 +2551,14 @@ i32.const 1 i32.const 2 local.get $0 - i32.const 3616 + i32.const 1648 i32.load - call_indirect (type $1) + call_indirect (type $0) i32.const 15 i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -2965,7 +2578,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -2985,7 +2598,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -2993,7 +2606,7 @@ end i32.const 1 i32.const 4 - i32.const 3792 + i32.const 1824 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -3012,7 +2625,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -3020,7 +2633,7 @@ end i32.const 3 i32.const 4 - i32.const 3824 + i32.const 1856 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -3039,7 +2652,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -3052,7 +2665,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3061,7 +2674,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 - i32.const 3856 + i32.const 1888 call $~lib/rt/__newArray local.tee $0 i32.store @@ -3076,7 +2689,7 @@ global.set $~lib/memory/__stack_pointer if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 49 i32.const 1 call $~lib/builtins/abort @@ -3084,7 +2697,7 @@ end i32.const 1 i32.const 4 - i32.const 3888 + i32.const 1920 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -3096,7 +2709,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -3104,7 +2717,7 @@ end i32.const 3 i32.const 4 - i32.const 3920 + i32.const 1952 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -3116,7 +2729,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -3124,7 +2737,7 @@ end i32.const 3 i32.const 8 - i32.const 4048 + i32.const 2080 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -3136,7 +2749,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -3148,8 +2761,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3164,11 +2777,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3224,11 +2837,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s if - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3293,7 +2906,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3321,7 +2934,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4104 + i32.const 2136 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3376,8 +2989,8 @@ end unreachable end - i32.const 36896 - i32.const 36944 + i32.const 34928 + i32.const 34976 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index ee38ff93b2..31880fbec2 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -4,16 +4,12 @@ (type $2 (func)) (type $3 (func (param i32))) (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -22,36 +18,28 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2492)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35260)) - (global $~lib/memory/__heap_base i32 (i32.const 35260)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 524)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33292)) + (global $~lib/memory/__heap_base i32 (i32.const 33292)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s\00\00\00") - (data $20 (i32.const 2432) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s\00\00\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 464) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -60,19 +48,6 @@ local.get $this i32.load ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -137,7 +112,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -207,7 +182,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -224,7 +199,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -254,9 +229,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 272 + i32.const 336 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -323,7 +298,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 144 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -475,7 +450,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -495,7 +470,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -558,7 +533,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -711,7 +686,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -728,7 +703,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -817,7 +792,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -860,7 +835,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -878,7 +853,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -946,7 +921,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1063,7 +1038,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1109,7 +1084,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1141,7 +1116,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1385,7 +1360,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1605,7 +1580,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1716,8 +1691,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 80 + i32.const 416 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1819,7 +1794,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1890,7 +1865,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2047,7 +2022,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2162,7 +2137,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2182,7 +2157,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2230,8 +2205,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 80 + i32.const 144 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2276,422 +2251,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $call-super/A#set:a (param $this i32) (param $a i32) local.get $this local.get $a @@ -2787,13 +2346,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 240 + i32.const 192 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 272 + i32.const 224 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 416 + i32.const 368 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $call-super/test1 @@ -2810,20 +2369,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35280 - i32.const 35328 + i32.const 33312 + i32.const 33360 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2832,196 +2387,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $call-super/A#constructor (param $this i32) (result i32) (local $1 i32) @@ -3063,7 +2449,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -3127,7 +2513,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -3145,7 +2531,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -3187,7 +2573,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -3205,7 +2591,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 23 i32.const 3 call $~lib/builtins/abort @@ -3312,7 +2698,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 38 i32.const 5 call $~lib/builtins/abort @@ -3330,7 +2716,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -3372,7 +2758,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -3390,7 +2776,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -3441,7 +2827,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 56 i32.const 5 call $~lib/builtins/abort @@ -3529,7 +2915,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 66 i32.const 3 call $~lib/builtins/abort @@ -3547,7 +2933,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -3678,7 +3064,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -3696,7 +3082,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 85 i32.const 3 call $~lib/builtins/abort @@ -3817,7 +3203,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -3835,7 +3221,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -3846,153 +3232,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4023,16 +3262,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 272 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 80 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index 02b2fcef42..65c4874c16 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -1,12 +1,13 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,54 +18,29 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36284)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34316)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s") - (data $20 (i32.const 3456) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1276) "<") + (data $5.1 (i32.const 1288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1340) ",") + (data $6.1 (i32.const 1352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1488) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 1296 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1104 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -85,7 +61,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -133,7 +109,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -142,7 +118,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$171 + block $__inlined_func$~lib/rt/itcms/Object#unlink$159 local.get $1 i32.load offset=4 i32.const -4 @@ -154,19 +130,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36284 + i32.const 34316 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$171 + br $__inlined_func$~lib/rt/itcms/Object#unlink$159 end local.get $1 i32.load offset=8 @@ -174,7 +150,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -203,13 +179,13 @@ i32.const 1 else local.get $0 - i32.const 3456 + i32.const 1488 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1296 + i32.const 1360 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -217,7 +193,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3460 + i32.const 1492 i32.add i32.load i32.const 32 @@ -269,7 +245,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -283,7 +259,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -329,7 +305,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -412,7 +388,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -426,7 +402,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -487,7 +463,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -520,7 +496,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -535,7 +511,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -586,7 +562,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -658,7 +634,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -683,7 +659,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -710,7 +686,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -782,10 +758,10 @@ if unreachable end - i32.const 36288 + i32.const 34320 i32.const 0 i32.store - i32.const 37856 + i32.const 35888 i32.const 0 i32.store loop $for-loop|0 @@ -796,7 +772,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36288 + i32.const 34320 i32.add i32.const 0 i32.store offset=4 @@ -814,7 +790,7 @@ i32.add i32.const 2 i32.shl - i32.const 36288 + i32.const 34320 i32.add i32.const 0 i32.store offset=96 @@ -832,14 +808,14 @@ br $for-loop|0 end end - i32.const 36288 - i32.const 37860 + i32.const 34320 + i32.const 35892 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36288 + i32.const 34320 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -924,7 +900,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36284 + i32.const 34316 i32.lt_u if local.get $0 @@ -1013,14 +989,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36284 + i32.const 34316 i32.lt_u if local.get $0 @@ -1043,7 +1019,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36284 + i32.const 34316 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1072,7 +1048,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1156,7 +1132,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1208,7 +1184,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1240,8 +1216,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1104 + i32.const 1168 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1251,7 +1227,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1268,7 +1244,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1301,8 +1277,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1104 + i32.const 1440 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1404,7 +1380,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1419,7 +1395,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1438,7 +1414,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1543,204 +1519,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3516 - i32.lt_s - if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $start:call-super (local $0 i32) (local $1 i32) @@ -1748,34 +1526,34 @@ memory.size i32.const 16 i32.shl - i32.const 36284 + i32.const 34316 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1220 + i32.const 1216 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1224 + i32.const 1216 i32.store - i32.const 1264 + i32.const 1216 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1252 + i32.const 1248 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1256 + i32.const 1248 i32.store - i32.const 1296 + i32.const 1248 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1396 + i32.const 1392 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1400 + i32.const 1392 i32.store - i32.const 1440 + i32.const 1392 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1783,7 +1561,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1795,7 +1573,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1822,7 +1600,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1853,7 +1631,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -1874,7 +1652,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -1889,7 +1667,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -1910,7 +1688,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -1925,7 +1703,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 23 i32.const 3 call $~lib/builtins/abort @@ -1940,7 +1718,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1952,7 +1730,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1979,7 +1757,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2024,7 +1802,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 38 i32.const 5 call $~lib/builtins/abort @@ -2039,7 +1817,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -2060,7 +1838,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -2075,7 +1853,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -2090,7 +1868,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2102,7 +1880,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2123,7 +1901,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2154,7 +1932,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 56 i32.const 5 call $~lib/builtins/abort @@ -2187,7 +1965,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 66 i32.const 3 call $~lib/builtins/abort @@ -2202,7 +1980,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -2217,7 +1995,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2229,7 +2007,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2250,7 +2028,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2307,7 +2085,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -2322,7 +2100,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 85 i32.const 3 call $~lib/builtins/abort @@ -2337,7 +2115,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2349,7 +2127,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2370,7 +2148,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2419,7 +2197,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -2434,7 +2212,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -2446,8 +2224,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2456,205 +2234,40 @@ (func $~start call $start:call-super ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3516 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3516 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$181 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$181 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s if - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2662,11 +2275,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s if - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/class-extends.debug.wat b/tests/compiler/class-extends.debug.wat index a4fc77a3d1..59b902065f 100644 --- a/tests/compiler/class-extends.debug.wat +++ b/tests/compiler/class-extends.debug.wat @@ -1,35 +1,14 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32))) + (type $4 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__data_end i32 (i32.const 8)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32776)) (global $~lib/memory/__heap_base i32 (i32.const 32776)) - (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/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/__rtti_base (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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (memory $0 0) (table $0 1 1 funcref) (elem $0 (i32.const 1)) @@ -53,2651 +32,35 @@ local.get $b i32.store16 offset=4 ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 33136 - i32.const 33200 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 33008 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 33008 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 32944 - i32.const 33280 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 32944 - i32.const 33008 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 33580 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 33580 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33580 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33580 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 34000 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 34000 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~stack_check global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if i32.const 32800 - i32.const 35216 + i32.const 32848 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) + (func $export:class-extends/test (param $0 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 + local.get $0 + i32.store + local.get $0 + call $class-extends/test + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $class-extends/test (param $b i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2745,84 +108,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 32912 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2831,344 +118,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32848 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 32880 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 35152 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $4 i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 33376 - i32.const 33504 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 33568 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $export:class-extends/test (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $class-extends/test + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 33136 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32944 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 34000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 35056 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $class-extends/A - block $class-extends/B - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-extends/B $class-extends/A $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - return - end - return - end - unreachable - ) ) diff --git a/tests/compiler/class-extends.release.wat b/tests/compiler/class-extends.release.wat index c320ea44e9..50301255e4 100644 --- a/tests/compiler/class-extends.release.wat +++ b/tests/compiler/class-extends.release.wat @@ -1,1974 +1,91 @@ (module - (type $0 (func (param i32))) + (type $0 (func (param i32 i32 i32 i32))) (type $1 (func)) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33792)) - (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/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (memory $0 0) (export "memory" (memory $0)) (export "test" (func $export:class-extends/test)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - i32.const 34160 - call $~lib/rt/itcms/__visit - i32.const 33968 - call $~lib/rt/itcms/__visit - i32.const 35024 - call $~lib/rt/itcms/__visit - i32.const 36080 - call $~lib/rt/itcms/__visit - i32.const 4 - i32.load - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 34032 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - 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 - 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 34032 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$121 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 33792 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$121 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.load - i32.gt_u - if - i32.const 34160 - i32.const 34224 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.load offset=4 - i32.const 32 - i32.and - end - local.set $1 - i32.const 8 - i32.load - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $1 - select - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - i32.const 8 - local.get $0 - i32.store - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 34304 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 34304 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 34304 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 34304 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 34304 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 33792 - i32.const 0 - i32.store - i32.const 35360 - 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 33792 - 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 33792 - 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 33792 - i32.const 35364 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 33792 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - i32.const 0 - 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 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 33792 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 - local.get $1 - global.set $~lib/rt/itcms/white - i32.const 4 - i32.load - 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 - 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 34032 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 33792 - 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 - local.tee $0 - i32.const 33792 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 34304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - i32.const 4 - i32.const 0 - i32.store - i32.const 8 - i32.const 0 - i32.store - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 34304 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 33968 - i32.const 34032 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$68 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$68 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 33968 - i32.const 34304 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 34304 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - i32.const 8 - i32.load - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.store offset=4 - 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 - i32.const 8 - local.get $1 - i32.store - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + (func $~stack_check global.get $~lib/memory/__stack_pointer i32.const 1024 i32.lt_s if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$72 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 34592 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$72 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 34604 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 34604 - 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 34604 - 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 34604 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 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 1024 - i32.lt_s - br_if $folding-inner0 + call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 + i32.const 33824 i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$126 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 33936 - local.set $0 - br $__inlined_func$~lib/string/String#concat$126 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end + i32.const 33872 + i32.store offset=4 + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - return + unreachable end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) + (func $export:class-extends/test (param $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 1024 - i32.lt_s - if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store + 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.const 40 - memory.fill + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 33872 + i32.store + local.get $0 + i32.load + drop + global.get $~lib/memory/__stack_pointer local.get $0 - select - local.tee $0 i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 33904 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end local.get $0 - i32.const 36176 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $export:class-extends/test (param $0 i32) + i32.load16_s offset=4 + drop + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store16 offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load16_s offset=4 - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store16 offset=4 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $class-extends/A - block $class-extends/B - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-extends/B $class-extends/A $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - unreachable ) ) diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index b511b6276e..56c1cd304b 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,6 +18,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -33,465 +32,25 @@ (global $class-implements/f (mut i32) (i32.const 0)) (global $class-implements/g (mut i32) (i32.const 0)) (global $class-implements/h (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2536)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35304)) - (global $~lib/memory/__heap_base i32 (i32.const 35304)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 568)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33336)) + (global $~lib/memory/__heap_base i32 (i32.const 33336)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00c\00l\00a\00s\00s\00-\00i\00m\00p\00l\00e\00m\00e\00n\00t\00s\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2448) "\15\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00c\00l\00a\00s\00s\00-\00i\00m\00p\00l\00e\00m\00e\00n\00t\00s\00.\00t\00s\00\00\00\00\00\00\00") + (data $9 (i32.const 480) "\15\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -556,7 +115,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -626,7 +185,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -643,7 +202,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -673,9 +232,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -742,7 +301,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -894,7 +453,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -914,7 +473,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -977,7 +536,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1130,7 +689,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1147,7 +706,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1236,7 +795,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1279,7 +838,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1297,7 +856,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1365,7 +924,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1482,7 +1041,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1528,7 +1087,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1560,7 +1119,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1804,7 +1363,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2024,7 +1583,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2135,8 +1694,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2238,7 +1797,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2309,7 +1868,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2466,7 +2025,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2581,7 +2140,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2601,7 +2160,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2649,8 +2208,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -3087,20 +2646,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35328 - i32.const 35376 + i32.const 33360 + i32.const 33408 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3109,196 +2664,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $class-implements/A#constructor (param $this i32) (result i32) (local $1 i32) @@ -3942,13 +3328,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3966,7 +3352,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -3987,7 +3373,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -4008,7 +3394,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -4029,7 +3415,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -4050,7 +3436,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 48 i32.const 1 call $~lib/builtins/abort @@ -4071,7 +3457,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -4092,7 +3478,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -4111,7 +3497,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -4134,7 +3520,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -4152,7 +3538,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -4178,7 +3564,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 100 i32.const 3 call $~lib/builtins/abort @@ -4196,7 +3582,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 101 i32.const 3 call $~lib/builtins/abort @@ -4219,7 +3605,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -4237,7 +3623,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 106 i32.const 3 call $~lib/builtins/abort @@ -4263,7 +3649,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -4281,7 +3667,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 109 i32.const 3 call $~lib/builtins/abort @@ -4304,7 +3690,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 113 i32.const 3 call $~lib/builtins/abort @@ -4322,7 +3708,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -4348,7 +3734,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 116 i32.const 3 call $~lib/builtins/abort @@ -4366,7 +3752,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 117 i32.const 3 call $~lib/builtins/abort @@ -4389,7 +3775,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 121 i32.const 3 call $~lib/builtins/abort @@ -4407,7 +3793,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 122 i32.const 3 call $~lib/builtins/abort @@ -4433,7 +3819,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 124 i32.const 3 call $~lib/builtins/abort @@ -4451,7 +3837,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 125 i32.const 3 call $~lib/builtins/abort @@ -4474,7 +3860,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 129 i32.const 3 call $~lib/builtins/abort @@ -4492,7 +3878,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 130 i32.const 3 call $~lib/builtins/abort @@ -4518,7 +3904,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 132 i32.const 3 call $~lib/builtins/abort @@ -4536,7 +3922,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 133 i32.const 3 call $~lib/builtins/abort @@ -4559,7 +3945,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 137 i32.const 3 call $~lib/builtins/abort @@ -4577,7 +3963,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -4603,7 +3989,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 140 i32.const 3 call $~lib/builtins/abort @@ -4621,7 +4007,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -4701,153 +4087,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4927,16 +4166,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index 6bc62ea021..a1f6b8b48a 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -2,11 +2,12 @@ (type $0 (func (param i32) (result i32))) (type $1 (func)) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32))) (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32) (result i32))) + (type $7 (func (param i32 i32 i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -24,242 +25,23 @@ (global $class-implements/f (mut i32) (i32.const 0)) (global $class-implements/g (mut i32) (i32.const 0)) (global $class-implements/h (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36328)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34360)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00&\00\00\00c\00l\00a\00s\00s\00-\00i\00m\00p\00l\00e\00m\00e\00n\00t\00s\00.\00t\00s") - (data $20 (i32.const 3472) "\15\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00&\00\00\00c\00l\00a\00s\00s\00-\00i\00m\00p\00l\00e\00m\00e\00n\00t\00s\00.\00t\00s") + (data $9 (i32.const 1504) "\15\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3560 - i32.lt_s - if - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -305,13 +87,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -332,7 +110,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -380,7 +158,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -389,7 +167,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$187 + block $__inlined_func$~lib/rt/itcms/Object#unlink$175 local.get $1 i32.load offset=4 i32.const -4 @@ -401,19 +179,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36328 + i32.const 34360 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$187 + br $__inlined_func$~lib/rt/itcms/Object#unlink$175 end local.get $1 i32.load offset=8 @@ -421,7 +199,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -450,13 +228,13 @@ i32.const 1 else local.get $0 - i32.const 3472 + i32.const 1504 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -464,7 +242,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3476 + i32.const 1508 i32.add i32.load i32.const 32 @@ -516,7 +294,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -530,7 +308,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -576,7 +354,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -659,7 +437,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -673,7 +451,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -734,7 +512,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -767,7 +545,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -782,7 +560,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -833,7 +611,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -905,7 +683,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -930,7 +708,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -957,7 +735,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1029,10 +807,10 @@ if unreachable end - i32.const 36336 + i32.const 34368 i32.const 0 i32.store - i32.const 37904 + i32.const 35936 i32.const 0 i32.store loop $for-loop|0 @@ -1043,7 +821,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36336 + i32.const 34368 i32.add i32.const 0 i32.store offset=4 @@ -1061,7 +839,7 @@ i32.add i32.const 2 i32.shl - i32.const 36336 + i32.const 34368 i32.add i32.const 0 i32.store offset=96 @@ -1079,14 +857,14 @@ br $for-loop|0 end end - i32.const 36336 - i32.const 37908 + i32.const 34368 + i32.const 35940 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36336 + i32.const 34368 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1171,7 +949,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36328 + i32.const 34360 i32.lt_u if local.get $0 @@ -1260,14 +1038,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36328 + i32.const 34360 i32.lt_u if local.get $0 @@ -1290,7 +1068,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36328 + i32.const 34360 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1319,7 +1097,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1403,7 +1181,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1455,7 +1233,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1487,8 +1265,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1498,7 +1276,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1515,7 +1293,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1548,8 +1326,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1651,7 +1429,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1666,7 +1444,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1685,7 +1463,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1861,11 +1639,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1924,205 +1702,40 @@ (func $~start call $start:class-implements ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3560 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3560 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$192 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$192 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $class-implements/D#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2130,11 +1743,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2174,11 +1787,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2213,11 +1826,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2262,11 +1875,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2311,11 +1924,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2340,11 +1953,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2372,7 +1985,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2382,41 +1995,41 @@ memory.size i32.const 16 i32.shl - i32.const 36328 + i32.const 34360 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 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 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2450,7 +2063,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2471,7 +2084,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2513,7 +2126,7 @@ i32.const 0 call $class-implements/D#constructor global.set $class-implements/d - block $__inlined_func$class-implements/D#foo@override$175 (result i32) + block $__inlined_func$class-implements/D#foo@override$163 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-implements/d local.tee $0 @@ -2525,7 +2138,7 @@ i32.load i32.const 11 i32.eq - br_if $__inlined_func$class-implements/D#foo@override$175 + br_if $__inlined_func$class-implements/D#foo@override$163 drop i32.const 3 end @@ -2533,7 +2146,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -2544,7 +2157,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2570,7 +2183,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $class-implements/e - block $__inlined_func$class-implements/D#foo@override$177 (result i32) + block $__inlined_func$class-implements/D#foo@override$165 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-implements/e local.tee $0 @@ -2582,7 +2195,7 @@ i32.load i32.const 11 i32.eq - br_if $__inlined_func$class-implements/D#foo@override$177 + br_if $__inlined_func$class-implements/D#foo@override$165 drop i32.const 3 end @@ -2590,7 +2203,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -2603,7 +2216,7 @@ i32.store call $class-implements/F#constructor global.set $class-implements/g - block $__inlined_func$class-implements/D#foo@override$178 (result i32) + block $__inlined_func$class-implements/D#foo@override$166 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-implements/g local.tee $0 @@ -2615,7 +2228,7 @@ i32.load i32.const 11 i32.eq - br_if $__inlined_func$class-implements/D#foo@override$178 + br_if $__inlined_func$class-implements/D#foo@override$166 drop i32.const 3 end @@ -2623,7 +2236,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -2635,7 +2248,7 @@ global.get $class-implements/h local.tee $0 i32.store - block $__inlined_func$class-implements/I#foo@override$179 + block $__inlined_func$class-implements/I#foo@override$167 block $default12 block $case3 block $case2 @@ -2651,19 +2264,19 @@ end i32.const 4 local.set $0 - br $__inlined_func$class-implements/I#foo@override$179 + br $__inlined_func$class-implements/I#foo@override$167 end i32.const 1 local.set $0 - br $__inlined_func$class-implements/I#foo@override$179 + br $__inlined_func$class-implements/I#foo@override$167 end i32.const 2 local.set $0 - br $__inlined_func$class-implements/I#foo@override$179 + br $__inlined_func$class-implements/I#foo@override$167 end i32.const 3 local.set $0 - br $__inlined_func$class-implements/I#foo@override$179 + br $__inlined_func$class-implements/I#foo@override$167 end unreachable end @@ -2672,7 +2285,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -2683,7 +2296,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2710,7 +2323,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$class-implements/J#foo@override$181 + block $__inlined_func$class-implements/J#foo@override$169 block $default14 block $case315 block $case216 @@ -2728,15 +2341,15 @@ end i32.const 4 local.set $0 - br $__inlined_func$class-implements/J#foo@override$181 + br $__inlined_func$class-implements/J#foo@override$169 end i32.const 3 local.set $0 - br $__inlined_func$class-implements/J#foo@override$181 + br $__inlined_func$class-implements/J#foo@override$169 end i32.const 1 local.set $0 - br $__inlined_func$class-implements/J#foo@override$181 + br $__inlined_func$class-implements/J#foo@override$169 end unreachable end @@ -2745,7 +2358,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -2765,7 +2378,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -2780,7 +2393,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -2801,7 +2414,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 100 i32.const 3 call $~lib/builtins/abort @@ -2816,7 +2429,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 101 i32.const 3 call $~lib/builtins/abort @@ -2828,7 +2441,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2869,7 +2482,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -2884,7 +2497,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 106 i32.const 3 call $~lib/builtins/abort @@ -2905,7 +2518,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -2920,7 +2533,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 109 i32.const 3 call $~lib/builtins/abort @@ -2932,7 +2545,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2973,7 +2586,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 113 i32.const 3 call $~lib/builtins/abort @@ -2988,7 +2601,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -3009,7 +2622,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 116 i32.const 3 call $~lib/builtins/abort @@ -3024,7 +2637,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 117 i32.const 3 call $~lib/builtins/abort @@ -3044,7 +2657,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 121 i32.const 3 call $~lib/builtins/abort @@ -3059,7 +2672,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 122 i32.const 3 call $~lib/builtins/abort @@ -3080,7 +2693,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 124 i32.const 3 call $~lib/builtins/abort @@ -3095,7 +2708,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 125 i32.const 3 call $~lib/builtins/abort @@ -3107,7 +2720,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3148,7 +2761,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 129 i32.const 3 call $~lib/builtins/abort @@ -3163,7 +2776,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 130 i32.const 3 call $~lib/builtins/abort @@ -3184,7 +2797,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 132 i32.const 3 call $~lib/builtins/abort @@ -3199,7 +2812,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 133 i32.const 3 call $~lib/builtins/abort @@ -3211,7 +2824,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3252,7 +2865,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 137 i32.const 3 call $~lib/builtins/abort @@ -3267,7 +2880,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -3288,7 +2901,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 140 i32.const 3 call $~lib/builtins/abort @@ -3303,7 +2916,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -3315,8 +2928,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3328,11 +2941,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3358,11 +2971,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3560 + i32.const 1592 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index 4aa9cf86c0..3f38fc1758 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -4,20 +4,15 @@ (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 f64) (result i32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (result i32))) - (type $12 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $13 (func (param i32 f32) (result i32))) - (type $14 (func (param i32 i32 i32 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)) + (type $5 (func (param i32 f64) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $11 (func (param i32 f32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -26,477 +21,42 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $class-overloading-cast/v (mut i32) (i32.const 0)) (global $class-overloading-cast/v2 (mut i32) (i32.const 0)) (global $class-overloading-cast/v3 (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $class-overloading-cast/c (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2592)) - (global $~lib/memory/__data_end i32 (i32.const 2652)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35420)) - (global $~lib/memory/__heap_base i32 (i32.const 35420)) + (global $~lib/rt/__rtti_base i32 (i32.const 624)) + (global $~lib/memory/__data_end i32 (i32.const 684)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33452)) + (global $~lib/memory/__heap_base i32 (i32.const 33452)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2444) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00D\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2592) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 476) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00D\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 624) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -561,7 +121,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -631,7 +191,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -648,7 +208,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -678,9 +238,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -747,7 +307,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -899,7 +459,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -919,7 +479,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -982,7 +542,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1135,7 +695,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1152,7 +712,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1241,7 +801,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1284,7 +844,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1302,7 +862,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1370,7 +930,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1487,7 +1047,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1533,7 +1093,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1565,7 +1125,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1809,7 +1369,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2029,7 +1589,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2140,8 +1700,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2243,7 +1803,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2314,7 +1874,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2471,7 +2031,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2586,7 +2146,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2606,7 +2166,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2654,8 +2214,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2701,7 +2261,20 @@ return ) (func $class-overloading-cast/A#foo (param $this i32) (param $a i32) (result i32) - i32.const 2400 + i32.const 432 + return + ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u return ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) @@ -2809,27 +2382,27 @@ return ) (func $"class-overloading-cast/B#foo" (param $this i32) (param $a i32) (result i32) - i32.const 2432 + i32.const 464 return ) (func $class-overloading-cast/A#foo (param $this i32) (param $a f64) (result i32) - i32.const 2400 + i32.const 432 return ) (func $class-overloading-cast/A<~lib/string/String>#foo (param $this i32) (param $a i32) (result i32) - i32.const 2400 + i32.const 432 return ) (func $class-overloading-cast/D#bar (param $this i32) (param $a f32) (result i32) - i32.const 2576 + i32.const 608 return ) (func $"class-overloading-cast/B#foo" (param $this i32) (param $a i32) (result i32) - i32.const 2432 + i32.const 464 return ) (func $"class-overloading-cast/B#foo" (param $this i32) (param $a f64) (result i32) - i32.const 2432 + i32.const 464 return ) (func $class-overloading-cast/A#foo@override (param $0 i32) (param $1 i32) (result i32) @@ -2915,20 +2488,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35440 - i32.const 35488 + i32.const 33472 + i32.const 33520 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2937,196 +2506,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $class-overloading-cast/A#constructor (param $this i32) (result i32) (local $1 i32) @@ -3622,13 +3022,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3653,12 +3053,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -3677,12 +3077,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -3701,12 +3101,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -3721,19 +3121,19 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 2544 + i32.const 576 call $class-overloading-cast/A<~lib/string/String>#foo@override local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2400 + i32.const 432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 32 i32.const 1 call $~lib/builtins/abort @@ -3745,19 +3145,19 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 2544 + i32.const 576 call $class-overloading-cast/A<~lib/string/String>#foo@override local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2400 + i32.const 432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -3777,12 +3177,12 @@ local.get $0 i32.store local.get $0 - i32.const 2576 + i32.const 608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -3793,153 +3193,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3998,16 +3251,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index a2adbe2b33..0d670977d1 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1,12 +1,13 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -21,251 +22,32 @@ (global $class-overloading-cast/v2 (mut i32) (i32.const 0)) (global $class-overloading-cast/v3 (mut i32) (i32.const 0)) (global $class-overloading-cast/c (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36444)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34476)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\02\00\00\00A") - (data $20 (i32.const 3436) "\1c") - (data $20.1 (i32.const 3448) "\02\00\00\00\02\00\00\00B") - (data $21 (i32.const 3468) "L") - (data $21.1 (i32.const 3480) "\02\00\00\002\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00-\00c\00a\00s\00t\00.\00t\00s") - (data $22 (i32.const 3548) "\1c") - (data $22.1 (i32.const 3560) "\02\00\00\00\02\00\00\00a") - (data $23 (i32.const 3580) "\1c") - (data $23.1 (i32.const 3592) "\02\00\00\00\02\00\00\00D") - (data $24 (i32.const 3616) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "\1c") + (data $8.1 (i32.const 1448) "\02\00\00\00\02\00\00\00A") + (data $9 (i32.const 1468) "\1c") + (data $9.1 (i32.const 1480) "\02\00\00\00\02\00\00\00B") + (data $10 (i32.const 1500) "L") + (data $10.1 (i32.const 1512) "\02\00\00\002\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00-\00c\00a\00s\00t\00.\00t\00s") + (data $11 (i32.const 1580) "\1c") + (data $11.1 (i32.const 1592) "\02\00\00\00\02\00\00\00a") + (data $12 (i32.const 1612) "\1c") + (data $12.1 (i32.const 1624) "\02\00\00\00\02\00\00\00D") + (data $13 (i32.const 1648) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3676 - i32.lt_s - if - i32.const 36464 - i32.const 36512 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -293,13 +75,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -320,7 +98,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -368,7 +146,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -377,7 +155,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$153 + block $__inlined_func$~lib/rt/itcms/Object#unlink$142 local.get $1 i32.load offset=4 i32.const -4 @@ -389,19 +167,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36444 + i32.const 34476 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$153 + br $__inlined_func$~lib/rt/itcms/Object#unlink$142 end local.get $1 i32.load offset=8 @@ -409,7 +187,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -438,13 +216,13 @@ i32.const 1 else local.get $0 - i32.const 3616 + i32.const 1648 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -452,7 +230,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3620 + i32.const 1652 i32.add i32.load i32.const 32 @@ -504,7 +282,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -518,7 +296,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -564,7 +342,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -647,7 +425,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -661,7 +439,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -722,7 +500,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -755,7 +533,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -770,7 +548,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -821,7 +599,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -893,7 +671,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -918,7 +696,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -945,7 +723,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1017,10 +795,10 @@ if unreachable end - i32.const 36448 + i32.const 34480 i32.const 0 i32.store - i32.const 38016 + i32.const 36048 i32.const 0 i32.store loop $for-loop|0 @@ -1031,7 +809,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36448 + i32.const 34480 i32.add i32.const 0 i32.store offset=4 @@ -1049,7 +827,7 @@ i32.add i32.const 2 i32.shl - i32.const 36448 + i32.const 34480 i32.add i32.const 0 i32.store offset=96 @@ -1067,14 +845,14 @@ br $for-loop|0 end end - i32.const 36448 - i32.const 38020 + i32.const 34480 + i32.const 36052 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36448 + i32.const 34480 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1159,7 +937,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36444 + i32.const 34476 i32.lt_u if local.get $0 @@ -1248,14 +1026,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36444 + i32.const 34476 i32.lt_u if local.get $0 @@ -1278,7 +1056,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36444 + i32.const 34476 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1307,7 +1085,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1337,85 +1115,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1423,11 +1134,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1443,7 +1150,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1465,35 +1172,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1503,9 +1198,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1528,86 +1223,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1623,8 +1263,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1632,136 +1272,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1769,14 +1392,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start global.get $~started @@ -1787,205 +1410,40 @@ global.set $~started call $start:class-overloading-cast ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3676 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3676 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$158 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$158 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36464 - i32.const 36512 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s if - i32.const 36464 - i32.const 36512 + i32.const 34496 + i32.const 34544 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $class-overloading-cast/A#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1993,11 +1451,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s if - i32.const 36464 - i32.const 36512 + i32.const 34496 + i32.const 34544 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2010,7 +1468,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -2040,11 +1497,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s if - i32.const 36464 - i32.const 36512 + i32.const 34496 + i32.const 34544 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2143,7 +1600,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$90 + block $__inlined_func$~lib/util/string/compareImpl$87 loop $while-continue|1 local.get $0 local.tee $3 @@ -2163,7 +1620,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$90 + br_if $__inlined_func$~lib/util/string/compareImpl$87 local.get $2 i32.const 2 i32.add @@ -2202,7 +1659,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2211,48 +1668,47 @@ memory.size i32.const 16 i32.shl - i32.const 36444 + i32.const 34476 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 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 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2276,14 +1732,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 @@ -2307,14 +1762,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 @@ -2328,7 +1782,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2338,7 +1792,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 @@ -2365,7 +1818,7 @@ local.get $0 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer - block $__inlined_func$class-overloading-cast/A#foo@override$147 (result i32) + block $__inlined_func$class-overloading-cast/A#foo@override$136 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v local.tee $0 @@ -2386,23 +1839,23 @@ br_if $case1 br $default end - i32.const 3456 - br $__inlined_func$class-overloading-cast/A#foo@override$147 + i32.const 1488 + br $__inlined_func$class-overloading-cast/A#foo@override$136 end - i32.const 3456 - br $__inlined_func$class-overloading-cast/A#foo@override$147 + i32.const 1488 + br $__inlined_func$class-overloading-cast/A#foo@override$136 end - i32.const 3424 + i32.const 1456 end local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -2412,46 +1865,46 @@ global.get $class-overloading-cast/v2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3456 + i32.const 1488 i32.store - i32.const 3456 - i32.const 3456 + i32.const 1488 + i32.const 1488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 27 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - block $__inlined_func$class-overloading-cast/A#foo@override$148 (result i32) + block $__inlined_func$class-overloading-cast/A#foo@override$137 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v3 local.tee $0 i32.store offset=4 - i32.const 3456 + i32.const 1488 local.get $0 i32.const 8 i32.sub i32.load i32.const 7 i32.eq - br_if $__inlined_func$class-overloading-cast/A#foo@override$148 + br_if $__inlined_func$class-overloading-cast/A#foo@override$137 drop - i32.const 3424 + i32.const 1456 end local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -2462,14 +1915,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 9 call $~lib/rt/itcms/__new local.tee $0 @@ -2483,7 +1935,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2493,7 +1945,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 @@ -2529,15 +1980,15 @@ i32.load drop global.get $~lib/memory/__stack_pointer - i32.const 3424 + i32.const 1456 i32.store - i32.const 3424 - i32.const 3424 + i32.const 1456 + i32.const 1456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 32 i32.const 1 call $~lib/builtins/abort @@ -2553,15 +2004,15 @@ i32.load drop global.get $~lib/memory/__stack_pointer - i32.const 3424 + i32.const 1456 i32.store - i32.const 3424 - i32.const 3424 + i32.const 1456 + i32.const 1456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -2572,14 +2023,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 11 call $~lib/rt/itcms/__new local.tee $0 @@ -2593,7 +2043,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2603,7 +2053,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 12 call $~lib/rt/itcms/__new local.tee $0 @@ -2618,7 +2067,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2628,7 +2077,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 13 call $~lib/rt/itcms/__new local.tee $0 @@ -2662,15 +2110,15 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3600 + i32.const 1632 i32.store - i32.const 3600 - i32.const 3600 + i32.const 1632 + i32.const 1632 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -2682,8 +2130,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36464 - i32.const 36512 + i32.const 34496 + i32.const 34544 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2695,11 +2143,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3676 + i32.const 1708 i32.lt_s if - i32.const 36464 - i32.const 36512 + i32.const 34496 + i32.const 34544 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2713,7 +2161,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 32fb4ba787..ca9f7362f8 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -2,21 +2,16 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $class-overloading/which (mut i32) (i32.const 32)) - (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 $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -25,481 +20,47 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $class-overloading/a (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $class-overloading/c (mut i32) (i32.const 0)) (global $class-overloading/ia (mut i32) (i32.const 0)) (global $class-overloading/ic (mut i32) (i32.const 0)) (global $class-overloading/b2 (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2704)) - (global $~lib/memory/__data_end i32 (i32.const 2780)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35548)) - (global $~lib/memory/__heap_base i32 (i32.const 35548)) + (global $~lib/rt/__rtti_base i32 (i32.const 768)) + (global $~lib/memory/__data_end i32 (i32.const 844)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33612)) + (global $~lib/memory/__heap_base i32 (i32.const 33612)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00F\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00I\00B\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00I\00C\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2636) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00n\00o\00t\00 \00i\00m\00p\00l\00e\00m\00e\00n\00t\00e\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2704) "\12\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 476) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00\00\00\00\00") + (data $12 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00F\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00I\00B\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00I\00C\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00n\00o\00t\00 \00i\00m\00p\00l\00e\00m\00e\00n\00t\00e\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 768) "\12\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -564,7 +125,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 128 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -634,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 128 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -651,7 +212,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 128 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -681,9 +242,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 256 + i32.const 320 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -750,7 +311,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 128 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -902,7 +463,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -922,7 +483,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -985,7 +546,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1138,7 +699,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1155,7 +716,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1244,7 +805,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1287,7 +848,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1305,7 +866,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1373,7 +934,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1490,7 +1051,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1536,7 +1097,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1568,7 +1129,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1812,7 +1373,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2032,7 +1593,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 128 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2143,8 +1704,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 64 + i32.const 400 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2246,7 +1807,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2317,7 +1878,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2474,7 +2035,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2589,7 +2150,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2609,7 +2170,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2657,8 +2218,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 64 + i32.const 128 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2704,9 +2265,22 @@ return ) (func $class-overloading/A#a (param $this i32) (param $a i32) - i32.const 2400 + i32.const 464 global.set $class-overloading/which ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -2812,91 +2386,91 @@ return ) (func $class-overloading/A#b (param $this i32) (param $b i32) - i32.const 2400 + i32.const 464 global.set $class-overloading/which ) (func $class-overloading/A#get:c (param $this i32) (result i32) - i32.const 2400 + i32.const 464 global.set $class-overloading/which i32.const 0 return ) (func $class-overloading/A#set:c (param $this i32) (param $c i32) - i32.const 2400 + i32.const 464 global.set $class-overloading/which ) (func $class-overloading/B#a (param $this i32) (param $a i32) - i32.const 2432 + i32.const 496 global.set $class-overloading/which ) (func $class-overloading/C#b (param $this i32) (param $b i32) - i32.const 2528 + i32.const 592 global.set $class-overloading/which ) (func $class-overloading/C#get:c (param $this i32) (result i32) - i32.const 2528 + i32.const 592 global.set $class-overloading/which i32.const 0 return ) (func $class-overloading/C#set:c (param $this i32) (param $c i32) - i32.const 2528 + i32.const 592 global.set $class-overloading/which ) (func $class-overloading/IA#foo (param $this i32) unreachable ) (func $class-overloading/A2#foo (param $this i32) (result i32) - i32.const 2656 - i32.const 2464 + i32.const 720 + i32.const 528 i32.const 198 i32.const 5 call $~lib/builtins/abort unreachable ) (func $class-overloading/F#a (param $this i32) (param $a i32) - i32.const 2560 + i32.const 624 global.set $class-overloading/which ) (func $class-overloading/B#b (param $this i32) (param $b i32) - i32.const 2432 + i32.const 496 global.set $class-overloading/which ) (func $class-overloading/F#b (param $this i32) (param $b i32) - i32.const 2560 + i32.const 624 global.set $class-overloading/which ) (func $class-overloading/B#get:c (param $this i32) (result i32) - i32.const 2432 + i32.const 496 global.set $class-overloading/which i32.const 0 return ) (func $class-overloading/F#get:c (param $this i32) (result i32) - i32.const 2560 + i32.const 624 global.set $class-overloading/which i32.const 0 return ) (func $class-overloading/B#set:c (param $this i32) (param $c i32) - i32.const 2432 + i32.const 496 global.set $class-overloading/which ) (func $class-overloading/F#set:c (param $this i32) (param $c i32) - i32.const 2560 + i32.const 624 global.set $class-overloading/which ) (func $class-overloading/CA#foo (param $this i32) - i32.const 2592 + i32.const 656 global.set $class-overloading/which ) (func $class-overloading/CC#foo (param $this i32) - i32.const 2624 + i32.const 688 global.set $class-overloading/which ) (func $class-overloading/A1#baz (param $this i32) (result i32) - i32.const 2656 - i32.const 2464 + i32.const 720 + i32.const 528 i32.const 186 i32.const 5 call $~lib/builtins/abort @@ -3198,20 +2772,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35568 - i32.const 35616 + i32.const 33632 + i32.const 33680 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3220,196 +2790,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 32 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $class-overloading/A#constructor (param $this i32) (result i32) (local $1 i32) @@ -3645,18 +3046,18 @@ local.get $2 i32.store local.get $2 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 52 i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 2528 + i32.const 592 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3947,13 +3348,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 208 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 352 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3973,12 +3374,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -4000,12 +3401,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -4027,12 +3428,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -4054,12 +3455,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 47 i32.const 1 call $~lib/builtins/abort @@ -4084,12 +3485,12 @@ local.get $0 i32.store local.get $0 - i32.const 2528 + i32.const 592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 71 i32.const 1 call $~lib/builtins/abort @@ -4111,12 +3512,12 @@ local.get $0 i32.store local.get $0 - i32.const 2528 + i32.const 592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 74 i32.const 1 call $~lib/builtins/abort @@ -4138,12 +3539,12 @@ local.get $0 i32.store local.get $0 - i32.const 2528 + i32.const 592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 77 i32.const 1 call $~lib/builtins/abort @@ -4163,12 +3564,12 @@ local.get $0 i32.store local.get $0 - i32.const 2528 + i32.const 592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 79 i32.const 1 call $~lib/builtins/abort @@ -4193,12 +3594,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 89 i32.const 1 call $~lib/builtins/abort @@ -4220,12 +3621,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 92 i32.const 1 call $~lib/builtins/abort @@ -4247,12 +3648,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 95 i32.const 1 call $~lib/builtins/abort @@ -4272,12 +3673,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 97 i32.const 1 call $~lib/builtins/abort @@ -4302,12 +3703,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 107 i32.const 1 call $~lib/builtins/abort @@ -4329,12 +3730,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 110 i32.const 1 call $~lib/builtins/abort @@ -4356,12 +3757,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 113 i32.const 1 call $~lib/builtins/abort @@ -4381,12 +3782,12 @@ local.get $0 i32.store local.get $0 - i32.const 2432 + i32.const 496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -4411,12 +3812,12 @@ local.get $0 i32.store local.get $0 - i32.const 2560 + i32.const 624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 137 i32.const 1 call $~lib/builtins/abort @@ -4438,12 +3839,12 @@ local.get $0 i32.store local.get $0 - i32.const 2560 + i32.const 624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 140 i32.const 1 call $~lib/builtins/abort @@ -4465,12 +3866,12 @@ local.get $0 i32.store local.get $0 - i32.const 2560 + i32.const 624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 143 i32.const 1 call $~lib/builtins/abort @@ -4492,12 +3893,12 @@ local.get $0 i32.store local.get $0 - i32.const 2560 + i32.const 624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 146 i32.const 1 call $~lib/builtins/abort @@ -4521,12 +3922,12 @@ local.get $0 i32.store local.get $0 - i32.const 2592 + i32.const 656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -4550,12 +3951,12 @@ local.get $0 i32.store local.get $0 - i32.const 2624 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 177 i32.const 1 call $~lib/builtins/abort @@ -4576,7 +3977,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 528 i32.const 209 i32.const 1 call $~lib/builtins/abort @@ -4714,153 +4115,6 @@ local.get $1 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4933,16 +4187,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index b56129b6ef..7d327ad961 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -2,11 +2,12 @@ (type $0 (func (param i32) (result i32))) (type $1 (func)) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $class-overloading/which (mut i32) (i32.const 1056)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) @@ -23,257 +24,40 @@ (global $class-overloading/ia (mut i32) (i32.const 0)) (global $class-overloading/ic (mut i32) (i32.const 0)) (global $class-overloading/b2 (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36572)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34636)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\02\00\00\00A") - (data $20 (i32.const 3436) "\1c") - (data $20.1 (i32.const 3448) "\02\00\00\00\02\00\00\00B") - (data $21 (i32.const 3468) "<") - (data $21.1 (i32.const 3480) "\02\00\00\00(\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\02\00\00\00\02\00\00\00C") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\02\00\00\00\02\00\00\00F") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\02\00\00\00\04\00\00\00I\00B") - (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\02\00\00\00\04\00\00\00I\00C") - (data $26 (i32.const 3660) "<") - (data $26.1 (i32.const 3672) "\02\00\00\00\1e\00\00\00n\00o\00t\00 \00i\00m\00p\00l\00e\00m\00e\00n\00t\00e\00d") - (data $27 (i32.const 3728) "\12\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\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 $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1324) ",") + (data $6.1 (i32.const 1336) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1468) "\1c") + (data $9.1 (i32.const 1480) "\02\00\00\00\02\00\00\00A") + (data $10 (i32.const 1500) "\1c") + (data $10.1 (i32.const 1512) "\02\00\00\00\02\00\00\00B") + (data $11 (i32.const 1532) "<") + (data $11.1 (i32.const 1544) "\02\00\00\00(\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s") + (data $12 (i32.const 1596) "\1c") + (data $12.1 (i32.const 1608) "\02\00\00\00\02\00\00\00C") + (data $13 (i32.const 1628) "\1c") + (data $13.1 (i32.const 1640) "\02\00\00\00\02\00\00\00F") + (data $14 (i32.const 1660) "\1c") + (data $14.1 (i32.const 1672) "\02\00\00\00\04\00\00\00I\00B") + (data $15 (i32.const 1692) "\1c") + (data $15.1 (i32.const 1704) "\02\00\00\00\04\00\00\00I\00C") + (data $16 (i32.const 1724) "<") + (data $16.1 (i32.const 1736) "\02\00\00\00\1e\00\00\00n\00o\00t\00 \00i\00m\00p\00l\00e\00m\00e\00n\00t\00e\00d") + (data $17 (i32.const 1792) "\12\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3804 - i32.lt_s - if - i32.const 36592 - i32.const 36640 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -313,13 +97,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1088 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -340,7 +120,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -388,7 +168,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -397,7 +177,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$183 + block $__inlined_func$~lib/rt/itcms/Object#unlink$172 local.get $1 i32.load offset=4 i32.const -4 @@ -409,19 +189,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36572 + i32.const 34636 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$183 + br $__inlined_func$~lib/rt/itcms/Object#unlink$172 end local.get $1 i32.load offset=8 @@ -429,7 +209,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -458,13 +238,13 @@ i32.const 1 else local.get $0 - i32.const 3728 + i32.const 1792 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1280 + i32.const 1344 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -472,7 +252,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3732 + i32.const 1796 i32.add i32.load i32.const 32 @@ -524,7 +304,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -538,7 +318,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -584,7 +364,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -667,7 +447,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -681,7 +461,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -742,7 +522,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -775,7 +555,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -790,7 +570,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -841,7 +621,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -913,7 +693,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -938,7 +718,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -965,7 +745,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1037,10 +817,10 @@ if unreachable end - i32.const 36576 + i32.const 34640 i32.const 0 i32.store - i32.const 38144 + i32.const 36208 i32.const 0 i32.store loop $for-loop|0 @@ -1051,7 +831,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36576 + i32.const 34640 i32.add i32.const 0 i32.store offset=4 @@ -1069,7 +849,7 @@ i32.add i32.const 2 i32.shl - i32.const 36576 + i32.const 34640 i32.add i32.const 0 i32.store offset=96 @@ -1087,14 +867,14 @@ br $for-loop|0 end end - i32.const 36576 - i32.const 38148 + i32.const 34640 + i32.const 36212 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36576 + i32.const 34640 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1179,7 +959,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36572 + i32.const 34636 i32.lt_u if local.get $0 @@ -1268,14 +1048,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36572 + i32.const 34636 i32.lt_u if local.get $0 @@ -1298,7 +1078,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36572 + i32.const 34636 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1327,7 +1107,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1357,85 +1137,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1443,11 +1156,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1463,7 +1172,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1485,35 +1194,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1523,9 +1220,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1548,86 +1245,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1643,8 +1285,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1652,136 +1294,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 3360 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 + local.get $1 + i32.load + i32.const -4 i32.and + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 - i32.const 361 + i32.const 1424 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 + local.get $2 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1789,14 +1414,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $class-overloading/A#a@override (param $0 i32) block $default @@ -1811,7 +1436,7 @@ i32.sub br_table $case0 $case1 $case0 $case0 $case2 $default end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which return end @@ -1819,11 +1444,11 @@ call $class-overloading/C#a return end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which return end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which ) (func $~start @@ -1835,205 +1460,40 @@ global.set $~started call $start:class-overloading ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3804 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3804 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$190 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#concat$190 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36592 - i32.const 36640 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s if - i32.const 36592 - i32.const 36640 + i32.const 34656 + i32.const 34704 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $class-overloading/B#constructor (param $0 i32) (result i32) (local $1 i32) @@ -2043,7 +1503,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2053,7 +1513,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -2068,7 +1527,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2078,7 +1537,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2105,8 +1563,8 @@ local.get $0 return end - i32.const 36592 - i32.const 36640 + i32.const 34656 + i32.const 34704 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2122,11 +1580,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s if - i32.const 36592 - i32.const 36640 + i32.const 34656 + i32.const 34704 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2225,7 +1683,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$98 + block $__inlined_func$~lib/util/string/compareImpl$95 loop $while-continue|1 local.get $0 local.tee $3 @@ -2245,7 +1703,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$98 + br_if $__inlined_func$~lib/util/string/compareImpl$95 local.get $2 i32.const 2 i32.add @@ -2280,11 +1738,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s if - i32.const 36592 - i32.const 36640 + i32.const 34656 + i32.const 34704 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2296,24 +1754,24 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 3456 + i32.const 1520 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - i32.const 3456 + i32.const 1520 i32.store - i32.const 3456 - i32.const 3456 + i32.const 1520 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 52 i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2326,11 +1784,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s if - i32.const 36592 - i32.const 36640 + i32.const 34656 + i32.const 34704 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2343,7 +1801,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 @@ -2369,11 +1826,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s if - i32.const 36592 - i32.const 36640 + i32.const 34656 + i32.const 34704 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2386,7 +1843,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 @@ -2415,7 +1871,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2424,34 +1880,34 @@ memory.size i32.const 16 i32.shl - i32.const 36572 + i32.const 34636 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3136 + i32.const 1200 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1236 + i32.const 1232 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1240 + i32.const 1232 i32.store - i32.const 3168 + i32.const 1232 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1380 + i32.const 1376 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1384 + i32.const 1376 i32.store - i32.const 3312 + i32.const 1376 global.set $~lib/rt/itcms/fromSpace i32.const 0 call $class-overloading/B#constructor @@ -2467,12 +1923,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -2484,7 +1940,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@override$164 + block $__inlined_func$class-overloading/A#b@override$153 block $default block $case2 block $case1 @@ -2497,19 +1953,19 @@ i32.sub br_table $case0 $case1 $case0 $case0 $case2 $default end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$164 + br $__inlined_func$class-overloading/A#b@override$153 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$164 + br $__inlined_func$class-overloading/A#b@override$153 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$164 + br $__inlined_func$class-overloading/A#b@override$153 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -2517,12 +1973,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -2534,7 +1990,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@override$165 + block $__inlined_func$class-overloading/A#get:c@override$154 block $default4 block $case25 block $case16 @@ -2547,19 +2003,19 @@ i32.sub br_table $case07 $case16 $case07 $case07 $case25 $default4 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$165 + br $__inlined_func$class-overloading/A#get:c@override$154 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$165 + br $__inlined_func$class-overloading/A#get:c@override$154 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$165 + br $__inlined_func$class-overloading/A#get:c@override$154 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -2567,12 +2023,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -2584,7 +2040,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@override$166 + block $__inlined_func$class-overloading/A#b@override$155 block $default8 block $case29 block $case110 @@ -2597,19 +2053,19 @@ i32.sub br_table $case011 $case110 $case011 $case011 $case29 $default8 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$166 + br $__inlined_func$class-overloading/A#b@override$155 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$166 + br $__inlined_func$class-overloading/A#b@override$155 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$166 + br $__inlined_func$class-overloading/A#b@override$155 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -2617,12 +2073,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 47 i32.const 1 call $~lib/builtins/abort @@ -2633,14 +2089,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 @@ -2672,12 +2127,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3552 + i32.const 1616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 71 i32.const 1 call $~lib/builtins/abort @@ -2688,18 +2143,18 @@ global.get $~lib/memory/__stack_pointer global.get $class-overloading/c i32.store - i32.const 3552 + i32.const 1616 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1616 i32.store - i32.const 3552 - i32.const 3552 + i32.const 1616 + i32.const 1616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 74 i32.const 1 call $~lib/builtins/abort @@ -2710,18 +2165,18 @@ global.get $~lib/memory/__stack_pointer global.get $class-overloading/c i32.store - i32.const 3552 + i32.const 1616 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1616 i32.store - i32.const 3552 - i32.const 3552 + i32.const 1616 + i32.const 1616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 77 i32.const 1 call $~lib/builtins/abort @@ -2730,18 +2185,18 @@ global.get $~lib/memory/__stack_pointer global.get $class-overloading/c i32.store - i32.const 3552 + i32.const 1616 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1616 i32.store - i32.const 3552 - i32.const 3552 + i32.const 1616 + i32.const 1616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 79 i32.const 1 call $~lib/builtins/abort @@ -2763,12 +2218,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 89 i32.const 1 call $~lib/builtins/abort @@ -2780,7 +2235,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@override$168 + block $__inlined_func$class-overloading/A#b@override$157 block $default16 block $case217 block $case118 @@ -2793,19 +2248,19 @@ i32.sub br_table $case019 $case118 $case019 $case019 $case217 $default16 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$168 + br $__inlined_func$class-overloading/A#b@override$157 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$168 + br $__inlined_func$class-overloading/A#b@override$157 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$168 + br $__inlined_func$class-overloading/A#b@override$157 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -2813,12 +2268,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 92 i32.const 1 call $~lib/builtins/abort @@ -2830,7 +2285,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@override$169 + block $__inlined_func$class-overloading/A#get:c@override$158 block $default24 block $case225 block $case126 @@ -2843,19 +2298,19 @@ i32.sub br_table $case027 $case126 $case027 $case027 $case225 $default24 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$169 + br $__inlined_func$class-overloading/A#get:c@override$158 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$169 + br $__inlined_func$class-overloading/A#get:c@override$158 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$169 + br $__inlined_func$class-overloading/A#get:c@override$158 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -2863,12 +2318,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 95 i32.const 1 call $~lib/builtins/abort @@ -2878,7 +2333,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@override$170 + block $__inlined_func$class-overloading/A#b@override$159 block $default32 block $case233 block $case134 @@ -2891,19 +2346,19 @@ i32.sub br_table $case035 $case134 $case035 $case035 $case233 $default32 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$170 + br $__inlined_func$class-overloading/A#b@override$159 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$170 + br $__inlined_func$class-overloading/A#b@override$159 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$170 + br $__inlined_func$class-overloading/A#b@override$159 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -2911,12 +2366,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 97 i32.const 1 call $~lib/builtins/abort @@ -2938,12 +2393,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 107 i32.const 1 call $~lib/builtins/abort @@ -2955,7 +2410,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@override$171 + block $__inlined_func$class-overloading/A#b@override$160 block $default40 block $case241 block $case142 @@ -2968,19 +2423,19 @@ i32.sub br_table $case043 $case142 $case043 $case043 $case241 $default40 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$171 + br $__inlined_func$class-overloading/A#b@override$160 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$171 + br $__inlined_func$class-overloading/A#b@override$160 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$171 + br $__inlined_func$class-overloading/A#b@override$160 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -2988,12 +2443,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 110 i32.const 1 call $~lib/builtins/abort @@ -3005,7 +2460,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@override$172 + block $__inlined_func$class-overloading/A#get:c@override$161 block $default48 block $case249 block $case150 @@ -3018,19 +2473,19 @@ i32.sub br_table $case051 $case150 $case051 $case051 $case249 $default48 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$172 + br $__inlined_func$class-overloading/A#get:c@override$161 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$172 + br $__inlined_func$class-overloading/A#get:c@override$161 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$172 + br $__inlined_func$class-overloading/A#get:c@override$161 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -3038,12 +2493,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 113 i32.const 1 call $~lib/builtins/abort @@ -3053,7 +2508,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@override$173 + block $__inlined_func$class-overloading/A#b@override$162 block $default56 block $case257 block $case158 @@ -3066,19 +2521,19 @@ i32.sub br_table $case059 $case158 $case059 $case059 $case257 $default56 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$173 + br $__inlined_func$class-overloading/A#b@override$162 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$173 + br $__inlined_func$class-overloading/A#b@override$162 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$173 + br $__inlined_func$class-overloading/A#b@override$162 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -3086,12 +2541,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -3102,14 +2557,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 9 call $~lib/rt/itcms/__new local.tee $0 @@ -3141,12 +2595,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3584 + i32.const 1648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 137 i32.const 1 call $~lib/builtins/abort @@ -3158,7 +2612,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@override$175 + block $__inlined_func$class-overloading/A#b@override$164 block $default64 block $case265 block $case166 @@ -3171,19 +2625,19 @@ i32.sub br_table $case067 $case166 $case067 $case067 $case265 $default64 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$175 + br $__inlined_func$class-overloading/A#b@override$164 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$175 + br $__inlined_func$class-overloading/A#b@override$164 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$175 + br $__inlined_func$class-overloading/A#b@override$164 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -3191,12 +2645,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3584 + i32.const 1648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 140 i32.const 1 call $~lib/builtins/abort @@ -3208,7 +2662,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@override$176 + block $__inlined_func$class-overloading/A#get:c@override$165 block $default72 block $case273 block $case174 @@ -3221,19 +2675,19 @@ i32.sub br_table $case075 $case174 $case075 $case075 $case273 $default72 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$176 + br $__inlined_func$class-overloading/A#get:c@override$165 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$176 + br $__inlined_func$class-overloading/A#get:c@override$165 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$176 + br $__inlined_func$class-overloading/A#get:c@override$165 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -3241,12 +2695,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3584 + i32.const 1648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 143 i32.const 1 call $~lib/builtins/abort @@ -3258,7 +2712,7 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@override$177 + block $__inlined_func$class-overloading/A#b@override$166 block $default80 block $case281 block $case182 @@ -3271,19 +2725,19 @@ i32.sub br_table $case083 $case182 $case083 $case083 $case281 $default80 end - i32.const 3456 + i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$177 + br $__inlined_func$class-overloading/A#b@override$166 end - i32.const 3552 + i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$177 + br $__inlined_func$class-overloading/A#b@override$166 end - i32.const 3584 + i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$177 + br $__inlined_func$class-overloading/A#b@override$166 end - i32.const 3424 + i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer @@ -3291,12 +2745,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3584 + i32.const 1648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 146 i32.const 1 call $~lib/builtins/abort @@ -3307,14 +2761,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 11 call $~lib/rt/itcms/__new local.tee $0 @@ -3339,7 +2792,7 @@ global.get $class-overloading/ia local.tee $0 i32.store - block $__inlined_func$class-overloading/IA#foo@override$179 + block $__inlined_func$class-overloading/IA#foo@override$168 block $default88 block $case189 local.get $0 @@ -3356,13 +2809,13 @@ br_if $case189 br $default88 end - i32.const 3616 + i32.const 1680 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$179 + br $__inlined_func$class-overloading/IA#foo@override$168 end - i32.const 3648 + i32.const 1712 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$179 + br $__inlined_func$class-overloading/IA#foo@override$168 end unreachable end @@ -3371,12 +2824,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3616 + i32.const 1680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -3387,14 +2840,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 13 call $~lib/rt/itcms/__new local.tee $0 @@ -3419,7 +2871,7 @@ global.get $class-overloading/ic local.tee $0 i32.store - block $__inlined_func$class-overloading/IA#foo@override$181 + block $__inlined_func$class-overloading/IA#foo@override$170 block $default91 block $case192 local.get $0 @@ -3436,13 +2888,13 @@ br_if $case192 br $default91 end - i32.const 3616 + i32.const 1680 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$181 + br $__inlined_func$class-overloading/IA#foo@override$170 end - i32.const 3648 + i32.const 1712 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$181 + br $__inlined_func$class-overloading/IA#foo@override$170 end unreachable end @@ -3451,12 +2903,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3648 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1552 i32.const 177 i32.const 1 call $~lib/builtins/abort @@ -3467,14 +2919,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 15 call $~lib/rt/itcms/__new local.tee $0 @@ -3488,7 +2939,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3498,7 +2949,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 14 call $~lib/rt/itcms/__new local.tee $0 @@ -3528,7 +2978,7 @@ global.get $class-overloading/b2 local.tee $0 i32.store - block $__inlined_func$class-overloading/A2#foo@override + block $__inlined_func$class-overloading/A2#foo@override$1 local.get $0 i32.const 8 i32.sub @@ -3541,7 +2991,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3552,14 +3002,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 16 call $~lib/rt/itcms/__new local.tee $0 @@ -3573,7 +3022,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3583,7 +3032,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 17 call $~lib/rt/itcms/__new local.tee $0 @@ -3615,7 +3063,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3631,8 +3079,8 @@ i32.const 16 i32.ne if - i32.const 3680 - i32.const 3488 + i32.const 1744 + i32.const 1552 i32.const 186 i32.const 5 call $~lib/builtins/abort @@ -3646,10 +3094,10 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$class-overloading/A2#foo@override + br $__inlined_func$class-overloading/A2#foo@override$1 end - i32.const 3680 - i32.const 3488 + i32.const 1744 + i32.const 1552 i32.const 198 i32.const 5 call $~lib/builtins/abort @@ -3661,8 +3109,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36592 - i32.const 36640 + i32.const 34656 + i32.const 34704 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3674,11 +3122,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3804 + i32.const 1868 i32.lt_s if - i32.const 36592 - i32.const 36640 + i32.const 34656 + i32.const 34704 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3692,7 +3140,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store diff --git a/tests/compiler/class-override.debug.wat b/tests/compiler/class-override.debug.wat index 47465a3dee..f1ce166216 100644 --- a/tests/compiler/class-override.debug.wat +++ b/tests/compiler/class-override.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,470 +18,34 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $class-override/x (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2484)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35252)) - (global $~lib/memory/__heap_base i32 (i32.const 35252)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 516)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33284)) + (global $~lib/memory/__heap_base i32 (i32.const 33284)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00r\00i\00d\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2448) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00r\00i\00d\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 480) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "fn" (func $class-override/fn)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -551,7 +110,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -621,7 +180,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -638,7 +197,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -668,9 +227,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -737,7 +296,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -889,7 +448,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -909,7 +468,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -972,7 +531,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1125,7 +684,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1142,7 +701,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1231,7 +790,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1274,7 +833,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1292,7 +851,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1360,7 +919,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1477,7 +1036,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1523,7 +1082,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1555,7 +1114,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1799,7 +1358,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2019,7 +1578,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2130,8 +1689,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2233,7 +1792,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2304,7 +1863,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2461,7 +2020,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2576,7 +2135,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2596,7 +2155,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2644,8 +2203,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2705,13 +2264,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -2724,7 +2283,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -2777,20 +2336,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35280 - i32.const 35328 + i32.const 33312 + i32.const 33360 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2799,196 +2354,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $class-override/A#constructor (param $this i32) (result i32) (local $1 i32) @@ -3224,153 +2610,6 @@ local.get $2 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3408,16 +2647,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/class-override.release.wat b/tests/compiler/class-override.release.wat index ac4665d778..1ad255ed48 100644 --- a/tests/compiler/class-override.release.wat +++ b/tests/compiler/class-override.release.wat @@ -1,12 +1,13 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,243 +19,24 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $class-override/x (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36276)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34308)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00\"\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00r\00i\00d\00e\00.\00t\00s") - (data $20 (i32.const 3472) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00\"\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00r\00i\00d\00e\00.\00t\00s") + (data $9 (i32.const 1504) "\08\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 ") (export "fn" (func $class-override/fn)) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3508 - i32.lt_s - if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -264,13 +46,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -291,7 +69,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -339,7 +117,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -348,7 +126,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$133 + block $__inlined_func$~lib/rt/itcms/Object#unlink$121 local.get $1 i32.load offset=4 i32.const -4 @@ -360,19 +138,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36276 + i32.const 34308 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$133 + br $__inlined_func$~lib/rt/itcms/Object#unlink$121 end local.get $1 i32.load offset=8 @@ -380,7 +158,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -409,13 +187,13 @@ i32.const 1 else local.get $0 - i32.const 3472 + i32.const 1504 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -423,7 +201,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3476 + i32.const 1508 i32.add i32.load i32.const 32 @@ -475,7 +253,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -489,7 +267,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -535,7 +313,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -618,7 +396,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -632,7 +410,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -693,7 +471,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -726,7 +504,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -741,7 +519,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -792,7 +570,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -864,7 +642,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -889,7 +667,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -916,7 +694,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -988,10 +766,10 @@ if unreachable end - i32.const 36288 + i32.const 34320 i32.const 0 i32.store - i32.const 37856 + i32.const 35888 i32.const 0 i32.store loop $for-loop|0 @@ -1002,7 +780,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36288 + i32.const 34320 i32.add i32.const 0 i32.store offset=4 @@ -1020,7 +798,7 @@ i32.add i32.const 2 i32.shl - i32.const 36288 + i32.const 34320 i32.add i32.const 0 i32.store offset=96 @@ -1038,14 +816,14 @@ br $for-loop|0 end end - i32.const 36288 - i32.const 37860 + i32.const 34320 + i32.const 35892 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36288 + i32.const 34320 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1130,7 +908,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36276 + i32.const 34308 i32.lt_u if local.get $0 @@ -1219,14 +997,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36276 + i32.const 34308 i32.lt_u if local.get $0 @@ -1249,7 +1027,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36276 + i32.const 34308 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1278,7 +1056,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1308,85 +1086,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1394,11 +1105,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1414,7 +1121,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1436,35 +1143,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1474,9 +1169,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1499,86 +1194,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1594,8 +1234,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1603,136 +1243,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1740,424 +1363,253 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) - (func $start:class-override + (func $~start (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36276 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 - i32.store - i32.const 3144 - i32.const 3136 - i32.store - i32.const 3136 - global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 - i32.store - i32.const 3176 - i32.const 3168 - i32.store - i32.const 3168 - global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 - i32.store - i32.const 3320 - i32.const 3312 - i32.store - i32.const 3312 - global.set $~lib/rt/itcms/fromSpace - 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 + block $__inlined_func$start:class-override + memory.size + i32.const 16 + i32.shl + i32.const 34308 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz - if + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz - if + i32.const 1540 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 7 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - 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 3508 - i32.lt_s - br_if $folding-inner0 - 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 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + 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 1540 + i32.lt_s + br_if $folding-inner0 + 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 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + 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 1540 + i32.lt_s + br_if $folding-inner0 + 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 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + 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 1540 + i32.lt_s + br_if $folding-inner0 + 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 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1540 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-override/x - i32.const 0 - call $class-override/fn - i32.const 111 - i32.ne - if - i32.const 0 - i32.const 3424 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - return - end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~start - call $start:class-override - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$139 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$139 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $2 - local.get $3 - memory.copy + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.get $1 - local.get $4 - memory.copy + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-override/x + i32.const 0 + call $class-override/fn + i32.const 111 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$start:class-override end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3508 + i32.const 1540 i32.lt_s if - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $class-override/fn (param $0 i32) (result i32) (local $1 i32) @@ -2167,7 +1619,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3508 + i32.const 1540 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2177,7 +1629,7 @@ global.get $class-override/x local.tee $1 i32.store - block $__inlined_func$class-override/A#f@override$140 + block $__inlined_func$class-override/A#f@override$127 block $default block $case1 block $case0 @@ -2193,14 +1645,14 @@ local.get $0 call $class-override/B#f local.set $0 - br $__inlined_func$class-override/A#f@override$140 + br $__inlined_func$class-override/A#f@override$127 end 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 3508 + i32.const 1540 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2219,7 +1671,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$class-override/A#f@override$140 + br $__inlined_func$class-override/A#f@override$127 end local.get $0 i32.const 1 @@ -2233,8 +1685,8 @@ local.get $0 return end - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2246,11 +1698,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3508 + i32.const 1540 i32.lt_s if - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/class-static-function.debug.wat b/tests/compiler/class-static-function.debug.wat index eca463769f..9b42625eb0 100644 --- a/tests/compiler/class-static-function.debug.wat +++ b/tests/compiler/class-static-function.debug.wat @@ -1,59 +1,17 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~argumentsLength (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2496)) - (global $~lib/memory/__data_end i32 (i32.const 2520)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35288)) - (global $~lib/memory/__heap_base i32 (i32.const 35288)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 124)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32892)) + (global $~lib/memory/__heap_base i32 (i32.const 32892)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\00c\00l\00a\00s\00s\00-\00s\00t\00a\00t\00i\00c\00-\00f\00u\00n\00c\00t\00i\00o\00n\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2496) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\00c\00l\00a\00s\00s\00-\00s\00t\00a\00t\00i\00c\00-\00f\00u\00n\00c\00t\00i\00o\00n\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $class-static-function/Example.staticFunc) (export "memory" (memory $0)) @@ -67,2639 +25,7 @@ global.set $~argumentsLength local.get $func i32.load - call_indirect (type $5) - return - ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 352 - i32.const 416 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 224 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 224 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 160 - i32.const 496 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 160 - i32.const 224 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 + call_indirect (type $1) return ) (func $~start @@ -2710,20 +36,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35312 - i32.const 35360 + i32.const 32912 + i32.const 32960 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2732,196 +54,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $start:class-static-function (local $0 i32) @@ -2933,23 +86,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - 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 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 448 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 32 local.set $0 global.get $~lib/memory/__stack_pointer @@ -2962,7 +98,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -2973,245 +109,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 160 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1216 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2272 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/function/Function<%28%29=>i32>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28%29=>i32>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/function/Function<%28%29=>i32> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>i32> $invalid - end - return - 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/function/Function<%28%29=>i32>~visit - return - end - unreachable - ) - (func $~lib/function/Function<%28%29=>i32>#__visit (param $this i32) (param $cookie 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 $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28%29=>i32>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/class-static-function.release.wat b/tests/compiler/class-static-function.release.wat index 5a35ede189..4f2a9b300b 100644 --- a/tests/compiler/class-static-function.release.wat +++ b/tests/compiler/class-static-function.release.wat @@ -1,60 +1,14 @@ (module (type $0 (func (result i32))) (type $1 (func)) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36312)) + (type $2 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33916)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) "L") - (data $20.1 (i32.const 3448) "\02\00\00\000\00\00\00c\00l\00a\00s\00s\00-\00s\00t\00a\00t\00i\00c\00-\00f\00u\00n\00c\00t\00i\00o\00n\00.\00t\00s") - (data $21 (i32.const 3520) "\05\00\00\00 \00\00\00 \00\00\00 ") + (data $1 (i32.const 1068) "L") + (data $1.1 (i32.const 1080) "\02\00\00\000\00\00\00c\00l\00a\00s\00s\00-\00s\00t\00a\00t\00i\00c\00-\00f\00u\00n\00c\00t\00i\00o\00n\00.\00t\00s") (table $0 2 2 funcref) (elem $0 (i32.const 1) $class-static-function/Example.staticFunc) (export "memory" (memory $0)) @@ -62,1742 +16,21 @@ (func $class-static-function/Example.staticFunc (result i32) i32.const 42 ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 2240 - call $~lib/rt/itcms/__visit - i32.const 3296 - call $~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 1248 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$126 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36312 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$126 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3520 - i32.load - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3524 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1520 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1520 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1520 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1520 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1520 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36320 - i32.const 0 - i32.store - i32.const 37888 - 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 36320 - 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 36320 - 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 36320 - i32.const 37892 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36320 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36312 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1248 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36312 - 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 - local.tee $0 - i32.const 36312 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1520 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1520 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1184 - i32.const 1248 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1184 - i32.const 1520 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1520 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3544 - i32.lt_s - if - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start 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 3544 + i32.const 1148 i32.lt_s if - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - memory.size - i32.const 16 - i32.shl - i32.const 36312 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store @@ -1810,259 +43,35 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort 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 3544 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3544 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$131 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$131 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3544 + i32.const 1148 i32.lt_s if - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 + i32.const 33936 i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/function/Function<%28%29=>i32> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>i32> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 3544 - i32.lt_s - if - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 33984 + i32.store offset=4 + i32.const 33936 + i32.const 33984 + i32.const 1 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index 5402bf5952..0570649c1e 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -1,24 +1,19 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) + (type $0 (func (param i32 i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param f32 f32) (result f32))) - (type $7 (func (param i32 i32 i32) (result i32))) - (type $8 (func (param i32 f32 f32) (result f32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i64) (result i32))) - (type $13 (func (result i32))) - (type $14 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param f32 f32) (result f32))) + (type $8 (func (param i32 i32 i32) (result i32))) + (type $9 (func (param i32 f32 f32) (result f32))) + (type $10 (func (param i32 i32 i64) (result i32))) + (type $11 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $class/Animal.ONE (mut 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/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -27,37 +22,30 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $~lib/rt/__rtti_base i32 (i32.const 2480)) - (global $~lib/memory/__data_end i32 (i32.const 2512)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35280)) - (global $~lib/memory/__heap_base i32 (i32.const 35280)) + (global $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/memory/__data_end i32 (i32.const 544)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33312)) + (global $~lib/memory/__heap_base i32 (i32.const 33312)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $21 (i32.const 2480) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02\t\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $9 (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $10 (i32.const 512) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02\t\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "testGenericInitializer" (func $class/testGenericInitializer)) @@ -141,435 +129,6 @@ local.get $three i32.store8 offset=6 ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -634,7 +193,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -704,7 +263,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -721,7 +280,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -751,9 +310,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -820,7 +379,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -972,7 +531,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -992,7 +551,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1055,7 +614,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1208,7 +767,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1225,7 +784,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1314,7 +873,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1357,7 +916,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1375,7 +934,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1443,7 +1002,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1560,7 +1119,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1606,7 +1165,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1638,7 +1197,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1882,7 +1441,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2102,7 +1661,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2213,8 +1772,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2316,7 +1875,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2387,7 +1946,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2544,7 +2103,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2659,7 +2218,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2679,7 +2238,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2727,8 +2286,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2788,7 +2347,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2889,13 +2448,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace ) @@ -2904,14 +2463,33 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35312 - i32.const 35360 + i32.const 33344 + i32.const 33392 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) + (func $export:class/test (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 + local.get $0 + i32.store + local.get $0 + call $class/test + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) (func $class/test (param $animal i32) (result i32) (local $ptr i32) (local $cls i32) @@ -3015,12 +2593,8 @@ local.get $3 return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3029,196 +2603,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -3285,9 +2690,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 - i32.const 70 + i32.const 432 + i32.const 480 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -3414,153 +2819,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3589,40 +2847,15 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $export:class/test (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 - local.get $0 - i32.store - local.get $0 - call $class/test - 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/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2400 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 432 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3710,6 +2943,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index 725273941b..709d8b98a8 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -2,11 +2,12 @@ (type $0 (func)) (type $1 (func (param i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,258 +18,35 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36304)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34336)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) ",") - (data $20.1 (i32.const 3464) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $21 (i32.const 3504) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02\t") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) ",") + (data $8.1 (i32.const 1448) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $9 (i32.const 1484) ",") + (data $9.1 (i32.const 1496) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $10 (i32.const 1536) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02\t") (export "testGenericInitializer" (func $class/testGenericInitializer)) (export "memory" (memory $0)) (export "test" (func $export:class/test)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3536 - i32.lt_s - if - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$3 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$3 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3424 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1456 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -289,7 +67,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -322,7 +100,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -331,7 +109,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$152 + block $__inlined_func$~lib/rt/itcms/Object#unlink$140 local.get $0 i32.load offset=4 i32.const -4 @@ -343,19 +121,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36304 + i32.const 34336 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$152 + br $__inlined_func$~lib/rt/itcms/Object#unlink$140 end local.get $0 i32.load offset=8 @@ -363,7 +141,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -392,13 +170,13 @@ i32.const 1 else local.get $1 - i32.const 3504 + i32.const 1536 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -406,7 +184,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3508 + i32.const 1540 i32.add i32.load i32.const 32 @@ -477,7 +255,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -491,7 +269,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -537,7 +315,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -620,7 +398,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -634,7 +412,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -695,7 +473,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -728,7 +506,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -743,7 +521,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -794,7 +572,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -866,7 +644,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -891,7 +669,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -918,7 +696,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -990,10 +768,10 @@ if unreachable end - i32.const 36304 + i32.const 34336 i32.const 0 i32.store - i32.const 37872 + i32.const 35904 i32.const 0 i32.store loop $for-loop|0 @@ -1004,7 +782,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=4 @@ -1022,7 +800,7 @@ i32.add i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=96 @@ -1040,14 +818,14 @@ br $for-loop|0 end end - i32.const 36304 - i32.const 37876 + i32.const 34336 + i32.const 35908 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36304 + i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1132,7 +910,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36304 + i32.const 34336 i32.lt_u if local.get $0 @@ -1221,14 +999,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36304 + i32.const 34336 i32.lt_u if local.get $0 @@ -1251,7 +1029,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36304 + i32.const 34336 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1280,7 +1058,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1364,7 +1142,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1416,7 +1194,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1448,8 +1226,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1459,7 +1237,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$73 + block $__inlined_func$~lib/rt/itcms/interrupt$71 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1476,7 +1254,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$73 + br $__inlined_func$~lib/rt/itcms/interrupt$71 end local.get $2 i32.const 0 @@ -1509,8 +1287,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1612,7 +1390,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1627,7 +1405,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1646,7 +1424,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1761,7 +1539,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1816,7 +1594,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 1568 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1840,7 +1618,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 1568 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1870,7 +1648,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 1568 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1958,8 +1736,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36336 - i32.const 36384 + i32.const 34368 + i32.const 34416 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1969,236 +1747,36 @@ memory.size i32.const 16 i32.shl - i32.const 36304 + i32.const 34336 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3536 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3536 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$157 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$157 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3536 - i32.lt_s - if - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) (func $export:class/test (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2206,7 +1784,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 1568 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2217,7 +1795,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 1568 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2279,13 +1857,48 @@ local.get $0 return end - i32.const 36336 - i32.const 36384 + i32.const 34368 + i32.const 34416 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 1568 + i32.lt_s + if + i32.const 34368 + i32.const 34416 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid block $~lib/array/Array @@ -2324,11 +1937,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 1568 i32.lt_s if - i32.const 36336 - i32.const 36384 + i32.const 34368 + i32.const 34416 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/closure-class.debug.wat b/tests/compiler/closure-class.debug.wat index 9f512233a2..475a3ca177 100644 --- a/tests/compiler/closure-class.debug.wat +++ b/tests/compiler/closure-class.debug.wat @@ -5,19 +5,14 @@ (type $3 (func (param i32))) (type $4 (func (param i32 i32) (result i32))) (type $5 (func)) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i32) (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i32) (result i32))) (type $9 (func (param i32 i32 i32 i32) (result i32))) - (type $10 (func (param i32 i64 i32))) - (type $11 (func (param i64 i32) (result i32))) - (type $12 (func (param i32 i64 i32 i32))) - (type $13 (func (param i32 i32 i64) (result i32))) - (type $14 (func (param i32 i32 i32 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)) + (type $10 (func (param i32 i32 i64) (result i32))) + (type $11 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -26,536 +21,102 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/__closure_env (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 4832)) - (global $~lib/memory/__data_end i32 (i32.const 5004)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37772)) - (global $~lib/memory/__heap_base i32 (i32.const 37772)) + (global $~lib/rt/__rtti_base i32 (i32.const 2896)) + (global $~lib/memory/__data_end i32 (i32.const 3068)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35836)) + (global $~lib/memory/__heap_base i32 (i32.const 35836)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00c\00l\00o\00s\00u\00r\00e\00-\00c\00l\00a\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00R\00e\00x\00\00\00\00\00\00\00") - (data $30 (i32.const 2764) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00G\00e\00r\00m\00a\00n\00 \00S\00h\00e\00p\00h\00e\00r\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2828) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 2924) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $35 (i32.const 2972) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $36 (i32.const 3020) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 3052) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $38 (i32.const 3180) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") - (data $39 (i32.const 3212) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") - (data $40 (i32.const 3244) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") - (data $41 (i32.const 3276) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 3308) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00E\00L\00E\00C\00T\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $43 (i32.const 3356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00 \00F\00R\00O\00M\00 \00") - (data $44 (i32.const 3388) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00 \00W\00H\00E\00R\00E\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $45 (i32.const 3436) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") - (data $46 (i32.const 3468) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00d\00,\00 \00n\00a\00m\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $47 (i32.const 3516) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00u\00s\00e\00r\00s\00\00\00") - (data $48 (i32.const 3548) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00a\00c\00t\00i\00v\00e\00 \00=\00 \001\00\00\00\00\00\00\00\00\00") - (data $49 (i32.const 3596) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00V\00\00\00S\00E\00L\00E\00C\00T\00 \00i\00d\00,\00 \00n\00a\00m\00e\00 \00F\00R\00O\00M\00 \00u\00s\00e\00r\00s\00 \00W\00H\00E\00R\00E\00 \00a\00c\00t\00i\00v\00e\00 \00=\00 \001\00\00\00\00\00\00\00") - (data $50 (i32.const 3708) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") - (data $51 (i32.const 3740) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") - (data $52 (i32.const 3772) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") - (data $53 (i32.const 3804) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") - (data $54 (i32.const 3836) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") - (data $55 (i32.const 3868) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") - (data $56 (i32.const 3900) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") - (data $57 (i32.const 3932) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") - (data $58 (i32.const 3964) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") - (data $59 (i32.const 3996) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") - (data $60 (i32.const 4028) "\1c\00\00\00\00\00\00\00\00\00\00\00\1d\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") - (data $61 (i32.const 4060) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") - (data $62 (i32.const 4092) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") - (data $63 (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") - (data $64 (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $65 (i32.const 4188) "\1c\00\00\00\00\00\00\00\00\00\00\00\1f\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") - (data $66 (i32.const 4220) "\1c\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") - (data $67 (i32.const 4252) "\1c\00\00\00\00\00\00\00\00\00\00\00\"\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") - (data $68 (i32.const 4284) "\1c\00\00\00\00\00\00\00\00\00\00\00\"\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") - (data $69 (i32.const 4316) "\1c\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") - (data $70 (i32.const 4348) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") - (data $71 (i32.const 4380) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") - (data $72 (i32.const 4412) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") - (data $73 (i32.const 4444) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data $74 (i32.const 4476) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") - (data $75 (i32.const 4508) "\1c\00\00\00\00\00\00\00\00\00\00\00&\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") - (data $76 (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data $77 (i32.const 4572) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data $78 (i32.const 4604) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") - (data $79 (i32.const 4636) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") - (data $80 (i32.const 4668) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $81 (i32.const 4700) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $82 (i32.const 4732) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data $83 (i32.const 4764) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") - (data $84 (i32.const 4796) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data $85 (i32.const 4832) "*\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\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 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\02A\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00c\00l\00o\00s\00u\00r\00e\00-\00c\00l\00a\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00R\00e\00x\00\00\00\00\00\00\00") + (data $19 (i32.const 796) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00G\00e\00r\00m\00a\00n\00 \00S\00h\00e\00p\00h\00e\00r\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 956) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $24 (i32.const 1004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $25 (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1084) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $27 (i32.const 1212) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") + (data $28 (i32.const 1244) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $29 (i32.const 1276) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1308) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data $32 (i32.const 1372) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00E\00L\00E\00C\00T\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1420) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00 \00F\00R\00O\00M\00 \00") + (data $34 (i32.const 1452) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00 \00W\00H\00E\00R\00E\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $35 (i32.const 1500) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data $36 (i32.const 1532) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00d\00,\00 \00n\00a\00m\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $37 (i32.const 1580) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00u\00s\00e\00r\00s\00\00\00") + (data $38 (i32.const 1612) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00a\00c\00t\00i\00v\00e\00 \00=\00 \001\00\00\00\00\00\00\00\00\00") + (data $39 (i32.const 1660) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00V\00\00\00S\00E\00L\00E\00C\00T\00 \00i\00d\00,\00 \00n\00a\00m\00e\00 \00F\00R\00O\00M\00 \00u\00s\00e\00r\00s\00 \00W\00H\00E\00R\00E\00 \00a\00c\00t\00i\00v\00e\00 \00=\00 \001\00\00\00\00\00\00\00") + (data $40 (i32.const 1772) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data $41 (i32.const 1804) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data $42 (i32.const 1836) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") + (data $43 (i32.const 1868) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") + (data $44 (i32.const 1900) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") + (data $45 (i32.const 1932) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") + (data $46 (i32.const 1964) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") + (data $47 (i32.const 1996) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") + (data $48 (i32.const 2028) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") + (data $49 (i32.const 2060) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") + (data $50 (i32.const 2092) "\1c\00\00\00\00\00\00\00\00\00\00\00\1d\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") + (data $51 (i32.const 2124) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") + (data $52 (i32.const 2156) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") + (data $53 (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") + (data $54 (i32.const 2220) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $55 (i32.const 2252) "\1c\00\00\00\00\00\00\00\00\00\00\00\1f\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 2284) "\1c\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") + (data $57 (i32.const 2316) "\1c\00\00\00\00\00\00\00\00\00\00\00\"\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 2348) "\1c\00\00\00\00\00\00\00\00\00\00\00\"\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") + (data $59 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") + (data $60 (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") + (data $61 (i32.const 2444) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") + (data $62 (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") + (data $63 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data $64 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") + (data $65 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00&\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data $66 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data $67 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data $68 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data $69 (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") + (data $70 (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $71 (i32.const 2764) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data $72 (i32.const 2796) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data $73 (i32.const 2828) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data $74 (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data $75 (i32.const 2896) "*\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\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 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\02A\00\00 \00\00\00") (table $0 53 53 funcref) (elem $0 (i32.const 1) $closure-class/Counter#getIncrementClosure~anonymous|0 $closure-class/Counter#getCountClosure~anonymous|0 $closure-class/BankAccount#getDepositClosure~anonymous|0 $closure-class/BankAccount#getWithdrawClosure~anonymous|0 $closure-class/BankAccount#getBalanceClosure~anonymous|0 $closure-class/BankAccount#getTransactionCountClosure~anonymous|0 $closure-class/Calculator#getOperationClosure~anonymous|0 $closure-class/Outer#getComputeClosure~anonymous|0 $closure-class/Outer#getInnerSetterClosure~anonymous|0 $closure-class/Animal#getAgeClosure~anonymous|0 $closure-class/Animal#getAgeIncrementClosure~anonymous|0 $closure-class/Dog#getBreedClosure~anonymous|0 $closure-class/DataProcessor#getProcessorClosure~anonymous|0 $closure-class/QueryBuilder#getSelectClosure~anonymous|0 $closure-class/QueryBuilder#getFromClosure~anonymous|0 $closure-class/QueryBuilder#getWhereClosure~anonymous|0 $closure-class/QueryBuilder#getBuildClosure~anonymous|0 $closure-class/StateMachine#getStartClosure~anonymous|0 $closure-class/StateMachine#getPauseClosure~anonymous|0 $closure-class/StateMachine#getStopClosure~anonymous|0 $closure-class/StateMachine#getResetClosure~anonymous|0 $closure-class/StateMachine#getStateClosure~anonymous|0 $closure-class/Observable#getSubscribeClosure~anonymous|0 $closure-class/Observable#getSetClosure~anonymous|0 $closure-class/Observable#getGetClosure~anonymous|0 $closure-class/ObserverState#getCountObserver~anonymous|0 $closure-class/ObserverState#getDiffObserver~anonymous|0 $closure-class/Box#getMapClosure~anonymous|0 $closure-class/Box#getValueClosure~anonymous|0 $closure-class/testBoxMap~anonymous|0 $closure-class/testBoxMap~anonymous|1 $closure-class/testBoxMap~anonymous|2 $closure-class/Box#getFlatMapClosure~anonymous|0 $closure-class/testBoxFlatMap~anonymous|0 $closure-class/ChainableCounter#getAddClosure~anonymous|0 $closure-class/ChainableCounter#getMultiplyClosure~anonymous|0 $closure-class/Task#getThenClosure~anonymous|0 $closure-class/Task#getCompleteClosure~anonymous|0 $closure-class/testTaskCallbacks~anonymous|0 $closure-class/testTaskCallbackAfterComplete~anonymous|0 $closure-class/Resource#getAcquireClosure~anonymous|0 $closure-class/Resource#getReleaseClosure~anonymous|0 $closure-class/Resource#getUseClosure~anonymous|0 $closure-class/testResourceManagement~anonymous|0 $closure-class/testResourceManagement~anonymous|1 $closure-class/testResourceManagement~anonymous|2 $closure-class/testResourceManagement~anonymous|3 $closure-class/testResourceManagement~anonymous|4 $closure-class/TreeNode#getSumClosure~anonymous|0 $closure-class/TreeNode#getDepthClosure~anonymous|0 $closure-class/Range#getHasNextClosure~anonymous|0 $closure-class/Range#getNextClosure~anonymous|0) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -620,7 +181,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -690,7 +251,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -707,7 +268,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -737,9 +298,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -806,7 +367,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -958,7 +519,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -978,7 +539,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1041,7 +602,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1194,7 +755,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1211,7 +772,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1300,7 +861,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1343,7 +904,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1361,7 +922,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1429,7 +990,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1546,7 +1107,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1592,7 +1153,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1624,7 +1185,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1868,7 +1429,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2088,7 +1649,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2199,8 +1760,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2302,7 +1863,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2373,7 +1934,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2530,7 +2091,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2645,7 +2206,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2665,7 +2226,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2713,8 +2274,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2996,7 +2557,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -3231,6 +2792,19 @@ local.get $2 return ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -4528,13 +4102,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $closure-class/testBasicThisCapture @@ -4543,7 +4117,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -4555,7 +4129,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 60 i32.const 1 call $~lib/builtins/abort @@ -4567,7 +4141,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 125 i32.const 1 call $~lib/builtins/abort @@ -4579,7 +4153,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 168 i32.const 1 call $~lib/builtins/abort @@ -4591,7 +4165,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 226 i32.const 1 call $~lib/builtins/abort @@ -4603,7 +4177,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 285 i32.const 1 call $~lib/builtins/abort @@ -4615,7 +4189,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 345 i32.const 1 call $~lib/builtins/abort @@ -4627,7 +4201,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 403 i32.const 1 call $~lib/builtins/abort @@ -4639,7 +4213,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 486 i32.const 1 call $~lib/builtins/abort @@ -4651,7 +4225,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 562 i32.const 1 call $~lib/builtins/abort @@ -4663,7 +4237,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 604 i32.const 1 call $~lib/builtins/abort @@ -4675,7 +4249,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 615 i32.const 1 call $~lib/builtins/abort @@ -4687,7 +4261,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 662 i32.const 1 call $~lib/builtins/abort @@ -4699,7 +4273,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 720 i32.const 1 call $~lib/builtins/abort @@ -4711,7 +4285,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 738 i32.const 1 call $~lib/builtins/abort @@ -4723,7 +4297,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 814 i32.const 1 call $~lib/builtins/abort @@ -4735,7 +4309,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 889 i32.const 1 call $~lib/builtins/abort @@ -4747,7 +4321,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 944 i32.const 1 call $~lib/builtins/abort @@ -4759,7 +4333,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 959 i32.const 1 call $~lib/builtins/abort @@ -4776,20 +4350,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 37792 - i32.const 37840 + i32.const 35856 + i32.const 35904 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4798,196 +4368,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $closure-class/Counter#constructor (param $this i32) (result i32) (local $1 i32) @@ -5710,7 +5111,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -5736,7 +5137,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 113 i32.const 3 call $~lib/builtins/abort @@ -5759,7 +5160,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -5785,7 +5186,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 116 i32.const 3 call $~lib/builtins/abort @@ -5808,7 +5209,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 117 i32.const 3 call $~lib/builtins/abort @@ -5831,7 +5232,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 118 i32.const 3 call $~lib/builtins/abort @@ -5870,7 +5271,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 121 i32.const 3 call $~lib/builtins/abort @@ -6442,7 +5843,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 219 i32.const 3 call $~lib/builtins/abort @@ -6478,7 +5879,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 222 i32.const 3 call $~lib/builtins/abort @@ -6851,9 +6252,9 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 2752 + i32.const 784 i32.const 3 - i32.const 2784 + i32.const 816 call $closure-class/Dog#constructor local.tee $dog i32.store @@ -6904,7 +6305,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 277 i32.const 3 call $~lib/builtins/abort @@ -6927,12 +6328,12 @@ local.get $9 i32.store offset=4 local.get $9 - i32.const 2784 + i32.const 816 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 278 i32.const 3 call $~lib/builtins/abort @@ -7047,9 +6448,9 @@ i32.shr_u i32.gt_u if - i32.const 2944 - i32.const 2992 - i32.const 70 + i32.const 976 + i32.const 1024 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -7341,8 +6742,8 @@ i32.shr_u i32.gt_u if - i32.const 2944 - i32.const 2992 + i32.const 976 + i32.const 1024 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -7406,6 +6807,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -7464,6 +6869,10 @@ i32.add local.get $value i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -7569,9 +6978,9 @@ call $~lib/array/Array<%28i32%29=>void>#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2992 - i32.const 114 + i32.const 224 + i32.const 1024 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -7599,9 +7008,9 @@ local.get $value i32.eqz if - i32.const 3072 - i32.const 2992 - i32.const 118 + i32.const 1104 + i32.const 1024 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -7790,7 +7199,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 336 i32.const 3 call $~lib/builtins/abort @@ -7808,7 +7217,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 337 i32.const 3 call $~lib/builtins/abort @@ -7826,7 +7235,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 338 i32.const 3 call $~lib/builtins/abort @@ -7844,7 +7253,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 339 i32.const 3 call $~lib/builtins/abort @@ -7862,7 +7271,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 340 i32.const 3 call $~lib/builtins/abort @@ -7880,7 +7289,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 341 i32.const 3 call $~lib/builtins/abort @@ -7945,7 +7354,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 3200 + i32.const 1232 call $closure-class/QueryBuilder#set:selectFields local.get $this local.set $1 @@ -7953,7 +7362,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 96 + i32.const 1264 call $closure-class/QueryBuilder#set:tableName local.get $this local.set $1 @@ -7961,7 +7370,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 96 + i32.const 1264 call $closure-class/QueryBuilder#set:whereClause local.get $this local.set $1 @@ -7969,9 +7378,41 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $1 + ) + (func $closure-class/QueryBuilder#getSelectClosure~anonymous|0 (param $fields i32) + (local $$closureEnv 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 + global.get $~lib/__closure_env + local.set $$closureEnv + local.get $$closureEnv + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $fields + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $closure-class/QueryBuilder#set:selectFields + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $closure-class/QueryBuilder#getSelectClosure~anonymous|0 (param $fields i32) + (func $closure-class/QueryBuilder#getFromClosure~anonymous|0 (param $table i32) (local $$closureEnv i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -7991,19 +7432,19 @@ local.get $2 i32.store local.get $2 - local.get $fields + local.get $table local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $closure-class/QueryBuilder#set:selectFields + call $closure-class/QueryBuilder#set:tableName global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $closure-class/QueryBuilder#getFromClosure~anonymous|0 (param $table i32) + (func $closure-class/QueryBuilder#getWhereClosure~anonymous|0 (param $clause i32) (local $$closureEnv i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -8023,20 +7464,95 @@ local.get $2 i32.store local.get $2 - local.get $table + local.get $clause local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $closure-class/QueryBuilder#set:tableName + call $closure-class/QueryBuilder#set:whereClause global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $closure-class/QueryBuilder#getWhereClosure~anonymous|0 (param $clause i32) - (local $$closureEnv i32) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize + i32.add + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 1264 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8046,26 +7562,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/__closure_env - local.set $$closureEnv - local.get $$closureEnv - i32.load offset=4 + local.get $left local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - local.get $clause + local.get $right local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $closure-class/QueryBuilder#set:whereClause + call $~lib/string/String#concat + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + return ) (func $closure-class/QueryBuilder#getBuildClosure~anonymous|0 (result i32) (local $$closureEnv i32) @@ -8083,7 +7599,7 @@ global.get $~lib/__closure_env local.set $$closureEnv global.get $~lib/memory/__stack_pointer - i32.const 3328 + i32.const 1392 local.get $$closureEnv i32.load offset=4 local.set $2 @@ -8103,7 +7619,7 @@ local.get $2 i32.store offset=8 local.get $2 - i32.const 3376 + i32.const 1440 call $~lib/string/String.__concat local.set $2 global.get $~lib/memory/__stack_pointer @@ -8150,7 +7666,7 @@ local.get $2 i32.store local.get $2 - i32.const 3408 + i32.const 1472 local.get $$closureEnv i32.load offset=4 local.set $2 @@ -8249,7 +7765,7 @@ call $closure-class/QueryBuilder#getBuildClosure local.tee $build i32.store offset=20 - i32.const 3488 + i32.const 1552 global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength @@ -8262,7 +7778,7 @@ local.get $5 i32.load call_indirect (type $3) - i32.const 3536 + i32.const 1600 global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength @@ -8275,7 +7791,7 @@ local.get $6 i32.load call_indirect (type $3) - i32.const 3568 + i32.const 1632 global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength @@ -8309,12 +7825,12 @@ local.get $10 i32.store offset=4 local.get $10 - i32.const 3616 + i32.const 1680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 399 i32.const 3 call $~lib/builtins/abort @@ -8714,7 +8230,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -8739,7 +8255,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 465 i32.const 3 call $~lib/builtins/abort @@ -8762,7 +8278,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 466 i32.const 3 call $~lib/builtins/abort @@ -8787,7 +8303,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 468 i32.const 3 call $~lib/builtins/abort @@ -8812,7 +8328,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 470 i32.const 3 call $~lib/builtins/abort @@ -8835,7 +8351,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 471 i32.const 3 call $~lib/builtins/abort @@ -8860,7 +8376,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 473 i32.const 3 call $~lib/builtins/abort @@ -8883,7 +8399,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 474 i32.const 3 call $~lib/builtins/abort @@ -8908,7 +8424,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 476 i32.const 3 call $~lib/builtins/abort @@ -8931,7 +8447,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 477 i32.const 3 call $~lib/builtins/abort @@ -8956,7 +8472,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 479 i32.const 3 call $~lib/builtins/abort @@ -8991,7 +8507,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 482 i32.const 3 call $~lib/builtins/abort @@ -9082,9 +8598,9 @@ i32.shr_u i32.gt_u if - i32.const 2944 - i32.const 2992 - i32.const 70 + i32.const 976 + i32.const 1024 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -9261,6 +8777,10 @@ i32.add local.get $value i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -9370,9 +8890,9 @@ call $~lib/array/Array<%28i32%2Ci32%29=>void>#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2992 - i32.const 114 + i32.const 224 + i32.const 1024 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -9400,9 +8920,9 @@ local.get $value i32.eqz if - i32.const 3072 - i32.const 2992 - i32.const 118 + i32.const 1104 + i32.const 1024 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -9837,7 +9357,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 556 i32.const 3 call $~lib/builtins/abort @@ -9855,7 +9375,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 557 i32.const 3 call $~lib/builtins/abort @@ -9873,7 +9393,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 558 i32.const 3 call $~lib/builtins/abort @@ -10081,7 +9601,7 @@ call $closure-class/Box#getValueClosure local.tee $getValue i32.store offset=12 - i32.const 4112 + i32.const 2176 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -10099,7 +9619,7 @@ local.get $3 i32.load call_indirect (type $3) - i32.const 4144 + i32.const 2208 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -10117,7 +9637,7 @@ local.get $4 i32.load call_indirect (type $3) - i32.const 4176 + i32.const 2240 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -10229,7 +9749,7 @@ local.tee $flatMap i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4240 + i32.const 2304 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -10872,7 +10392,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 711 i32.const 3 call $~lib/builtins/abort @@ -10898,7 +10418,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 715 i32.const 3 call $~lib/builtins/abort @@ -10918,7 +10438,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 716 i32.const 3 call $~lib/builtins/abort @@ -11348,7 +10868,7 @@ call $closure-class/Resource#getUseClosure local.tee $use i32.store offset=16 - i32.const 4560 + i32.const 2624 local.set $13 global.get $~lib/memory/__stack_pointer local.get $13 @@ -11371,7 +10891,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 792 i32.const 3 call $~lib/builtins/abort @@ -11396,7 +10916,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 795 i32.const 3 call $~lib/builtins/abort @@ -11421,13 +10941,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 796 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4592 + i32.const 2656 local.set $13 global.get $~lib/memory/__stack_pointer local.get $13 @@ -11450,13 +10970,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 799 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4624 + i32.const 2688 local.set $13 global.get $~lib/memory/__stack_pointer local.get $13 @@ -11479,13 +10999,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 800 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4656 + i32.const 2720 local.set $13 global.get $~lib/memory/__stack_pointer local.get $13 @@ -11508,7 +11028,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 801 i32.const 3 call $~lib/builtins/abort @@ -11526,7 +11046,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 803 i32.const 3 call $~lib/builtins/abort @@ -11551,7 +11071,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 806 i32.const 3 call $~lib/builtins/abort @@ -11576,13 +11096,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 807 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4688 + i32.const 2752 local.set $13 global.get $~lib/memory/__stack_pointer local.get $13 @@ -11605,7 +11125,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 810 i32.const 3 call $~lib/builtins/abort @@ -11691,9 +11211,9 @@ i32.shr_u i32.gt_u if - i32.const 2944 - i32.const 2992 - i32.const 70 + i32.const 976 + i32.const 1024 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -11870,6 +11390,10 @@ i32.add local.get $value i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -11975,9 +11499,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2992 - i32.const 114 + i32.const 224 + i32.const 1024 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -12005,9 +11529,9 @@ local.get $value i32.eqz if - i32.const 3072 - i32.const 2992 - i32.const 118 + i32.const 1104 + i32.const 1024 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -12413,7 +11937,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 884 i32.const 3 call $~lib/builtins/abort @@ -12436,7 +11960,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -12862,153 +12386,6 @@ local.get $6 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -13039,22 +12416,16 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2944 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3072 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 976 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 1104 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) @@ -13616,6 +12987,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13640,6 +13015,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13664,6 +13043,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13688,6 +13071,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13712,6 +13099,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13739,6 +13130,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -13806,6 +13201,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13830,6 +13229,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13857,6 +13260,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -13924,6 +13331,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13948,6 +13359,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13972,6 +13387,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -13996,6 +13415,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -14020,6 +13443,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -14044,6 +13471,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -14068,6 +13499,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -14092,6 +13527,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -14116,6 +13555,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -14143,6 +13586,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/closure-class.release.wat b/tests/compiler/closure-class.release.wat index 2c5ca6e2b1..3c4ff77ab7 100644 --- a/tests/compiler/closure-class.release.wat +++ b/tests/compiler/closure-class.release.wat @@ -5,10 +5,11 @@ (type $3 (func)) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32) (result i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32))) - (type $9 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i64))) + (type $9 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -20,396 +21,175 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/__closure_env (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 38796)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36860)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\05\00\00\00\08\00\00\00\01") - (data $20 (i32.const 3436) "\1c") - (data $20.1 (i32.const 3448) "\06\00\00\00\08\00\00\00\02") - (data $21 (i32.const 3468) "<") - (data $21.1 (i32.const 3480) "\02\00\00\00 \00\00\00c\00l\00o\00s\00u\00r\00e\00-\00c\00l\00a\00s\00s\00.\00t\00s") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\08\00\00\00\08\00\00\00\03") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\t\00\00\00\08\00\00\00\04") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\06\00\00\00\08\00\00\00\05") - (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\06\00\00\00\08\00\00\00\06") - (data $26 (i32.const 3660) "\1c") - (data $26.1 (i32.const 3672) "\06\00\00\00\08\00\00\00\07") - (data $27 (i32.const 3692) "\1c") - (data $27.1 (i32.const 3704) "\06\00\00\00\08\00\00\00\08") - (data $28 (i32.const 3724) "\1c") - (data $28.1 (i32.const 3736) "\08\00\00\00\08\00\00\00\t") - (data $29 (i32.const 3756) "\1c") - (data $29.1 (i32.const 3768) "\02\00\00\00\06\00\00\00R\00e\00x") - (data $30 (i32.const 3788) "<") - (data $30.1 (i32.const 3800) "\02\00\00\00\1e\00\00\00G\00e\00r\00m\00a\00n\00 \00S\00h\00e\00p\00h\00e\00r\00d") - (data $31 (i32.const 3852) "\1c") - (data $31.1 (i32.const 3864) "\06\00\00\00\08\00\00\00\n") - (data $32 (i32.const 3884) "\1c") - (data $32.1 (i32.const 3896) "\05\00\00\00\08\00\00\00\0b") - (data $33 (i32.const 3916) "\1c") - (data $33.1 (i32.const 3928) "\0f\00\00\00\08\00\00\00\0c") - (data $34 (i32.const 3948) ",") - (data $34.1 (i32.const 3960) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $35 (i32.const 3996) ",") - (data $35.1 (i32.const 4008) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $36 (i32.const 4044) "\1c") - (data $36.1 (i32.const 4056) "\08\00\00\00\08\00\00\00\r") - (data $37 (i32.const 4076) "|") - (data $37.1 (i32.const 4088) "\02\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 $38 (i32.const 4204) "\1c") - (data $38.1 (i32.const 4216) "\02\00\00\00\02\00\00\00*") - (data $39 (i32.const 4236) "\1c") - (data $39.1 (i32.const 4248) "\14\00\00\00\08\00\00\00\0e") - (data $40 (i32.const 4268) "\1c") - (data $40.1 (i32.const 4280) "\14\00\00\00\08\00\00\00\0f") - (data $41 (i32.const 4300) "\1c") - (data $41.1 (i32.const 4312) "\14\00\00\00\08\00\00\00\10") - (data $42 (i32.const 4332) ",") - (data $42.1 (i32.const 4344) "\02\00\00\00\0e\00\00\00S\00E\00L\00E\00C\00T\00 ") - (data $43 (i32.const 4380) "\1c") - (data $43.1 (i32.const 4392) "\02\00\00\00\0c\00\00\00 \00F\00R\00O\00M\00 ") - (data $44 (i32.const 4412) ",") - (data $44.1 (i32.const 4424) "\02\00\00\00\0e\00\00\00 \00W\00H\00E\00R\00E\00 ") - (data $45 (i32.const 4460) "\1c") - (data $45.1 (i32.const 4472) "\0f\00\00\00\08\00\00\00\11") - (data $46 (i32.const 4492) ",") - (data $46.1 (i32.const 4504) "\02\00\00\00\10\00\00\00i\00d\00,\00 \00n\00a\00m\00e") - (data $47 (i32.const 4540) "\1c") - (data $47.1 (i32.const 4552) "\02\00\00\00\n\00\00\00u\00s\00e\00r\00s") - (data $48 (i32.const 4572) ",") - (data $48.1 (i32.const 4584) "\02\00\00\00\14\00\00\00a\00c\00t\00i\00v\00e\00 \00=\00 \001") - (data $49 (i32.const 4620) "l") - (data $49.1 (i32.const 4632) "\02\00\00\00V\00\00\00S\00E\00L\00E\00C\00T\00 \00i\00d\00,\00 \00n\00a\00m\00e\00 \00F\00R\00O\00M\00 \00u\00s\00e\00r\00s\00 \00W\00H\00E\00R\00E\00 \00a\00c\00t\00i\00v\00e\00 \00=\00 \001") - (data $50 (i32.const 4732) "\1c") - (data $50.1 (i32.const 4744) "\16\00\00\00\08\00\00\00\12") - (data $51 (i32.const 4764) "\1c") - (data $51.1 (i32.const 4776) "\16\00\00\00\08\00\00\00\13") - (data $52 (i32.const 4796) "\1c") - (data $52.1 (i32.const 4808) "\16\00\00\00\08\00\00\00\14") - (data $53 (i32.const 4828) "\1c") - (data $53.1 (i32.const 4840) "\05\00\00\00\08\00\00\00\15") - (data $54 (i32.const 4860) "\1c") - (data $54.1 (i32.const 4872) "\06\00\00\00\08\00\00\00\16") - (data $55 (i32.const 4892) "\1c") - (data $55.1 (i32.const 4904) "\19\00\00\00\08\00\00\00\17") - (data $56 (i32.const 4924) "\1c") - (data $56.1 (i32.const 4936) "\08\00\00\00\08\00\00\00\18") - (data $57 (i32.const 4956) "\1c") - (data $57.1 (i32.const 4968) "\06\00\00\00\08\00\00\00\19") - (data $58 (i32.const 4988) "\1c") - (data $58.1 (i32.const 5000) "\1b\00\00\00\08\00\00\00\1a") - (data $59 (i32.const 5020) "\1c") - (data $59.1 (i32.const 5032) "\1b\00\00\00\08\00\00\00\1b") - (data $60 (i32.const 5052) "\1c") - (data $60.1 (i32.const 5064) "\1d\00\00\00\08\00\00\00\1c") - (data $61 (i32.const 5084) "\1c") - (data $61.1 (i32.const 5096) "\06\00\00\00\08\00\00\00\1d") - (data $62 (i32.const 5116) "\1c") - (data $62.1 (i32.const 5128) "\1e\00\00\00\08\00\00\00\1e") - (data $63 (i32.const 5148) "\1c") - (data $63.1 (i32.const 5160) "\1e\00\00\00\08\00\00\00\1f") - (data $64 (i32.const 5180) "\1c") - (data $64.1 (i32.const 5192) "\1e\00\00\00\08\00\00\00 ") - (data $65 (i32.const 5212) "\1c") - (data $65.1 (i32.const 5224) "\1f\00\00\00\08\00\00\00!") - (data $66 (i32.const 5244) "\1c") - (data $66.1 (i32.const 5256) " \00\00\00\08\00\00\00\"") - (data $67 (i32.const 5276) "\1c") - (data $67.1 (i32.const 5288) "\"\00\00\00\08\00\00\00#") - (data $68 (i32.const 5308) "\1c") - (data $68.1 (i32.const 5320) "\"\00\00\00\08\00\00\00$") - (data $69 (i32.const 5340) "\1c") - (data $69.1 (i32.const 5352) "$\00\00\00\08\00\00\00%") - (data $70 (i32.const 5372) "\1c") - (data $70.1 (i32.const 5384) "\08\00\00\00\08\00\00\00&") - (data $71 (i32.const 5404) "\1c") - (data $71.1 (i32.const 5416) "\08\00\00\00\08\00\00\00\'") - (data $72 (i32.const 5436) "\1c") - (data $72.1 (i32.const 5448) "\08\00\00\00\08\00\00\00(") - (data $73 (i32.const 5468) "\1c") - (data $73.1 (i32.const 5480) "\16\00\00\00\08\00\00\00)") - (data $74 (i32.const 5500) "\1c") - (data $74.1 (i32.const 5512) "\16\00\00\00\08\00\00\00*") - (data $75 (i32.const 5532) "\1c") - (data $75.1 (i32.const 5544) "&\00\00\00\08\00\00\00+") - (data $76 (i32.const 5564) "\1c") - (data $76.1 (i32.const 5576) "\06\00\00\00\08\00\00\00,") - (data $77 (i32.const 5596) "\1c") - (data $77.1 (i32.const 5608) "\06\00\00\00\08\00\00\00-") - (data $78 (i32.const 5628) "\1c") - (data $78.1 (i32.const 5640) "\06\00\00\00\08\00\00\00.") - (data $79 (i32.const 5660) "\1c") - (data $79.1 (i32.const 5672) "\06\00\00\00\08\00\00\00/") - (data $80 (i32.const 5692) "\1c") - (data $80.1 (i32.const 5704) "\06\00\00\00\08\00\00\000") - (data $81 (i32.const 5724) "\1c") - (data $81.1 (i32.const 5736) "\06\00\00\00\08\00\00\001") - (data $82 (i32.const 5756) "\1c") - (data $82.1 (i32.const 5768) "\06\00\00\00\08\00\00\002") - (data $83 (i32.const 5788) "\1c") - (data $83.1 (i32.const 5800) "\16\00\00\00\08\00\00\003") - (data $84 (i32.const 5820) "\1c") - (data $84.1 (i32.const 5832) "\06\00\00\00\08\00\00\004") - (data $85 (i32.const 5856) "*\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") - (data $85.1 (i32.const 5888) " ") - (data $85.2 (i32.const 5900) " \00\00\00\00\00\00\00 ") - (data $85.3 (i32.const 5928) "\02A\00\00 ") - (data $85.4 (i32.const 5944) " ") - (data $85.5 (i32.const 5956) "\02A\00\00\00\00\00\00 \00\00\00\00\00\00\00 ") - (data $85.6 (i32.const 5992) " ") - (data $85.7 (i32.const 6008) " ") - (data $85.8 (i32.const 6020) "\02A\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "\1c") + (data $8.1 (i32.const 1448) "\05\00\00\00\08\00\00\00\01") + (data $9 (i32.const 1468) "\1c") + (data $9.1 (i32.const 1480) "\06\00\00\00\08\00\00\00\02") + (data $10 (i32.const 1500) "<") + (data $10.1 (i32.const 1512) "\02\00\00\00 \00\00\00c\00l\00o\00s\00u\00r\00e\00-\00c\00l\00a\00s\00s\00.\00t\00s") + (data $11 (i32.const 1564) "\1c") + (data $11.1 (i32.const 1576) "\08\00\00\00\08\00\00\00\03") + (data $12 (i32.const 1596) "\1c") + (data $12.1 (i32.const 1608) "\t\00\00\00\08\00\00\00\04") + (data $13 (i32.const 1628) "\1c") + (data $13.1 (i32.const 1640) "\06\00\00\00\08\00\00\00\05") + (data $14 (i32.const 1660) "\1c") + (data $14.1 (i32.const 1672) "\06\00\00\00\08\00\00\00\06") + (data $15 (i32.const 1692) "\1c") + (data $15.1 (i32.const 1704) "\06\00\00\00\08\00\00\00\07") + (data $16 (i32.const 1724) "\1c") + (data $16.1 (i32.const 1736) "\06\00\00\00\08\00\00\00\08") + (data $17 (i32.const 1756) "\1c") + (data $17.1 (i32.const 1768) "\08\00\00\00\08\00\00\00\t") + (data $18 (i32.const 1788) "\1c") + (data $18.1 (i32.const 1800) "\02\00\00\00\06\00\00\00R\00e\00x") + (data $19 (i32.const 1820) "<") + (data $19.1 (i32.const 1832) "\02\00\00\00\1e\00\00\00G\00e\00r\00m\00a\00n\00 \00S\00h\00e\00p\00h\00e\00r\00d") + (data $20 (i32.const 1884) "\1c") + (data $20.1 (i32.const 1896) "\06\00\00\00\08\00\00\00\n") + (data $21 (i32.const 1916) "\1c") + (data $21.1 (i32.const 1928) "\05\00\00\00\08\00\00\00\0b") + (data $22 (i32.const 1948) "\1c") + (data $22.1 (i32.const 1960) "\0f\00\00\00\08\00\00\00\0c") + (data $23 (i32.const 1980) ",") + (data $23.1 (i32.const 1992) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $24 (i32.const 2028) ",") + (data $24.1 (i32.const 2040) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $25 (i32.const 2076) "\1c") + (data $25.1 (i32.const 2088) "\08\00\00\00\08\00\00\00\r") + (data $26 (i32.const 2108) "|") + (data $26.1 (i32.const 2120) "\02\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 $27 (i32.const 2236) "\1c") + (data $27.1 (i32.const 2248) "\02\00\00\00\02\00\00\00*") + (data $28 (i32.const 2268) "\1c") + (data $28.1 (i32.const 2280) "\02") + (data $29 (i32.const 2300) "\1c") + (data $29.1 (i32.const 2312) "\14\00\00\00\08\00\00\00\0e") + (data $30 (i32.const 2332) "\1c") + (data $30.1 (i32.const 2344) "\14\00\00\00\08\00\00\00\0f") + (data $31 (i32.const 2364) "\1c") + (data $31.1 (i32.const 2376) "\14\00\00\00\08\00\00\00\10") + (data $32 (i32.const 2396) ",") + (data $32.1 (i32.const 2408) "\02\00\00\00\0e\00\00\00S\00E\00L\00E\00C\00T\00 ") + (data $33 (i32.const 2444) "\1c") + (data $33.1 (i32.const 2456) "\02\00\00\00\0c\00\00\00 \00F\00R\00O\00M\00 ") + (data $34 (i32.const 2476) ",") + (data $34.1 (i32.const 2488) "\02\00\00\00\0e\00\00\00 \00W\00H\00E\00R\00E\00 ") + (data $35 (i32.const 2524) "\1c") + (data $35.1 (i32.const 2536) "\0f\00\00\00\08\00\00\00\11") + (data $36 (i32.const 2556) ",") + (data $36.1 (i32.const 2568) "\02\00\00\00\10\00\00\00i\00d\00,\00 \00n\00a\00m\00e") + (data $37 (i32.const 2604) "\1c") + (data $37.1 (i32.const 2616) "\02\00\00\00\n\00\00\00u\00s\00e\00r\00s") + (data $38 (i32.const 2636) ",") + (data $38.1 (i32.const 2648) "\02\00\00\00\14\00\00\00a\00c\00t\00i\00v\00e\00 \00=\00 \001") + (data $39 (i32.const 2684) "l") + (data $39.1 (i32.const 2696) "\02\00\00\00V\00\00\00S\00E\00L\00E\00C\00T\00 \00i\00d\00,\00 \00n\00a\00m\00e\00 \00F\00R\00O\00M\00 \00u\00s\00e\00r\00s\00 \00W\00H\00E\00R\00E\00 \00a\00c\00t\00i\00v\00e\00 \00=\00 \001") + (data $40 (i32.const 2796) "\1c") + (data $40.1 (i32.const 2808) "\16\00\00\00\08\00\00\00\12") + (data $41 (i32.const 2828) "\1c") + (data $41.1 (i32.const 2840) "\16\00\00\00\08\00\00\00\13") + (data $42 (i32.const 2860) "\1c") + (data $42.1 (i32.const 2872) "\16\00\00\00\08\00\00\00\14") + (data $43 (i32.const 2892) "\1c") + (data $43.1 (i32.const 2904) "\05\00\00\00\08\00\00\00\15") + (data $44 (i32.const 2924) "\1c") + (data $44.1 (i32.const 2936) "\06\00\00\00\08\00\00\00\16") + (data $45 (i32.const 2956) "\1c") + (data $45.1 (i32.const 2968) "\19\00\00\00\08\00\00\00\17") + (data $46 (i32.const 2988) "\1c") + (data $46.1 (i32.const 3000) "\08\00\00\00\08\00\00\00\18") + (data $47 (i32.const 3020) "\1c") + (data $47.1 (i32.const 3032) "\06\00\00\00\08\00\00\00\19") + (data $48 (i32.const 3052) "\1c") + (data $48.1 (i32.const 3064) "\1b\00\00\00\08\00\00\00\1a") + (data $49 (i32.const 3084) "\1c") + (data $49.1 (i32.const 3096) "\1b\00\00\00\08\00\00\00\1b") + (data $50 (i32.const 3116) "\1c") + (data $50.1 (i32.const 3128) "\1d\00\00\00\08\00\00\00\1c") + (data $51 (i32.const 3148) "\1c") + (data $51.1 (i32.const 3160) "\06\00\00\00\08\00\00\00\1d") + (data $52 (i32.const 3180) "\1c") + (data $52.1 (i32.const 3192) "\1e\00\00\00\08\00\00\00\1e") + (data $53 (i32.const 3212) "\1c") + (data $53.1 (i32.const 3224) "\1e\00\00\00\08\00\00\00\1f") + (data $54 (i32.const 3244) "\1c") + (data $54.1 (i32.const 3256) "\1e\00\00\00\08\00\00\00 ") + (data $55 (i32.const 3276) "\1c") + (data $55.1 (i32.const 3288) "\1f\00\00\00\08\00\00\00!") + (data $56 (i32.const 3308) "\1c") + (data $56.1 (i32.const 3320) " \00\00\00\08\00\00\00\"") + (data $57 (i32.const 3340) "\1c") + (data $57.1 (i32.const 3352) "\"\00\00\00\08\00\00\00#") + (data $58 (i32.const 3372) "\1c") + (data $58.1 (i32.const 3384) "\"\00\00\00\08\00\00\00$") + (data $59 (i32.const 3404) "\1c") + (data $59.1 (i32.const 3416) "$\00\00\00\08\00\00\00%") + (data $60 (i32.const 3436) "\1c") + (data $60.1 (i32.const 3448) "\08\00\00\00\08\00\00\00&") + (data $61 (i32.const 3468) "\1c") + (data $61.1 (i32.const 3480) "\08\00\00\00\08\00\00\00\'") + (data $62 (i32.const 3500) "\1c") + (data $62.1 (i32.const 3512) "\08\00\00\00\08\00\00\00(") + (data $63 (i32.const 3532) "\1c") + (data $63.1 (i32.const 3544) "\16\00\00\00\08\00\00\00)") + (data $64 (i32.const 3564) "\1c") + (data $64.1 (i32.const 3576) "\16\00\00\00\08\00\00\00*") + (data $65 (i32.const 3596) "\1c") + (data $65.1 (i32.const 3608) "&\00\00\00\08\00\00\00+") + (data $66 (i32.const 3628) "\1c") + (data $66.1 (i32.const 3640) "\06\00\00\00\08\00\00\00,") + (data $67 (i32.const 3660) "\1c") + (data $67.1 (i32.const 3672) "\06\00\00\00\08\00\00\00-") + (data $68 (i32.const 3692) "\1c") + (data $68.1 (i32.const 3704) "\06\00\00\00\08\00\00\00.") + (data $69 (i32.const 3724) "\1c") + (data $69.1 (i32.const 3736) "\06\00\00\00\08\00\00\00/") + (data $70 (i32.const 3756) "\1c") + (data $70.1 (i32.const 3768) "\06\00\00\00\08\00\00\000") + (data $71 (i32.const 3788) "\1c") + (data $71.1 (i32.const 3800) "\06\00\00\00\08\00\00\001") + (data $72 (i32.const 3820) "\1c") + (data $72.1 (i32.const 3832) "\06\00\00\00\08\00\00\002") + (data $73 (i32.const 3852) "\1c") + (data $73.1 (i32.const 3864) "\16\00\00\00\08\00\00\003") + (data $74 (i32.const 3884) "\1c") + (data $74.1 (i32.const 3896) "\06\00\00\00\08\00\00\004") + (data $75 (i32.const 3920) "*\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $75.1 (i32.const 3952) " ") + (data $75.2 (i32.const 3964) " \00\00\00\00\00\00\00 ") + (data $75.3 (i32.const 3992) "\02A\00\00 ") + (data $75.4 (i32.const 4008) " ") + (data $75.5 (i32.const 4020) "\02A\00\00\00\00\00\00 \00\00\00\00\00\00\00 ") + (data $75.6 (i32.const 4056) " ") + (data $75.7 (i32.const 4072) " ") + (data $75.8 (i32.const 4084) "\02A\00\00 ") (table $0 53 53 funcref) (elem $0 (i32.const 1) $closure-class/Counter#getIncrementClosure~anonymous|0 $closure-class/Counter#getCountClosure~anonymous|0 $closure-class/BankAccount#getDepositClosure~anonymous|0 $closure-class/BankAccount#getWithdrawClosure~anonymous|0 $closure-class/Counter#getCountClosure~anonymous|0 $closure-class/BankAccount#getTransactionCountClosure~anonymous|0 $closure-class/Calculator#getOperationClosure~anonymous|0 $closure-class/Outer#getComputeClosure~anonymous|0 $closure-class/Outer#getInnerSetterClosure~anonymous|0 $closure-class/BankAccount#getTransactionCountClosure~anonymous|0 $closure-class/Animal#getAgeIncrementClosure~anonymous|0 $closure-class/Dog#getBreedClosure~anonymous|0 $closure-class/DataProcessor#getProcessorClosure~anonymous|0 $closure-class/QueryBuilder#getSelectClosure~anonymous|0 $closure-class/QueryBuilder#getFromClosure~anonymous|0 $closure-class/QueryBuilder#getWhereClosure~anonymous|0 $closure-class/QueryBuilder#getBuildClosure~anonymous|0 $closure-class/StateMachine#getStartClosure~anonymous|0 $closure-class/StateMachine#getPauseClosure~anonymous|0 $closure-class/StateMachine#getStopClosure~anonymous|0 $closure-class/StateMachine#getResetClosure~anonymous|0 $closure-class/Counter#getCountClosure~anonymous|0 $closure-class/Observable#getSubscribeClosure~anonymous|0 $closure-class/Observable#getSetClosure~anonymous|0 $closure-class/Counter#getCountClosure~anonymous|0 $closure-class/ObserverState#getCountObserver~anonymous|0 $closure-class/ObserverState#getDiffObserver~anonymous|0 $closure-class/Box#getMapClosure~anonymous|0 $closure-class/Counter#getCountClosure~anonymous|0 $closure-class/testBoxMap~anonymous|0 $closure-class/testBoxMap~anonymous|1 $closure-class/testBoxMap~anonymous|2 $closure-class/Box#getFlatMapClosure~anonymous|0 $closure-class/testBoxFlatMap~anonymous|0 $closure-class/ChainableCounter#getAddClosure~anonymous|0 $closure-class/ChainableCounter#getMultiplyClosure~anonymous|0 $closure-class/Task#getThenClosure~anonymous|0 $closure-class/Task#getCompleteClosure~anonymous|0 $closure-class/testTaskCallbacks~anonymous|0 $closure-class/testTaskCallbackAfterComplete~anonymous|0 $closure-class/Resource#getAcquireClosure~anonymous|0 $closure-class/Resource#getReleaseClosure~anonymous|0 $closure-class/Resource#getUseClosure~anonymous|0 $closure-class/testResourceManagement~anonymous|0 $closure-class/testResourceManagement~anonymous|1 $closure-class/testResourceManagement~anonymous|2 $closure-class/testResourceManagement~anonymous|3 $closure-class/testResourceManagement~anonymous|0 $closure-class/TreeNode#getSumClosure~anonymous|0 $closure-class/TreeNode#getDepthClosure~anonymous|0 $closure-class/Range#getHasNextClosure~anonymous|0 $closure-class/Range#getNextClosure~anonymous|0) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 6028 - i32.lt_s - if - i32.const 38816 - i32.const 38864 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3968 + i32.const 2000 call $~lib/rt/itcms/__visit - i32.const 4096 + i32.const 2128 call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -430,7 +210,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -463,7 +243,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -472,7 +252,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$531 + block $__inlined_func$~lib/rt/itcms/Object#unlink$524 local.get $0 i32.load offset=4 i32.const -4 @@ -484,19 +264,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 38796 + i32.const 36860 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$531 + br $__inlined_func$~lib/rt/itcms/Object#unlink$524 end local.get $0 i32.load offset=8 @@ -504,7 +284,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -533,13 +313,13 @@ i32.const 1 else local.get $1 - i32.const 5856 + i32.const 3920 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -547,7 +327,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 5860 + i32.const 3924 i32.add i32.load i32.const 32 @@ -618,7 +398,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -632,7 +412,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -678,7 +458,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -761,7 +541,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -775,7 +555,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -836,7 +616,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -869,7 +649,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -884,7 +664,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -935,7 +715,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1007,7 +787,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1032,7 +812,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1059,7 +839,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1131,10 +911,10 @@ if unreachable end - i32.const 38800 + i32.const 36864 i32.const 0 i32.store - i32.const 40368 + i32.const 38432 i32.const 0 i32.store loop $for-loop|0 @@ -1145,7 +925,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 38800 + i32.const 36864 i32.add i32.const 0 i32.store offset=4 @@ -1163,7 +943,7 @@ i32.add i32.const 2 i32.shl - i32.const 38800 + i32.const 36864 i32.add i32.const 0 i32.store offset=96 @@ -1181,14 +961,14 @@ br $for-loop|0 end end - i32.const 38800 - i32.const 40372 + i32.const 36864 + i32.const 38436 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 38800 + i32.const 36864 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1273,7 +1053,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 38796 + i32.const 36860 i32.lt_u if local.get $0 @@ -1362,14 +1142,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 38796 + i32.const 36860 i32.lt_u if local.get $0 @@ -1392,7 +1172,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 38796 + i32.const 36860 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1421,7 +1201,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1505,7 +1285,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1557,7 +1337,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1587,8 +1367,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1690,7 +1470,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1705,7 +1485,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1724,7 +1504,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1791,8 +1571,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1802,7 +1582,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1819,7 +1599,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -2005,7 +1785,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2359,34 +2139,34 @@ memory.size i32.const 16 i32.shl - i32.const 38796 + i32.const 36860 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 32 @@ -2394,7 +2174,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2465,7 +2245,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -2476,7 +2256,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2599,7 +2379,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 60 i32.const 1 call $~lib/builtins/abort @@ -2610,7 +2390,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 125 i32.const 1 call $~lib/builtins/abort @@ -2621,7 +2401,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2634,7 +2414,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2749,7 +2529,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 168 i32.const 1 call $~lib/builtins/abort @@ -2760,7 +2540,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2773,7 +2553,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2812,7 +2592,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2937,7 +2717,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 219 i32.const 3 call $~lib/builtins/abort @@ -2966,7 +2746,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 222 i32.const 3 call $~lib/builtins/abort @@ -2989,7 +2769,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 226 i32.const 1 call $~lib/builtins/abort @@ -3000,7 +2780,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3013,7 +2793,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3043,14 +2823,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3776 + i32.const 1808 i32.store offset=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 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3089,13 +2869,13 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3776 + i32.const 1808 i32.store offset=8 local.get $0 - i32.const 3776 + i32.const 1808 i32.store local.get $0 - i32.const 3776 + i32.const 1808 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -3114,13 +2894,13 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3808 + i32.const 1840 i32.store offset=8 local.get $0 - i32.const 3808 + i32.const 1840 i32.store offset=8 local.get $0 - i32.const 3808 + i32.const 1840 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -3235,7 +3015,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 277 i32.const 3 call $~lib/builtins/abort @@ -3255,12 +3035,12 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 3808 + i32.const 1840 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 278 i32.const 3 call $~lib/builtins/abort @@ -3301,7 +3081,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 285 i32.const 1 call $~lib/builtins/abort @@ -3312,7 +3092,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 345 i32.const 1 call $~lib/builtins/abort @@ -3323,7 +3103,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3336,7 +3116,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3360,30 +3140,30 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 4224 + i32.const 2256 i32.store local.get $1 - i32.const 4224 + i32.const 2256 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 1120 + i32.const 2288 i32.store offset=4 local.get $1 - i32.const 1120 + i32.const 2288 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 1120 + i32.const 2288 i32.store offset=8 local.get $1 - i32.const 1120 + i32.const 2288 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -3522,7 +3302,7 @@ local.get $3 i32.load offset=4 global.set $~lib/__closure_env - i32.const 4512 + i32.const 2576 local.get $3 i32.load call_indirect (type $1) @@ -3532,7 +3312,7 @@ local.get $4 i32.load offset=4 global.set $~lib/__closure_env - i32.const 4560 + i32.const 2624 local.get $4 i32.load call_indirect (type $1) @@ -3542,7 +3322,7 @@ local.get $5 i32.load offset=4 global.set $~lib/__closure_env - i32.const 4592 + i32.const 2656 local.get $5 i32.load call_indirect (type $1) @@ -3562,12 +3342,12 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 4640 + i32.const 2704 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 399 i32.const 3 call $~lib/builtins/abort @@ -3580,7 +3360,7 @@ call $closure-class/testStateMachine if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 486 i32.const 1 call $~lib/builtins/abort @@ -3591,7 +3371,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 562 i32.const 1 call $~lib/builtins/abort @@ -3602,7 +3382,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3677,7 +3457,7 @@ local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 5136 + i32.const 3200 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $3 @@ -3685,12 +3465,12 @@ local.get $3 i32.load offset=4 global.set $~lib/__closure_env - i32.const 5136 + i32.const 3200 local.get $3 i32.load call_indirect (type $1) global.get $~lib/memory/__stack_pointer - i32.const 5168 + i32.const 3232 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $3 @@ -3698,12 +3478,12 @@ local.get $3 i32.load offset=4 global.set $~lib/__closure_env - i32.const 5168 + i32.const 3232 local.get $3 i32.load call_indirect (type $1) global.get $~lib/memory/__stack_pointer - i32.const 5200 + i32.const 3264 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $3 @@ -3711,7 +3491,7 @@ local.get $3 i32.load offset=4 global.set $~lib/__closure_env - i32.const 5200 + i32.const 3264 local.get $3 i32.load call_indirect (type $1) @@ -3732,7 +3512,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 604 i32.const 1 call $~lib/builtins/abort @@ -3743,7 +3523,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3787,7 +3567,7 @@ local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 5264 + i32.const 3328 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3796,7 +3576,7 @@ i32.load offset=4 global.set $~lib/__closure_env global.get $~lib/memory/__stack_pointer - i32.const 5264 + i32.const 3328 local.get $0 i32.load call_indirect (type $2) @@ -3815,7 +3595,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 615 i32.const 1 call $~lib/builtins/abort @@ -3826,7 +3606,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3839,7 +3619,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3976,7 +3756,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 662 i32.const 1 call $~lib/builtins/abort @@ -3987,7 +3767,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4056,7 +3836,7 @@ i32.load offset=8 if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 711 i32.const 3 call $~lib/builtins/abort @@ -4078,7 +3858,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 715 i32.const 3 call $~lib/builtins/abort @@ -4092,7 +3872,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4110,7 +3890,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 716 i32.const 3 call $~lib/builtins/abort @@ -4126,7 +3906,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 720 i32.const 1 call $~lib/builtins/abort @@ -4137,7 +3917,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4222,7 +4002,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 738 i32.const 1 call $~lib/builtins/abort @@ -4233,7 +4013,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 814 i32.const 1 call $~lib/builtins/abort @@ -4244,7 +4024,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4355,7 +4135,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 884 i32.const 3 call $~lib/builtins/abort @@ -4374,7 +4154,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -4411,7 +4191,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 889 i32.const 1 call $~lib/builtins/abort @@ -4422,7 +4202,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4489,7 +4269,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 944 i32.const 1 call $~lib/builtins/abort @@ -4500,7 +4280,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4567,7 +4347,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 959 i32.const 1 call $~lib/builtins/abort @@ -4575,8 +4355,8 @@ end return end - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4585,205 +4365,40 @@ (func $~start call $start:closure-class ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 6028 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 6028 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$538 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$538 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 38816 - i32.const 38864 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $closure-class/Counter#constructor (result i32) (local $0 i32) @@ -4792,11 +4407,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4839,11 +4454,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4881,11 +4496,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4915,11 +4530,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4975,11 +4590,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5051,11 +4666,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5090,7 +4705,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5103,7 +4718,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5290,7 +4905,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -5309,7 +4924,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 113 i32.const 3 call $~lib/builtins/abort @@ -5328,7 +4943,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -5346,7 +4961,7 @@ call_indirect (type $2) if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 116 i32.const 3 call $~lib/builtins/abort @@ -5365,7 +4980,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 117 i32.const 3 call $~lib/builtins/abort @@ -5384,7 +4999,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 118 i32.const 3 call $~lib/builtins/abort @@ -5413,7 +5028,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 121 i32.const 3 call $~lib/builtins/abort @@ -5448,8 +5063,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5464,11 +5079,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5567,11 +5182,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5613,11 +5228,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5652,11 +5267,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5694,11 +5309,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5729,11 +5344,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5832,7 +5447,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$200 + block $__inlined_func$~lib/util/string/compareImpl$197 loop $while-continue|1 local.get $0 local.tee $3 @@ -5852,7 +5467,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$200 + br_if $__inlined_func$~lib/util/string/compareImpl$197 local.get $2 i32.const 2 i32.add @@ -5889,11 +5504,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5989,11 +5604,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6049,11 +5664,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6121,7 +5736,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6142,7 +5757,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6163,8 +5778,8 @@ i32.const 268435455 i32.gt_u if - i32.const 3968 - i32.const 4016 + i32.const 2000 + i32.const 2048 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -6173,7 +5788,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$496 + block $__inlined_func$~lib/rt/itcms/__renew$487 i32.const 1073741820 local.get $3 i32.const 1 @@ -6216,7 +5831,7 @@ i32.store offset=16 local.get $3 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$496 + br $__inlined_func$~lib/rt/itcms/__renew$487 end local.get $4 local.get $7 @@ -6284,8 +5899,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6297,11 +5912,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6338,11 +5953,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6367,11 +5982,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6388,9 +6003,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 4016 - i32.const 114 + i32.const 1248 + i32.const 2048 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -6411,9 +6026,9 @@ local.get $0 i32.eqz if - i32.const 4096 - i32.const 4016 - i32.const 118 + i32.const 2128 + i32.const 2048 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -6432,11 +6047,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6506,7 +6121,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6519,7 +6134,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6628,7 +6243,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 336 i32.const 3 call $~lib/builtins/abort @@ -6643,7 +6258,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 337 i32.const 3 call $~lib/builtins/abort @@ -6658,7 +6273,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 338 i32.const 3 call $~lib/builtins/abort @@ -6673,7 +6288,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 339 i32.const 3 call $~lib/builtins/abort @@ -6688,7 +6303,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 340 i32.const 3 call $~lib/builtins/abort @@ -6703,7 +6318,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 341 i32.const 3 call $~lib/builtins/abort @@ -6726,8 +6341,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6740,11 +6355,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6780,11 +6395,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6820,11 +6435,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6853,6 +6468,109 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 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 4092 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 4092 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$531 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2288 + local.set $0 + br $__inlined_func$~lib/string/String#concat$531 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 36880 + i32.const 36928 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $closure-class/QueryBuilder#getBuildClosure~anonymous|0 (result i32) (local $0 i32) (local $1 i32) @@ -6863,11 +6581,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6889,7 +6607,7 @@ i32.load local.tee $2 i32.store offset=12 - i32.const 4352 + i32.const 2416 local.get $2 call $~lib/string/String.__concat local.set $2 @@ -6897,7 +6615,7 @@ local.get $2 i32.store offset=8 local.get $2 - i32.const 4400 + i32.const 2464 call $~lib/string/String.__concat local.set $2 global.get $~lib/memory/__stack_pointer @@ -6949,7 +6667,7 @@ i32.load offset=8 local.tee $1 i32.store offset=8 - i32.const 4432 + i32.const 2496 local.get $1 call $~lib/string/String.__concat local.set $1 @@ -6976,11 +6694,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7040,11 +6758,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7093,11 +6811,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7158,11 +6876,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7199,7 +6917,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7212,7 +6930,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7415,7 +7133,7 @@ call_indirect (type $0) if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -7433,7 +7151,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 465 i32.const 3 call $~lib/builtins/abort @@ -7452,7 +7170,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 466 i32.const 3 call $~lib/builtins/abort @@ -7469,7 +7187,7 @@ call_indirect (type $0) if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 468 i32.const 3 call $~lib/builtins/abort @@ -7487,7 +7205,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 470 i32.const 3 call $~lib/builtins/abort @@ -7506,7 +7224,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 471 i32.const 3 call $~lib/builtins/abort @@ -7524,7 +7242,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 473 i32.const 3 call $~lib/builtins/abort @@ -7543,7 +7261,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 474 i32.const 3 call $~lib/builtins/abort @@ -7561,7 +7279,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 476 i32.const 3 call $~lib/builtins/abort @@ -7580,7 +7298,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 477 i32.const 3 call $~lib/builtins/abort @@ -7597,7 +7315,7 @@ call_indirect (type $0) if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 479 i32.const 3 call $~lib/builtins/abort @@ -7623,7 +7341,7 @@ call_indirect (type $0) if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 482 i32.const 3 call $~lib/builtins/abort @@ -7644,8 +7362,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7658,11 +7376,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7705,11 +7423,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7796,11 +7514,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7839,11 +7557,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7889,7 +7607,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7902,7 +7620,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7931,7 +7649,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8139,7 +7857,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8304,7 +8022,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 556 i32.const 3 call $~lib/builtins/abort @@ -8319,7 +8037,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 557 i32.const 3 call $~lib/builtins/abort @@ -8334,7 +8052,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 558 i32.const 3 call $~lib/builtins/abort @@ -8367,8 +8085,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8381,11 +8099,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8426,11 +8144,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8480,11 +8198,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8523,11 +8241,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8570,11 +8288,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8616,11 +8334,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8687,11 +8405,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8760,11 +8478,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8852,11 +8570,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8904,11 +8622,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8955,11 +8673,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9023,11 +8741,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9059,7 +8777,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9072,7 +8790,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9207,7 +8925,7 @@ local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 5584 + i32.const 3648 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -9215,7 +8933,7 @@ local.get $4 i32.load offset=4 global.set $~lib/__closure_env - i32.const 5584 + i32.const 3648 local.get $4 i32.load call_indirect (type $2) @@ -9223,7 +8941,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 792 i32.const 3 call $~lib/builtins/abort @@ -9241,7 +8959,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 795 i32.const 3 call $~lib/builtins/abort @@ -9258,14 +8976,14 @@ call_indirect (type $0) if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 796 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5616 + i32.const 3680 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -9273,7 +8991,7 @@ local.get $4 i32.load offset=4 global.set $~lib/__closure_env - i32.const 5616 + i32.const 3680 local.get $4 i32.load call_indirect (type $2) @@ -9281,14 +8999,14 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 799 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5648 + i32.const 3712 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -9296,7 +9014,7 @@ local.get $4 i32.load offset=4 global.set $~lib/__closure_env - i32.const 5648 + i32.const 3712 local.get $4 i32.load call_indirect (type $2) @@ -9304,14 +9022,14 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 800 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5680 + i32.const 3744 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -9319,7 +9037,7 @@ local.get $4 i32.load offset=4 global.set $~lib/__closure_env - i32.const 5680 + i32.const 3744 local.get $4 i32.load call_indirect (type $2) @@ -9327,7 +9045,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 801 i32.const 3 call $~lib/builtins/abort @@ -9342,7 +9060,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 803 i32.const 3 call $~lib/builtins/abort @@ -9360,7 +9078,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 806 i32.const 3 call $~lib/builtins/abort @@ -9377,14 +9095,14 @@ call_indirect (type $0) if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 807 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5712 + i32.const 3776 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -9392,7 +9110,7 @@ local.get $4 i32.load offset=4 global.set $~lib/__closure_env - i32.const 5712 + i32.const 3776 local.get $4 i32.load call_indirect (type $2) @@ -9400,7 +9118,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 810 i32.const 3 call $~lib/builtins/abort @@ -9417,8 +9135,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9434,7 +9152,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9463,7 +9181,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9570,8 +9288,8 @@ local.get $2 return end - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9583,11 +9301,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9629,11 +9347,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9726,11 +9444,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9838,11 +9556,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9907,11 +9625,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9978,11 +9696,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10034,11 +9752,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s if - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10155,7 +9873,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner4 global.get $~lib/memory/__stack_pointer @@ -10178,7 +9896,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6028 + i32.const 4092 i32.lt_s br_if $folding-inner4 global.get $~lib/memory/__stack_pointer @@ -10241,8 +9959,8 @@ call $~lib/rt/itcms/__visit return end - i32.const 38816 - i32.const 38864 + i32.const 36880 + i32.const 36928 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/closure-complex.debug.wat b/tests/compiler/closure-complex.debug.wat index f6db036cfe..cd4e5cf4f2 100644 --- a/tests/compiler/closure-complex.debug.wat +++ b/tests/compiler/closure-complex.debug.wat @@ -2,21 +2,16 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (result i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func)) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i32 i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i64) (result i32))) - (type $12 (func (param i32 i32 i32) (result i32))) - (type $13 (func (param i32 i32 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)) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (type $10 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -25,495 +20,59 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/__closure_env (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 3376)) - (global $~lib/memory/__data_end i32 (i32.const 3448)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36216)) - (global $~lib/memory/__heap_base i32 (i32.const 36216)) + (global $~lib/rt/__rtti_base i32 (i32.const 1408)) + (global $~lib/memory/__data_end i32 (i32.const 1480)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34248)) + (global $~lib/memory/__heap_base i32 (i32.const 34248)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00c\00l\00o\00s\00u\00r\00e\00-\00c\00o\00m\00p\00l\00e\00x\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\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 $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $26 (i32.const 2652) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $27 (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2732) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $29 (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2988) "\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 $34 (i32.const 3020) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 3052) "\1c\00\00\00\00\00\00\00\00\00\00\00\r\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 3084) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 3116) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") - (data $38 (i32.const 3148) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") - (data $39 (i32.const 3180) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $40 (i32.const 3228) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") - (data $41 (i32.const 3260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 3308) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") - (data $43 (i32.const 3340) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") - (data $44 (i32.const 3376) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00c\00l\00o\00s\00u\00r\00e\00-\00c\00o\00m\00p\00l\00e\00x\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 572) "\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 $13 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $15 (i32.const 684) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $16 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 764) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 956) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 988) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 1020) "\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 $23 (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 1084) "\1c\00\00\00\00\00\00\00\00\00\00\00\r\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1148) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 1180) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data $28 (i32.const 1212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $29 (i32.const 1260) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1292) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data $32 (i32.const 1372) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1408) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 18 18 funcref) (elem $0 (i32.const 1) $closure-complex/testNestedArrowsWithClassCapture~anonymous|0 $closure-complex/testNestedArrowsWithClassCapture~anonymous|1 $closure-complex/testArrowClosureWithClass~anonymous|0 $closure-complex/createCounterOperations~anonymous|0 $closure-complex/createCounterOperations~anonymous|1 $closure-complex/testDeeplyNestedClassCreation~anonymous|0~anonymous|0~anonymous|0 $closure-complex/testDeeplyNestedClassCreation~anonymous|0~anonymous|0 $closure-complex/testDeeplyNestedClassCreation~anonymous|0 $closure-complex/ClosureFactory#createAdder~anonymous|0 $closure-complex/SelfReferencing#addCallback~anonymous|0 $closure-complex/testMultipleClosuresSharing~anonymous|0 $closure-complex/testMultipleClosuresSharing~anonymous|1 $closure-complex/testNestedArrowFunctions~anonymous|0~anonymous|0 $closure-complex/testNestedArrowFunctions~anonymous|0 $closure-complex/testComplexPipeline~anonymous|0 $closure-complex/testCurriedWithClass~anonymous|0~anonymous|0 $closure-complex/testCurriedWithClass~anonymous|0) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -578,7 +137,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -648,7 +207,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -665,7 +224,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -695,9 +254,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -764,7 +323,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -916,7 +475,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -936,7 +495,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -999,7 +558,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1152,7 +711,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1169,7 +728,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1258,7 +817,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1301,7 +860,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1319,7 +878,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1387,7 +946,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1504,7 +1063,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1550,7 +1109,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1582,7 +1141,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1826,7 +1385,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2046,7 +1605,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2157,8 +1716,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2260,7 +1819,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2331,7 +1890,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2488,7 +2047,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2603,7 +2162,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2623,7 +2182,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2671,8 +2230,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2766,7 +2325,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -3031,13 +2590,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $closure-complex/testNestedArrowsWithClassCapture @@ -3046,7 +2605,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -3058,7 +2617,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 73 i32.const 1 call $~lib/builtins/abort @@ -3070,7 +2629,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -3082,7 +2641,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 123 i32.const 1 call $~lib/builtins/abort @@ -3094,7 +2653,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 155 i32.const 1 call $~lib/builtins/abort @@ -3106,7 +2665,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 199 i32.const 1 call $~lib/builtins/abort @@ -3118,7 +2677,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 217 i32.const 1 call $~lib/builtins/abort @@ -3130,7 +2689,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 235 i32.const 1 call $~lib/builtins/abort @@ -3142,7 +2701,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 257 i32.const 1 call $~lib/builtins/abort @@ -3154,7 +2713,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 279 i32.const 1 call $~lib/builtins/abort @@ -3169,20 +2728,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3191,196 +2746,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $closure-complex/Counter#constructor (param $this i32) (result i32) (local $1 i32) @@ -3701,7 +3087,7 @@ global.set $~lib/__closure_env local.get $4 i32.load - call_indirect (type $4) + call_indirect (type $3) i32.const 10 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -3714,7 +3100,7 @@ global.set $~lib/__closure_env local.get $5 i32.load - call_indirect (type $4) + call_indirect (type $3) i32.const 15 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -3727,7 +3113,7 @@ global.set $~lib/__closure_env local.get $6 i32.load - call_indirect (type $4) + call_indirect (type $3) local.get $$env i32.load offset=4 local.set $7 @@ -3812,8 +3198,8 @@ i32.shr_u i32.gt_u if - i32.const 2624 - i32.const 2672 + i32.const 656 + i32.const 704 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -3877,6 +3263,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -3935,6 +3325,10 @@ i32.add local.get $value i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -4040,7 +3434,7 @@ i32.const 0 i32.const 2 i32.const 8 - i32.const 2560 + i32.const 592 call $~lib/rt/__newArray local.tee $operations i32.store @@ -4122,9 +3516,9 @@ call $~lib/array/Array<%28%29=>i32>#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -4152,9 +3546,9 @@ local.get $value i32.eqz if - i32.const 2752 - i32.const 2672 - i32.const 118 + i32.const 784 + i32.const 704 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -4661,7 +4055,7 @@ i32.const 0 i32.const 2 i32.const 8 - i32.const 3008 + i32.const 1040 call $~lib/rt/__newArray local.set $3 global.get $~lib/memory/__stack_pointer @@ -5043,9 +4437,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -5147,7 +4541,7 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 3280 + i32.const 1312 call $~lib/rt/__newArray local.tee $data i32.store @@ -5382,153 +4776,6 @@ local.get $8 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -5723,6 +4970,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -6094,22 +5345,16 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2624 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2752 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 656 local.get $0 call $~lib/rt/itcms/__visit i32.const 784 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) @@ -6347,6 +5592,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6371,6 +5620,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6398,6 +5651,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -6465,6 +5722,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -6491,6 +5752,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6515,6 +5780,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6539,6 +5808,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6563,6 +5836,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6587,6 +5864,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/closure-complex.release.wat b/tests/compiler/closure-complex.release.wat index 99e9cd68ad..084cbd3f3a 100644 --- a/tests/compiler/closure-complex.release.wat +++ b/tests/compiler/closure-complex.release.wat @@ -3,12 +3,13 @@ (type $1 (func (param i32) (result i32))) (type $2 (func)) (type $3 (func (param i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (param i32 i32 i32))) (type $9 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -20,306 +21,83 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/__closure_env (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37240)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35272)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\05\00\00\00\08\00\00\00\01") - (data $20 (i32.const 3436) "\1c") - (data $20.1 (i32.const 3448) "\05\00\00\00\08\00\00\00\02") - (data $21 (i32.const 3468) "<") - (data $21.1 (i32.const 3480) "\02\00\00\00$\00\00\00c\00l\00o\00s\00u\00r\00e\00-\00c\00o\00m\00p\00l\00e\00x\00.\00t\00s") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\07\00\00\00\08\00\00\00\03") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\01") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\05\00\00\00\08\00\00\00\04") - (data $25 (i32.const 3628) ",") - (data $25.1 (i32.const 3640) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $26 (i32.const 3676) ",") - (data $26.1 (i32.const 3688) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $27 (i32.const 3724) "\1c") - (data $27.1 (i32.const 3736) "\05\00\00\00\08\00\00\00\05") - (data $28 (i32.const 3756) "|") - (data $28.1 (i32.const 3768) "\02\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 $29 (i32.const 3884) "\1c") - (data $29.1 (i32.const 3896) "\n\00\00\00\08\00\00\00\06") - (data $30 (i32.const 3916) "\1c") - (data $30.1 (i32.const 3928) "\05\00\00\00\08\00\00\00\07") - (data $31 (i32.const 3948) "\1c") - (data $31.1 (i32.const 3960) "\05\00\00\00\08\00\00\00\08") - (data $32 (i32.const 3980) "\1c") - (data $32.1 (i32.const 3992) "\05\00\00\00\08\00\00\00\t") - (data $33 (i32.const 4012) "\1c") - (data $33.1 (i32.const 4024) "\01") - (data $34 (i32.const 4044) "\1c") - (data $34.1 (i32.const 4056) "\05\00\00\00\08\00\00\00\n") - (data $35 (i32.const 4076) "\1c") - (data $35.1 (i32.const 4088) "\r\00\00\00\08\00\00\00\0b") - (data $36 (i32.const 4108) "\1c") - (data $36.1 (i32.const 4120) "\05\00\00\00\08\00\00\00\0c") - (data $37 (i32.const 4140) "\1c") - (data $37.1 (i32.const 4152) "\05\00\00\00\08\00\00\00\r") - (data $38 (i32.const 4172) "\1c") - (data $38.1 (i32.const 4184) "\0e\00\00\00\08\00\00\00\0e") - (data $39 (i32.const 4204) ",") - (data $39.1 (i32.const 4216) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $40 (i32.const 4252) "\1c") - (data $40.1 (i32.const 4264) "\05\00\00\00\08\00\00\00\0f") - (data $41 (i32.const 4284) ",") - (data $41.1 (i32.const 4296) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $42 (i32.const 4332) "\1c") - (data $42.1 (i32.const 4344) "\0f\00\00\00\08\00\00\00\10") - (data $43 (i32.const 4364) "\1c") - (data $43.1 (i32.const 4376) "\10\00\00\00\08\00\00\00\11") - (data $44 (i32.const 4400) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\02\t\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "\1c") + (data $8.1 (i32.const 1448) "\05\00\00\00\08\00\00\00\01") + (data $9 (i32.const 1468) "\1c") + (data $9.1 (i32.const 1480) "\05\00\00\00\08\00\00\00\02") + (data $10 (i32.const 1500) "<") + (data $10.1 (i32.const 1512) "\02\00\00\00$\00\00\00c\00l\00o\00s\00u\00r\00e\00-\00c\00o\00m\00p\00l\00e\00x\00.\00t\00s") + (data $11 (i32.const 1564) "\1c") + (data $11.1 (i32.const 1576) "\07\00\00\00\08\00\00\00\03") + (data $12 (i32.const 1596) "\1c") + (data $12.1 (i32.const 1608) "\01") + (data $13 (i32.const 1628) "\1c") + (data $13.1 (i32.const 1640) "\05\00\00\00\08\00\00\00\04") + (data $14 (i32.const 1660) ",") + (data $14.1 (i32.const 1672) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $15 (i32.const 1708) ",") + (data $15.1 (i32.const 1720) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $16 (i32.const 1756) "\1c") + (data $16.1 (i32.const 1768) "\05\00\00\00\08\00\00\00\05") + (data $17 (i32.const 1788) "|") + (data $17.1 (i32.const 1800) "\02\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 $18 (i32.const 1916) "\1c") + (data $18.1 (i32.const 1928) "\n\00\00\00\08\00\00\00\06") + (data $19 (i32.const 1948) "\1c") + (data $19.1 (i32.const 1960) "\05\00\00\00\08\00\00\00\07") + (data $20 (i32.const 1980) "\1c") + (data $20.1 (i32.const 1992) "\05\00\00\00\08\00\00\00\08") + (data $21 (i32.const 2012) "\1c") + (data $21.1 (i32.const 2024) "\05\00\00\00\08\00\00\00\t") + (data $22 (i32.const 2044) "\1c") + (data $22.1 (i32.const 2056) "\01") + (data $23 (i32.const 2076) "\1c") + (data $23.1 (i32.const 2088) "\05\00\00\00\08\00\00\00\n") + (data $24 (i32.const 2108) "\1c") + (data $24.1 (i32.const 2120) "\r\00\00\00\08\00\00\00\0b") + (data $25 (i32.const 2140) "\1c") + (data $25.1 (i32.const 2152) "\05\00\00\00\08\00\00\00\0c") + (data $26 (i32.const 2172) "\1c") + (data $26.1 (i32.const 2184) "\05\00\00\00\08\00\00\00\r") + (data $27 (i32.const 2204) "\1c") + (data $27.1 (i32.const 2216) "\0e\00\00\00\08\00\00\00\0e") + (data $28 (i32.const 2236) ",") + (data $28.1 (i32.const 2248) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $29 (i32.const 2284) "\1c") + (data $29.1 (i32.const 2296) "\05\00\00\00\08\00\00\00\0f") + (data $30 (i32.const 2316) ",") + (data $30.1 (i32.const 2328) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $31 (i32.const 2364) "\1c") + (data $31.1 (i32.const 2376) "\0f\00\00\00\08\00\00\00\10") + (data $32 (i32.const 2396) "\1c") + (data $32.1 (i32.const 2408) "\10\00\00\00\08\00\00\00\11") + (data $33 (i32.const 2432) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\02\t\00\00\00\00\00\00 ") (table $0 18 18 funcref) (elem $0 (i32.const 1) $closure-complex/testNestedArrowsWithClassCapture~anonymous|0 $closure-complex/testNestedArrowsWithClassCapture~anonymous|1 $closure-complex/testArrowClosureWithClass~anonymous|0 $closure-complex/createCounterOperations~anonymous|0 $closure-complex/createCounterOperations~anonymous|1 $closure-complex/testDeeplyNestedClassCreation~anonymous|0~anonymous|0~anonymous|0 $closure-complex/testDeeplyNestedClassCreation~anonymous|0~anonymous|0 $closure-complex/testDeeplyNestedClassCreation~anonymous|0 $closure-complex/ClosureFactory#createAdder~anonymous|0 $closure-complex/SelfReferencing#addCallback~anonymous|0 $closure-complex/testMultipleClosuresSharing~anonymous|0 $closure-complex/testMultipleClosuresSharing~anonymous|1 $closure-complex/testNestedArrowFunctions~anonymous|0~anonymous|0 $closure-complex/testNestedArrowFunctions~anonymous|0 $closure-complex/testComplexPipeline~anonymous|0 $closure-complex/testCurriedWithClass~anonymous|0~anonymous|0 $closure-complex/testCurriedWithClass~anonymous|0) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 4472 - i32.lt_s - if - i32.const 37264 - i32.const 37312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3648 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3776 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1680 call $~lib/rt/itcms/__visit i32.const 1808 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -340,7 +118,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -373,7 +151,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -382,7 +160,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$248 + block $__inlined_func$~lib/rt/itcms/Object#unlink$236 local.get $0 i32.load offset=4 i32.const -4 @@ -394,19 +172,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 37240 + i32.const 35272 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$248 + br $__inlined_func$~lib/rt/itcms/Object#unlink$236 end local.get $0 i32.load offset=8 @@ -414,7 +192,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -443,13 +221,13 @@ i32.const 1 else local.get $1 - i32.const 4400 + i32.const 2432 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -457,7 +235,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 4404 + i32.const 2436 i32.add i32.load i32.const 32 @@ -528,7 +306,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -542,7 +320,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -588,7 +366,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -671,7 +449,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -685,7 +463,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -746,7 +524,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -779,7 +557,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -794,7 +572,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -845,7 +623,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -917,7 +695,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -942,7 +720,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -969,7 +747,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1041,10 +819,10 @@ if unreachable end - i32.const 37248 + i32.const 35280 i32.const 0 i32.store - i32.const 38816 + i32.const 36848 i32.const 0 i32.store loop $for-loop|0 @@ -1055,7 +833,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 37248 + i32.const 35280 i32.add i32.const 0 i32.store offset=4 @@ -1073,7 +851,7 @@ i32.add i32.const 2 i32.shl - i32.const 37248 + i32.const 35280 i32.add i32.const 0 i32.store offset=96 @@ -1091,14 +869,14 @@ br $for-loop|0 end end - i32.const 37248 - i32.const 38820 + i32.const 35280 + i32.const 36852 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 37248 + i32.const 35280 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1183,7 +961,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 37240 + i32.const 35272 i32.lt_u if local.get $0 @@ -1272,14 +1050,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 37240 + i32.const 35272 i32.lt_u if local.get $0 @@ -1302,7 +1080,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 37240 + i32.const 35272 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1331,7 +1109,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1415,7 +1193,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1467,7 +1245,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1497,8 +1275,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1600,7 +1378,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1615,7 +1393,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1634,7 +1412,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1701,8 +1479,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1712,7 +1490,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1729,7 +1507,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1816,7 +1594,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1971,34 +1749,34 @@ memory.size i32.const 16 i32.shl - i32.const 37240 + i32.const 35272 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2006,7 +1784,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2073,7 +1851,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -2084,7 +1862,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2173,7 +1951,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 73 i32.const 1 call $~lib/builtins/abort @@ -2184,7 +1962,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2204,7 +1982,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2233,7 +2011,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 8 - i32.const 3584 + i32.const 1616 call $~lib/rt/__newArray local.tee $3 i32.store @@ -2350,7 +2128,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -2361,7 +2139,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2413,7 +2191,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 123 i32.const 1 call $~lib/builtins/abort @@ -2424,7 +2202,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2437,7 +2215,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2476,7 +2254,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2553,7 +2331,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 155 i32.const 1 call $~lib/builtins/abort @@ -2564,7 +2342,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2576,7 +2354,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2602,7 +2380,7 @@ i32.store offset=4 i32.const 0 i32.const 8 - i32.const 4032 + i32.const 2064 call $~lib/rt/__newArray local.set $5 global.get $~lib/memory/__stack_pointer @@ -2645,7 +2423,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2674,7 +2452,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2740,7 +2518,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 199 i32.const 1 call $~lib/builtins/abort @@ -2751,7 +2529,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2846,7 +2624,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 217 i32.const 1 call $~lib/builtins/abort @@ -2857,7 +2635,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2948,7 +2726,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 235 i32.const 1 call $~lib/builtins/abort @@ -2959,7 +2737,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2988,7 +2766,7 @@ global.get $~lib/memory/__stack_pointer i32.const 5 i32.const 9 - i32.const 4304 + i32.const 2336 call $~lib/rt/__newArray local.tee $4 i32.store @@ -3014,7 +2792,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3028,9 +2806,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3101,7 +2879,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 257 i32.const 1 call $~lib/builtins/abort @@ -3112,7 +2890,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3197,7 +2975,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 279 i32.const 1 call $~lib/builtins/abort @@ -3205,8 +2983,8 @@ end return end - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3215,205 +2993,40 @@ (func $~start call $start:closure-complex ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 4472 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4472 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$253 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$253 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 37264 - i32.const 37312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $closure-complex/Counter#constructor (result i32) (local $0 i32) @@ -3422,11 +3035,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3467,11 +3080,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3510,11 +3123,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3546,11 +3159,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3591,11 +3204,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3628,11 +3241,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3660,11 +3273,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3690,11 +3303,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3728,7 +3341,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3749,7 +3362,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3770,8 +3383,8 @@ i32.const 268435455 i32.gt_u if - i32.const 3648 - i32.const 3696 + i32.const 1680 + i32.const 1728 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -3780,7 +3393,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$236 + block $__inlined_func$~lib/rt/itcms/__renew$224 i32.const 1073741820 local.get $3 i32.const 1 @@ -3823,7 +3436,7 @@ i32.store offset=16 local.get $3 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$236 + br $__inlined_func$~lib/rt/itcms/__renew$224 end local.get $4 local.get $7 @@ -3891,8 +3504,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3905,11 +3518,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3936,11 +3549,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3957,9 +3570,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3980,9 +3593,9 @@ local.get $0 i32.eqz if - i32.const 3776 - i32.const 3696 - i32.const 118 + i32.const 1808 + i32.const 1728 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -4001,11 +3614,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4052,7 +3665,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4110,7 +3723,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4143,8 +3756,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4157,11 +3770,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4192,11 +3805,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4259,11 +3872,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4291,11 +3904,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4332,11 +3945,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4372,11 +3985,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4407,11 +4020,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4446,11 +4059,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4502,11 +4115,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4566,11 +4179,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s if - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4668,7 +4281,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -4716,7 +4329,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -4738,7 +4351,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4472 + i32.const 2504 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -4768,8 +4381,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 37264 - i32.const 37312 + i32.const 35296 + i32.const 35344 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/closure-stress.debug.wat b/tests/compiler/closure-stress.debug.wat index 9df373f8de..8086652a61 100644 --- a/tests/compiler/closure-stress.debug.wat +++ b/tests/compiler/closure-stress.debug.wat @@ -8,24 +8,19 @@ (type $6 (func (param i32 i32 i32))) (type $7 (func (result f64))) (type $8 (func (param i32 i32 i32) (result i32))) - (type $9 (func (result i64))) - (type $10 (func (result f32))) - (type $11 (func (param i32 i32 i32 i32))) - (type $12 (func (param i32 i64 i32))) - (type $13 (func (param i64 i32) (result i32))) - (type $14 (func (param i32 i64 i32 i32))) - (type $15 (func (param i32 i32 i64) (result i32))) - (type $16 (func (param i64) (result i32))) - (type $17 (func (param f32) (result i32))) - (type $18 (func (param f64) (result i32))) - (type $19 (func (param i32 i64 f32 f64) (result i32))) - (type $20 (func (param i32 i32 i32 i32 i32 i32 i32 i32) (result i32))) - (type $21 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i32 i32))) + (type $10 (func (result i64))) + (type $11 (func (result f32))) + (type $12 (func (param i32 i32 i64) (result i32))) + (type $13 (func (param i64) (result i32))) + (type $14 (func (param f32) (result i32))) + (type $15 (func (param f64) (result i32))) + (type $16 (func (param i32 i64 f32 f64) (result i32))) + (type $17 (func (param i32 i32 i32 i32 i32 i32 i32 i32) (result i32))) + (type $18 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/__closure_env (mut i32) (i32.const 0)) - (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 $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -34,6 +29,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -50,119 +49,110 @@ (global $closure-stress/addThenDouble (mut i32) (i32.const 0)) (global $closure-stress/callCount (mut i32) (i32.const 0)) (global $closure-stress/fact (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $closure-stress/addResult (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 5408)) - (global $~lib/memory/__data_end i32 (i32.const 5492)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 38260)) - (global $~lib/memory/__heap_base i32 (i32.const 38260)) + (global $~lib/rt/__rtti_base i32 (i32.const 3472)) + (global $~lib/memory/__data_end i32 (i32.const 3556)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36324)) + (global $~lib/memory/__heap_base i32 (i32.const 36324)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 172) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 396) "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 $9 (i32.const 796) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1852) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 1948) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 2012) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2076) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 2204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00c\00l\00o\00s\00u\00r\00e\00-\00s\00t\00r\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2764) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2796) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2828) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") - (data $38 (i32.const 3020) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") - (data $39 (i32.const 3052) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $40 (i32.const 3100) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $41 (i32.const 3148) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 3180) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") - (data $43 (i32.const 3212) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") - (data $44 (i32.const 3244) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $45 (i32.const 3372) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") - (data $46 (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") - (data $47 (i32.const 3436) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") - (data $48 (i32.const 3468) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") - (data $49 (i32.const 3500) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") - (data $50 (i32.const 3532) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") - (data $51 (i32.const 3564) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") - (data $52 (i32.const 3596) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") - (data $53 (i32.const 3628) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") - (data $54 (i32.const 3660) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $55 (i32.const 3692) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") - (data $56 (i32.const 3724) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") - (data $57 (i32.const 3756) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") - (data $58 (i32.const 3788) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") - (data $59 (i32.const 3820) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") - (data $60 (i32.const 3852) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") - (data $61 (i32.const 3884) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $62 (i32.const 3948) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $63 (i32.const 4012) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $64 (i32.const 4060) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") - (data $65 (i32.const 4092) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") - (data $66 (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data $67 (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") - (data $68 (i32.const 4188) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") - (data $69 (i32.const 4220) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data $70 (i32.const 4252) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data $71 (i32.const 4284) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") - (data $72 (i32.const 4316) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") - (data $73 (i32.const 4348) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $74 (i32.const 4380) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $75 (i32.const 4412) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data $76 (i32.const 4444) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") - (data $77 (i32.const 4476) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data $78 (i32.const 4508) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") - (data $79 (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") - (data $80 (i32.const 4572) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") - (data $81 (i32.const 4604) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") - (data $82 (i32.const 4636) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") - (data $83 (i32.const 4668) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $84 (i32.const 4700) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") - (data $85 (i32.const 4732) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") - (data $86 (i32.const 4764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00H\00e\00l\00l\00o\00\00\00") - (data $87 (i32.const 4796) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") - (data $88 (i32.const 4828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") - (data $89 (i32.const 4860) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") - (data $90 (i32.const 4892) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") - (data $91 (i32.const 4924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") - (data $92 (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") - (data $93 (i32.const 4988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00D\00\00\00\00\00\00\00\00\00\00\00") - (data $94 (i32.const 5020) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00B\00C\00D\00\00\00\00\00") - (data $95 (i32.const 5052) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00@\00\00\00\00\00\00\00\00\00\00\00") - (data $96 (i32.const 5084) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") - (data $97 (i32.const 5116) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") - (data $98 (i32.const 5148) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") - (data $99 (i32.const 5180) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00D\00\00\00\00\00\00\00\00\00\00\00") - (data $100 (i32.const 5212) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00E\00\00\00\00\00\00\00\00\00\00\00") - (data $101 (i32.const 5244) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00F\00\00\00\00\00\00\00\00\00\00\00") - (data $102 (i32.const 5276) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00G\00\00\00\00\00\00\00\00\00\00\00") - (data $103 (i32.const 5308) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00H\00\00\00\00\00\00\00\00\00\00\00") - (data $104 (i32.const 5340) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00I\00\00\00\00\00\00\00\00\00\00\00") - (data $105 (i32.const 5372) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00J\00\00\00\00\00\00\00\00\00\00\00") - (data $106 (i32.const 5408) "\14\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\02\t\00\00 \00\00\00\00\00\00\00\10\t\12\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00c\00l\00o\00s\00u\00r\00e\00-\00s\00t\00r\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 828) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 956) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 988) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1020) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data $28 (i32.const 1084) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $29 (i32.const 1132) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $30 (i32.const 1180) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1212) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") + (data $32 (i32.const 1244) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1276) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $34 (i32.const 1404) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") + (data $35 (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") + (data $36 (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") + (data $37 (i32.const 1500) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") + (data $38 (i32.const 1532) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") + (data $39 (i32.const 1564) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") + (data $40 (i32.const 1596) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") + (data $41 (i32.const 1628) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") + (data $42 (i32.const 1660) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") + (data $43 (i32.const 1692) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $44 (i32.const 1724) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") + (data $45 (i32.const 1756) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") + (data $46 (i32.const 1788) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") + (data $47 (i32.const 1820) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") + (data $48 (i32.const 1852) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") + (data $49 (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") + (data $50 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $51 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $52 (i32.const 2044) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $53 (i32.const 2092) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") + (data $54 (i32.const 2124) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") + (data $55 (i32.const 2156) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") + (data $57 (i32.const 2220) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 2252) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data $59 (i32.const 2284) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data $60 (i32.const 2316) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data $61 (i32.const 2348) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") + (data $62 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $63 (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data $64 (i32.const 2444) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data $65 (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data $66 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data $67 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") + (data $68 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") + (data $69 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") + (data $70 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data $71 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") + (data $72 (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") + (data $73 (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") + (data $74 (i32.const 2764) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") + (data $75 (i32.const 2796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00H\00e\00l\00l\00o\00\00\00") + (data $76 (i32.const 2828) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") + (data $77 (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") + (data $78 (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $79 (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") + (data $80 (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") + (data $81 (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") + (data $82 (i32.const 3020) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") + (data $83 (i32.const 3052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00D\00\00\00\00\00\00\00\00\00\00\00") + (data $84 (i32.const 3084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00B\00C\00D\00\00\00\00\00") + (data $85 (i32.const 3116) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00@\00\00\00\00\00\00\00\00\00\00\00") + (data $86 (i32.const 3148) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") + (data $87 (i32.const 3180) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") + (data $88 (i32.const 3212) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") + (data $89 (i32.const 3244) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00D\00\00\00\00\00\00\00\00\00\00\00") + (data $90 (i32.const 3276) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00E\00\00\00\00\00\00\00\00\00\00\00") + (data $91 (i32.const 3308) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00F\00\00\00\00\00\00\00\00\00\00\00") + (data $92 (i32.const 3340) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00G\00\00\00\00\00\00\00\00\00\00\00") + (data $93 (i32.const 3372) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00H\00\00\00\00\00\00\00\00\00\00\00") + (data $94 (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00I\00\00\00\00\00\00\00\00\00\00\00") + (data $95 (i32.const 3436) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00J\00\00\00\00\00\00\00\00\00\00\00") + (data $96 (i32.const 3472) "\14\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\02\t\00\00 \00\00\00\00\00\00\00\10\t\12\00\00\00\00\00\00\00\00\00") (table $0 75 75 funcref) (elem $0 (i32.const 1) $closure-stress/captureI32Param~anonymous|0 $closure-stress/captureI64Param~anonymous|0 $closure-stress/captureF32Param~anonymous|0 $closure-stress/captureF64Param~anonymous|0 $closure-stress/captureBool~anonymous|0 $closure-stress/captureMultipleI32~anonymous|0 $closure-stress/captureMixedTypes~anonymous|0 $closure-stress/capture8Params~anonymous|0 $closure-stress/captureParamsAndLocals~anonymous|0 $closure-stress/makeCounter~anonymous|0 $closure-stress/testBidirectionalMutation~anonymous|0 $closure-stress/testBidirectionalMutation~anonymous|1 $closure-stress/testSharedMutation~anonymous|0 $closure-stress/testSharedMutation~anonymous|1 $closure-stress/testSharedMutation~anonymous|2 $closure-stress/testOuterScopeMutation~anonymous|0 $closure-stress/testOuterScopeMutation~anonymous|1 $closure-stress/curriedAdd~anonymous|0 $closure-stress/makeGreaterThan~anonymous|0 $closure-stress/simpleClosureArray~anonymous|0 $closure-stress/simpleClosureArray~anonymous|1 $closure-stress/simpleClosureArray~anonymous|2 $closure-stress/closureInConditional~anonymous|0 $closure-stress/closureInConditional~anonymous|1 $closure-stress/closureEscapingBlock~anonymous|0 $closure-stress/captureArray~anonymous|0 $closure-stress/mutateCapturedArray~anonymous|0 $closure-stress/mutateCapturedArray~anonymous|1 $closure-stress/captureClassInstance~anonymous|0 $closure-stress/captureClassInstance~anonymous|1 $closure-stress/testMapWithClosure~anonymous|0 $closure-stress/testFilterWithClosure~anonymous|0 $closure-stress/testReduceWithClosure~anonymous|0 $closure-stress/testReduceWithClosure~anonymous|1 $closure-stress/makeAdder~anonymous|0 $closure-stress/makeMultiplier~anonymous|0 $closure-stress/compose~anonymous|0 $closure-stress/expensiveComputation $closure-stress/memoize~anonymous|0 $closure-stress/emptyClosure~anonymous|0 $closure-stress/captureOnlyNoParams~anonymous|0 $closure-stress/ignoreCapture~anonymous|0 $closure-stress/multipleClosureReturns~anonymous|0 $closure-stress/multipleClosureReturns~anonymous|1 $closure-stress/multipleClosureReturns~anonymous|2 $closure-stress/makeFactorial~anonymous|0 $closure-stress/captureSmallTypes~anonymous|0 $closure-stress/manyClosuresSameEnv~anonymous|0 $closure-stress/manyClosuresSameEnv~anonymous|1 $closure-stress/manyClosuresSameEnv~anonymous|2 $closure-stress/manyClosuresSameEnv~anonymous|3 $closure-stress/manyClosuresSameEnv~anonymous|4 $closure-stress/manyClosuresSameEnv~anonymous|5 $closure-stress/manyCaptures~anonymous|0 $closure-stress/simpleIIFE~anonymous|0 $closure-stress/captureLoopValue~anonymous|0 $closure-stress/interleavedClosures~anonymous|0 $closure-stress/interleavedClosures~anonymous|1 $closure-stress/interleavedClosures~anonymous|2 $closure-stress/interleavedClosures~anonymous|3 $closure-stress/captureString~anonymous|0 $closure-stress/mutateStringRef~anonymous|0 $closure-stress/mutateStringRef~anonymous|1 $closure-stress/testNestedClosureFunctions~anonymous|0~anonymous|0 $closure-stress/testNestedClosureFunctions~anonymous|0 $closure-stress/testRangeWithClosure~anonymous|0 $closure-stress/add~anonymous|0 $closure-stress/testTwoClosuresSameVar~anonymous|0 $closure-stress/testTwoClosuresSameVar~anonymous|1 $closure-stress/testDeeplyNestedClosures~anonymous|0~anonymous|0~anonymous|0 $closure-stress/testDeeplyNestedClosures~anonymous|0~anonymous|0 $closure-stress/testDeeplyNestedClosures~anonymous|0 $closure-stress/makeAdderPair~anonymous|0 $closure-stress/makeAdderPair~anonymous|1) (export "memory" (memory $0)) @@ -174,435 +164,6 @@ local.get $$closureEnv i32.load offset=4 ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 396 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 396 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 396 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 396 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 816 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 816 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1872 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1872 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -667,7 +228,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -737,7 +298,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -754,7 +315,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -784,9 +345,9 @@ i32.load i32.gt_u if - i32.const 2224 - i32.const 2288 - i32.const 21 + i32.const 256 + i32.const 320 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -853,7 +414,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2096 + i32.const 128 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -1005,7 +566,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -1025,7 +586,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1088,7 +649,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1241,7 +802,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1258,7 +819,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1347,7 +908,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1390,7 +951,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1408,7 +969,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1476,7 +1037,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1593,7 +1154,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1639,7 +1200,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1671,7 +1232,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1915,7 +1476,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2135,7 +1696,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2246,8 +1807,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2032 - i32.const 2368 + i32.const 64 + i32.const 400 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2349,7 +1910,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2420,7 +1981,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2577,7 +2138,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2692,7 +2253,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2712,7 +2273,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2760,8 +2321,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2032 - i32.const 2096 + i32.const 64 + i32.const 128 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -3367,7 +2928,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -3923,7 +3484,7 @@ i32.const 42 ) (func $closure-stress/emptyClosure (result i32) - i32.const 4112 + i32.const 2144 return ) (func $closure-stress/captureOnlyNoParams~anonymous|0 (result i32) @@ -4061,7 +3622,7 @@ return ) (func $closure-stress/makeFactorial (result i32) - i32.const 4304 + i32.const 2336 return ) (func $closure-stress/captureSmallTypes~anonymous|0 (result i32) @@ -4271,6 +3832,19 @@ local.get $$closureEnv i32.load offset=4 ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -4555,20 +4129,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 38288 - i32.const 38336 + i32.const 36352 + i32.const 36400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4577,196 +4147,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 160 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 160 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1968 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array<%28%29=>i32>#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -4833,9 +4234,9 @@ i32.shr_u i32.gt_u if - i32.const 3072 - i32.const 3120 - i32.const 70 + i32.const 1104 + i32.const 1152 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -4946,8 +4347,8 @@ i32.shr_u i32.gt_u if - i32.const 3072 - i32.const 3120 + i32.const 1104 + i32.const 1152 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -5011,6 +4412,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -5049,9 +4454,9 @@ i32.const 0 i32.lt_s if - i32.const 2224 - i32.const 3120 - i32.const 130 + i32.const 256 + i32.const 1152 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -5089,6 +4494,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -5119,9 +4528,9 @@ call $~lib/array/Array<%28%29=>i32>#get:length_ i32.ge_u if - i32.const 2224 - i32.const 3120 - i32.const 114 + i32.const 256 + i32.const 1152 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -5149,9 +4558,9 @@ local.get $value i32.eqz if - i32.const 3264 - i32.const 3120 - i32.const 118 + i32.const 1296 + i32.const 1152 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -5412,9 +4821,9 @@ i32.shr_u i32.gt_u if - i32.const 3072 - i32.const 3120 - i32.const 70 + i32.const 1104 + i32.const 1152 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -5509,9 +4918,9 @@ i32.const 0 i32.lt_s if - i32.const 2224 - i32.const 3120 - i32.const 130 + i32.const 256 + i32.const 1152 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -5575,9 +4984,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2224 - i32.const 3120 - i32.const 114 + i32.const 256 + i32.const 1152 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -5983,7 +5392,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 250 i32.const 3 call $~lib/builtins/abort @@ -6018,7 +5427,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 252 i32.const 3 call $~lib/builtins/abort @@ -6795,7 +6204,7 @@ local.get $7 i32.store offset=4 local.get $7 - i32.const 3712 + i32.const 1744 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -7074,9 +6483,9 @@ local.get $entry i32.eqz if - i32.const 3968 - i32.const 4032 - i32.const 105 + i32.const 2000 + i32.const 2064 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -7590,7 +6999,7 @@ i32.const 0 global.set $closure-stress/callCount global.get $~lib/memory/__stack_pointer - i32.const 3872 + i32.const 1904 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 @@ -7617,7 +7026,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -7629,7 +7038,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -7653,7 +7062,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -7665,7 +7074,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -7689,7 +7098,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -7701,7 +7110,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 418 i32.const 3 call $~lib/builtins/abort @@ -7725,7 +7134,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 419 i32.const 3 call $~lib/builtins/abort @@ -7737,7 +7146,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 420 i32.const 3 call $~lib/builtins/abort @@ -7953,6 +7362,113 @@ local.get $3 return ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize + i32.add + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 2912 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) (func $closure-stress/mutateStringRef~anonymous|0 (param $suffix i32) (local $$closureEnv i32) (local $2 i32) @@ -8201,7 +7717,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 730 i32.const 3 call $~lib/builtins/abort @@ -8250,7 +7766,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 733 i32.const 3 call $~lib/builtins/abort @@ -8313,7 +7829,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 741 i32.const 3 call $~lib/builtins/abort @@ -8336,7 +7852,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 742 i32.const 3 call $~lib/builtins/abort @@ -8435,13 +7951,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2176 + i32.const 208 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2320 + i32.const 352 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer @@ -8462,7 +7978,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -8486,7 +8002,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -8510,7 +8026,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -8528,13 +8044,13 @@ global.set $~lib/__closure_env local.get $3 i32.load - call_indirect (type $9) + call_indirect (type $10) i64.const 42 i64.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -8552,13 +8068,13 @@ global.set $~lib/__closure_env local.get $4 i32.load - call_indirect (type $9) + call_indirect (type $10) i64.const 9223372036854775807 i64.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -8576,13 +8092,13 @@ global.set $~lib/__closure_env local.get $5 i32.load - call_indirect (type $10) + call_indirect (type $11) f32.const 3.140000104904175 f32.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -8600,13 +8116,13 @@ global.set $~lib/__closure_env local.get $6 i32.load - call_indirect (type $10) + call_indirect (type $11) f32.const 0 f32.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -8630,7 +8146,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -8654,7 +8170,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -8680,7 +8196,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -8706,7 +8222,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -8732,7 +8248,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 53 i32.const 1 call $~lib/builtins/abort @@ -8758,7 +8274,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -8785,7 +8301,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 60 i32.const 1 call $~lib/builtins/abort @@ -8816,7 +8332,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 69 i32.const 1 call $~lib/builtins/abort @@ -8841,7 +8357,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 77 i32.const 1 call $~lib/builtins/abort @@ -8866,7 +8382,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 92 i32.const 1 call $~lib/builtins/abort @@ -8889,7 +8405,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 93 i32.const 1 call $~lib/builtins/abort @@ -8912,7 +8428,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -8937,7 +8453,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 96 i32.const 1 call $~lib/builtins/abort @@ -8960,7 +8476,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 97 i32.const 1 call $~lib/builtins/abort @@ -8972,7 +8488,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -8984,7 +8500,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 127 i32.const 1 call $~lib/builtins/abort @@ -8996,7 +8512,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 142 i32.const 1 call $~lib/builtins/abort @@ -9023,7 +8539,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 153 i32.const 1 call $~lib/builtins/abort @@ -9047,7 +8563,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 154 i32.const 1 call $~lib/builtins/abort @@ -9076,7 +8592,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -9102,7 +8618,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -9114,7 +8630,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 183 i32.const 1 call $~lib/builtins/abort @@ -9127,7 +8643,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 199 i32.const 1 call $~lib/builtins/abort @@ -9140,7 +8656,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 200 i32.const 1 call $~lib/builtins/abort @@ -9152,7 +8668,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 216 i32.const 1 call $~lib/builtins/abort @@ -9164,7 +8680,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 233 i32.const 1 call $~lib/builtins/abort @@ -9176,7 +8692,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 257 i32.const 1 call $~lib/builtins/abort @@ -9188,7 +8704,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 280 i32.const 1 call $~lib/builtins/abort @@ -9200,7 +8716,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 306 i32.const 1 call $~lib/builtins/abort @@ -9212,7 +8728,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 330 i32.const 1 call $~lib/builtins/abort @@ -9224,7 +8740,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 357 i32.const 1 call $~lib/builtins/abort @@ -9254,7 +8770,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 369 i32.const 1 call $~lib/builtins/abort @@ -9278,7 +8794,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 370 i32.const 1 call $~lib/builtins/abort @@ -9314,7 +8830,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 371 i32.const 1 call $~lib/builtins/abort @@ -9344,7 +8860,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 379 i32.const 1 call $~lib/builtins/abort @@ -9368,7 +8884,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 380 i32.const 1 call $~lib/builtins/abort @@ -9404,7 +8920,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 381 i32.const 1 call $~lib/builtins/abort @@ -9442,7 +8958,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 388 i32.const 1 call $~lib/builtins/abort @@ -9454,7 +8970,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 424 i32.const 1 call $~lib/builtins/abort @@ -9477,7 +8993,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 434 i32.const 1 call $~lib/builtins/abort @@ -9489,7 +9005,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 443 i32.const 1 call $~lib/builtins/abort @@ -9501,7 +9017,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 451 i32.const 1 call $~lib/builtins/abort @@ -9525,7 +9041,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 467 i32.const 1 call $~lib/builtins/abort @@ -9549,7 +9065,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 468 i32.const 1 call $~lib/builtins/abort @@ -9573,7 +9089,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 469 i32.const 1 call $~lib/builtins/abort @@ -9599,7 +9115,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 483 i32.const 1 call $~lib/builtins/abort @@ -9623,7 +9139,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 484 i32.const 1 call $~lib/builtins/abort @@ -9635,7 +9151,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 496 i32.const 1 call $~lib/builtins/abort @@ -9647,7 +9163,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 517 i32.const 1 call $~lib/builtins/abort @@ -9659,7 +9175,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 529 i32.const 1 call $~lib/builtins/abort @@ -9671,7 +9187,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 539 i32.const 1 call $~lib/builtins/abort @@ -9683,7 +9199,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 564 i32.const 1 call $~lib/builtins/abort @@ -9695,7 +9211,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 585 i32.const 1 call $~lib/builtins/abort @@ -9707,12 +9223,12 @@ local.get $41 i32.store offset=132 local.get $41 - i32.const 4784 + i32.const 2816 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 597 i32.const 1 call $~lib/builtins/abort @@ -9724,12 +9240,12 @@ local.get $41 i32.store offset=132 local.get $41 - i32.const 5040 + i32.const 3104 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 611 i32.const 1 call $~lib/builtins/abort @@ -9741,7 +9257,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 634 i32.const 1 call $~lib/builtins/abort @@ -9753,7 +9269,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 654 i32.const 1 call $~lib/builtins/abort @@ -9780,7 +9296,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 662 i32.const 1 call $~lib/builtins/abort @@ -9792,7 +9308,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 682 i32.const 1 call $~lib/builtins/abort @@ -9804,7 +9320,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 707 i32.const 1 call $~lib/builtins/abort @@ -9816,7 +9332,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 746 i32.const 1 call $~lib/builtins/abort @@ -9829,153 +9345,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 192 - i32.const 320 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 384 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $closure-stress/testBidirectionalMutation (result i32) (local $$env i32) (local $value i32) @@ -10065,7 +9434,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 106 i32.const 3 call $~lib/builtins/abort @@ -10101,7 +9470,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -10384,7 +9753,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 136 i32.const 3 call $~lib/builtins/abort @@ -10419,7 +9788,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -10811,8 +10180,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3072 - i32.const 3904 + i32.const 1104 + i32.const 1936 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -10915,7 +10284,7 @@ i32.const 999 local.set $unused global.get $~lib/memory/__stack_pointer - i32.const 4176 + i32.const 2208 local.tee $fn i32.store global.get $~lib/memory/__stack_pointer @@ -11577,7 +10946,7 @@ i32.const 0 i32.store local.get $$env - i32.const 4784 + i32.const 2816 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11641,7 +11010,7 @@ i32.const 0 i32.store local.get $$env - i32.const 4848 + i32.const 2880 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11671,7 +11040,7 @@ local.get $4 local.tee $get i32.store offset=4 - i32.const 4944 + i32.const 3008 global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength @@ -11684,7 +11053,7 @@ local.get $6 i32.load call_indirect (type $5) - i32.const 4976 + i32.const 3040 global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength @@ -11697,7 +11066,7 @@ local.get $7 i32.load call_indirect (type $5) - i32.const 5008 + i32.const 3072 global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength @@ -11926,7 +11295,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 675 i32.const 3 call $~lib/builtins/abort @@ -11951,7 +11320,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 677 i32.const 3 call $~lib/builtins/abort @@ -11964,7 +11333,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 678 i32.const 3 call $~lib/builtins/abort @@ -12162,25 +11531,19 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2224 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3072 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 3968 + i32.const 1104 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2032 + i32.const 1296 local.get $0 call $~lib/rt/itcms/__visit - i32.const 816 + i32.const 2000 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1872 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit ) @@ -12500,6 +11863,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12524,6 +11891,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12548,6 +11919,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12572,6 +11947,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12596,6 +11975,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12620,6 +12003,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12644,6 +12031,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12668,6 +12059,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12692,6 +12087,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12719,6 +12118,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -12786,6 +12189,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -12812,6 +12219,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12837,6 +12248,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -12874,6 +12289,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -12898,6 +12317,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/closure-stress.release.wat b/tests/compiler/closure-stress.release.wat index e36e6864e4..94c5919cd9 100644 --- a/tests/compiler/closure-stress.release.wat +++ b/tests/compiler/closure-stress.release.wat @@ -9,12 +9,13 @@ (type $7 (func (param i32 i32))) (type $8 (func (result i64))) (type $9 (func (result f32))) - (type $10 (func (param i32 i32 i32) (result i32))) - (type $11 (func (param i32 i32 i64))) - (type $12 (func (param i64) (result i32))) - (type $13 (func (param f32) (result i32))) - (type $14 (func (param f64) (result i32))) - (type $15 (func (param i32 i32 i32 i32))) + (type $10 (func (param i32 i32 i32 i32))) + (type $11 (func (param i32 i32 i32) (result i32))) + (type $12 (func (param i32 i32 i64))) + (type $13 (func (param i64) (result i32))) + (type $14 (func (param f32) (result i32))) + (type $15 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/__closure_env (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)) @@ -38,215 +39,196 @@ (global $closure-stress/callCount (mut i32) (i32.const 0)) (global $closure-stress/fact (mut i32) (i32.const 0)) (global $closure-stress/addResult (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 39284)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37348)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "\1c") - (data $4.1 (i32.const 1176) "\02\00\00\00\02\00\00\00:") - (data $5 (i32.const 1196) "|") - (data $5.1 (i32.const 1208) "\02\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 $6 (i32.const 1324) "<") - (data $6.1 (i32.const 1336) "\02\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 $7 (i32.const 1388) "\1c") - (data $7.1 (i32.const 1400) "\02\00\00\00\02\00\00\000") - (data $8 (i32.const 1420) "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 $9 (i32.const 1820) "\1c\04") - (data $9.1 (i32.const 1832) "\02\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 $10 (i32.const 2876) "\\") - (data $10.1 (i32.const 2888) "\02\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 $11 (i32.const 2972) "<") - (data $11.1 (i32.const 2984) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $12 (i32.const 3036) "<") - (data $12.1 (i32.const 3048) "\02\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 $13 (i32.const 3100) "<") - (data $13.1 (i32.const 3112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $16 (i32.const 3228) "<") - (data $16.1 (i32.const 3240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $17 (i32.const 3292) ",") - (data $17.1 (i32.const 3304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $20 (i32.const 3436) "<") - (data $20.1 (i32.const 3448) "\02\00\00\00\"\00\00\00c\00l\00o\00s\00u\00r\00e\00-\00s\00t\00r\00e\00s\00s\00.\00t\00s") - (data $21 (i32.const 3500) "\1c") - (data $21.1 (i32.const 3512) "\05\00\00\00\08\00\00\00\02") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\06\00\00\00\08\00\00\00\03") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\07\00\00\00\08\00\00\00\04") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\08\00\00\00\08\00\00\00\05") - (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\04\00\00\00\08\00\00\00\06") - (data $26 (i32.const 3660) "\1c") - (data $26.1 (i32.const 3672) "\07\00\00\00\08\00\00\00\07") - (data $27 (i32.const 3692) "\1c") - (data $27.1 (i32.const 3704) "\04\00\00\00\08\00\00\00\08") - (data $28 (i32.const 3724) "\1c") - (data $28.1 (i32.const 3736) "\04\00\00\00\08\00\00\00\t") - (data $29 (i32.const 3756) "\1c") - (data $29.1 (i32.const 3768) "\04\00\00\00\08\00\00\00\n") - (data $30 (i32.const 3788) "\1c") - (data $30.1 (i32.const 3800) "\t\00\00\00\08\00\00\00\0b") - (data $31 (i32.const 3820) "\1c") - (data $31.1 (i32.const 3832) "\04\00\00\00\08\00\00\00\0c") - (data $32 (i32.const 3852) "\1c") - (data $32.1 (i32.const 3864) "\n\00\00\00\08\00\00\00\r") - (data $33 (i32.const 3884) "\1c") - (data $33.1 (i32.const 3896) "\n\00\00\00\08\00\00\00\0e") - (data $34 (i32.const 3916) "\1c") - (data $34.1 (i32.const 3928) "\04\00\00\00\08\00\00\00\0f") - (data $35 (i32.const 3948) "\1c") - (data $35.1 (i32.const 3960) "\n\00\00\00\08\00\00\00\10") - (data $36 (i32.const 3980) "\1c") - (data $36.1 (i32.const 3992) "\04\00\00\00\08\00\00\00\11") - (data $37 (i32.const 4012) "\1c") - (data $37.1 (i32.const 4024) "\0b\00\00\00\08\00\00\00\12") - (data $38 (i32.const 4044) "\1c") - (data $38.1 (i32.const 4056) "\0c\00\00\00\08\00\00\00\13") - (data $39 (i32.const 4076) ",") - (data $39.1 (i32.const 4088) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $40 (i32.const 4124) ",") - (data $40.1 (i32.const 4136) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $41 (i32.const 4172) "\1c") - (data $41.1 (i32.const 4184) "\04\00\00\00\08\00\00\00\14") - (data $42 (i32.const 4204) "\1c") - (data $42.1 (i32.const 4216) "\04\00\00\00\08\00\00\00\15") - (data $43 (i32.const 4236) "\1c") - (data $43.1 (i32.const 4248) "\04\00\00\00\08\00\00\00\16") - (data $44 (i32.const 4268) "|") - (data $44.1 (i32.const 4280) "\02\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 $45 (i32.const 4396) "\1c") - (data $45.1 (i32.const 4408) "\04\00\00\00\08\00\00\00\17") - (data $46 (i32.const 4428) "\1c") - (data $46.1 (i32.const 4440) "\04\00\00\00\08\00\00\00\18") - (data $47 (i32.const 4460) "\1c") - (data $47.1 (i32.const 4472) "\04\00\00\00\08\00\00\00\19") - (data $48 (i32.const 4492) "\1c") - (data $48.1 (i32.const 4504) "\04\00\00\00\08\00\00\00\1a") - (data $49 (i32.const 4524) "\1c") - (data $49.1 (i32.const 4536) "\n\00\00\00\08\00\00\00\1b") - (data $50 (i32.const 4556) "\1c") - (data $50.1 (i32.const 4568) "\04\00\00\00\08\00\00\00\1c") - (data $51 (i32.const 4588) "\1c") - (data $51.1 (i32.const 4600) "\n\00\00\00\08\00\00\00\1d") - (data $52 (i32.const 4620) "\1c") - (data $52.1 (i32.const 4632) "\04\00\00\00\08\00\00\00\1e") - (data $53 (i32.const 4652) "\1c") - (data $53.1 (i32.const 4664) "\0b\00\00\00\08\00\00\00\1f") - (data $54 (i32.const 4684) "\1c") - (data $54.1 (i32.const 4696) "\0c\00\00\00\08\00\00\00 ") - (data $55 (i32.const 4716) "\1c") - (data $55.1 (i32.const 4728) "\10\00\00\00\08\00\00\00!") - (data $56 (i32.const 4748) "\1c") - (data $56.1 (i32.const 4760) "\04\00\00\00\08\00\00\00\"") - (data $57 (i32.const 4780) "\1c") - (data $57.1 (i32.const 4792) "\0b\00\00\00\08\00\00\00#") - (data $58 (i32.const 4812) "\1c") - (data $58.1 (i32.const 4824) "\0b\00\00\00\08\00\00\00$") - (data $59 (i32.const 4844) "\1c") - (data $59.1 (i32.const 4856) "\0b\00\00\00\08\00\00\00%") - (data $60 (i32.const 4876) "\1c") - (data $60.1 (i32.const 4888) "\0b\00\00\00\08\00\00\00&") - (data $61 (i32.const 4908) "<") - (data $61.1 (i32.const 4920) "\02\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 $62 (i32.const 4972) "<") - (data $62.1 (i32.const 4984) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data $63 (i32.const 5036) ",") - (data $63.1 (i32.const 5048) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data $64 (i32.const 5084) "\1c") - (data $64.1 (i32.const 5096) "\0b\00\00\00\08\00\00\00\'") - (data $65 (i32.const 5116) "\1c") - (data $65.1 (i32.const 5128) "\04\00\00\00\08\00\00\00(") - (data $66 (i32.const 5148) "\1c") - (data $66.1 (i32.const 5160) "\04\00\00\00\08\00\00\00)") - (data $67 (i32.const 5180) "\1c") - (data $67.1 (i32.const 5192) "\04\00\00\00\08\00\00\00*") - (data $68 (i32.const 5212) "\1c") - (data $68.1 (i32.const 5224) "\04\00\00\00\08\00\00\00+") - (data $69 (i32.const 5244) "\1c") - (data $69.1 (i32.const 5256) "\04\00\00\00\08\00\00\00,") - (data $70 (i32.const 5276) "\1c") - (data $70.1 (i32.const 5288) "\04\00\00\00\08\00\00\00-") - (data $71 (i32.const 5308) "\1c") - (data $71.1 (i32.const 5320) "\0b\00\00\00\08\00\00\00.") - (data $72 (i32.const 5340) "\1c") - (data $72.1 (i32.const 5352) "\04\00\00\00\08\00\00\00/") - (data $73 (i32.const 5372) "\1c") - (data $73.1 (i32.const 5384) "\n\00\00\00\08\00\00\000") - (data $74 (i32.const 5404) "\1c") - (data $74.1 (i32.const 5416) "\n\00\00\00\08\00\00\001") - (data $75 (i32.const 5436) "\1c") - (data $75.1 (i32.const 5448) "\n\00\00\00\08\00\00\002") - (data $76 (i32.const 5468) "\1c") - (data $76.1 (i32.const 5480) "\n\00\00\00\08\00\00\003") - (data $77 (i32.const 5500) "\1c") - (data $77.1 (i32.const 5512) "\n\00\00\00\08\00\00\004") - (data $78 (i32.const 5532) "\1c") - (data $78.1 (i32.const 5544) "\04\00\00\00\08\00\00\005") - (data $79 (i32.const 5564) "\1c") - (data $79.1 (i32.const 5576) "\04\00\00\00\08\00\00\006") - (data $80 (i32.const 5596) "\1c") - (data $80.1 (i32.const 5608) "\04\00\00\00\08\00\00\007") - (data $81 (i32.const 5628) "\1c") - (data $81.1 (i32.const 5640) "\04\00\00\00\08\00\00\008") - (data $82 (i32.const 5660) "\1c") - (data $82.1 (i32.const 5672) "\04\00\00\00\08\00\00\009") - (data $83 (i32.const 5692) "\1c") - (data $83.1 (i32.const 5704) "\n\00\00\00\08\00\00\00:") - (data $84 (i32.const 5724) "\1c") - (data $84.1 (i32.const 5736) "\n\00\00\00\08\00\00\00;") - (data $85 (i32.const 5756) "\1c") - (data $85.1 (i32.const 5768) "\n\00\00\00\08\00\00\00<") - (data $86 (i32.const 5788) "\1c") - (data $86.1 (i32.const 5800) "\02\00\00\00\n\00\00\00H\00e\00l\00l\00o") - (data $87 (i32.const 5820) "\1c") - (data $87.1 (i32.const 5832) "\12\00\00\00\08\00\00\00=") - (data $88 (i32.const 5852) "\1c") - (data $88.1 (i32.const 5864) "\02\00\00\00\02\00\00\00A") - (data $89 (i32.const 5884) "\1c") - (data $89.1 (i32.const 5896) "\13\00\00\00\08\00\00\00>") - (data $90 (i32.const 5916) "\1c") - (data $90.1 (i32.const 5928) "\12\00\00\00\08\00\00\00?") - (data $91 (i32.const 5948) "\1c") - (data $91.1 (i32.const 5960) "\02\00\00\00\02\00\00\00B") - (data $92 (i32.const 5980) "\1c") - (data $92.1 (i32.const 5992) "\02\00\00\00\02\00\00\00C") - (data $93 (i32.const 6012) "\1c") - (data $93.1 (i32.const 6024) "\02\00\00\00\02\00\00\00D") - (data $94 (i32.const 6044) "\1c") - (data $94.1 (i32.const 6056) "\02\00\00\00\08\00\00\00A\00B\00C\00D") - (data $95 (i32.const 6076) "\1c") - (data $95.1 (i32.const 6088) "\04\00\00\00\08\00\00\00@") - (data $96 (i32.const 6108) "\1c") - (data $96.1 (i32.const 6120) "\04\00\00\00\08\00\00\00A") - (data $97 (i32.const 6140) "\1c") - (data $97.1 (i32.const 6152) "\t\00\00\00\08\00\00\00B") - (data $98 (i32.const 6172) "\1c") - (data $98.1 (i32.const 6184) "\04\00\00\00\08\00\00\00C") - (data $99 (i32.const 6204) "\1c") - (data $99.1 (i32.const 6216) "\04\00\00\00\08\00\00\00D") - (data $100 (i32.const 6236) "\1c") - (data $100.1 (i32.const 6248) "\04\00\00\00\08\00\00\00E") - (data $101 (i32.const 6268) "\1c") - (data $101.1 (i32.const 6280) "\04\00\00\00\08\00\00\00F") - (data $102 (i32.const 6300) "\1c") - (data $102.1 (i32.const 6312) "\04\00\00\00\08\00\00\00G") - (data $103 (i32.const 6332) "\1c") - (data $103.1 (i32.const 6344) "\04\00\00\00\08\00\00\00H") - (data $104 (i32.const 6364) "\1c") - (data $104.1 (i32.const 6376) "\04\00\00\00\08\00\00\00I") - (data $105 (i32.const 6396) "\1c") - (data $105.1 (i32.const 6408) "\04\00\00\00\08\00\00\00J") - (data $106 (i32.const 6432) "\14\00\00\00 \00\00\00 \00\00\00 ") - (data $106.1 (i32.const 6488) "\02A\00\00\02\t\00\00 \00\00\00\00\00\00\00\10\t\12") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\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 $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1324) ",") + (data $6.1 (i32.const 1336) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1468) "<") + (data $9.1 (i32.const 1480) "\02\00\00\00\"\00\00\00c\00l\00o\00s\00u\00r\00e\00-\00s\00t\00r\00e\00s\00s\00.\00t\00s") + (data $10 (i32.const 1532) "\1c") + (data $10.1 (i32.const 1544) "\05\00\00\00\08\00\00\00\02") + (data $11 (i32.const 1564) "\1c") + (data $11.1 (i32.const 1576) "\06\00\00\00\08\00\00\00\03") + (data $12 (i32.const 1596) "\1c") + (data $12.1 (i32.const 1608) "\07\00\00\00\08\00\00\00\04") + (data $13 (i32.const 1628) "\1c") + (data $13.1 (i32.const 1640) "\08\00\00\00\08\00\00\00\05") + (data $14 (i32.const 1660) "\1c") + (data $14.1 (i32.const 1672) "\04\00\00\00\08\00\00\00\06") + (data $15 (i32.const 1692) "\1c") + (data $15.1 (i32.const 1704) "\07\00\00\00\08\00\00\00\07") + (data $16 (i32.const 1724) "\1c") + (data $16.1 (i32.const 1736) "\04\00\00\00\08\00\00\00\08") + (data $17 (i32.const 1756) "\1c") + (data $17.1 (i32.const 1768) "\04\00\00\00\08\00\00\00\t") + (data $18 (i32.const 1788) "\1c") + (data $18.1 (i32.const 1800) "\04\00\00\00\08\00\00\00\n") + (data $19 (i32.const 1820) "\1c") + (data $19.1 (i32.const 1832) "\t\00\00\00\08\00\00\00\0b") + (data $20 (i32.const 1852) "\1c") + (data $20.1 (i32.const 1864) "\04\00\00\00\08\00\00\00\0c") + (data $21 (i32.const 1884) "\1c") + (data $21.1 (i32.const 1896) "\n\00\00\00\08\00\00\00\r") + (data $22 (i32.const 1916) "\1c") + (data $22.1 (i32.const 1928) "\n\00\00\00\08\00\00\00\0e") + (data $23 (i32.const 1948) "\1c") + (data $23.1 (i32.const 1960) "\04\00\00\00\08\00\00\00\0f") + (data $24 (i32.const 1980) "\1c") + (data $24.1 (i32.const 1992) "\n\00\00\00\08\00\00\00\10") + (data $25 (i32.const 2012) "\1c") + (data $25.1 (i32.const 2024) "\04\00\00\00\08\00\00\00\11") + (data $26 (i32.const 2044) "\1c") + (data $26.1 (i32.const 2056) "\0b\00\00\00\08\00\00\00\12") + (data $27 (i32.const 2076) "\1c") + (data $27.1 (i32.const 2088) "\0c\00\00\00\08\00\00\00\13") + (data $28 (i32.const 2108) ",") + (data $28.1 (i32.const 2120) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $29 (i32.const 2156) ",") + (data $29.1 (i32.const 2168) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $30 (i32.const 2204) "\1c") + (data $30.1 (i32.const 2216) "\04\00\00\00\08\00\00\00\14") + (data $31 (i32.const 2236) "\1c") + (data $31.1 (i32.const 2248) "\04\00\00\00\08\00\00\00\15") + (data $32 (i32.const 2268) "\1c") + (data $32.1 (i32.const 2280) "\04\00\00\00\08\00\00\00\16") + (data $33 (i32.const 2300) "|") + (data $33.1 (i32.const 2312) "\02\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 $34 (i32.const 2428) "\1c") + (data $34.1 (i32.const 2440) "\04\00\00\00\08\00\00\00\17") + (data $35 (i32.const 2460) "\1c") + (data $35.1 (i32.const 2472) "\04\00\00\00\08\00\00\00\18") + (data $36 (i32.const 2492) "\1c") + (data $36.1 (i32.const 2504) "\04\00\00\00\08\00\00\00\19") + (data $37 (i32.const 2524) "\1c") + (data $37.1 (i32.const 2536) "\04\00\00\00\08\00\00\00\1a") + (data $38 (i32.const 2556) "\1c") + (data $38.1 (i32.const 2568) "\n\00\00\00\08\00\00\00\1b") + (data $39 (i32.const 2588) "\1c") + (data $39.1 (i32.const 2600) "\04\00\00\00\08\00\00\00\1c") + (data $40 (i32.const 2620) "\1c") + (data $40.1 (i32.const 2632) "\n\00\00\00\08\00\00\00\1d") + (data $41 (i32.const 2652) "\1c") + (data $41.1 (i32.const 2664) "\04\00\00\00\08\00\00\00\1e") + (data $42 (i32.const 2684) "\1c") + (data $42.1 (i32.const 2696) "\0b\00\00\00\08\00\00\00\1f") + (data $43 (i32.const 2716) "\1c") + (data $43.1 (i32.const 2728) "\0c\00\00\00\08\00\00\00 ") + (data $44 (i32.const 2748) "\1c") + (data $44.1 (i32.const 2760) "\10\00\00\00\08\00\00\00!") + (data $45 (i32.const 2780) "\1c") + (data $45.1 (i32.const 2792) "\04\00\00\00\08\00\00\00\"") + (data $46 (i32.const 2812) "\1c") + (data $46.1 (i32.const 2824) "\0b\00\00\00\08\00\00\00#") + (data $47 (i32.const 2844) "\1c") + (data $47.1 (i32.const 2856) "\0b\00\00\00\08\00\00\00$") + (data $48 (i32.const 2876) "\1c") + (data $48.1 (i32.const 2888) "\0b\00\00\00\08\00\00\00%") + (data $49 (i32.const 2908) "\1c") + (data $49.1 (i32.const 2920) "\0b\00\00\00\08\00\00\00&") + (data $50 (i32.const 2940) "<") + (data $50.1 (i32.const 2952) "\02\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 $51 (i32.const 3004) "<") + (data $51.1 (i32.const 3016) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data $52 (i32.const 3068) ",") + (data $52.1 (i32.const 3080) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data $53 (i32.const 3116) "\1c") + (data $53.1 (i32.const 3128) "\0b\00\00\00\08\00\00\00\'") + (data $54 (i32.const 3148) "\1c") + (data $54.1 (i32.const 3160) "\04\00\00\00\08\00\00\00(") + (data $55 (i32.const 3180) "\1c") + (data $55.1 (i32.const 3192) "\04\00\00\00\08\00\00\00)") + (data $56 (i32.const 3212) "\1c") + (data $56.1 (i32.const 3224) "\04\00\00\00\08\00\00\00*") + (data $57 (i32.const 3244) "\1c") + (data $57.1 (i32.const 3256) "\04\00\00\00\08\00\00\00+") + (data $58 (i32.const 3276) "\1c") + (data $58.1 (i32.const 3288) "\04\00\00\00\08\00\00\00,") + (data $59 (i32.const 3308) "\1c") + (data $59.1 (i32.const 3320) "\04\00\00\00\08\00\00\00-") + (data $60 (i32.const 3340) "\1c") + (data $60.1 (i32.const 3352) "\0b\00\00\00\08\00\00\00.") + (data $61 (i32.const 3372) "\1c") + (data $61.1 (i32.const 3384) "\04\00\00\00\08\00\00\00/") + (data $62 (i32.const 3404) "\1c") + (data $62.1 (i32.const 3416) "\n\00\00\00\08\00\00\000") + (data $63 (i32.const 3436) "\1c") + (data $63.1 (i32.const 3448) "\n\00\00\00\08\00\00\001") + (data $64 (i32.const 3468) "\1c") + (data $64.1 (i32.const 3480) "\n\00\00\00\08\00\00\002") + (data $65 (i32.const 3500) "\1c") + (data $65.1 (i32.const 3512) "\n\00\00\00\08\00\00\003") + (data $66 (i32.const 3532) "\1c") + (data $66.1 (i32.const 3544) "\n\00\00\00\08\00\00\004") + (data $67 (i32.const 3564) "\1c") + (data $67.1 (i32.const 3576) "\04\00\00\00\08\00\00\005") + (data $68 (i32.const 3596) "\1c") + (data $68.1 (i32.const 3608) "\04\00\00\00\08\00\00\006") + (data $69 (i32.const 3628) "\1c") + (data $69.1 (i32.const 3640) "\04\00\00\00\08\00\00\007") + (data $70 (i32.const 3660) "\1c") + (data $70.1 (i32.const 3672) "\04\00\00\00\08\00\00\008") + (data $71 (i32.const 3692) "\1c") + (data $71.1 (i32.const 3704) "\04\00\00\00\08\00\00\009") + (data $72 (i32.const 3724) "\1c") + (data $72.1 (i32.const 3736) "\n\00\00\00\08\00\00\00:") + (data $73 (i32.const 3756) "\1c") + (data $73.1 (i32.const 3768) "\n\00\00\00\08\00\00\00;") + (data $74 (i32.const 3788) "\1c") + (data $74.1 (i32.const 3800) "\n\00\00\00\08\00\00\00<") + (data $75 (i32.const 3820) "\1c") + (data $75.1 (i32.const 3832) "\02\00\00\00\n\00\00\00H\00e\00l\00l\00o") + (data $76 (i32.const 3852) "\1c") + (data $76.1 (i32.const 3864) "\12\00\00\00\08\00\00\00=") + (data $77 (i32.const 3884) "\1c") + (data $77.1 (i32.const 3896) "\02\00\00\00\02\00\00\00A") + (data $78 (i32.const 3916) "\1c") + (data $78.1 (i32.const 3928) "\02") + (data $79 (i32.const 3948) "\1c") + (data $79.1 (i32.const 3960) "\13\00\00\00\08\00\00\00>") + (data $80 (i32.const 3980) "\1c") + (data $80.1 (i32.const 3992) "\12\00\00\00\08\00\00\00?") + (data $81 (i32.const 4012) "\1c") + (data $81.1 (i32.const 4024) "\02\00\00\00\02\00\00\00B") + (data $82 (i32.const 4044) "\1c") + (data $82.1 (i32.const 4056) "\02\00\00\00\02\00\00\00C") + (data $83 (i32.const 4076) "\1c") + (data $83.1 (i32.const 4088) "\02\00\00\00\02\00\00\00D") + (data $84 (i32.const 4108) "\1c") + (data $84.1 (i32.const 4120) "\02\00\00\00\08\00\00\00A\00B\00C\00D") + (data $85 (i32.const 4140) "\1c") + (data $85.1 (i32.const 4152) "\04\00\00\00\08\00\00\00@") + (data $86 (i32.const 4172) "\1c") + (data $86.1 (i32.const 4184) "\04\00\00\00\08\00\00\00A") + (data $87 (i32.const 4204) "\1c") + (data $87.1 (i32.const 4216) "\t\00\00\00\08\00\00\00B") + (data $88 (i32.const 4236) "\1c") + (data $88.1 (i32.const 4248) "\04\00\00\00\08\00\00\00C") + (data $89 (i32.const 4268) "\1c") + (data $89.1 (i32.const 4280) "\04\00\00\00\08\00\00\00D") + (data $90 (i32.const 4300) "\1c") + (data $90.1 (i32.const 4312) "\04\00\00\00\08\00\00\00E") + (data $91 (i32.const 4332) "\1c") + (data $91.1 (i32.const 4344) "\04\00\00\00\08\00\00\00F") + (data $92 (i32.const 4364) "\1c") + (data $92.1 (i32.const 4376) "\04\00\00\00\08\00\00\00G") + (data $93 (i32.const 4396) "\1c") + (data $93.1 (i32.const 4408) "\04\00\00\00\08\00\00\00H") + (data $94 (i32.const 4428) "\1c") + (data $94.1 (i32.const 4440) "\04\00\00\00\08\00\00\00I") + (data $95 (i32.const 4460) "\1c") + (data $95.1 (i32.const 4472) "\04\00\00\00\08\00\00\00J") + (data $96 (i32.const 4496) "\14\00\00\00 \00\00\00 \00\00\00 ") + (data $96.1 (i32.const 4552) "\02A\00\00\02\t\00\00 \00\00\00\00\00\00\00\10\t\12") (table $0 75 75 funcref) (elem $0 (i32.const 1) $closure-stress/captureI32Param~anonymous|0 $closure-stress/captureI64Param~anonymous|0 $closure-stress/captureF32Param~anonymous|0 $closure-stress/captureF64Param~anonymous|0 $closure-stress/captureBool~anonymous|0 $closure-stress/captureMultipleI32~anonymous|0 $closure-stress/captureMixedTypes~anonymous|0 $closure-stress/capture8Params~anonymous|0 $closure-stress/captureParamsAndLocals~anonymous|0 $closure-stress/makeCounter~anonymous|0 $closure-stress/testBidirectionalMutation~anonymous|0 $closure-stress/captureI32Param~anonymous|0 $closure-stress/testSharedMutation~anonymous|0 $closure-stress/testSharedMutation~anonymous|1 $closure-stress/captureI32Param~anonymous|0 $closure-stress/testOuterScopeMutation~anonymous|0 $closure-stress/captureI32Param~anonymous|0 $closure-stress/curriedAdd~anonymous|0 $closure-stress/makeGreaterThan~anonymous|0 $closure-stress/captureI32Param~anonymous|0 $closure-stress/simpleClosureArray~anonymous|1 $closure-stress/simpleClosureArray~anonymous|2 $closure-stress/captureI32Param~anonymous|0 $closure-stress/simpleClosureArray~anonymous|1 $closure-stress/captureI32Param~anonymous|0 $closure-stress/captureArray~anonymous|0 $closure-stress/mutateCapturedArray~anonymous|0 $closure-stress/captureArray~anonymous|0 $closure-stress/captureClassInstance~anonymous|0 $closure-stress/captureClassInstance~anonymous|1 $closure-stress/testMapWithClosure~anonymous|0 $closure-stress/testFilterWithClosure~anonymous|0 $closure-stress/testReduceWithClosure~anonymous|0 $closure-stress/testReduceWithClosure~anonymous|1 $closure-stress/makeAdder~anonymous|0 $closure-stress/testMapWithClosure~anonymous|0 $closure-stress/compose~anonymous|0 $closure-stress/expensiveComputation $closure-stress/memoize~anonymous|0 $closure-stress/emptyClosure~anonymous|0 $closure-stress/testReduceWithClosure~anonymous|1 $closure-stress/emptyClosure~anonymous|0 $closure-stress/captureI32Param~anonymous|0 $closure-stress/simpleClosureArray~anonymous|1 $closure-stress/simpleClosureArray~anonymous|2 $closure-stress/makeFactorial~anonymous|0 $closure-stress/captureSmallTypes~anonymous|0 $closure-stress/testSharedMutation~anonymous|0 $closure-stress/manyClosuresSameEnv~anonymous|1 $closure-stress/manyClosuresSameEnv~anonymous|2 $closure-stress/manyClosuresSameEnv~anonymous|3 $closure-stress/manyClosuresSameEnv~anonymous|4 $closure-stress/captureI32Param~anonymous|0 $closure-stress/manyCaptures~anonymous|0 $closure-stress/simpleIIFE~anonymous|0 $closure-stress/captureI32Param~anonymous|0 $closure-stress/captureI32Param~anonymous|0 $closure-stress/testSharedMutation~anonymous|0 $closure-stress/interleavedClosures~anonymous|2 $closure-stress/interleavedClosures~anonymous|3 $closure-stress/captureString~anonymous|0 $closure-stress/mutateStringRef~anonymous|0 $closure-stress/captureString~anonymous|0 $closure-stress/makeCounter~anonymous|0 $closure-stress/testNestedClosureFunctions~anonymous|0 $closure-stress/testRangeWithClosure~anonymous|0 $closure-stress/testReduceWithClosure~anonymous|1 $closure-stress/captureI32Param~anonymous|0 $closure-stress/makeCounter~anonymous|0 $closure-stress/testDeeplyNestedClosures~anonymous|0~anonymous|0~anonymous|0 $closure-stress/testDeeplyNestedClosures~anonymous|0~anonymous|0 $closure-stress/testDeeplyNestedClosures~anonymous|0 $closure-stress/makeCounter~anonymous|0 $closure-stress/captureI32Param~anonymous|0) (export "memory" (memory $0)) @@ -255,220 +237,18 @@ global.get $~lib/__closure_env i32.load offset=4 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 6516 - i32.lt_s - if - i32.const 39312 - i32.const 39360 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1408 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1420 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1420 - 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 1420 - 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 1420 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3248 - call $~lib/rt/itcms/__visit - i32.const 4096 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 4288 + i32.const 2128 call $~lib/rt/itcms/__visit - i32.const 4992 + i32.const 2320 call $~lib/rt/itcms/__visit - i32.const 3056 + i32.const 3024 call $~lib/rt/itcms/__visit - i32.const 1840 - call $~lib/rt/itcms/__visit - i32.const 2896 + i32.const 1088 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -489,7 +269,7 @@ i32.ne if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -522,7 +302,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -531,7 +311,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$375 + block $__inlined_func$~lib/rt/itcms/Object#unlink$369 local.get $0 i32.load offset=4 i32.const -4 @@ -543,19 +323,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 39284 + i32.const 37348 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$375 + br $__inlined_func$~lib/rt/itcms/Object#unlink$369 end local.get $0 i32.load offset=8 @@ -563,7 +343,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -592,13 +372,13 @@ i32.const 1 else local.get $1 - i32.const 6432 + i32.const 4496 i32.load i32.gt_u if - i32.const 3248 - i32.const 3312 - i32.const 21 + i32.const 1280 + i32.const 1344 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -606,7 +386,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 6436 + i32.const 4500 i32.add i32.load i32.const 32 @@ -677,7 +457,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -691,7 +471,7 @@ i32.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -737,7 +517,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -820,7 +600,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -834,7 +614,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -895,7 +675,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -928,7 +708,7 @@ i32.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -943,7 +723,7 @@ i32.ne if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -994,7 +774,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1066,7 +846,7 @@ i64.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1091,7 +871,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1118,7 +898,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1190,10 +970,10 @@ if unreachable end - i32.const 39296 + i32.const 37360 i32.const 0 i32.store - i32.const 40864 + i32.const 38928 i32.const 0 i32.store loop $for-loop|0 @@ -1204,7 +984,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 39296 + i32.const 37360 i32.add i32.const 0 i32.store offset=4 @@ -1222,7 +1002,7 @@ i32.add i32.const 2 i32.shl - i32.const 39296 + i32.const 37360 i32.add i32.const 0 i32.store offset=96 @@ -1240,14 +1020,14 @@ br $for-loop|0 end end - i32.const 39296 - i32.const 40868 + i32.const 37360 + i32.const 38932 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 39296 + i32.const 37360 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1332,7 +1112,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 39284 + i32.const 37348 i32.lt_u if local.get $0 @@ -1421,14 +1201,14 @@ i32.ne if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 39284 + i32.const 37348 i32.lt_u if local.get $0 @@ -1451,7 +1231,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 39284 + i32.const 37348 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1480,7 +1260,7 @@ end if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1564,7 +1344,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1616,7 +1396,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1646,8 +1426,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3056 - i32.const 3392 + i32.const 1088 + i32.const 1424 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1749,7 +1529,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1764,7 +1544,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1783,7 +1563,7 @@ i32.and if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1850,8 +1630,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3056 - i32.const 3120 + i32.const 1088 + i32.const 1152 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1861,7 +1641,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1878,7 +1658,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -2335,7 +2115,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2735,205 +2515,40 @@ (func $~start call $start:closure-stress ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 6516 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 6516 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$380 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$380 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 39312 - i32.const 39360 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1184 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1184 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2992 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array<%28%29=>i32>#constructor (param $0 i32) (result i32) (local $1 i32) @@ -2944,11 +2559,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2998,9 +2613,9 @@ i32.const 268435455 i32.gt_u if - i32.const 4096 - i32.const 4144 - i32.const 70 + i32.const 2128 + i32.const 2176 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -3065,11 +2680,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3093,8 +2708,8 @@ i32.const 268435455 i32.gt_u if - i32.const 4096 - i32.const 4144 + i32.const 2128 + i32.const 2176 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -3103,7 +2718,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$308 + block $__inlined_func$~lib/rt/itcms/__renew$299 i32.const 1073741820 local.get $2 i32.const 1 @@ -3146,7 +2761,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$308 + br $__inlined_func$~lib/rt/itcms/__renew$299 end local.get $3 local.get $4 @@ -3195,11 +2810,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3220,9 +2835,9 @@ i32.const 0 i32.lt_s if - i32.const 3248 - i32.const 4144 - i32.const 130 + i32.const 1280 + i32.const 2176 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3266,11 +2881,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3287,9 +2902,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3248 - i32.const 4144 - i32.const 114 + i32.const 1280 + i32.const 2176 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3310,9 +2925,9 @@ local.get $0 i32.eqz if - i32.const 4288 - i32.const 4144 - i32.const 118 + i32.const 2320 + i32.const 2176 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -3332,11 +2947,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3386,9 +3001,9 @@ i32.const 268435455 i32.gt_u if - i32.const 4096 - i32.const 4144 - i32.const 70 + i32.const 2128 + i32.const 2176 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -3451,11 +3066,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3476,9 +3091,9 @@ i32.const 0 i32.lt_s if - i32.const 3248 - i32.const 4144 - i32.const 130 + i32.const 1280 + i32.const 2176 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3518,11 +3133,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3539,9 +3154,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3248 - i32.const 4144 - i32.const 114 + i32.const 1280 + i32.const 2176 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3570,11 +3185,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3628,11 +3243,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3709,11 +3324,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3751,11 +3366,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3782,11 +3397,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3812,11 +3427,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3895,7 +3510,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3998,7 +3613,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4248,8 +3863,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4266,7 +3881,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4283,7 +3898,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4341,7 +3956,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4373,9 +3988,9 @@ local.tee $0 i32.eqz if - i32.const 4992 - i32.const 5056 - i32.const 105 + i32.const 3024 + i32.const 3088 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -4421,8 +4036,8 @@ local.get $1 return end - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4438,11 +4053,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4541,7 +4156,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$218 + block $__inlined_func$~lib/util/string/compareImpl$215 loop $while-continue|1 local.get $0 local.tee $3 @@ -4561,7 +4176,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$218 + br_if $__inlined_func$~lib/util/string/compareImpl$215 local.get $2 i32.const 2 i32.add @@ -4593,42 +4208,133 @@ (func $closure-stress/mutateStringRef~anonymous|0 (param $0 i32) (local $1 i32) (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 - global.get $~lib/memory/__stack_pointer - i32.const 6516 - i32.lt_s - if - i32.const 39312 - i32.const 39360 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/__closure_env + local.tee $4 + i32.load offset=4 + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + 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 4580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + 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 4580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + i32.store + block $__inlined_func$~lib/string/String#concat$374 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $5 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3936 + local.set $0 + br $__inlined_func$~lib/string/String#concat$374 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $5 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $0 + i32.store offset=4 + 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/__closure_env - local.tee $1 - i32.load offset=4 - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $0 - call $~lib/string/String.__concat - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 37376 + i32.const 37424 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $closure-stress/makeAdderPair (param $0 i32) (result i32) (local $1 i32) @@ -4638,11 +4344,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4735,7 +4441,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4745,34 +4451,34 @@ memory.size i32.const 16 i32.shl - i32.const 39284 + i32.const 37348 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/pinSpace - i32.const 3204 - i32.const 3200 + i32.const 1236 + i32.const 1232 i32.store - i32.const 3208 - i32.const 3200 + i32.const 1240 + i32.const 1232 i32.store - i32.const 3200 + i32.const 1232 global.set $~lib/rt/itcms/toSpace - i32.const 3348 - i32.const 3344 + i32.const 1380 + i32.const 1376 i32.store - i32.const 3352 - i32.const 3344 + i32.const 1384 + i32.const 1376 i32.store - i32.const 3344 + i32.const 1376 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 42 @@ -4789,7 +4495,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -4810,7 +4516,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -4831,7 +4537,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -4852,7 +4558,7 @@ i64.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -4873,7 +4579,7 @@ i64.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -4894,7 +4600,7 @@ f32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -4915,7 +4621,7 @@ f32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -4936,7 +4642,7 @@ f64.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -4957,7 +4663,7 @@ f64.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -4977,7 +4683,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -4996,7 +4702,7 @@ call_indirect (type $0) if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -5019,7 +4725,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 53 i32.const 1 call $~lib/builtins/abort @@ -5042,7 +4748,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -5095,7 +4801,7 @@ f64.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 60 i32.const 1 call $~lib/builtins/abort @@ -5160,7 +4866,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 69 i32.const 1 call $~lib/builtins/abort @@ -5213,7 +4919,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 77 i32.const 1 call $~lib/builtins/abort @@ -5235,7 +4941,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 92 i32.const 1 call $~lib/builtins/abort @@ -5255,7 +4961,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 93 i32.const 1 call $~lib/builtins/abort @@ -5275,7 +4981,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -5297,7 +5003,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 96 i32.const 1 call $~lib/builtins/abort @@ -5317,7 +5023,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 97 i32.const 1 call $~lib/builtins/abort @@ -5328,7 +5034,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5400,7 +5106,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 106 i32.const 3 call $~lib/builtins/abort @@ -5429,7 +5135,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -5452,7 +5158,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -5463,7 +5169,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5595,7 +5301,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 127 i32.const 1 call $~lib/builtins/abort @@ -5606,7 +5312,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5677,7 +5383,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 136 i32.const 3 call $~lib/builtins/abort @@ -5705,7 +5411,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -5728,7 +5434,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 142 i32.const 1 call $~lib/builtins/abort @@ -5776,7 +5482,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 153 i32.const 1 call $~lib/builtins/abort @@ -5797,7 +5503,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 154 i32.const 1 call $~lib/builtins/abort @@ -5844,7 +5550,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -5863,7 +5569,7 @@ call_indirect (type $1) if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -5874,7 +5580,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6026,7 +5732,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 183 i32.const 1 call $~lib/builtins/abort @@ -6038,7 +5744,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 199 i32.const 1 call $~lib/builtins/abort @@ -6050,7 +5756,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 200 i32.const 1 call $~lib/builtins/abort @@ -6061,7 +5767,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6125,7 +5831,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 216 i32.const 1 call $~lib/builtins/abort @@ -6136,7 +5842,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6218,7 +5924,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 233 i32.const 1 call $~lib/builtins/abort @@ -6229,7 +5935,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6319,7 +6025,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 250 i32.const 3 call $~lib/builtins/abort @@ -6347,7 +6053,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 252 i32.const 3 call $~lib/builtins/abort @@ -6379,7 +6085,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 257 i32.const 1 call $~lib/builtins/abort @@ -6390,7 +6096,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6417,7 +6123,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6438,7 +6144,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6541,7 +6247,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 280 i32.const 1 call $~lib/builtins/abort @@ -6552,7 +6258,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6624,7 +6330,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6719,7 +6425,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 306 i32.const 1 call $~lib/builtins/abort @@ -6730,7 +6436,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6804,7 +6510,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6858,7 +6564,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6923,7 +6629,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 330 i32.const 1 call $~lib/builtins/abort @@ -6938,7 +6644,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7007,14 +6713,14 @@ local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4736 + i32.const 2768 i32.store offset=8 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 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7037,14 +6743,14 @@ call $~lib/array/Array#__get local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4736 + i32.const 2768 i32.store offset=4 - i32.const 4740 + i32.const 2772 i32.load global.set $~lib/__closure_env local.get $1 local.get $5 - i32.const 4736 + i32.const 2768 i32.load call_indirect (type $4) local.set $1 @@ -7091,7 +6797,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 357 i32.const 1 call $~lib/builtins/abort @@ -7118,7 +6824,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 369 i32.const 1 call $~lib/builtins/abort @@ -7139,7 +6845,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 370 i32.const 1 call $~lib/builtins/abort @@ -7170,7 +6876,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 371 i32.const 1 call $~lib/builtins/abort @@ -7197,7 +6903,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 379 i32.const 1 call $~lib/builtins/abort @@ -7218,7 +6924,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 380 i32.const 1 call $~lib/builtins/abort @@ -7249,7 +6955,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 381 i32.const 1 call $~lib/builtins/abort @@ -7308,7 +7014,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 388 i32.const 1 call $~lib/builtins/abort @@ -7319,7 +7025,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7329,7 +7035,7 @@ i32.const 0 global.set $closure-stress/callCount global.get $~lib/memory/__stack_pointer - i32.const 4896 + i32.const 2928 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/rt/tlsf/ROOT @@ -7348,14 +7054,14 @@ i32.const 0 i32.store offset=4 local.get $1 - i32.const 4896 + i32.const 2928 i32.store offset=12 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 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7458,7 +7164,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -7469,7 +7175,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -7489,7 +7195,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -7500,7 +7206,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -7520,7 +7226,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -7531,7 +7237,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 418 i32.const 3 call $~lib/builtins/abort @@ -7551,7 +7257,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 419 i32.const 3 call $~lib/builtins/abort @@ -7562,7 +7268,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 420 i32.const 3 call $~lib/builtins/abort @@ -7577,26 +7283,26 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 424 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5136 + i32.const 3168 i32.store offset=144 - i32.const 5140 + i32.const 3172 i32.load global.set $~lib/__closure_env - i32.const 5136 + i32.const 3168 i32.load call_indirect (type $0) i32.const 42 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 434 i32.const 1 call $~lib/builtins/abort @@ -7607,7 +7313,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7661,7 +7367,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 443 i32.const 1 call $~lib/builtins/abort @@ -7672,22 +7378,22 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 5200 + i32.const 3232 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5200 + i32.const 3232 i32.store offset=4 - i32.const 5204 + i32.const 3236 i32.load global.set $~lib/__closure_env - i32.const 5200 + i32.const 3232 i32.load call_indirect (type $0) global.get $~lib/memory/__stack_pointer @@ -7698,7 +7404,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 451 i32.const 1 call $~lib/builtins/abort @@ -7719,7 +7425,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 467 i32.const 1 call $~lib/builtins/abort @@ -7740,7 +7446,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 468 i32.const 1 call $~lib/builtins/abort @@ -7761,29 +7467,29 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 469 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5328 + i32.const 3360 global.set $closure-stress/fact global.get $~lib/memory/__stack_pointer - i32.const 5328 + i32.const 3360 i32.store offset=160 - i32.const 5332 + i32.const 3364 i32.load global.set $~lib/__closure_env i32.const 5 - i32.const 5328 + i32.const 3360 i32.load call_indirect (type $1) i32.const 120 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 483 i32.const 1 call $~lib/builtins/abort @@ -7804,7 +7510,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 484 i32.const 1 call $~lib/builtins/abort @@ -7815,7 +7521,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7875,7 +7581,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 496 i32.const 1 call $~lib/builtins/abort @@ -7886,7 +7592,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8045,7 +7751,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 517 i32.const 1 call $~lib/builtins/abort @@ -8056,7 +7762,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8140,7 +7846,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 529 i32.const 1 call $~lib/builtins/abort @@ -8151,7 +7857,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8199,7 +7905,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 539 i32.const 1 call $~lib/builtins/abort @@ -8210,7 +7916,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8318,7 +8024,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 564 i32.const 1 call $~lib/builtins/abort @@ -8329,7 +8035,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8473,7 +8179,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 585 i32.const 1 call $~lib/builtins/abort @@ -8484,7 +8190,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8502,7 +8208,7 @@ i32.const 0 i32.store offset=4 local.get $0 - i32.const 5808 + i32.const 3840 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8536,12 +8242,12 @@ local.get $0 i32.store offset=132 local.get $0 - i32.const 5808 + i32.const 3840 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 597 i32.const 1 call $~lib/builtins/abort @@ -8552,7 +8258,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8575,7 +8281,7 @@ i32.const 0 i32.store offset=4 local.get $0 - i32.const 5872 + i32.const 3904 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8607,7 +8313,7 @@ local.get $2 i32.load offset=4 global.set $~lib/__closure_env - i32.const 5968 + i32.const 4032 local.get $2 i32.load call_indirect (type $3) @@ -8617,7 +8323,7 @@ local.get $2 i32.load offset=4 global.set $~lib/__closure_env - i32.const 6000 + i32.const 4064 local.get $2 i32.load call_indirect (type $3) @@ -8627,7 +8333,7 @@ local.get $2 i32.load offset=4 global.set $~lib/__closure_env - i32.const 6032 + i32.const 4096 local.get $2 i32.load call_indirect (type $3) @@ -8649,12 +8355,12 @@ local.get $0 i32.store offset=132 local.get $0 - i32.const 6064 + i32.const 4128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 611 i32.const 1 call $~lib/builtins/abort @@ -8665,7 +8371,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8716,7 +8422,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 634 i32.const 1 call $~lib/builtins/abort @@ -8727,7 +8433,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8768,7 +8474,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8810,7 +8516,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 654 i32.const 1 call $~lib/builtins/abort @@ -8860,7 +8566,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 662 i32.const 1 call $~lib/builtins/abort @@ -8871,7 +8577,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8935,7 +8641,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 675 i32.const 3 call $~lib/builtins/abort @@ -8954,7 +8660,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 677 i32.const 3 call $~lib/builtins/abort @@ -8966,7 +8672,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 678 i32.const 3 call $~lib/builtins/abort @@ -8982,7 +8688,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 682 i32.const 1 call $~lib/builtins/abort @@ -8993,7 +8699,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -9044,7 +8750,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 707 i32.const 1 call $~lib/builtins/abort @@ -9055,7 +8761,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -9098,7 +8804,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 730 i32.const 3 call $~lib/builtins/abort @@ -9137,7 +8843,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 733 i32.const 3 call $~lib/builtins/abort @@ -9189,7 +8895,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 741 i32.const 3 call $~lib/builtins/abort @@ -9208,7 +8914,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 742 i32.const 3 call $~lib/builtins/abort @@ -9243,7 +8949,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 746 i32.const 1 call $~lib/builtins/abort @@ -9255,8 +8961,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9270,11 +8976,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9351,11 +9057,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9399,11 +9105,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9416,8 +9122,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 4096 - i32.const 4928 + i32.const 2128 + i32.const 2960 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -9444,11 +9150,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9502,11 +9208,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9569,11 +9275,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s if - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9665,7 +9371,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -9713,7 +9419,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -9728,7 +9434,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -9759,7 +9465,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6516 + i32.const 4580 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -9789,8 +9495,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 39312 - i32.const 39360 + i32.const 37376 + i32.const 37424 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/closure.debug.wat b/tests/compiler/closure.debug.wat index e201982f91..c772bdfde1 100644 --- a/tests/compiler/closure.debug.wat +++ b/tests/compiler/closure.debug.wat @@ -7,17 +7,12 @@ (type $5 (func (param i32))) (type $6 (func (param i32 i32 i32))) (type $7 (func (param i32 i32 i32 i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i64) (result i32))) - (type $12 (func (param i32 i32 i32) (result i32))) - (type $13 (func (param i32 i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (type $10 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/__closure_env (mut i32) (i32.const 0)) - (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 $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -26,6 +21,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -37,63 +36,52 @@ (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $closure/counter1 (mut i32) (i32.const 0)) (global $closure/counter2 (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3552)) - (global $~lib/memory/__data_end i32 (i32.const 3616)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36384)) - (global $~lib/memory/__heap_base i32 (i32.const 36384)) + (global $~lib/rt/__rtti_base i32 (i32.const 1584)) + (global $~lib/memory/__data_end i32 (i32.const 1648)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34416)) + (global $~lib/memory/__heap_base i32 (i32.const 34416)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 172) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 396) "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 $9 (i32.const 796) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1852) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 1948) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 2012) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2076) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 2204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00c\00l\00o\00s\00u\00r\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2780) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 2972) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $38 (i32.const 3020) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $39 (i32.const 3068) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $40 (i32.const 3196) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") - (data $41 (i32.const 3228) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 3260) "\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 $43 (i32.const 3292) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") - (data $44 (i32.const 3324) "\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 $45 (i32.const 3356) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") - (data $46 (i32.const 3388) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") - (data $47 (i32.const 3420) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") - (data $48 (i32.const 3452) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") - (data $49 (i32.const 3484) "\1c\00\00\00\00\00\00\00\00\00\00\00\r\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") - (data $50 (i32.const 3516) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") - (data $51 (i32.const 3552) "\0f\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\02\t\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 444) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00c\00l\00o\00s\00u\00r\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 492) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 556) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 620) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 652) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 716) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 876) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $27 (i32.const 1052) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $28 (i32.const 1100) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $29 (i32.const 1228) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1260) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1292) "\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 $32 (i32.const 1324) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1356) "\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 $34 (i32.const 1388) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") + (data $35 (i32.const 1420) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") + (data $36 (i32.const 1452) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") + (data $37 (i32.const 1484) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") + (data $38 (i32.const 1516) "\1c\00\00\00\00\00\00\00\00\00\00\00\r\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") + (data $39 (i32.const 1548) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") + (data $40 (i32.const 1584) "\0f\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\02\t\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 27 27 funcref) (elem $0 (i32.const 1) $closure/testCaptureParam~anonymous|0 $closure/testCaptureVar~anonymous|0 $closure/testCaptureLet~anonymous|0 $closure/testClosureWrite~anonymous|0 $closure/testClosureWrite~anonymous|1 $closure/testMultipleCaptures~anonymous|0 $closure/testSharedEnvironment~anonymous|0 $closure/testSharedEnvironment~anonymous|1 $closure/testCaptureInWhile~anonymous|0 $closure/testCaptureInDoWhile~anonymous|0 $closure/testCaptureInFor~anonymous|0 $closure/testCaptureInSwitch~anonymous|0 $closure/testCaptureInSwitch~anonymous|1 $closure/testCaptureInSwitch~anonymous|2 $closure/testCaptureInArrayLiteral~anonymous|0 $closure/testCaptureInArrayLiteral~anonymous|1 $closure/testCaptureInArrayLiteral~anonymous|2 $closure/testNestedClosureCapture~anonymous|0~anonymous|0 $closure/testNestedClosureCapture~anonymous|0 $closure/testMultipleClosuresInArray~anonymous|0 $closure/testCaptureInTernary~anonymous|0 $closure/testCaptureFromCondition~anonymous|0 $closure/testDeepLoopCapture~anonymous|0 $closure/makeCounter~anonymous|0 $closure/testDefaultParamCapture~anonymous|0@varargs $closure/testDefaultParamWithOtherParam~anonymous|0@varargs) (export "memory" (memory $0)) @@ -105,435 +93,6 @@ local.get $$closureEnv i32.load offset=4 ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 396 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 396 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 396 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 396 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 816 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 816 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1872 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1872 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -598,7 +157,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -668,7 +227,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -685,7 +244,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -715,9 +274,9 @@ i32.load i32.gt_u if - i32.const 2224 - i32.const 2288 - i32.const 21 + i32.const 256 + i32.const 320 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -784,7 +343,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2096 + i32.const 128 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -936,7 +495,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -956,7 +515,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1019,7 +578,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1172,7 +731,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1189,7 +748,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1278,7 +837,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1321,7 +880,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1339,7 +898,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1407,7 +966,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1524,7 +1083,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1570,7 +1129,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1602,7 +1161,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1846,7 +1405,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2066,7 +1625,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2177,8 +1736,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2032 - i32.const 2368 + i32.const 64 + i32.const 400 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2280,7 +1839,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2351,7 +1910,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2508,7 +2067,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2623,7 +2182,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2643,7 +2202,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2691,8 +2250,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2032 - i32.const 2096 + i32.const 64 + i32.const 128 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -3021,7 +2580,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -3314,13 +2873,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2176 + i32.const 208 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2320 + i32.const 352 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 42 @@ -3343,7 +2902,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -3368,7 +2927,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -3393,7 +2952,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -3405,7 +2964,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -3432,7 +2991,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -3444,7 +3003,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 53 i32.const 1 call $~lib/builtins/abort @@ -3456,7 +3015,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 70 i32.const 1 call $~lib/builtins/abort @@ -3468,7 +3027,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 83 i32.const 1 call $~lib/builtins/abort @@ -3480,7 +3039,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -3493,7 +3052,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 118 i32.const 1 call $~lib/builtins/abort @@ -3506,7 +3065,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 119 i32.const 1 call $~lib/builtins/abort @@ -3519,7 +3078,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -3531,7 +3090,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 133 i32.const 1 call $~lib/builtins/abort @@ -3543,7 +3102,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 144 i32.const 1 call $~lib/builtins/abort @@ -3555,7 +3114,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -3567,7 +3126,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 174 i32.const 1 call $~lib/builtins/abort @@ -3579,7 +3138,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 186 i32.const 1 call $~lib/builtins/abort @@ -3591,7 +3150,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 200 i32.const 1 call $~lib/builtins/abort @@ -3618,7 +3177,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 212 i32.const 1 call $~lib/builtins/abort @@ -3641,7 +3200,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 213 i32.const 1 call $~lib/builtins/abort @@ -3664,7 +3223,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 214 i32.const 1 call $~lib/builtins/abort @@ -3687,7 +3246,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 215 i32.const 1 call $~lib/builtins/abort @@ -3710,7 +3269,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 216 i32.const 1 call $~lib/builtins/abort @@ -3722,7 +3281,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 224 i32.const 1 call $~lib/builtins/abort @@ -3734,7 +3293,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 232 i32.const 1 call $~lib/builtins/abort @@ -3790,20 +3349,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 36416 - i32.const 36464 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3812,196 +3367,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 160 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 160 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1968 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -4043,8 +3429,8 @@ i32.shr_u i32.gt_u if - i32.const 3040 - i32.const 2992 + i32.const 1072 + i32.const 1024 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -4108,6 +3494,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -4146,9 +3536,9 @@ i32.const 0 i32.lt_s if - i32.const 2224 - i32.const 2992 - i32.const 130 + i32.const 256 + i32.const 1024 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -4186,6 +3576,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -4216,9 +3610,9 @@ call $~lib/array/Array<%28%29=>i32>#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2992 - i32.const 114 + i32.const 256 + i32.const 1024 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -4246,9 +3640,9 @@ local.get $value i32.eqz if - i32.const 3088 - i32.const 2992 - i32.const 118 + i32.const 1120 + i32.const 1024 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -4461,6 +3855,10 @@ i32.add local.get $value i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -4528,9 +3926,9 @@ call $~lib/array/Array<%28%29=>void>#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2992 - i32.const 114 + i32.const 256 + i32.const 1024 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -4558,9 +3956,9 @@ local.get $value i32.eqz if - i32.const 3088 - i32.const 2992 - i32.const 118 + i32.const 1120 + i32.const 1024 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -4608,7 +4006,7 @@ i32.const 0 i32.const 2 i32.const 11 - i32.const 3344 + i32.const 1376 call $~lib/rt/__newArray local.tee $incrementers i32.store @@ -4699,153 +4097,6 @@ local.get $8 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 192 - i32.const 320 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 384 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $closure/testClosureWrite (result i32) (local $$env i32) (local $counter i32) @@ -5459,6 +4710,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -5627,7 +4882,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 170 i32.const 3 call $~lib/builtins/abort @@ -5721,7 +4976,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 182 i32.const 3 call $~lib/builtins/abort @@ -5974,22 +5229,16 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2224 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3040 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3088 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2032 + i32.const 1072 local.get $0 call $~lib/rt/itcms/__visit - i32.const 816 + i32.const 1120 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1872 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit ) @@ -6238,6 +5487,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6262,6 +5515,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6286,6 +5543,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6313,6 +5574,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -6380,6 +5645,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -6406,6 +5675,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6430,6 +5703,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6457,6 +5734,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -6524,6 +5805,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6548,6 +5833,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -6572,6 +5861,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/closure.release.wat b/tests/compiler/closure.release.wat index a8703f445f..a21272a066 100644 --- a/tests/compiler/closure.release.wat +++ b/tests/compiler/closure.release.wat @@ -1,14 +1,15 @@ (module (type $0 (func (result i32))) (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32) (result i32))) (type $5 (func (param i32 i32))) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64))) (type $9 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/__closure_env (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)) @@ -27,106 +28,85 @@ (global $closure/fn5 (mut i32) (i32.const 0)) (global $closure/counter1 (mut i32) (i32.const 0)) (global $closure/counter2 (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37408)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35440)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "\1c") - (data $4.1 (i32.const 1176) "\02\00\00\00\02\00\00\00:") - (data $5 (i32.const 1196) "|") - (data $5.1 (i32.const 1208) "\02\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 $6 (i32.const 1324) "<") - (data $6.1 (i32.const 1336) "\02\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 $7 (i32.const 1388) "\1c") - (data $7.1 (i32.const 1400) "\02\00\00\00\02\00\00\000") - (data $8 (i32.const 1420) "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 $9 (i32.const 1820) "\1c\04") - (data $9.1 (i32.const 1832) "\02\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 $10 (i32.const 2876) "\\") - (data $10.1 (i32.const 2888) "\02\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 $11 (i32.const 2972) "<") - (data $11.1 (i32.const 2984) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $12 (i32.const 3036) "<") - (data $12.1 (i32.const 3048) "\02\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 $13 (i32.const 3100) "<") - (data $13.1 (i32.const 3112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $16 (i32.const 3228) "<") - (data $16.1 (i32.const 3240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $17 (i32.const 3292) ",") - (data $17.1 (i32.const 3304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $20 (i32.const 3436) ",") - (data $20.1 (i32.const 3448) "\02\00\00\00\14\00\00\00c\00l\00o\00s\00u\00r\00e\00.\00t\00s") - (data $21 (i32.const 3484) "\1c") - (data $21.1 (i32.const 3496) "\04\00\00\00\08\00\00\00\02") - (data $22 (i32.const 3516) "\1c") - (data $22.1 (i32.const 3528) "\04\00\00\00\08\00\00\00\03") - (data $23 (i32.const 3548) "\1c") - (data $23.1 (i32.const 3560) "\05\00\00\00\08\00\00\00\04") - (data $24 (i32.const 3580) "\1c") - (data $24.1 (i32.const 3592) "\04\00\00\00\08\00\00\00\05") - (data $25 (i32.const 3612) "\1c") - (data $25.1 (i32.const 3624) "\04\00\00\00\08\00\00\00\06") - (data $26 (i32.const 3644) "\1c") - (data $26.1 (i32.const 3656) "\06\00\00\00\08\00\00\00\07") - (data $27 (i32.const 3676) "\1c") - (data $27.1 (i32.const 3688) "\04\00\00\00\08\00\00\00\08") - (data $28 (i32.const 3708) "\1c") - (data $28.1 (i32.const 3720) "\05\00\00\00\08\00\00\00\t") - (data $29 (i32.const 3740) "\1c") - (data $29.1 (i32.const 3752) "\05\00\00\00\08\00\00\00\n") - (data $30 (i32.const 3772) "\1c") - (data $30.1 (i32.const 3784) "\05\00\00\00\08\00\00\00\0b") - (data $31 (i32.const 3804) "\1c") - (data $31.1 (i32.const 3816) "\05\00\00\00\08\00\00\00\0c") - (data $32 (i32.const 3836) "\1c") - (data $32.1 (i32.const 3848) "\05\00\00\00\08\00\00\00\r") - (data $33 (i32.const 3868) "\1c") - (data $33.1 (i32.const 3880) "\05\00\00\00\08\00\00\00\0e") - (data $34 (i32.const 3900) "\1c") - (data $34.1 (i32.const 3912) "\04\00\00\00\08\00\00\00\0f") - (data $35 (i32.const 3932) "\1c") - (data $35.1 (i32.const 3944) "\04\00\00\00\08\00\00\00\10") - (data $36 (i32.const 3964) "\1c") - (data $36.1 (i32.const 3976) "\04\00\00\00\08\00\00\00\11") - (data $37 (i32.const 3996) ",") - (data $37.1 (i32.const 4008) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $38 (i32.const 4044) ",") - (data $38.1 (i32.const 4056) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $39 (i32.const 4092) "|") - (data $39.1 (i32.const 4104) "\02\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 $40 (i32.const 4220) "\1c") - (data $40.1 (i32.const 4232) "\t\00\00\00\08\00\00\00\12") - (data $41 (i32.const 4252) "\1c") - (data $41.1 (i32.const 4264) "\n\00\00\00\08\00\00\00\13") - (data $42 (i32.const 4284) "\1c") - (data $42.1 (i32.const 4296) "\01") - (data $43 (i32.const 4316) "\1c") - (data $43.1 (i32.const 4328) "\05\00\00\00\08\00\00\00\14") - (data $44 (i32.const 4348) "\1c") - (data $44.1 (i32.const 4360) "\01") - (data $45 (i32.const 4380) "\1c") - (data $45.1 (i32.const 4392) "\04\00\00\00\08\00\00\00\15") - (data $46 (i32.const 4412) "\1c") - (data $46.1 (i32.const 4424) "\0c\00\00\00\08\00\00\00\16") - (data $47 (i32.const 4444) "\1c") - (data $47.1 (i32.const 4456) "\05\00\00\00\08\00\00\00\17") - (data $48 (i32.const 4476) "\1c") - (data $48.1 (i32.const 4488) "\04\00\00\00\08\00\00\00\18") - (data $49 (i32.const 4508) "\1c") - (data $49.1 (i32.const 4520) "\r\00\00\00\08\00\00\00\19") - (data $50 (i32.const 4540) "\1c") - (data $50.1 (i32.const 4552) "\0e\00\00\00\08\00\00\00\1a") - (data $51 (i32.const 4576) "\0f\00\00\00 \00\00\00 \00\00\00 ") - (data $51.1 (i32.const 4608) "\02A\00\00\02\t") - (data $51.2 (i32.const 4624) "\02A") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\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 $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1324) ",") + (data $6.1 (i32.const 1336) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1468) ",") + (data $9.1 (i32.const 1480) "\02\00\00\00\14\00\00\00c\00l\00o\00s\00u\00r\00e\00.\00t\00s") + (data $10 (i32.const 1516) "\1c") + (data $10.1 (i32.const 1528) "\04\00\00\00\08\00\00\00\02") + (data $11 (i32.const 1548) "\1c") + (data $11.1 (i32.const 1560) "\04\00\00\00\08\00\00\00\03") + (data $12 (i32.const 1580) "\1c") + (data $12.1 (i32.const 1592) "\05\00\00\00\08\00\00\00\04") + (data $13 (i32.const 1612) "\1c") + (data $13.1 (i32.const 1624) "\04\00\00\00\08\00\00\00\05") + (data $14 (i32.const 1644) "\1c") + (data $14.1 (i32.const 1656) "\04\00\00\00\08\00\00\00\06") + (data $15 (i32.const 1676) "\1c") + (data $15.1 (i32.const 1688) "\06\00\00\00\08\00\00\00\07") + (data $16 (i32.const 1708) "\1c") + (data $16.1 (i32.const 1720) "\04\00\00\00\08\00\00\00\08") + (data $17 (i32.const 1740) "\1c") + (data $17.1 (i32.const 1752) "\05\00\00\00\08\00\00\00\t") + (data $18 (i32.const 1772) "\1c") + (data $18.1 (i32.const 1784) "\05\00\00\00\08\00\00\00\n") + (data $19 (i32.const 1804) "\1c") + (data $19.1 (i32.const 1816) "\05\00\00\00\08\00\00\00\0b") + (data $20 (i32.const 1836) "\1c") + (data $20.1 (i32.const 1848) "\05\00\00\00\08\00\00\00\0c") + (data $21 (i32.const 1868) "\1c") + (data $21.1 (i32.const 1880) "\05\00\00\00\08\00\00\00\r") + (data $22 (i32.const 1900) "\1c") + (data $22.1 (i32.const 1912) "\05\00\00\00\08\00\00\00\0e") + (data $23 (i32.const 1932) "\1c") + (data $23.1 (i32.const 1944) "\04\00\00\00\08\00\00\00\0f") + (data $24 (i32.const 1964) "\1c") + (data $24.1 (i32.const 1976) "\04\00\00\00\08\00\00\00\10") + (data $25 (i32.const 1996) "\1c") + (data $25.1 (i32.const 2008) "\04\00\00\00\08\00\00\00\11") + (data $26 (i32.const 2028) ",") + (data $26.1 (i32.const 2040) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $27 (i32.const 2076) ",") + (data $27.1 (i32.const 2088) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $28 (i32.const 2124) "|") + (data $28.1 (i32.const 2136) "\02\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 $29 (i32.const 2252) "\1c") + (data $29.1 (i32.const 2264) "\t\00\00\00\08\00\00\00\12") + (data $30 (i32.const 2284) "\1c") + (data $30.1 (i32.const 2296) "\n\00\00\00\08\00\00\00\13") + (data $31 (i32.const 2316) "\1c") + (data $31.1 (i32.const 2328) "\01") + (data $32 (i32.const 2348) "\1c") + (data $32.1 (i32.const 2360) "\05\00\00\00\08\00\00\00\14") + (data $33 (i32.const 2380) "\1c") + (data $33.1 (i32.const 2392) "\01") + (data $34 (i32.const 2412) "\1c") + (data $34.1 (i32.const 2424) "\04\00\00\00\08\00\00\00\15") + (data $35 (i32.const 2444) "\1c") + (data $35.1 (i32.const 2456) "\0c\00\00\00\08\00\00\00\16") + (data $36 (i32.const 2476) "\1c") + (data $36.1 (i32.const 2488) "\05\00\00\00\08\00\00\00\17") + (data $37 (i32.const 2508) "\1c") + (data $37.1 (i32.const 2520) "\04\00\00\00\08\00\00\00\18") + (data $38 (i32.const 2540) "\1c") + (data $38.1 (i32.const 2552) "\r\00\00\00\08\00\00\00\19") + (data $39 (i32.const 2572) "\1c") + (data $39.1 (i32.const 2584) "\0e\00\00\00\08\00\00\00\1a") + (data $40 (i32.const 2608) "\0f\00\00\00 \00\00\00 \00\00\00 ") + (data $40.1 (i32.const 2640) "\02A\00\00\02\t") + (data $40.2 (i32.const 2656) "\02A") (table $0 27 27 funcref) (elem $0 (i32.const 1) $closure/testCaptureParam~anonymous|0 $closure/testCaptureParam~anonymous|0 $closure/testCaptureParam~anonymous|0 $closure/testClosureWrite~anonymous|0 $closure/testCaptureParam~anonymous|0 $closure/testMultipleCaptures~anonymous|0 $closure/testSharedEnvironment~anonymous|0 $closure/testCaptureParam~anonymous|0 $closure/testCaptureInWhile~anonymous|0 $closure/testCaptureInDoWhile~anonymous|0 $closure/testCaptureInWhile~anonymous|0 $closure/testCaptureInSwitch~anonymous|0 $closure/testCaptureInSwitch~anonymous|1 $closure/testCaptureInSwitch~anonymous|2 $closure/testCaptureParam~anonymous|0 $closure/testCaptureInArrayLiteral~anonymous|1 $closure/testCaptureInArrayLiteral~anonymous|2 $closure/testNestedClosureCapture~anonymous|0~anonymous|0 $closure/testNestedClosureCapture~anonymous|0 $closure/testClosureWrite~anonymous|0 $closure/testCaptureInTernary~anonymous|0 $closure/testCaptureFromCondition~anonymous|0 $closure/testDeepLoopCapture~anonymous|0 $closure/makeCounter~anonymous|0 $closure/testDefaultParamCapture~anonymous|0@varargs $closure/testDefaultParamWithOtherParam~anonymous|0@varargs) (export "memory" (memory $0)) @@ -135,218 +115,16 @@ global.get $~lib/__closure_env i32.load offset=4 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 4640 - i32.lt_s - if - i32.const 37440 - i32.const 37488 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1408 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1420 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1420 - 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 1420 - 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 1420 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3248 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 4064 + i32.const 2096 call $~lib/rt/itcms/__visit - i32.const 4112 + i32.const 2144 call $~lib/rt/itcms/__visit - i32.const 3056 - call $~lib/rt/itcms/__visit - i32.const 1840 - call $~lib/rt/itcms/__visit - i32.const 2896 + i32.const 1088 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -367,7 +145,7 @@ i32.ne if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -400,7 +178,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -409,7 +187,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$212 + block $__inlined_func$~lib/rt/itcms/Object#unlink$200 local.get $0 i32.load offset=4 i32.const -4 @@ -421,19 +199,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 37408 + i32.const 35440 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$212 + br $__inlined_func$~lib/rt/itcms/Object#unlink$200 end local.get $0 i32.load offset=8 @@ -441,7 +219,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -470,13 +248,13 @@ i32.const 1 else local.get $1 - i32.const 4576 + i32.const 2608 i32.load i32.gt_u if - i32.const 3248 - i32.const 3312 - i32.const 21 + i32.const 1280 + i32.const 1344 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -484,7 +262,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 4580 + i32.const 2612 i32.add i32.load i32.const 32 @@ -555,7 +333,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -569,7 +347,7 @@ i32.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -615,7 +393,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -698,7 +476,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -712,7 +490,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -773,7 +551,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -806,7 +584,7 @@ i32.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -821,7 +599,7 @@ i32.ne if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -872,7 +650,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -944,7 +722,7 @@ i64.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -969,7 +747,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -996,7 +774,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1068,10 +846,10 @@ if unreachable end - i32.const 37408 + i32.const 35440 i32.const 0 i32.store - i32.const 38976 + i32.const 37008 i32.const 0 i32.store loop $for-loop|0 @@ -1082,7 +860,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 37408 + i32.const 35440 i32.add i32.const 0 i32.store offset=4 @@ -1100,7 +878,7 @@ i32.add i32.const 2 i32.shl - i32.const 37408 + i32.const 35440 i32.add i32.const 0 i32.store offset=96 @@ -1118,14 +896,14 @@ br $for-loop|0 end end - i32.const 37408 - i32.const 38980 + i32.const 35440 + i32.const 37012 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 37408 + i32.const 35440 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1210,7 +988,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 37408 + i32.const 35440 i32.lt_u if local.get $0 @@ -1299,14 +1077,14 @@ i32.ne if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 37408 + i32.const 35440 i32.lt_u if local.get $0 @@ -1329,7 +1107,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 37408 + i32.const 35440 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1358,7 +1136,7 @@ end if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1442,7 +1220,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1494,7 +1272,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1524,8 +1302,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3056 - i32.const 3392 + i32.const 1088 + i32.const 1424 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1627,7 +1405,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1642,7 +1420,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1661,7 +1439,7 @@ i32.and if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1728,8 +1506,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3056 - i32.const 3120 + i32.const 1088 + i32.const 1152 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1739,7 +1517,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1756,7 +1534,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1920,7 +1698,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2084,7 +1862,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2094,34 +1872,34 @@ memory.size i32.const 16 i32.shl - i32.const 37408 + i32.const 35440 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/pinSpace - i32.const 3204 - i32.const 3200 + i32.const 1236 + i32.const 1232 i32.store - i32.const 3208 - i32.const 3200 + i32.const 1240 + i32.const 1232 i32.store - i32.const 3200 + i32.const 1232 global.set $~lib/rt/itcms/toSpace - i32.const 3348 - i32.const 3344 + i32.const 1380 + i32.const 1376 i32.store - i32.const 3352 - i32.const 3344 + i32.const 1384 + i32.const 1376 i32.store - i32.const 3344 + i32.const 1376 global.set $~lib/rt/itcms/fromSpace global.get $~lib/rt/tlsf/ROOT i32.eqz @@ -2167,7 +1945,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -2217,7 +1995,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -2267,7 +2045,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -2278,7 +2056,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2378,7 +2156,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -2434,7 +2212,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -2445,7 +2223,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2506,7 +2284,7 @@ i32.const 50 local.get $4 i32.load - call_indirect (type $4) + call_indirect (type $2) i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -2526,7 +2304,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 53 i32.const 1 call $~lib/builtins/abort @@ -2537,7 +2315,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2611,7 +2389,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 70 i32.const 1 call $~lib/builtins/abort @@ -2622,7 +2400,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2694,7 +2472,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 83 i32.const 1 call $~lib/builtins/abort @@ -2705,7 +2483,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2779,7 +2557,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -2791,7 +2569,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 118 i32.const 1 call $~lib/builtins/abort @@ -2803,7 +2581,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 119 i32.const 1 call $~lib/builtins/abort @@ -2815,7 +2593,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -2826,7 +2604,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2967,7 +2745,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 133 i32.const 1 call $~lib/builtins/abort @@ -2978,7 +2756,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3041,7 +2819,7 @@ i32.const 23 local.get $2 i32.load - call_indirect (type $3) + call_indirect (type $4) global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -3050,7 +2828,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 144 i32.const 1 call $~lib/builtins/abort @@ -3061,7 +2839,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3090,7 +2868,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 11 - i32.const 4368 + i32.const 2400 call $~lib/rt/__newArray local.tee $6 i32.store @@ -3119,7 +2897,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3177,7 +2955,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3231,7 +3009,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -3242,7 +3020,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3301,7 +3079,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 170 i32.const 3 call $~lib/builtins/abort @@ -3329,7 +3107,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 174 i32.const 1 call $~lib/builtins/abort @@ -3340,7 +3118,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3395,7 +3173,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 182 i32.const 3 call $~lib/builtins/abort @@ -3423,7 +3201,7 @@ global.set $~lib/memory/__stack_pointer if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 186 i32.const 1 call $~lib/builtins/abort @@ -3434,7 +3212,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3526,7 +3304,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 200 i32.const 1 call $~lib/builtins/abort @@ -3552,7 +3330,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 212 i32.const 1 call $~lib/builtins/abort @@ -3574,7 +3352,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 213 i32.const 1 call $~lib/builtins/abort @@ -3596,7 +3374,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 214 i32.const 1 call $~lib/builtins/abort @@ -3618,7 +3396,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 215 i32.const 1 call $~lib/builtins/abort @@ -3640,7 +3418,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 216 i32.const 1 call $~lib/builtins/abort @@ -3651,7 +3429,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3697,7 +3475,7 @@ i32.const 0 local.get $2 i32.load - call_indirect (type $3) + call_indirect (type $4) global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3706,7 +3484,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 224 i32.const 1 call $~lib/builtins/abort @@ -3717,7 +3495,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3764,7 +3542,7 @@ i32.const 0 local.get $2 i32.load - call_indirect (type $2) + call_indirect (type $3) global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3773,7 +3551,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1488 i32.const 232 i32.const 1 call $~lib/builtins/abort @@ -3785,8 +3563,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 37440 - i32.const 37488 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3829,205 +3607,40 @@ (func $~start call $start:closure ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 4640 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4640 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$217 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$217 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 37440 - i32.const 37488 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s if - i32.const 37440 - i32.const 37488 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1184 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1184 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2992 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -4038,11 +3651,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s if - i32.const 37440 - i32.const 37488 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4066,8 +3679,8 @@ i32.const 268435455 i32.gt_u if - i32.const 4064 - i32.const 4016 + i32.const 2096 + i32.const 2048 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -4076,7 +3689,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$202 + block $__inlined_func$~lib/rt/itcms/__renew$190 i32.const 1073741820 local.get $2 i32.const 1 @@ -4119,7 +3732,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$202 + br $__inlined_func$~lib/rt/itcms/__renew$190 end local.get $3 local.get $4 @@ -4168,11 +3781,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s if - i32.const 37440 - i32.const 37488 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4193,9 +3806,9 @@ i32.const 0 i32.lt_s if - i32.const 3248 - i32.const 4016 - i32.const 130 + i32.const 1280 + i32.const 2048 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -4239,11 +3852,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s if - i32.const 37440 - i32.const 37488 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4260,9 +3873,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3248 - i32.const 4016 - i32.const 114 + i32.const 1280 + i32.const 2048 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -4283,9 +3896,9 @@ local.get $0 i32.eqz if - i32.const 4112 - i32.const 4016 - i32.const 118 + i32.const 2144 + i32.const 2048 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -4305,11 +3918,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s if - i32.const 37440 - i32.const 37488 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4427,11 +4040,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s if - i32.const 37440 - i32.const 37488 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4491,11 +4104,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s if - i32.const 37440 - i32.const 37488 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4587,7 +4200,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4616,7 +4229,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4640 + i32.const 2672 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4634,8 +4247,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 37440 - i32.const 37488 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/comma.debug.wat b/tests/compiler/comma.debug.wat index de63df4d04..b15a4d84c0 100644 --- a/tests/compiler/comma.debug.wat +++ b/tests/compiler/comma.debug.wat @@ -1,2695 +1,19 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $comma/a (mut i32) (i32.const 0)) (global $comma/b (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00c\00o\00m\00m\00a\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00c\00o\00m\00m\00a\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:comma (local $0 i32) (local $c i32) @@ -2702,30 +26,13 @@ global.set $comma/b global.get $comma/a drop - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $comma/a i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4 i32.const 1 call $~lib/builtins/abort @@ -2737,7 +44,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -2755,7 +62,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -2767,7 +74,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -2789,7 +96,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -2801,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -2821,7 +128,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -2833,7 +140,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -2863,7 +170,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -2884,92 +191,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2978,322 +209,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/comma.release.wat b/tests/compiler/comma.release.wat index d1b14d9a7a..5b453691b4 100644 --- a/tests/compiler/comma.release.wat +++ b/tests/compiler/comma.release.wat @@ -1,1747 +1,16 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $comma/a (mut i32) (i32.const 0)) (global $comma/b (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/memory/__stack_pointer (mut i32) (i32.const 36244)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\10\00\00\00c\00o\00m\00m\00a\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\10\00\00\00c\00o\00m\00m\00a\00.\00t\00s") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$120 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36244 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$120 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3456 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3460 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36256 - i32.const 0 - i32.store - i32.const 37824 - 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 36256 - 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 36256 - 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 36256 - i32.const 37828 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36256 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36244 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36244 - 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 - local.tee $0 - i32.const 36244 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3476 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start (local $0 i32) (local $1 i32) @@ -1752,55 +21,21 @@ global.set $comma/a local.get $1 global.set $comma/b - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $comma/a i32.const 1 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $comma/b if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 5 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1815,9 +50,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 8 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1826,9 +60,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 9 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1867,235 +100,44 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 22 - i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$125 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$125 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3476 + i32.const 1084 i32.lt_s if - i32.const 36272 - i32.const 36320 - i32.const 1 + i32.const 33872 + i32.const 33920 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index 86a085447a..6e0601f87b 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -1,21 +1,16 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 i32))) - (type $12 (func (param i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -24,6 +19,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -39,465 +38,25 @@ (global $constructor/ctorConditionallyReturns (mut i32) (i32.const 0)) (global $constructor/ctorConditionallyReturnsThis (mut i32) (i32.const 0)) (global $constructor/ctorFieldInitOrder (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2500)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35268)) - (global $~lib/memory/__heap_base i32 (i32.const 35268)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 532)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33300)) + (global $~lib/memory/__heap_base i32 (i32.const 33300)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00c\00o\00n\00s\00t\00r\00u\00c\00t\00o\00r\00.\00t\00s\00") - (data $20 (i32.const 2432) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00c\00o\00n\00s\00t\00r\00u\00c\00t\00o\00r\00.\00t\00s\00") + (data $9 (i32.const 464) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -562,7 +121,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -632,7 +191,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -649,7 +208,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -679,9 +238,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -748,7 +307,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -900,7 +459,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -920,7 +479,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -983,7 +542,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1136,7 +695,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1153,7 +712,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1242,7 +801,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1285,7 +844,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1303,7 +862,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1371,7 +930,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1488,7 +1047,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1534,7 +1093,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1566,7 +1125,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1810,7 +1369,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2030,7 +1589,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2141,8 +1700,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2244,7 +1803,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2315,7 +1874,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2472,7 +2031,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2587,7 +2146,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2607,7 +2166,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2655,8 +2214,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2783,20 +2342,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 33328 + i32.const 33376 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2805,196 +2360,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $constructor/EmptyCtorWithFieldInit#constructor (param $this i32) (result i32) (local $1 i32) @@ -3372,7 +2758,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 101 i32.const 5 call $~lib/builtins/abort @@ -3390,7 +2776,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 102 i32.const 5 call $~lib/builtins/abort @@ -3402,7 +2788,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 103 i32.const 5 call $~lib/builtins/abort @@ -3420,7 +2806,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 104 i32.const 5 call $~lib/builtins/abort @@ -3438,7 +2824,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 105 i32.const 5 call $~lib/builtins/abort @@ -3470,13 +2856,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3522,7 +2908,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -3541,7 +2927,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 95 i32.const 1 call $~lib/builtins/abort @@ -3564,7 +2950,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 110 i32.const 1 call $~lib/builtins/abort @@ -3582,7 +2968,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -3600,7 +2986,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -3611,153 +2997,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $constructor/EmptyCtor#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3971,16 +3210,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index 11664d2ee9..f148c2c783 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1,12 +1,13 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (result i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (result i32))) + (type $5 (func (param i32 i32) (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -26,242 +27,23 @@ (global $constructor/justFieldNoInit (mut i32) (i32.const 0)) (global $constructor/ctorConditionallyReturnsThis (mut i32) (i32.const 0)) (global $constructor/ctorFieldInitOrder (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36292)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34324)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00c\00o\00n\00s\00t\00r\00u\00c\00t\00o\00r\00.\00t\00s") - (data $20 (i32.const 3456) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) ",") + (data $8.1 (i32.const 1448) "\02\00\00\00\1c\00\00\00c\00o\00n\00s\00t\00r\00u\00c\00t\00o\00r\00.\00t\00s") + (data $9 (i32.const 1488) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3524 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -319,13 +101,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -346,7 +124,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -394,7 +172,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -403,7 +181,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$166 + block $__inlined_func$~lib/rt/itcms/Object#unlink$154 local.get $1 i32.load offset=4 i32.const -4 @@ -415,19 +193,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36292 + i32.const 34324 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$166 + br $__inlined_func$~lib/rt/itcms/Object#unlink$154 end local.get $1 i32.load offset=8 @@ -435,7 +213,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -464,13 +242,13 @@ i32.const 1 else local.get $0 - i32.const 3456 + i32.const 1488 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -478,7 +256,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3460 + i32.const 1492 i32.add i32.load i32.const 32 @@ -530,7 +308,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -544,7 +322,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -590,7 +368,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -673,7 +451,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -687,7 +465,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -748,7 +526,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -781,7 +559,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -796,7 +574,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -847,7 +625,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -919,7 +697,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -944,7 +722,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -971,7 +749,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1043,10 +821,10 @@ if unreachable end - i32.const 36304 + i32.const 34336 i32.const 0 i32.store - i32.const 37872 + i32.const 35904 i32.const 0 i32.store loop $for-loop|0 @@ -1057,7 +835,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=4 @@ -1075,7 +853,7 @@ i32.add i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=96 @@ -1093,14 +871,14 @@ br $for-loop|0 end end - i32.const 36304 - i32.const 37876 + i32.const 34336 + i32.const 35908 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36304 + i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1185,7 +963,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36292 + i32.const 34324 i32.lt_u if local.get $0 @@ -1274,14 +1052,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36292 + i32.const 34324 i32.lt_u if local.get $0 @@ -1304,7 +1082,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36292 + i32.const 34324 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1333,7 +1111,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1417,7 +1195,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1469,7 +1247,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1501,8 +1279,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1512,7 +1290,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1529,7 +1307,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1562,8 +1340,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1665,7 +1443,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1680,7 +1458,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1699,7 +1477,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1813,7 +1591,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1822,41 +1600,41 @@ memory.size i32.const 16 i32.shl - i32.const 36292 + i32.const 34324 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 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 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1879,7 +1657,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1908,7 +1686,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1937,7 +1715,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1972,7 +1750,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2003,7 +1781,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2040,7 +1818,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2077,7 +1855,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2097,7 +1875,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2126,7 +1904,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -2143,7 +1921,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 95 i32.const 1 call $~lib/builtins/abort @@ -2154,7 +1932,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2208,7 +1986,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 102 i32.const 5 call $~lib/builtins/abort @@ -2223,7 +2001,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 104 i32.const 5 call $~lib/builtins/abort @@ -2238,7 +2016,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 105 i32.const 5 call $~lib/builtins/abort @@ -2260,7 +2038,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 110 i32.const 1 call $~lib/builtins/abort @@ -2276,7 +2054,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -2292,7 +2070,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -2304,212 +2082,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3524 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3524 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$171 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$171 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $constructor/CtorFieldInitWithoutConstructor#constructor (result i32) (local $0 i32) @@ -2518,11 +2131,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2576,11 +2189,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/declare.debug.wat b/tests/compiler/declare.debug.wat index f3dd8a76c8..acd8804fd5 100644 --- a/tests/compiler/declare.debug.wat +++ b/tests/compiler/declare.debug.wat @@ -1,2723 +1,30 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "declare" "externalConstant" (global $declare/externalConstant i32)) (import "declare" "my.externalConstant" (global $declare/my.externalConstant i32)) (import "declare" "externalFunction" (func $declare/externalFunction)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "declare" "my.externalFunction" (func $declare/my.externalFunction)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:declare call $declare/externalFunction - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $declare/externalConstant i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -2730,7 +37,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -2745,92 +52,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2839,322 +70,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/declare.release.wat b/tests/compiler/declare.release.wat index ee3122e123..69bb8918b4 100644 --- a/tests/compiler/declare.release.wat +++ b/tests/compiler/declare.release.wat @@ -1,1791 +1,27 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32))) (import "declare" "externalConstant" (global $declare/externalConstant i32)) (import "declare" "my.externalConstant" (global $declare/my.externalConstant i32)) (import "declare" "externalFunction" (func $declare/externalFunction)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "declare" "my.externalFunction" (func $declare/my.externalFunction)) - (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/memory/__stack_pointer (mut i32) (i32.const 36244)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\14\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\14\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$120 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36244 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$120 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3456 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3460 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36256 - i32.const 0 - i32.store - i32.const 37824 - 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 36256 - 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 36256 - 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 36256 - i32.const 37828 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36256 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36244 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36244 - 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 - local.tee $0 - i32.const 36244 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3476 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start call $declare/externalFunction - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $declare/externalConstant i32.const 1 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 5 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1795,235 +31,44 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 13 - i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$125 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$125 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3476 + i32.const 1084 i32.lt_s if - i32.const 36272 - i32.const 36320 - i32.const 1 + i32.const 33872 + i32.const 33920 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index c975faebd9..d9dc2e59fb 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -3,18 +3,14 @@ (type $1 (func (param i32 i32))) (type $2 (func)) (type $3 (func (param i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $4 (func (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $do/ran (mut i32) (i32.const 0)) - (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_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,1744 +19,1254 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2416)) - (global $~lib/memory/__data_end i32 (i32.const 2440)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35208)) - (global $~lib/memory/__heap_base i32 (i32.const 35208)) + (global $~lib/rt/__rtti_base i32 (i32.const 448)) + (global $~lib/memory/__data_end i32 (i32.const 472)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33240)) + (global $~lib/memory/__heap_base i32 (i32.const 33240)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00d\00o\00.\00t\00s\00\00\00") - (data $20 (i32.const 2416) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00d\00o\00.\00t\00s\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 448) "\05\00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end + (func $do/testSimple + (local $n i32) + (local $m i32) + i32.const 10 + local.set $n + i32.const 0 + local.set $m + loop $do-loop|0 + local.get $n + i32.const 1 + i32.sub + local.set $n + local.get $m + i32.const 1 + i32.add + local.set $m + local.get $n + br_if $do-loop|0 end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next + local.get $n i32.const 0 i32.eq + i32.eqz if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return + i32.const 32 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev + local.get $m + i32.const 10 + i32.eq i32.eqz if i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 + i32.const 32 + i32.const 11 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load + i32.const 1 + global.set $do/ran ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u + (func $do/testEmpty + (local $n i32) + (local $1 i32) + i32.const 10 + local.set $n + loop $do-loop|0 + local.get $n + local.tee $1 + i32.const 1 + i32.sub + local.set $n + local.get $1 + br_if $do-loop|0 + end + local.get $n + i32.const -1 + i32.eq + i32.eqz if - i32.const 320 - i32.const 384 + i32.const 0 + i32.const 32 i32.const 21 - i32.const 28 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return + i32.const 1 + global.set $do/ran ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and + (func $do/testNested + (local $n i32) + (local $m i32) + (local $o i32) + i32.const 10 + local.set $n + i32.const 0 + local.set $m + i32.const 0 + local.set $o + loop $do-loop|0 + local.get $n + i32.const 1 + i32.sub + local.set $n + local.get $m + i32.const 1 + i32.add + local.set $m + loop $do-loop|1 + local.get $n + i32.const 1 + i32.sub + local.set $n + local.get $o + i32.const 1 + i32.add + local.set $o + local.get $n + br_if $do-loop|1 + end + local.get $n i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 + i32.eq i32.eqz - if (result i32) + if i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 + i32.const 32 + i32.const 39 + i32.const 5 call $~lib/builtins/abort unreachable - else - local.get $1 end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - call $~lib/rt/itcms/Object#get:isPointerfree - if (result i32) - global.get $~lib/rt/itcms/white + local.get $o + i32.const 9 + i32.eq i32.eqz - else - i32.const 2 - end - call $~lib/rt/itcms/Object#linkTo - ) - (func $~lib/rt/itcms/__visit (param $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $n + br_if $do-loop|0 end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and + local.get $n + i32.const 0 + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 + i32.const 32 + i32.const 42 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size + local.get $m i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 + i32.const 32 + i32.const 43 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end + local.get $o + i32.const 9 + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 + i32.const 32 + i32.const 44 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap + i32.const 1 + global.set $do/ran + ) + (func $do/testAlwaysTrue + (local $i i32) + i32.const 0 + local.set $i + block $do-break|0 + loop $do-loop|0 + local.get $i i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz + local.tee $i + i32.const 10 + i32.eq if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap + br $do-break|0 end + i32.const 1 + br_if $do-loop|0 end end - ) - (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block + local.get $i + i32.const 10 + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 + i32.const 32 + i32.const 56 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and + global.set $do/ran + ) + (func $do/testAlwaysTrueNeverBreaks (result i32) + (local $i i32) + i32.const 0 + local.set $i + loop $do-loop|0 + local.get $i + i32.const 1 i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + local.tee $i + i32.const 10 + i32.eq + if + local.get $i + return end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo i32.const 1 - drop - local.get $leftInfo + br_if $do-loop|0 + end + unreachable + ) + (func $do/testAlwaysFalse + (local $i i32) + i32.const 0 + local.set $i + loop $do-loop|0 + local.get $i i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo + local.set $i + i32.const 0 + br_if $do-loop|0 end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size + local.get $i i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 + i32.const 32 + i32.const 77 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right + global.set $do/ran + ) + (func $do/testAlwaysBreaks + (local $i i32) + i32.const 0 + local.set $i + block $do-break|0 + loop $do-loop|0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $do-break|0 + end + unreachable + end + local.get $i + i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 + i32.const 32 + i32.const 90 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u + i32.const 1 + global.set $do/ran + ) + (func $do/testAlwaysReturns + (local $i i32) + i32.const 0 + local.set $i + loop $do-loop|0 + local.get $i i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 + i32.add + local.set $i i32.const 1 - i32.sub - i32.sub - local.set $fl + global.set $do/ran + return end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 + unreachable + ) + (func $do/testContinue + (local $i i32) + i32.const 0 + local.set $i + block $do-break|0 + loop $do-loop|0 + block $do-continue|0 + local.get $i + i32.const 1 + i32.add + local.tee $i + i32.const 10 + i32.eq + if + br $do-break|0 + end + br $do-continue|0 + end + local.get $i + br_if $do-loop|0 + end end + local.get $i + i32.const 10 + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 + i32.const 32 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $head - local.get $block + i32.const 1 + global.set $do/ran + ) + (func $do/testNestedContinue + (local $i i32) + (local $j i32) i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev + local.set $i + i32.const 0 + local.set $j + block $do-break|0 + loop $do-loop|0 + block $do-continue|0 + local.get $i + i32.const 1 + i32.add + local.tee $i + i32.const 10 + i32.eq + if + br $do-break|0 + end + block $do-break|1 + loop $do-loop|1 + block $do-continue|1 + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 10 + i32.rem_s + i32.const 0 + i32.eq + if + br $do-break|1 + end + br $do-continue|1 + end + local.get $j + br_if $do-loop|1 + end + end + br $do-continue|0 + end + local.get $i + br_if $do-loop|0 + end end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 134 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u + local.get $j + i32.const 90 + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 + i32.const 32 + i32.const 135 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $start - i32.const 4 - i32.add - i32.const 15 - i32.add - i32.const 15 + i32.const 1 + global.set $do/ran + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:prev + local.get $space + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 i32.const -1 i32.xor i32.and - i32.const 4 - i32.sub - local.set $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - else + end + ) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if i32.const 1 drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end i32.eqz if i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 + i32.const 128 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end + return end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev + i32.const 1 + drop + local.get $prev + i32.eqz if i32.const 0 - return + i32.const 128 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u + if + i32.const 256 + i32.const 320 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr i32.const 4 i32.add - local.get $leftSize + local.get $id + i32.const 4 + i32.mul i32.add - local.set $tail - local.get $tail - i32.const 0 + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end return ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 + i32.eqz + if (result i32) i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 + i32.const 128 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 end + global.set $~lib/rt/itcms/iter end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + call $~lib/rt/itcms/Object#get:isPointerfree if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and + global.get $~lib/rt/itcms/white i32.eqz else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 2 end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock + call $~lib/rt/itcms/Object#linkTo ) - (func $~lib/rt/tlsf/__free (param $ptr i32) + (func $~lib/rt/itcms/__visit (param $ptr i32) (param $cookie i32) + (local $obj i32) local.get $ptr - 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 + return end - global.get $~lib/rt/tlsf/ROOT local.get $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) + i32.const 20 + i32.sub + local.set $obj + i32.const 0 + drop local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq if local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 i32.add - call $~lib/rt/tlsf/__free + global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 + (func $~lib/rt/itcms/visitStack (param $cookie i32) + (local $ptr i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end - global.get $~lib/rt/itcms/iter - local.set $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne + end + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) + i32.const 4 + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $6 i32) + (local $7 i32) + (local $boundedSize i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) + (local $head i32) + (local $root|18 i32) + (local $fl|19 i32) + (local $slMap i32) + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + i32.eq + if + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $next + i32.eqz if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + local.get $slMap i32.eqz if - i32.const 0 - i32.const 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap end - local.get $obj - 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 - return ) - (func $~lib/rt/itcms/interrupt - (local $budget i32) - i32.const 0 + (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) + (local $left i32) + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) + i32.const 1 drop - i32.const 0 + local.get $block + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 drop - i32.const 1024 - i32.const 200 - i32.mul - i32.const 100 - i32.div_u - local.set $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 + i32.const 400 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 end - local.get $budget - i32.const 0 - i32.gt_s - br_if $do-loop|0 + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo + i32.const 1 + drop + local.get $leftInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo i32.const 4 i32.add - i32.const 15 - i32.add - i32.const 15 + local.get $blockInfo + i32.const 3 i32.const -1 i32.xor i32.and - i32.const 4 - i32.sub + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo end - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop local.get $size - i32.const 1073741820 - i32.gt_u + i32.const 12 + i32.ge_u + i32.eqz if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 + i32.const 0 + i32.const 400 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) + local.get $right + i32.const 4 + i32.sub + local.get $block + i32.store local.get $size i32.const 256 i32.lt_u @@ -1773,18 +1279,20 @@ local.set $sl else local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize i32.clz i32.sub local.set $fl - local.get $requestSize + local.get $boundedSize local.get $fl i32.const 4 i32.sub @@ -1816,170 +1324,302 @@ i32.eqz if i32.const 0 - i32.const 464 - i32.const 334 + i32.const 400 + i32.const 251 i32.const 14 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $root - local.set $root|5 + local.set $root|16 local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 end + local.set $head + local.get $block i32.const 0 - i32.const -1 - i32.xor + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 i32.shl - i32.and + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + 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 $start + local.get $end + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $end + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + local.set $tail i32.const 0 - local.set $head - local.get $slMap - i32.eqz + local.set $tailInfo + local.get $tail if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl i32.const 1 + drop + local.get $start + local.get $tail + i32.const 4 i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap + i32.ge_u i32.eqz if i32.const 0 - local.set $head + i32.const 400 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head end else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.set $head end - local.get $head + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 return ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) (local $pagesBefore i32) - (local $root|3 i32) (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart i32) i32.const 0 drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $rootOffset memory.size local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl + local.get $rootOffset + i32.const 1572 i32.add - local.set $size - local.get $size i32.const 65535 i32.add i32.const 65535 @@ -1988,1112 +1628,1031 @@ i32.and i32.const 16 i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if + local.set $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) local.get $pagesNeeded + local.get $pagesBefore + i32.sub memory.grow i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u if - unreachable + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $sl + i32.const 1 + i32.add + local.set $sl + br $for-loop|1 + end + end + local.get $fl + i32.const 1 + i32.add + local.set $fl + br $for-loop|0 end end - memory.size - local.set $pagesAfter + local.get $rootOffset + i32.const 1572 + i32.add + local.set $memStart + i32.const 0 + drop local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter + local.get $memStart + memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory drop + local.get $root + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 + local.set $block + local.get $ptr + i32.const 0 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock + i32.eqz else + i32.const 0 + end + if (result i32) local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block i32.const 1 - drop - local.get $block + i32.and i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u + else + i32.const 0 + end i32.eqz if i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 + i32.const 400 + i32.const 562 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $root local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) i32.const 0 drop local.get $block - return + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/__alloc (param $size i32) (result i32) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill local.get $ptr - return + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 + (func $~lib/rt/itcms/free (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base i32.lt_u if - local.get $value - i32.const 100 - i32.lt_u - if + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $from 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 $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + 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 $obj + local.get $obj + 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 $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + 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 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add + i32.mul return end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u + global.get $~lib/rt/itcms/iter + local.set $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $obj + 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 128 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $obj + call $~lib/rt/itcms/free + i32.const 10 return end - unreachable + 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 - unreachable + i32.const 0 + return ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u + (func $~lib/rt/itcms/interrupt + (local $budget 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 $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step + i32.sub + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 + i32.const 0 + drop + i32.const 200 + i32.const 100 i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r + i32.const 0 + i32.eq + drop + global.get $~lib/rt/itcms/total + i32.const 200 i32.const 100 i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl + i32.mul + i32.const 1024 i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return end + local.get $budget + i32.const 0 + i32.gt_s + br_if $do-loop|0 end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store + 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 $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl + local.get $size + i32.const 4 i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl + i32.const 15 i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end end - local.get $e - i32.const 1 - i32.sub return ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 64 + i32.const 400 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 + local.get $size + call $~lib/rt/tlsf/computeSize return ) - (func $do/testSimple - (local $n i32) - (local $m i32) - i32.const 10 - local.set $n - i32.const 0 - local.set $m - loop $do-loop|0 - local.get $n + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size i32.const 1 + i32.const 27 + local.get $size + i32.clz i32.sub - local.set $n - local.get $m - i32.const 1 + i32.shl i32.add - local.set $m - local.get $n - br_if $do-loop|0 + i32.const 1 + i32.sub + else + local.get $size end - local.get $n - i32.const 0 - i32.eq - i32.eqz + return + ) + (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u if i32.const 0 - i32.const 2400 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + local.get $requestSize + i32.clz + i32.sub + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 end - local.get $m - i32.const 10 - i32.eq i32.eqz if i32.const 0 - i32.const 2400 - i32.const 11 - i32.const 3 + i32.const 400 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $do/ran - ) - (func $do/testEmpty - (local $n i32) - (local $1 i32) - i32.const 10 - local.set $n - loop $do-loop|0 - local.get $n - local.tee $1 - i32.const 1 - i32.sub - local.set $n - local.get $1 - br_if $do-loop|0 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 end - local.get $n + i32.const 0 i32.const -1 - i32.eq + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap + i32.const 0 + local.set $head + local.get $slMap i32.eqz if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 - i32.const 2400 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const -1 + i32.xor + local.get $fl + i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz + if + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head end - i32.const 1 - global.set $do/ran + local.get $head + return ) - (func $do/testNested - (local $n i32) - (local $m i32) - (local $o i32) - i32.const 10 - local.set $n + (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) i32.const 0 - local.set $m + drop + local.get $size + i32.const 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow i32.const 0 - local.set $o - loop $do-loop|0 - local.get $n - i32.const 1 - i32.sub - local.set $n - local.get $m - i32.const 1 - i32.add - local.set $m - loop $do-loop|1 - local.get $n - i32.const 1 - i32.sub - local.set $n - local.get $o - i32.const 1 - i32.add - local.set $o - local.get $n - br_if $do-loop|1 - end - local.get $n + i32.lt_s + if + local.get $pagesNeeded + memory.grow i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $o - i32.const 9 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 2400 - i32.const 40 - i32.const 5 - call $~lib/builtins/abort unreachable end - local.get $n - br_if $do-loop|0 - end - local.get $n - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $m + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo i32.const 1 - i32.eq + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $o - i32.const 9 - i32.eq i32.eqz if i32.const 0 - i32.const 2400 - i32.const 44 - i32.const 3 + i32.const 400 + i32.const 361 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $do/ran - ) - (func $do/testAlwaysTrue - (local $i i32) - i32.const 0 - local.set $i - block $do-break|0 - loop $do-loop|0 - local.get $i - i32.const 1 + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 i32.add - local.tee $i - i32.const 10 - i32.eq - if - br $do-break|0 - end - i32.const 1 - br_if $do-loop|0 + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo end - local.get $i - i32.const 10 - i32.eq + ) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block i32.eqz if - i32.const 0 - i32.const 2400 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $do/ran - ) - (func $do/testAlwaysTrueNeverBreaks (result i32) - (local $i i32) - i32.const 0 - local.set $i - loop $do-loop|0 - local.get $i + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq + drop + local.get $block + i32.eqz if - local.get $i - return + i32.const 0 + i32.const 400 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end - i32.const 1 - br_if $do-loop|0 - end - unreachable - ) - (func $do/testAlwaysFalse - (local $i i32) - i32.const 0 - local.set $i - loop $do-loop|0 - local.get $i - i32.const 1 - i32.add - local.set $i - i32.const 0 - br_if $do-loop|0 end - local.get $i i32.const 1 - i32.eq + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u i32.eqz if i32.const 0 - i32.const 2400 - i32.const 77 - i32.const 3 + i32.const 400 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $do/ran - ) - (func $do/testAlwaysBreaks - (local $i i32) + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock i32.const 0 - local.set $i - block $do-break|0 - loop $do-loop|0 - local.get $i - i32.const 1 - i32.add - local.set $i - br $do-break|0 - end - unreachable - end - local.get $i - i32.const 1 - i32.eq + drop + local.get $block + return + ) + (func $~lib/rt/tlsf/__alloc (param $size i32) (result i32) + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 2400 - i32.const 90 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - i32.const 1 - global.set $do/ran + global.get $~lib/rt/tlsf/ROOT + local.get $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + return ) - (func $do/testAlwaysReturns - (local $i i32) - i32.const 0 - local.set $i - loop $do-loop|0 - local.get $i - i32.const 1 - i32.add - local.set $i - i32.const 1 - global.set $do/ran - return - end - unreachable + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 ) - (func $do/testContinue - (local $i i32) - i32.const 0 - local.set $i - block $do-break|0 - loop $do-loop|0 - block $do-continue|0 - local.get $i - i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq - if - br $do-break|0 - end - br $do-continue|0 - end - local.get $i - br_if $do-loop|0 - end - end - local.get $i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 116 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $do/ran + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 ) - (func $do/testNestedContinue - (local $i i32) - (local $j i32) - i32.const 0 - local.set $i - i32.const 0 - local.set $j - block $do-break|0 - loop $do-loop|0 - block $do-continue|0 - local.get $i - i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq - if - br $do-break|0 - end - block $do-break|1 - loop $do-loop|1 - block $do-continue|1 - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 10 - i32.rem_s - i32.const 0 - i32.eq - if - br $do-break|1 - end - br $do-continue|1 - end - local.get $j - br_if $do-loop|1 - end - end - br $do-continue|0 - end - local.get $i - br_if $do-loop|0 - end - end - local.get $i - i32.const 10 - i32.eq - i32.eqz + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 2400 - i32.const 134 - i32.const 3 + i32.const 64 + i32.const 128 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $j - i32.const 90 - i32.eq - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 2400 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/interrupt end - i32.const 1 - global.set $do/ran + i32.const 16 + local.get $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill + local.get $ptr + return ) (func $do/testRef (local $i i32) @@ -3139,7 +2698,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 150 i32.const 3 call $~lib/builtins/abort @@ -3150,7 +2709,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 151 i32.const 3 call $~lib/builtins/abort @@ -3209,7 +2768,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 170 i32.const 3 call $~lib/builtins/abort @@ -3220,7 +2779,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 171 i32.const 3 call $~lib/builtins/abort @@ -3282,29 +2841,12 @@ (func $start:do i32.const 0 global.set $do/ran - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $do/testSimple global.get $do/ran i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -3317,7 +2859,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -3330,7 +2872,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 49 i32.const 1 call $~lib/builtins/abort @@ -3343,7 +2885,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 61 i32.const 1 call $~lib/builtins/abort @@ -3355,7 +2897,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 70 i32.const 1 call $~lib/builtins/abort @@ -3368,7 +2910,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 82 i32.const 1 call $~lib/builtins/abort @@ -3381,7 +2923,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 95 i32.const 1 call $~lib/builtins/abort @@ -3394,7 +2936,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 108 i32.const 1 call $~lib/builtins/abort @@ -3407,7 +2949,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 121 i32.const 1 call $~lib/builtins/abort @@ -3420,7 +2962,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 140 i32.const 1 call $~lib/builtins/abort @@ -3428,12 +2970,29 @@ end i32.const 0 global.set $do/ran + 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 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace call $do/testRef global.get $do/ran i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 156 i32.const 1 call $~lib/builtins/abort @@ -3446,7 +3005,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 176 i32.const 1 call $~lib/builtins/abort @@ -3462,20 +3021,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35232 - i32.const 35280 + i32.const 33264 + i32.const 33312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3484,196 +3039,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $do/Ref#constructor (param $this i32) (result i32) (local $1 i32) @@ -3713,153 +3099,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3890,16 +3129,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index d861151473..cc9e850111 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (param i32) (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,54 +17,29 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36232)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34264)) (memory $0 1) (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\n\00\00\00d\00o\00.\00t\00s") - (data $20 (i32.const 3440) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00d\00o\00.\00t\00s") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\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 $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1324) ",") + (data $6.1 (i32.const 1336) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1472) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1088 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -85,7 +60,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -133,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -142,7 +117,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$138 + block $__inlined_func$~lib/rt/itcms/Object#unlink$126 local.get $1 i32.load offset=4 i32.const -4 @@ -154,19 +129,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36232 + i32.const 34264 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$138 + br $__inlined_func$~lib/rt/itcms/Object#unlink$126 end local.get $1 i32.load offset=8 @@ -174,7 +149,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -203,13 +178,13 @@ i32.const 1 else local.get $0 - i32.const 3440 + i32.const 1472 i32.load i32.gt_u if + i32.const 1280 i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -217,7 +192,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3444 + i32.const 1476 i32.add i32.load i32.const 32 @@ -269,7 +244,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -283,7 +258,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -329,7 +304,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -412,7 +387,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -426,7 +401,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -487,7 +462,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -520,7 +495,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -535,7 +510,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -586,7 +561,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -658,7 +633,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -683,7 +658,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -710,7 +685,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -782,10 +757,10 @@ if unreachable end - i32.const 36240 + i32.const 34272 i32.const 0 i32.store - i32.const 37808 + i32.const 35840 i32.const 0 i32.store loop $for-loop|0 @@ -796,7 +771,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36240 + i32.const 34272 i32.add i32.const 0 i32.store offset=4 @@ -814,7 +789,7 @@ i32.add i32.const 2 i32.shl - i32.const 36240 + i32.const 34272 i32.add i32.const 0 i32.store offset=96 @@ -832,14 +807,14 @@ br $for-loop|0 end end - i32.const 36240 - i32.const 37812 + i32.const 34272 + i32.const 35844 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36240 + i32.const 34272 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -924,7 +899,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36232 + i32.const 34264 i32.lt_u if local.get $0 @@ -1013,14 +988,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36232 + i32.const 34264 i32.lt_u if local.get $0 @@ -1043,7 +1018,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36232 + i32.const 34264 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1072,7 +1047,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1102,85 +1077,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1188,11 +1096,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1208,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1230,35 +1134,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1268,9 +1160,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1293,86 +1185,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1388,8 +1225,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1397,136 +1234,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1534,268 +1354,38 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) + (func $start:do + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - local.get $0 - 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 3464 - i32.lt_s - if - i32.const 36256 - i32.const 36304 + i32.const 10 + local.set $0 + loop $do-loop|0 + local.get $1 i32.const 1 + i32.add + local.set $1 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $start:do - (local $0 i32) - (local $1 i32) - (local $2 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36232 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - i32.const 10 - local.set $0 - loop $do-loop|0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - br_if $do-loop|0 - end - local.get $0 - if - i32.const 0 - i32.const 3424 - i32.const 10 - i32.const 3 + i32.sub + local.tee $0 + br_if $do-loop|0 + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 10 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -1804,7 +1394,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -1826,7 +1416,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -1859,7 +1449,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -1870,7 +1460,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 40 i32.const 5 call $~lib/builtins/abort @@ -1882,7 +1472,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -1893,7 +1483,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -1904,7 +1494,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -1926,7 +1516,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -1948,7 +1538,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 70 i32.const 1 call $~lib/builtins/abort @@ -1973,7 +1563,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 116 i32.const 3 call $~lib/builtins/abort @@ -2012,7 +1602,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 134 i32.const 3 call $~lib/builtins/abort @@ -2023,19 +1613,51 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 135 i32.const 3 call $~lib/builtins/abort unreachable end + memory.size + i32.const 16 + i32.shl + i32.const 34264 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace 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 3464 + i32.const 1496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2070,7 +1692,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 150 i32.const 3 call $~lib/builtins/abort @@ -2079,7 +1701,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 151 i32.const 3 call $~lib/builtins/abort @@ -2094,7 +1716,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3464 + i32.const 1496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2128,7 +1750,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 170 i32.const 3 call $~lib/builtins/abort @@ -2137,7 +1759,7 @@ local.get $1 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 171 i32.const 3 call $~lib/builtins/abort @@ -2182,8 +1804,8 @@ global.set $~lib/rt/itcms/threshold return end - i32.const 36256 - i32.const 36304 + i32.const 34288 + i32.const 34336 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2192,205 +1814,40 @@ (func $~start call $start:do ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3464 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3464 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$143 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$143 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36256 - i32.const 36304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3464 + i32.const 1496 i32.lt_s if - i32.const 36256 - i32.const 36304 + i32.const 34288 + i32.const 34336 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $do/Ref#constructor (result i32) (local $0 i32) @@ -2401,14 +1858,13 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3464 + i32.const 1496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2422,7 +1878,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3464 + i32.const 1496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2433,7 +1889,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2451,8 +1906,8 @@ local.get $0 return end - i32.const 36256 - i32.const 36304 + i32.const 34288 + i32.const 34336 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index df98ec06d5..ae36cf06b0 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -5,16 +5,11 @@ (type $3 (func (param i32))) (type $4 (func)) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,37 +18,30 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $duplicate-fields/foo (mut i32) (i32.const 0)) (global $duplicate-fields/raz (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2496)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35264)) - (global $~lib/memory/__heap_base i32 (i32.const 35264)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 528)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33296)) + (global $~lib/memory/__heap_base i32 (i32.const 33296)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00-\00f\00i\00e\00l\00d\00s\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2448) "\0b\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00-\00f\00i\00e\00l\00d\00s\00.\00t\00s\00\00\00\00\00\00\00") + (data $9 (i32.const 480) "\0b\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -63,435 +51,6 @@ local.get $bar i32.store ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -556,7 +115,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -626,7 +185,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -643,7 +202,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -673,9 +232,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -742,7 +301,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -894,7 +453,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -914,7 +473,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -977,7 +536,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1130,7 +689,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1147,7 +706,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1236,7 +795,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1279,7 +838,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1297,7 +856,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1365,7 +924,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1482,7 +1041,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1528,7 +1087,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1560,7 +1119,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1804,7 +1363,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2024,7 +1583,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2135,8 +1694,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2238,7 +1797,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2309,7 +1868,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2466,7 +2025,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2581,7 +2140,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2601,7 +2160,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2649,8 +2208,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2719,7 +2278,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2831,20 +2390,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 33328 + i32.const 33376 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2853,196 +2408,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $duplicate-fields/A#constructor (param $this i32) (param $bar i32) (result i32) (local $2 i32) @@ -3441,13 +2827,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3466,7 +2852,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -3509,7 +2895,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -3523,153 +2909,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3714,16 +2953,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index d2f4cfa828..884c4ac4f5 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -2,11 +2,11 @@ (type $0 (func)) (type $1 (func (param i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -19,242 +19,23 @@ (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $duplicate-fields/foo (mut i32) (i32.const 0)) (global $duplicate-fields/raz (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36288)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34320)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00&\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00-\00f\00i\00e\00l\00d\00s\00.\00t\00s") - (data $20 (i32.const 3472) "\0b\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00&\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00-\00f\00i\00e\00l\00d\00s\00.\00t\00s") + (data $9 (i32.const 1504) "\0b\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3520 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -270,13 +51,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -297,7 +74,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -330,7 +107,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -339,7 +116,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$152 + block $__inlined_func$~lib/rt/itcms/Object#unlink$140 local.get $0 i32.load offset=4 i32.const -4 @@ -351,19 +128,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36288 + i32.const 34320 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$152 + br $__inlined_func$~lib/rt/itcms/Object#unlink$140 end local.get $0 i32.load offset=8 @@ -371,7 +148,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -400,13 +177,13 @@ i32.const 1 else local.get $1 - i32.const 3472 + i32.const 1504 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -414,7 +191,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3476 + i32.const 1508 i32.add i32.load i32.const 32 @@ -485,7 +262,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -499,7 +276,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -545,7 +322,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -628,7 +405,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -642,7 +419,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -703,7 +480,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -736,7 +513,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -751,7 +528,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -802,7 +579,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -874,7 +651,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -899,7 +676,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -926,7 +703,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -998,10 +775,10 @@ if unreachable end - i32.const 36288 + i32.const 34320 i32.const 0 i32.store - i32.const 37856 + i32.const 35888 i32.const 0 i32.store loop $for-loop|0 @@ -1012,7 +789,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36288 + i32.const 34320 i32.add i32.const 0 i32.store offset=4 @@ -1030,7 +807,7 @@ i32.add i32.const 2 i32.shl - i32.const 36288 + i32.const 34320 i32.add i32.const 0 i32.store offset=96 @@ -1048,14 +825,14 @@ br $for-loop|0 end end - i32.const 36288 - i32.const 37860 + i32.const 34320 + i32.const 35892 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36288 + i32.const 34320 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1140,7 +917,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36288 + i32.const 34320 i32.lt_u if local.get $0 @@ -1229,14 +1006,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36288 + i32.const 34320 i32.lt_u if local.get $0 @@ -1259,7 +1036,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36288 + i32.const 34320 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1288,7 +1065,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1372,7 +1149,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1424,7 +1201,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1456,8 +1233,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1467,7 +1244,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1484,7 +1261,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1517,8 +1294,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1620,7 +1397,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1635,7 +1412,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1654,7 +1431,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1769,7 +1546,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1824,7 +1601,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1552 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1833,41 +1610,41 @@ memory.size i32.const 16 i32.shl - i32.const 36288 + i32.const 34320 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 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 3520 + i32.const 1552 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1894,7 +1671,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1552 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1950,7 +1727,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -1961,7 +1738,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1552 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1997,7 +1774,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1552 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2030,7 +1807,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1552 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2100,7 +1877,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -2111,7 +1888,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1552 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2132,7 +1909,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1552 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2157,7 +1934,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1552 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2219,212 +1996,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3520 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3520 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$160 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$160 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1552 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index 227ce2704f..e65750efae 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -2,19 +2,14 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,36 +18,29 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2512)) - (global $~lib/memory/__data_end i32 (i32.const 2532)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35300)) - (global $~lib/memory/__heap_base i32 (i32.const 35300)) + (global $~lib/rt/__rtti_base i32 (i32.const 544)) + (global $~lib/memory/__data_end i32 (i32.const 564)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33332)) + (global $~lib/memory/__heap_base i32 (i32.const 33332)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") - (data $20 (i32.const 2444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") - (data $21 (i32.const 2512) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") + (data $9 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") + (data $10 (i32.const 544) "\04\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 "__new" (func $~lib/rt/itcms/__new)) @@ -62,435 +50,6 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -555,7 +114,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -625,7 +184,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -642,7 +201,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -672,9 +231,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -741,7 +300,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -893,7 +452,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -913,7 +472,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -976,7 +535,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1129,7 +688,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1146,7 +705,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1235,7 +794,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1278,7 +837,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1296,7 +855,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1364,7 +923,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1481,7 +1040,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1527,7 +1086,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1559,7 +1118,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1803,7 +1362,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2023,7 +1582,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2134,8 +1693,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2237,7 +1796,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2308,7 +1867,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2465,7 +2024,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2580,7 +2139,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2600,7 +2159,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2648,8 +2207,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2707,8 +2266,8 @@ i32.const 3 i32.eq if - i32.const 2400 - i32.const 2064 + i32.const 432 + i32.const 96 i32.const 338 i32.const 7 call $~lib/builtins/abort @@ -2740,8 +2299,8 @@ i32.const 3 i32.ne if - i32.const 2464 - i32.const 2064 + i32.const 496 + i32.const 96 i32.const 352 i32.const 5 call $~lib/builtins/abort @@ -2817,13 +2376,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace ) @@ -2832,20 +2391,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35328 - i32.const 35376 + i32.const 33360 + i32.const 33408 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2854,362 +2409,40 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + local.set $4 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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2464 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 432 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 496 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/empty-exportruntime.release.wat b/tests/compiler/empty-exportruntime.release.wat index d30722746c..835318eea8 100644 --- a/tests/compiler/empty-exportruntime.release.wat +++ b/tests/compiler/empty-exportruntime.release.wat @@ -1,12 +1,13 @@ (module (type $0 (func (param i32))) (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32 i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,45 +18,24 @@ (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/rt/__rtti_base i32 (i32.const 3536)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36324)) + (global $~lib/rt/__rtti_base i32 (i32.const 1568)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34356)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") - (data $20 (i32.const 3468) "<") - (data $20.1 (i32.const 3480) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") - (data $21 (i32.const 3536) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") + (data $9 (i32.const 1500) "<") + (data $9.1 (i32.const 1512) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") + (data $10 (i32.const 1568) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "__new" (func $~lib/rt/itcms/__new)) (export "__pin" (func $~lib/rt/itcms/__pin)) (export "__unpin" (func $~lib/rt/itcms/__unpin)) @@ -63,218 +43,16 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3556 - i32.lt_s - if - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3424 - call $~lib/rt/itcms/__visit - i32.const 3488 + i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1456 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1520 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -295,7 +73,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -327,13 +105,13 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36324 + i32.const 34356 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -347,7 +125,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -379,7 +157,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -401,13 +179,13 @@ i32.const 1 else local.get $2 - i32.const 3536 + i32.const 1568 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -415,7 +193,7 @@ local.get $2 i32.const 2 i32.shl - i32.const 3540 + i32.const 1572 i32.add i32.load i32.const 32 @@ -486,7 +264,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -500,7 +278,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -546,7 +324,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -629,7 +407,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -643,7 +421,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -704,7 +482,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -737,7 +515,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -752,7 +530,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -803,7 +581,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -875,7 +653,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -900,7 +678,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -927,7 +705,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -999,10 +777,10 @@ if unreachable end - i32.const 36336 + i32.const 34368 i32.const 0 i32.store - i32.const 37904 + i32.const 35936 i32.const 0 i32.store loop $for-loop|0 @@ -1013,7 +791,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36336 + i32.const 34368 i32.add i32.const 0 i32.store offset=4 @@ -1031,7 +809,7 @@ i32.add i32.const 2 i32.shl - i32.const 36336 + i32.const 34368 i32.add i32.const 0 i32.store offset=96 @@ -1049,14 +827,14 @@ br $for-loop|0 end end - i32.const 36336 - i32.const 37908 + i32.const 34368 + i32.const 35940 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36336 + i32.const 34368 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1141,7 +919,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36324 + i32.const 34356 i32.lt_u if local.get $0 @@ -1230,14 +1008,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36324 + i32.const 34356 i32.lt_u if local.get $0 @@ -1260,7 +1038,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36324 + i32.const 34356 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1289,7 +1067,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1373,7 +1151,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1425,7 +1203,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1457,8 +1235,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1468,7 +1246,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1485,7 +1263,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1518,8 +1296,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1621,7 +1399,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1636,7 +1414,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1655,7 +1433,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1776,8 +1554,8 @@ i32.const 3 i32.eq if - i32.const 3424 - i32.const 3088 + i32.const 1456 + i32.const 1120 i32.const 338 i32.const 7 call $~lib/builtins/abort @@ -1829,8 +1607,8 @@ i32.const 3 i32.ne if - i32.const 3488 - i32.const 3088 + i32.const 1520 + i32.const 1120 i32.const 352 i32.const 5 call $~lib/builtins/abort @@ -1909,235 +1687,70 @@ memory.size i32.const 16 i32.shl - i32.const 36324 + i32.const 34356 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3556 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3556 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$126 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$126 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index 3dc9a93b52..c68f28c35d 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,467 +18,31 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2404)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35172)) - (global $~lib/memory/__heap_base i32 (i32.const 35172)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 436)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33204)) + (global $~lib/memory/__heap_base i32 (i32.const 33204)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2384) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\04\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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -548,7 +107,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -618,7 +177,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -635,7 +194,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -665,9 +224,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -734,7 +293,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -886,7 +445,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -906,7 +465,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -969,7 +528,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1122,7 +681,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1139,7 +698,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1228,7 +787,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1271,7 +830,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1289,7 +848,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1357,7 +916,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1474,7 +1033,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1520,7 +1079,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1552,7 +1111,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1796,7 +1355,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2016,7 +1575,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2127,8 +1686,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2230,7 +1789,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2301,7 +1860,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2458,7 +2017,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2573,7 +2132,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2593,7 +2152,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2641,8 +2200,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2696,13 +2255,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -2718,20 +2277,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35200 - i32.const 35248 + i32.const 33232 + i32.const 33280 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2740,356 +2295,34 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + local.set $4 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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index 10d7f98240..93458ccb2e 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32 i64))) + (type $5 (func (result i32))) + (type $6 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,250 +17,27 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36196)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34228)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3408) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1440) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3428 - i32.lt_s - if - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -281,7 +58,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -329,7 +106,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -338,7 +115,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$120 + block $__inlined_func$~lib/rt/itcms/Object#unlink$108 local.get $1 i32.load offset=4 i32.const -4 @@ -350,19 +127,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36196 + i32.const 34228 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$120 + br $__inlined_func$~lib/rt/itcms/Object#unlink$108 end local.get $1 i32.load offset=8 @@ -370,7 +147,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -399,13 +176,13 @@ i32.const 1 else local.get $0 - i32.const 3408 + i32.const 1440 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -413,7 +190,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3412 + i32.const 1444 i32.add i32.load i32.const 32 @@ -465,7 +242,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -479,7 +256,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -525,7 +302,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -608,7 +385,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -622,7 +399,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -683,7 +460,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -716,7 +493,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -731,7 +508,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -782,7 +559,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -854,7 +631,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -879,7 +656,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -906,7 +683,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -978,10 +755,10 @@ if unreachable end - i32.const 36208 + i32.const 34240 i32.const 0 i32.store - i32.const 37776 + i32.const 35808 i32.const 0 i32.store loop $for-loop|0 @@ -992,7 +769,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=4 @@ -1010,7 +787,7 @@ i32.add i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=96 @@ -1028,14 +805,14 @@ br $for-loop|0 end end - i32.const 36208 - i32.const 37780 + i32.const 34240 + i32.const 35812 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36208 + i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1120,7 +897,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36196 + i32.const 34228 i32.lt_u if local.get $0 @@ -1209,14 +986,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36196 + i32.const 34228 i32.lt_u if local.get $0 @@ -1239,7 +1016,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36196 + i32.const 34228 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1268,7 +1045,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1298,85 +1075,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1384,11 +1094,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1404,7 +1110,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1426,35 +1132,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $0 loop $do-loop|0 - local.get $2 + local.get $0 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $0 global.get $~lib/rt/itcms/state i32.eqz if @@ -1464,9 +1158,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $0 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1489,94 +1183,39 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $0 i32.const 4 - local.get $4 + local.get $1 i32.load offset=1568 - local.get $2 + local.get $0 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $0 local.get $2 - local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1584,8 +1223,8 @@ unreachable end end - local.get $4 - local.get $2 + local.get $1 + local.get $0 i32.const 16 i32.shl memory.size @@ -1593,136 +1232,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $0 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 + local.get $0 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $0 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $2 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub local.tee $3 i32.const 16 i32.ge_u if + local.get $0 local.get $2 - local.get $5 - local.get $6 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $0 + i32.const 32 i32.add - local.tee $5 + local.tee $2 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $0 local.get $2 - local.get $6 i32.const -2 i32.and i32.store - local.get $2 + local.get $0 i32.const 4 i32.add - local.get $2 + local.get $0 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and i32.store end - local.get $2 - local.get $1 + local.get $0 + i32.const 0 i32.store offset=12 - local.get $2 local.get $0 + i32.const 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.set $2 + local.get $0 local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $0 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.load i32.const -4 i32.and @@ -1730,252 +1352,82 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.const 20 i32.add - local.tee $1 i32.const 0 - local.get $0 + i32.const 0 memory.fill - local.get $1 ) (func $~start memory.size i32.const 16 i32.shl - i32.const 36196 + i32.const 34228 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace - i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new - drop - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3428 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3428 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$125 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$125 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3428 + i32.const 1460 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/enum-to-string.debug.wat b/tests/compiler/enum-to-string.debug.wat index a2b3c5839f..a5abb3ac58 100644 --- a/tests/compiler/enum-to-string.debug.wat +++ b/tests/compiler/enum-to-string.debug.wat @@ -1,35 +1,19 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $4 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $enum-to-string/Enum.E0 i32 (i32.const 0)) (global $enum-to-string/Enum.E1 i32 (i32.const 1)) (global $enum-to-string/Enum.E2 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/native/ASC_SHRINK_LEVEL 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_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $enum-to-string/v (mut i32) (i32.const 0)) (global $enum-to-string/EnumWithInit.E0 i32 (i32.const 1)) (global $enum-to-string/EnumWithInit.E1 i32 (i32.const 2)) @@ -37,38 +21,17 @@ (global $enum-to-string/EnumWithDup.E0 i32 (i32.const 1)) (global $enum-to-string/EnumWithDup.E1 i32 (i32.const 2)) (global $enum-to-string/EnumWithDup.E2 i32 (i32.const 1)) - (global $~lib/rt/__rtti_base i32 (i32.const 2640)) - (global $~lib/memory/__data_end i32 (i32.const 2660)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35428)) - (global $~lib/memory/__heap_base i32 (i32.const 35428)) + (global $~lib/memory/__data_end i32 (i32.const 268)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33036)) + (global $~lib/memory/__heap_base i32 (i32.const 33036)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\002\00\00\00\00\00\00\00\00\00") (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\001\00\00\00\00\00\00\00\00\00") (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\000\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $4 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $5 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 512) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 636) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 764) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 860) "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 $19 (i32.const 1260) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2316) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00e\00n\00u\00m\00-\00t\00o\00-\00s\00t\00r\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00C\00E\002\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00C\00E\001\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00C\00E\000\00\00\00\00\00\00\00") - (data $26 (i32.const 2640) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00e\00n\00u\00m\00-\00t\00o\00-\00s\00t\00r\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00C\00E\002\00\00\00\00\00\00\00") + (data $5 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00C\00E\001\00\00\00\00\00\00\00") + (data $6 (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00C\00E\000\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -214,2645 +177,26 @@ i32.const 0 return ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 416 - i32.const 480 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 288 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 288 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 224 - i32.const 560 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 560 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 224 - i32.const 288 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 860 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 860 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 860 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 860 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1280 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1280 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2336 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2336 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $enum-to-string/InlineEnum#__enum_to_string (param $0 i32) (result i32) i32.const 2 local.get $0 i32.eq if - i32.const 2560 + i32.const 192 return end i32.const 1 local.get $0 i32.eq if - i32.const 2592 + i32.const 224 return end i32.const 0 local.get $0 i32.eq if - i32.const 2624 + i32.const 256 return end unreachable @@ -2913,8 +257,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35456 - i32.const 35504 + i32.const 33056 + i32.const 33104 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3017,12 +361,8 @@ local.get $3 return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3031,196 +371,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 192 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 128 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 160 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 624 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 624 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2432 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $start:enum-to-string (local $0 i32) @@ -3232,23 +403,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - 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 336 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 368 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 512 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $enum-to-string/Enum.E0 call $enum-to-string/Enum#__enum_to_string local.set $0 @@ -3261,7 +415,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 7 i32.const 1 call $~lib/builtins/abort @@ -3279,7 +433,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -3297,7 +451,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -3317,7 +471,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -3330,12 +484,12 @@ local.get $0 i32.store local.get $0 - i32.const 2624 + i32.const 256 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -3348,12 +502,12 @@ local.get $0 i32.store local.get $0 - i32.const 2592 + i32.const 224 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -3366,12 +520,12 @@ local.get $0 i32.store local.get $0 - i32.const 2560 + i32.const 192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -3389,7 +543,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -3407,7 +561,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 32 i32.const 1 call $~lib/builtins/abort @@ -3425,7 +579,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -3443,7 +597,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -3461,7 +615,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -3479,7 +633,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -3490,203 +644,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 656 - i32.const 784 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 848 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 416 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 224 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1280 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2336 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable - ) ) diff --git a/tests/compiler/enum-to-string.release.wat b/tests/compiler/enum-to-string.release.wat index 0c79b61904..fc7bc8d1d9 100644 --- a/tests/compiler/enum-to-string.release.wat +++ b/tests/compiler/enum-to-string.release.wat @@ -1,23 +1,10 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36452)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34060)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\04\00\00\00E\002") @@ -25,1733 +12,16 @@ (data $1.1 (i32.const 1080) "\02\00\00\00\04\00\00\00E\001") (data $2 (i32.const 1100) "\1c") (data $2.1 (i32.const 1112) "\02\00\00\00\04\00\00\00E\000") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $4 (i32.const 1164) "\1c") - (data $4.1 (i32.const 1176) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $5 (i32.const 1196) "\1c") - (data $5.1 (i32.const 1208) "\02") - (data $6 (i32.const 1228) "<") - (data $6.1 (i32.const 1240) "\02\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 $7 (i32.const 1292) "<") - (data $7.1 (i32.const 1304) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $10 (i32.const 1420) "<") - (data $10.1 (i32.const 1432) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $11 (i32.const 1484) ",") - (data $11.1 (i32.const 1496) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $13 (i32.const 1564) "<") - (data $13.1 (i32.const 1576) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $14 (i32.const 1628) "\1c") - (data $14.1 (i32.const 1640) "\02\00\00\00\02\00\00\00:") - (data $15 (i32.const 1660) "|") - (data $15.1 (i32.const 1672) "\02\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 $16 (i32.const 1788) "<") - (data $16.1 (i32.const 1800) "\02\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 $17 (i32.const 1852) "\1c") - (data $17.1 (i32.const 1864) "\02\00\00\00\02\00\00\000") - (data $18 (i32.const 1884) "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 $19 (i32.const 2284) "\1c\04") - (data $19.1 (i32.const 2296) "\02\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 $20 (i32.const 3340) "\\") - (data $20.1 (i32.const 3352) "\02\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 $21 (i32.const 3436) "<") - (data $21.1 (i32.const 3448) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $22 (i32.const 3500) "<") - (data $22.1 (i32.const 3512) "\02\00\00\00\"\00\00\00e\00n\00u\00m\00-\00t\00o\00-\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\02\00\00\00\06\00\00\00C\00E\002") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\02\00\00\00\06\00\00\00C\00E\001") - (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\02\00\00\00\06\00\00\00C\00E\000") - (data $26 (i32.const 3664) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $3 (i32.const 1132) "<") + (data $3.1 (i32.const 1144) "\02\00\00\00\"\00\00\00e\00n\00u\00m\00-\00t\00o\00-\00s\00t\00r\00i\00n\00g\00.\00t\00s") + (data $4 (i32.const 1196) "\1c") + (data $4.1 (i32.const 1208) "\02\00\00\00\06\00\00\00C\00E\002") + (data $5 (i32.const 1228) "\1c") + (data $5.1 (i32.const 1240) "\02\00\00\00\06\00\00\00C\00E\001") + (data $6 (i32.const 1260) "\1c") + (data $6.1 (i32.const 1272) "\02\00\00\00\06\00\00\00C\00E\000") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1440 - call $~lib/rt/itcms/__visit - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 2304 - call $~lib/rt/itcms/__visit - i32.const 3360 - call $~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 1312 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$137 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36452 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$137 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3664 - i32.load - i32.gt_u - if - i32.const 1440 - i32.const 1504 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3668 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1584 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1584 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1584 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1584 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1584 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1584 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1584 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1584 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1584 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1584 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1584 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1584 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36464 - i32.const 0 - i32.store - i32.const 38032 - 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 36464 - 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 36464 - 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 36464 - i32.const 38036 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36464 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36452 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1312 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36452 - 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 - local.tee $0 - i32.const 36452 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1584 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1584 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1584 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1248 - i32.const 1312 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1248 - i32.const 1584 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1584 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1584 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1584 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3684 - i32.lt_s - if - i32.const 36480 - i32.const 36528 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1872 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1884 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1884 - 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 1884 - 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 1884 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start call $start:enum-to-string ) @@ -1765,12 +35,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1292 i32.lt_s if - i32.const 36480 - i32.const 36528 - i32.const 1 + i32.const 34080 + i32.const 34128 i32.const 1 call $~lib/builtins/abort unreachable @@ -1868,7 +137,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$76 + block $__inlined_func$~lib/util/string/compareImpl$2 loop $while-continue|1 local.get $0 local.tee $3 @@ -1888,7 +157,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$76 + br_if $__inlined_func$~lib/util/string/compareImpl$2 local.get $2 i32.const 2 i32.add @@ -1917,204 +186,39 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3684 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3684 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$142 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1216 - local.set $0 - br $__inlined_func$~lib/string/String#concat$142 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36480 - i32.const 36528 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1292 i32.lt_s if - i32.const 36480 - i32.const 36528 - i32.const 1 + i32.const 34080 + i32.const 34128 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1152 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1184 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1648 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1648 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3456 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $start:enum-to-string global.get $~lib/memory/__stack_pointer @@ -2122,12 +226,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1292 i32.lt_s if - i32.const 36480 - i32.const 36528 - i32.const 1 + i32.const 34080 + i32.const 34128 i32.const 1 call $~lib/builtins/abort unreachable @@ -2135,38 +238,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - memory.size - i32.const 16 - i32.shl - i32.const 36452 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/pinSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/toSpace - i32.const 1540 - i32.const 1536 - i32.store - i32.const 1544 - i32.const 1536 - i32.store - i32.const 1536 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 1120 i32.store @@ -2176,9 +247,8 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 7 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2191,9 +261,8 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 8 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2206,9 +275,8 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 9 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2221,54 +289,50 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 12 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3648 + i32.const 1280 i32.store - i32.const 3648 - i32.const 3648 + i32.const 1280 + i32.const 1280 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 21 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3616 + i32.const 1248 i32.store - i32.const 3616 - i32.const 3616 + i32.const 1248 + i32.const 1248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 22 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1216 i32.store - i32.const 3584 - i32.const 3584 + i32.const 1216 + i32.const 1216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 23 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2281,9 +345,8 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 31 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2296,9 +359,8 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 32 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2311,9 +373,8 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 33 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2326,9 +387,8 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 41 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2341,9 +401,8 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 42 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2356,9 +415,8 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 43 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2367,29 +425,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) ) diff --git a/tests/compiler/exceptions.debug.wat b/tests/compiler/exceptions.debug.wat index 36a9849982..ab2c161f15 100644 --- a/tests/compiler/exceptions.debug.wat +++ b/tests/compiler/exceptions.debug.wat @@ -18,9 +18,11 @@ (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/native/ASC_FEATURE_EXCEPTION_HANDLING 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/rt/itcms/white (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)) @@ -3570,11 +3572,6 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 36800 - i32.const 36848 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end ) @@ -4839,6 +4836,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -7299,6 +7300,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/exceptions.release.wat b/tests/compiler/exceptions.release.wat index c6845fe678..e7c535fd8a 100644 --- a/tests/compiler/exceptions.release.wat +++ b/tests/compiler/exceptions.release.wat @@ -167,7 +167,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$271 + block $__inlined_func$~lib/rt/itcms/Object#unlink$272 local.get $0 i32.load offset=4 i32.const -4 @@ -191,7 +191,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$271 + br $__inlined_func$~lib/rt/itcms/Object#unlink$272 end local.get $0 i32.load offset=8 @@ -342,11 +342,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2061,100 +2056,95 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 5036 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5036 + i32.lt_s + if + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 5036 + i32.lt_s + if + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$277 local.get $1 - i32.store offset=4 - 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 5036 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const -2 i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$276 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1216 - local.set $0 - br $__inlined_func$~lib/string/String#concat$276 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 1216 + local.set $0 + br $__inlined_func$~lib/string/String#concat$277 end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $~lib/error/RangeError#constructor (param $0 i32) (result i32) (local $1 i32) @@ -2166,11 +2156,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2222,11 +2207,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2319,11 +2299,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2388,11 +2363,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2472,11 +2442,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2525,11 +2490,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2572,11 +2532,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2626,11 +2581,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2690,11 +2640,41 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 5036 + i32.lt_s + if + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1424 + call $~lib/error/RangeError#constructor + throw $error + end + 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 5036 i32.lt_s - br_if $folding-inner0 + if + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -2702,175 +2682,141 @@ local.get $0 i32.store local.get $1 + i32.const 1 + i32.add + local.tee $5 local.get $0 - i32.load offset=12 - i32.ge_u + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.shr_u + i32.gt_u if - local.get $1 - i32.const 0 - i32.lt_s + local.get $5 + i32.const 268435455 + i32.gt_u if - i32.const 1424 + i32.const 3824 call $~lib/error/RangeError#constructor throw $error end 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 5036 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.const 1 - i32.add - local.tee $5 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.const 2 - i32.shr_u - i32.gt_u - if + block $__inlined_func$~lib/rt/itcms/__renew$245 + i32.const 1073741820 + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $4 + i32.const 8 local.get $5 - i32.const 268435455 - i32.gt_u + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + local.get $3 + local.get $4 + i32.lt_u + select + local.tee $6 + local.get $0 + i32.load + local.tee $3 + i32.const 20 + i32.sub + local.tee $5 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u if - i32.const 3824 - call $~lib/error/RangeError#constructor - throw $error - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$245 - i32.const 1073741820 - local.get $3 - i32.const 1 - i32.shl - local.tee $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $4 - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 - local.get $3 - local.get $4 - i32.lt_u - select - local.tee $6 - local.get $0 - i32.load - local.tee $3 - i32.const 20 - i32.sub - local.tee $5 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $5 - local.get $6 - i32.store offset=16 - local.get $3 - local.set $4 - br $__inlined_func$~lib/rt/itcms/__renew$245 - end - local.get $6 - local.get $5 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $4 - local.get $3 - local.get $6 - local.get $5 - i32.load offset=16 - local.tee $5 - local.get $5 - local.get $6 - i32.gt_u - select - memory.copy + local.get $5 + local.get $6 + i32.store offset=16 + local.get $3 + local.set $4 + br $__inlined_func$~lib/rt/itcms/__renew$245 end + local.get $6 + local.get $5 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $4 local.get $3 + local.get $6 + local.get $5 + i32.load offset=16 + local.tee $5 + local.get $5 + local.get $6 + i32.gt_u + select + memory.copy + end + local.get $3 + local.get $4 + i32.ne + if + local.get $0 local.get $4 - i32.ne - if - local.get $0 - local.get $4 - i32.store - local.get $0 - local.get $4 - i32.store offset=4 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - end + i32.store local.get $0 - local.get $6 - i32.store offset=8 + local.get $4 + i32.store offset=4 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=12 + local.get $6 + i32.store offset=8 end global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + i32.store offset=12 end - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $exceptions/testArrayWithExceptions (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2879,11 +2825,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -2898,11 +2839,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3020,11 +2956,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3055,11 +2986,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3136,11 +3062,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3192,11 +3113,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3258,133 +3174,128 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 5036 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5036 + i32.lt_s + if + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 5036 + i32.lt_s + if + unreachable + end + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#indexOf$279 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5036 - i32.lt_s - br_if $folding-inner0 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + br $__inlined_func$~lib/string/String#indexOf$279 + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - block $__inlined_func$~lib/string/String#indexOf$278 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - br $__inlined_func$~lib/string/String#indexOf$278 - end + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - local.set $0 - br $__inlined_func$~lib/string/String#indexOf$278 - end - i32.const 0 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 local.set $0 + br $__inlined_func$~lib/string/String#indexOf$279 + end + i32.const 0 + local.set $0 + local.get $4 + local.get $3 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $0 local.get $4 - local.get $3 - i32.sub - local.set $4 - loop $for-loop|0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $2 local.get $0 - local.get $4 - i32.le_s + local.get $1 + local.get $3 + call $~lib/util/string/compareImpl + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#indexOf$278 - end - local.get $0 - i32.const 1 + i32.const 8 i32.add - local.set $0 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#indexOf$279 end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.const -1 - i32.ne - return + local.set $0 end - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne ) (func $start:exceptions (local $0 i32) @@ -3398,11 +3309,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3461,17 +3367,12 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$exceptions/testCatchVar$254 + block $__inlined_func$exceptions/testCatchVar$255 try i32.const 0 i32.const 3408 @@ -3490,7 +3391,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$exceptions/testCatchVar$254 + br $__inlined_func$exceptions/testCatchVar$255 end unreachable end @@ -3590,7 +3491,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$exceptions/testFinallyWithException$255 + block $__inlined_func$exceptions/testFinallyWithException$256 try try $try_finally|07 i32.const 0 @@ -3610,7 +3511,7 @@ i32.const 0 i32.ne local.set $1 - br $__inlined_func$exceptions/testFinallyWithException$255 + br $__inlined_func$exceptions/testFinallyWithException$256 end unreachable end @@ -3645,11 +3546,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3692,11 +3588,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3708,7 +3599,7 @@ call $exceptions/Resource#constructor local.tee $1 i32.store - block $__inlined_func$exceptions/testResourceCleanupWithException$257 + block $__inlined_func$exceptions/testResourceCleanupWithException$258 try try $try_finally|1 global.get $~lib/memory/__stack_pointer @@ -3738,7 +3629,7 @@ global.set $~lib/memory/__stack_pointer global.get $exceptions/Resource.disposed local.set $1 - br $__inlined_func$exceptions/testResourceCleanupWithException$257 + br $__inlined_func$exceptions/testResourceCleanupWithException$258 end unreachable end @@ -3761,11 +3652,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3894,11 +3780,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3933,11 +3814,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -3988,17 +3864,12 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$exceptions/Outer#process$259 + block $__inlined_func$exceptions/Outer#process$260 try global.get $~lib/memory/__stack_pointer local.get $1 @@ -4028,7 +3899,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$exceptions/Outer#process$259 + br $__inlined_func$exceptions/Outer#process$260 end unreachable end @@ -4045,7 +3916,7 @@ end i32.const 0 global.set $exceptions/rethrowFinallyRan - block $__inlined_func$exceptions/testRethrowWithFinally$280 + block $__inlined_func$exceptions/testRethrowWithFinally$281 try global.get $~lib/memory/__stack_pointer i32.const 12 @@ -4055,11 +3926,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -4113,7 +3979,7 @@ i32.const 0 i32.ne local.set $1 - br $__inlined_func$exceptions/testRethrowWithFinally$280 + br $__inlined_func$exceptions/testRethrowWithFinally$281 end unreachable end @@ -4135,11 +4001,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -4264,11 +4125,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -4326,11 +4182,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -4490,11 +4341,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -4731,11 +4577,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -4795,11 +4636,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -4863,11 +4699,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -4929,17 +4760,12 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$exceptions/testCatchVariableType$265 + block $__inlined_func$exceptions/testCatchVariableType$266 try i32.const 0 i32.const 4832 @@ -4967,7 +4793,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$exceptions/testCatchVariableType$265 + br $__inlined_func$exceptions/testCatchVariableType$266 end unreachable end @@ -4989,11 +4815,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -5002,7 +4823,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - block $__inlined_func$exceptions/testCatchCustomError2$266 + block $__inlined_func$exceptions/testCatchCustomError2$267 try i32.const 4880 i32.const 99 @@ -5065,7 +4886,7 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$exceptions/testCatchCustomError2$266 + br $__inlined_func$exceptions/testCatchCustomError2$267 end unreachable end @@ -5093,11 +4914,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer @@ -5169,11 +4985,6 @@ i32.const 5036 i32.lt_s if - i32.const 37824 - i32.const 37872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 014250f0d6..4466b0ec94 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -1,25 +1,21 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func)) + (type $2 (func)) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) (global $export/c i32 (i32.const 3)) (global $exports/Car.TIRES i32 (i32.const 4)) (global $exports/vehicles.Car.TIRES i32 (i32.const 4)) (global $exports/outer.inner.a i32 (i32.const 42)) - (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_FEATURE_EXCEPTION_HANDLING 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)) @@ -28,40 +24,32 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) (global $reexport/car (mut i32) (i32.const 0)) (global $rereexport/car (mut i32) (i32.const 0)) (global $rereexport/exportsNamespaceCar (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2480)) - (global $~lib/memory/__data_end i32 (i32.const 2504)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35272)) - (global $~lib/memory/__heap_base i32 (i32.const 35272)) + (global $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/memory/__data_end i32 (i32.const 536)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33304)) + (global $~lib/memory/__heap_base i32 (i32.const 33304)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00") - (data $21 (i32.const 2480) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00\00\00\00\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00") + (data $10 (i32.const 512) "\05\00\00\00 \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 "a" (global $export/a)) @@ -90,18 +78,10 @@ i32.add return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $exports/Car#set:doors (param $this i32) (param $doors i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + local.get $doors + i32.store ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -167,7 +147,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -237,7 +217,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -254,7 +234,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -284,9 +264,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 272 + i32.const 336 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -353,7 +333,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 144 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -505,7 +485,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -525,7 +505,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -588,7 +568,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -741,7 +721,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -758,7 +738,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -847,7 +827,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -890,7 +870,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -908,7 +888,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -976,7 +956,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1093,7 +1073,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1139,7 +1119,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1171,7 +1151,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1415,7 +1395,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1635,7 +1615,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1746,8 +1726,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 80 + i32.const 416 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1849,7 +1829,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1920,7 +1900,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2077,7 +2057,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2192,7 +2172,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2212,7 +2192,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2260,8 +2240,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 80 + i32.const 144 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2306,427 +2286,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $exports/Car#set:doors (param $this i32) (param $doors i32) - local.get $this - local.get $doors - i32.store - ) (func $exports/Car#get:doors (param $this i32) (result i32) local.get $this i32.load @@ -2744,20 +2303,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 33328 + i32.const 33376 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2766,196 +2321,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $exports/Car#constructor (param $this i32) (param $doors i32) (result i32) (local $2 i32) @@ -3044,23 +2430,6 @@ call $export/mul i32.add drop - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 2 i32.const 2 call $exports/add @@ -3069,7 +2438,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 37 i32.const 1 call $~lib/builtins/abort @@ -3083,12 +2452,29 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 38 i32.const 1 call $~lib/builtins/abort unreachable end + 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 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace i32.const 0 i32.const 2 call $exports/Car#constructor @@ -3105,7 +2491,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -3135,7 +2521,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -3149,7 +2535,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -3171,7 +2557,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -3185,7 +2571,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -3199,7 +2585,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -3221,7 +2607,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -3232,165 +2618,12 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 272 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 80 local.get $0 call $~lib/rt/itcms/__visit global.get $rereexport/car diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index b3f43c9d17..59a720ab7e 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (result i32))) + (type $1 (func (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -22,44 +22,23 @@ (global $reexport/car (mut i32) (i32.const 0)) (global $rereexport/car (mut i32) (i32.const 0)) (global $rereexport/exportsNamespaceCar (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36296)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34328)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") - (data $20 (i32.const 3452) ",") - (data $20.1 (i32.const 3464) "\02\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") - (data $21 (i32.const 3504) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1276) "<") + (data $5.1 (i32.const 1288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1340) ",") + (data $6.1 (i32.const 1352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1484) ",") + (data $9.1 (i32.const 1496) "\02\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") + (data $10 (i32.const 1536) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "a" (global $export/a)) (export "renamed_a" (global $export/a)) (export "renamed_b" (global $export/b)) @@ -71,13 +50,9 @@ (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 + i32.const 1296 call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1104 call $~lib/rt/itcms/__visit global.get $rereexport/car local.tee $0 @@ -116,7 +91,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -164,7 +139,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -173,7 +148,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$133 + block $__inlined_func$~lib/rt/itcms/Object#unlink$121 local.get $1 i32.load offset=4 i32.const -4 @@ -185,19 +160,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36296 + i32.const 34328 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$133 + br $__inlined_func$~lib/rt/itcms/Object#unlink$121 end local.get $1 i32.load offset=8 @@ -205,7 +180,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -234,13 +209,13 @@ i32.const 1 else local.get $0 - i32.const 3504 + i32.const 1536 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1296 + i32.const 1360 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -248,7 +223,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3508 + i32.const 1540 i32.add i32.load i32.const 32 @@ -300,7 +275,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -314,7 +289,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -360,7 +335,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -443,7 +418,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -457,7 +432,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -518,7 +493,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -551,7 +526,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -566,7 +541,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -617,7 +592,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -689,7 +664,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -714,7 +689,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -741,7 +716,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -813,10 +788,10 @@ if unreachable end - i32.const 36304 + i32.const 34336 i32.const 0 i32.store - i32.const 37872 + i32.const 35904 i32.const 0 i32.store loop $for-loop|0 @@ -827,7 +802,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=4 @@ -845,7 +820,7 @@ i32.add i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=96 @@ -863,14 +838,14 @@ br $for-loop|0 end end - i32.const 36304 - i32.const 37876 + i32.const 34336 + i32.const 35908 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36304 + i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -955,7 +930,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36296 + i32.const 34328 i32.lt_u if local.get $0 @@ -1044,14 +1019,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36296 + i32.const 34328 i32.lt_u if local.get $0 @@ -1074,7 +1049,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36296 + i32.const 34328 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1103,7 +1078,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1133,85 +1108,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1219,11 +1127,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1239,7 +1143,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1261,35 +1165,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $0 loop $do-loop|0 - local.get $2 + local.get $0 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $0 global.get $~lib/rt/itcms/state i32.eqz if @@ -1299,9 +1191,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $0 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1324,94 +1216,39 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $0 i32.const 4 - local.get $4 + local.get $1 i32.load offset=1568 - local.get $2 + local.get $0 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $0 local.get $2 - local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1419,8 +1256,8 @@ unreachable end end - local.get $4 - local.get $2 + local.get $1 + local.get $0 i32.const 16 i32.shl memory.size @@ -1428,136 +1265,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $0 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 + local.get $0 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $0 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $2 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub local.tee $3 i32.const 16 i32.ge_u if + local.get $0 local.get $2 - local.get $5 - local.get $6 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $0 + i32.const 32 i32.add - local.tee $5 + local.tee $2 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $0 local.get $2 - local.get $6 i32.const -2 i32.and i32.store - local.get $2 + local.get $0 i32.const 4 i32.add - local.get $2 + local.get $0 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and i32.store end - local.get $2 - local.get $1 + local.get $0 + i32.const 4 i32.store offset=12 - local.get $2 local.get $0 + i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + local.get $0 local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $0 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.load i32.const -4 i32.and @@ -1565,225 +1385,26 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.const 20 i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3528 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end + i32.store align=1 local.get $0 ) (func $export-default/theDefault ) (func $~start (local $0 i32) - block $__inlined_func$start:exportstar-rereexport + block $__inlined_func$start:exportstar-rereexport$1 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 3528 + i32.const 1560 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1794,7 +1415,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1803,34 +1424,34 @@ memory.size i32.const 16 i32.shl - i32.const 36296 + i32.const 34328 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1220 + i32.const 1216 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1224 + i32.const 1216 i32.store - i32.const 1264 + i32.const 1216 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1252 + i32.const 1248 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1256 + i32.const 1248 i32.store - i32.const 1296 + i32.const 1248 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1396 + i32.const 1392 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1400 + i32.const 1392 i32.store - i32.const 1440 + i32.const 1392 global.set $~lib/rt/itcms/fromSpace call $exports/Car#constructor global.set $reexport/car @@ -1844,7 +1465,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -1866,7 +1487,7 @@ i32.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -1884,7 +1505,7 @@ i32.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -1894,215 +1515,50 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:exportstar-rereexport + br $__inlined_func$start:exportstar-rereexport$1 end - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$141 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$141 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $exports/Car#constructor (result i32) (local $0 i32) @@ -2111,11 +1567,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2125,8 +1581,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2154,11 +1608,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index a90cba1ef3..8c800f94c9 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -1,23 +1,18 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 f64))) - (type $7 (func (param i32 i32 i32 i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i64) (result i32))) - (type $12 (func (result i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 f64))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $extends-baseaggregate/poolB i32 (i32.const 64)) (global $extends-baseaggregate/poolA i32 (i32.const 144)) - (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 $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -26,474 +21,38 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $~lib/rt/__rtti_base i32 (i32.const 2640)) - (global $~lib/memory/__data_end i32 (i32.const 2684)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35452)) - (global $~lib/memory/__heap_base i32 (i32.const 35452)) + (global $~lib/rt/__rtti_base i32 (i32.const 672)) + (global $~lib/memory/__data_end i32 (i32.const 716)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33484)) + (global $~lib/memory/__heap_base i32 (i32.const 33484)) (memory $0 1) (data $0 (i32.const 12) "\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 $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\10\00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $2 (i32.const 92) "\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 $3 (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\10\00\00\00p\00\00\00p\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $5 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $6 (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 268) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 300) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 524) "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 $12 (i32.const 924) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 1980) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2076) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $23 (i32.const 2540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $24 (i32.const 2588) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $25 (i32.const 2640) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\02A\00\00") + (data $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 428) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $13 (i32.const 620) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $14 (i32.const 672) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 524 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 524 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 524 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 524 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 944 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 944 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2000 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2000 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -558,7 +117,7 @@ i32.eqz if i32.const 0 - i32.const 2224 + i32.const 256 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -628,7 +187,7 @@ i32.eqz if i32.const 0 - i32.const 2224 + i32.const 256 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -645,7 +204,7 @@ i32.eqz if i32.const 0 - i32.const 2224 + i32.const 256 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -675,9 +234,9 @@ i32.load i32.gt_u if - i32.const 2352 - i32.const 2416 - i32.const 21 + i32.const 384 + i32.const 448 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -744,7 +303,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2224 + i32.const 256 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -896,7 +455,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -916,7 +475,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -979,7 +538,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1132,7 +691,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1149,7 +708,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1238,7 +797,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1281,7 +840,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1299,7 +858,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1367,7 +926,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1484,7 +1043,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1530,7 +1089,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1562,7 +1121,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1806,7 +1365,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2026,7 +1585,7 @@ i32.eqz if i32.const 0 - i32.const 2224 + i32.const 256 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2137,8 +1696,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2160 - i32.const 2496 + i32.const 192 + i32.const 528 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2240,7 +1799,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2311,7 +1870,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2468,7 +2027,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2583,7 +2142,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2603,7 +2162,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2651,8 +2210,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2160 - i32.const 2224 + i32.const 192 + i32.const 256 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2722,7 +2281,7 @@ i32.eqz if i32.const 0 - i32.const 2224 + i32.const 256 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2863,20 +2422,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35472 - i32.const 35520 + i32.const 33504 + i32.const 33552 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2885,196 +2440,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 256 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 192 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 224 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 288 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 288 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2096 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $extends-baseaggregate/A1#constructor (param $this i32) (result i32) (local $1 i32) @@ -3216,8 +2602,8 @@ i32.shr_u i32.gt_u if - i32.const 2560 - i32.const 2608 + i32.const 592 + i32.const 640 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -3281,6 +2667,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -3339,6 +2729,10 @@ i32.add local.get $value i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -3380,13 +2774,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2272 + i32.const 304 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2304 + i32.const 336 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2448 + i32.const 480 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $extends-baseaggregate/poolA @@ -3409,153 +2803,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 320 - i32.const 448 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 512 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3600,19 +2847,13 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2560 + i32.const 384 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2160 + i32.const 592 local.get $0 call $~lib/rt/itcms/__visit - i32.const 944 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 192 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3769,6 +3010,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -3839,6 +3084,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index c19e034e7e..362864ade9 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1,13 +1,13 @@ (module (type $0 (func (param i32))) (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) (type $7 (func (param i32 i32 i32))) - (type $8 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,7 +18,7 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36476)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34508)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\01") @@ -28,243 +28,24 @@ (data $2.1 (i32.const 1128) "\01") (data $3 (i32.const 1148) ",") (data $3.1 (i32.const 1160) "\t\00\00\00\10\00\00\00p\04\00\00p\04") - (data $4 (i32.const 1196) "\1c") - (data $4.1 (i32.const 1208) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $5 (i32.const 1228) "\1c") - (data $5.1 (i32.const 1240) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $6 (i32.const 1260) "\1c") - (data $6.1 (i32.const 1272) "\02") - (data $7 (i32.const 1292) "\1c") - (data $7.1 (i32.const 1304) "\02\00\00\00\02\00\00\00:") - (data $8 (i32.const 1324) "|") - (data $8.1 (i32.const 1336) "\02\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 $9 (i32.const 1452) "<") - (data $9.1 (i32.const 1464) "\02\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 $10 (i32.const 1516) "\1c") - (data $10.1 (i32.const 1528) "\02\00\00\00\02\00\00\000") - (data $11 (i32.const 1548) "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 $12 (i32.const 1948) "\1c\04") - (data $12.1 (i32.const 1960) "\02\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 $13 (i32.const 3004) "\\") - (data $13.1 (i32.const 3016) "\02\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 $14 (i32.const 3100) "<") - (data $14.1 (i32.const 3112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $15 (i32.const 3164) "<") - (data $15.1 (i32.const 3176) "\02\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 $16 (i32.const 3228) "<") - (data $16.1 (i32.const 3240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $19 (i32.const 3356) "<") - (data $19.1 (i32.const 3368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $20 (i32.const 3420) ",") - (data $20.1 (i32.const 3432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $22 (i32.const 3500) "<") - (data $22.1 (i32.const 3512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $23 (i32.const 3564) ",") - (data $23.1 (i32.const 3576) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $24 (i32.const 3612) ",") - (data $24.1 (i32.const 3624) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $25 (i32.const 3664) "\n\00\00\00 \00\00\00 \00\00\00 ") - (data $25.1 (i32.const 3700) "\02A\00\00\02A") + (data $4 (i32.const 1196) "<") + (data $4.1 (i32.const 1208) "\02\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 $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $8 (i32.const 1388) "<") + (data $8.1 (i32.const 1400) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $9 (i32.const 1452) ",") + (data $9.1 (i32.const 1464) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $11 (i32.const 1532) "<") + (data $11.1 (i32.const 1544) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $12 (i32.const 1596) ",") + (data $12.1 (i32.const 1608) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $13 (i32.const 1644) ",") + (data $13.1 (i32.const 1656) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $14 (i32.const 1696) "\n\00\00\00 \00\00\00 \00\00\00 ") + (data $14.1 (i32.const 1732) "\02A\00\00\02A") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3708 - i32.lt_s - if - i32.const 36496 - i32.const 36544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1536 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1548 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1548 - 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 1548 - 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 1548 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -272,15 +53,11 @@ call $~lib/rt/itcms/__visit i32.const 1168 call $~lib/rt/itcms/__visit - i32.const 3376 - call $~lib/rt/itcms/__visit - i32.const 3584 - call $~lib/rt/itcms/__visit - i32.const 3184 + i32.const 1408 call $~lib/rt/itcms/__visit - i32.const 1968 + i32.const 1616 call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1216 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -301,7 +78,7 @@ i32.ne if i32.const 0 - i32.const 3248 + i32.const 1280 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -334,7 +111,7 @@ i32.eqz if i32.const 0 - i32.const 3248 + i32.const 1280 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -343,7 +120,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$155 + block $__inlined_func$~lib/rt/itcms/Object#unlink$143 local.get $0 i32.load offset=4 i32.const -4 @@ -355,19 +132,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36476 + i32.const 34508 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3248 + i32.const 1280 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$155 + br $__inlined_func$~lib/rt/itcms/Object#unlink$143 end local.get $0 i32.load offset=8 @@ -375,7 +152,7 @@ i32.eqz if i32.const 0 - i32.const 3248 + i32.const 1280 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -404,13 +181,13 @@ i32.const 1 else local.get $1 - i32.const 3664 + i32.const 1696 i32.load i32.gt_u if - i32.const 3376 - i32.const 3440 - i32.const 21 + i32.const 1408 + i32.const 1472 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -418,7 +195,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3668 + i32.const 1700 i32.add i32.load i32.const 32 @@ -489,7 +266,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -503,7 +280,7 @@ i32.lt_u if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -549,7 +326,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -632,7 +409,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -646,7 +423,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -707,7 +484,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -740,7 +517,7 @@ i32.lt_u if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -755,7 +532,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -806,7 +583,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -878,7 +655,7 @@ i64.lt_u if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -903,7 +680,7 @@ i32.gt_u if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -930,7 +707,7 @@ i32.gt_u if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1002,10 +779,10 @@ if unreachable end - i32.const 36480 + i32.const 34512 i32.const 0 i32.store - i32.const 38048 + i32.const 36080 i32.const 0 i32.store loop $for-loop|0 @@ -1016,7 +793,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36480 + i32.const 34512 i32.add i32.const 0 i32.store offset=4 @@ -1034,7 +811,7 @@ i32.add i32.const 2 i32.shl - i32.const 36480 + i32.const 34512 i32.add i32.const 0 i32.store offset=96 @@ -1052,14 +829,14 @@ br $for-loop|0 end end - i32.const 36480 - i32.const 38052 + i32.const 34512 + i32.const 36084 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36480 + i32.const 34512 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1144,7 +921,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36476 + i32.const 34508 i32.lt_u if local.get $0 @@ -1233,14 +1010,14 @@ i32.ne if i32.const 0 - i32.const 3248 + i32.const 1280 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36476 + i32.const 34508 i32.lt_u if local.get $0 @@ -1263,7 +1040,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36476 + i32.const 34508 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1292,7 +1069,7 @@ end if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1376,7 +1153,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1428,7 +1205,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1460,8 +1237,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3184 - i32.const 3248 + i32.const 1216 + i32.const 1280 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1471,7 +1248,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1488,7 +1265,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1521,8 +1298,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3184 - i32.const 3520 + i32.const 1216 + i32.const 1552 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1624,7 +1401,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1639,7 +1416,7 @@ i32.gt_u if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1658,7 +1435,7 @@ i32.and if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1774,7 +1551,7 @@ i32.eqz if i32.const 0 - i32.const 3248 + i32.const 1280 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1836,7 +1613,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -1845,34 +1622,34 @@ memory.size i32.const 16 i32.shl - i32.const 36476 + i32.const 34508 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3300 - i32.const 3296 + i32.const 1332 + i32.const 1328 i32.store - i32.const 3304 - i32.const 3296 + i32.const 1336 + i32.const 1328 i32.store - i32.const 3296 + i32.const 1328 global.set $~lib/rt/itcms/pinSpace - i32.const 3332 - i32.const 3328 + i32.const 1364 + i32.const 1360 i32.store - i32.const 3336 - i32.const 3328 + i32.const 1368 + i32.const 1360 i32.store - i32.const 3328 + i32.const 1360 global.set $~lib/rt/itcms/toSpace - i32.const 3476 - i32.const 3472 + i32.const 1508 + i32.const 1504 i32.store - i32.const 3480 - i32.const 3472 + i32.const 1512 + i32.const 1504 i32.store - i32.const 3472 + i32.const 1504 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 1168 @@ -1882,7 +1659,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -1903,7 +1680,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -1928,7 +1705,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -1990,7 +1767,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2011,7 +1788,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2032,8 +1809,8 @@ i32.const 268435455 i32.gt_u if - i32.const 3584 - i32.const 3632 + i32.const 1616 + i32.const 1664 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -2042,7 +1819,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$145 + block $__inlined_func$~lib/rt/itcms/__renew$133 i32.const 1073741820 local.get $0 i32.const 1 @@ -2085,7 +1862,7 @@ i32.store offset=16 local.get $0 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$145 + br $__inlined_func$~lib/rt/itcms/__renew$133 end local.get $3 local.get $2 @@ -2157,212 +1934,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36496 - i32.const 36544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3708 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3708 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$161 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1280 - local.set $0 - br $__inlined_func$~lib/string/String#concat$161 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36496 - i32.const 36544 + i32.const 34528 + i32.const 34576 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s if - i32.const 36496 - i32.const 36544 + i32.const 34528 + i32.const 34576 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1216 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1248 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1312 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1312 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3120 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array~visit (param $0 i32) (local $1 i32) @@ -2373,11 +1985,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s if - i32.const 36496 - i32.const 36544 + i32.const 34528 + i32.const 34576 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index da3f5d3a12..3dfe683a9d 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,467 +18,31 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2412)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35180)) - (global $~lib/memory/__heap_base i32 (i32.const 35180)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 444)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33212)) + (global $~lib/memory/__heap_base i32 (i32.const 33212)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2384) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\06\00\00\00 \00\00\00 \00\00\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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -548,7 +107,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -618,7 +177,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -635,7 +194,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -665,9 +224,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -734,7 +293,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -886,7 +445,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -906,7 +465,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -969,7 +528,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1122,7 +681,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1139,7 +698,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1228,7 +787,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1271,7 +830,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1289,7 +848,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1357,7 +916,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1474,7 +1033,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1520,7 +1079,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1552,7 +1111,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1796,7 +1355,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2016,7 +1575,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2127,8 +1686,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2230,7 +1789,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2301,7 +1860,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2458,7 +2017,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2573,7 +2132,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2593,7 +2152,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2641,8 +2200,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2702,7 +2261,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2773,13 +2332,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -2794,20 +2353,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35200 - i32.const 35248 + i32.const 33232 + i32.const 33280 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2816,196 +2371,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $extends-recursive/Parent#constructor (param $this i32) (result i32) (local $1 i32) @@ -3091,153 +2477,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3268,16 +2507,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index c1434f159b..ec3d3379c8 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,250 +17,27 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36204)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34236)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3408) "\06\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1440) "\06\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3436 - i32.lt_s - if - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -281,7 +58,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -329,7 +106,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -338,7 +115,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$129 + block $__inlined_func$~lib/rt/itcms/Object#unlink$117 local.get $0 i32.load offset=4 i32.const -4 @@ -350,19 +127,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36204 + i32.const 34236 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$129 + br $__inlined_func$~lib/rt/itcms/Object#unlink$117 end local.get $0 i32.load offset=8 @@ -370,7 +147,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -399,13 +176,13 @@ i32.const 1 else local.get $1 - i32.const 3408 + i32.const 1440 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -413,7 +190,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3412 + i32.const 1444 i32.add i32.load i32.const 32 @@ -465,7 +242,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -479,7 +256,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -525,7 +302,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -608,7 +385,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -622,7 +399,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -683,7 +460,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -716,7 +493,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -731,7 +508,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -782,7 +559,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -854,7 +631,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -879,7 +656,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -906,7 +683,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -978,10 +755,10 @@ if unreachable end - i32.const 36208 + i32.const 34240 i32.const 0 i32.store - i32.const 37776 + i32.const 35808 i32.const 0 i32.store loop $for-loop|0 @@ -992,7 +769,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=4 @@ -1010,7 +787,7 @@ i32.add i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=96 @@ -1028,14 +805,14 @@ br $for-loop|0 end end - i32.const 36208 - i32.const 37780 + i32.const 34240 + i32.const 35812 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36208 + i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1120,7 +897,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36204 + i32.const 34236 i32.lt_u if local.get $0 @@ -1209,14 +986,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36204 + i32.const 34236 i32.lt_u if local.get $0 @@ -1239,7 +1016,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36204 + i32.const 34236 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1268,7 +1045,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1352,7 +1129,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1404,7 +1181,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1436,8 +1213,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1447,7 +1224,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1464,7 +1241,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1497,8 +1274,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1600,7 +1377,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1615,7 +1392,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1634,7 +1411,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1747,34 +1524,34 @@ memory.size i32.const 16 i32.shl - i32.const 36204 + i32.const 34236 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1782,7 +1559,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1803,7 +1580,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1828,7 +1605,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1868,213 +1645,48 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$start:extends-recursive$1 end - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3436 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3436 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$136 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$136 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 diff --git a/tests/compiler/features/gc.debug.wat b/tests/compiler/features/gc.debug.wat index 0c036d1ff6..e2c0c9d58a 100644 --- a/tests/compiler/features/gc.debug.wat +++ b/tests/compiler/features/gc.debug.wat @@ -1,31 +1,8 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 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/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_SHRINK_LEVEL i32 (i32.const 0)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (type $1) (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $features/gc/globalFunc funcref (ref.null nofunc)) (global $features/gc/globalExtern externref (ref.null noextern)) (global $features/gc/globalAny anyref (ref.null none)) @@ -33,33 +10,12 @@ (global $features/gc/globalI31 i31ref (ref.null none)) (global $features/gc/globalStruct structref (ref.null none)) (global $features/gc/globalArray arrayref (ref.null none)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00g\00c\00.\00t\00s\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00g\00c\00.\00t\00s\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "globalFunc" (global $features/gc/globalFunc)) @@ -71,2639 +27,7 @@ (export "globalArray" (global $features/gc/globalArray)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/common/OBJECT#get:rtSize (type $0) (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (type $0) (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $1) (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (type $1) (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (type $0) (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (type $0) (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (type $0) (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (type $0) (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (type $2) (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (type $1) (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (type $0) (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (type $1) (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (type $2) (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (type $0) (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $0) (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (type $0) (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (type $0) (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (type $5) (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (type $2) (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 (type $1) (param $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 (type $2) (param $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (type $0) (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (type $0) (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (type $1) (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $1) (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (type $1) (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (type $1) (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (type $0) (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (type $0) (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (type $0) (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (type $1) (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (type $1) (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (type $6) (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize (type $4) - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (type $0) (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (type $1) (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (type $2) (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (type $2) (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (type $7) (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt (type $4) - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 (type $0) (param $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (type $0) (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (type $0) (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (type $3) (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (type $1) (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (type $5) (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (type $3) (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (type $0) (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (type $1) (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (type $1) (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (type $3) (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (type $0) (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (type $5) (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (type $8) (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (type $9) (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (type $10) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (type $3) (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $features/gc/test_i31 (type $4) + (func $features/gc/test_i31 (type $0) (local $ref (ref i31)) (local $val i32) (local $uval i32) @@ -2714,7 +38,7 @@ ref.is_null if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3 i32.const 3 call $~lib/builtins/abort @@ -2727,27 +51,10 @@ i31.get_u local.set $uval ) - (func $start:features/gc (type $4) - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace + (func $start:features/gc (type $0) call $features/gc/test_i31 ) - (func $~start (type $4) + (func $~start (type $0) global.get $~started if return @@ -2756,97 +63,21 @@ global.set $~started call $start:features/gc ) - (func $~stack_check (type $4) + (func $~stack_check (type $0) global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (type $3) (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (type $3) (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (type $1) (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2855,322 +86,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (type $11) (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (type $3) (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (type $2) (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - local.get $0 - call $~lib/rt/itcms/__visit - ) - (func $~lib/arraybuffer/ArrayBufferView~visit (type $1) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (type $1) (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (type $1) (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/features/gc.release.wat b/tests/compiler/features/gc.release.wat index bb6b07645f..e5baaab127 100644 --- a/tests/compiler/features/gc.release.wat +++ b/tests/compiler/features/gc.release.wat @@ -1,9 +1,5 @@ (module (type $0 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $features/gc/globalFunc funcref (ref.null nofunc)) (global $features/gc/globalExtern externref (ref.null noextern)) (global $features/gc/globalAny anyref (ref.null none)) @@ -11,42 +7,9 @@ (global $features/gc/globalI31 i31ref (ref.null none)) (global $features/gc/globalStruct structref (ref.null none)) (global $features/gc/globalArray arrayref (ref.null none)) - (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00g\00c\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00g\00c\00.\00t\00s") (export "globalFunc" (global $features/gc/globalFunc)) (export "globalExtern" (global $features/gc/globalExtern)) (export "globalAny" (global $features/gc/globalAny)) @@ -57,43 +20,5 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~start (type $0) - global.get $~started - if - return - end - i32.const 1 - global.set $~started - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace ) ) diff --git a/tests/compiler/features/reference-types.debug.wat b/tests/compiler/features/reference-types.debug.wat index 43edb675f1..179a3f1dc4 100644 --- a/tests/compiler/features/reference-types.debug.wat +++ b/tests/compiler/features/reference-types.debug.wat @@ -1,36 +1,13 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result externref))) - (type $7 (func (param externref) (result externref))) - (type $8 (func (param i32 i32 i64) (result i32))) - (type $9 (func (result i32))) - (type $10 (func (param i32 i64 i32))) - (type $11 (func (param i64 i32) (result i32))) - (type $12 (func (param i32 i64 i32 i32))) - (type $13 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (result externref))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param externref) (result externref))) (import "reference-types" "somethingReal" (func $features/reference-types/somethingReal (result externref))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "reference-types" "somethingNull" (func $features/reference-types/somethingNull (result externref))) (import "reference-types" "external" (func $features/reference-types/external (param externref) (result externref))) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $features/reference-types/funcGlobal (mut funcref) (ref.null nofunc)) (global $features/reference-types/funcGlobalInit (mut funcref) (ref.null nofunc)) (global $features/reference-types/anyGlobal (mut externref) (ref.null noextern)) @@ -40,33 +17,12 @@ (global $features/reference-types/b funcref (ref.null nofunc)) (global $features/reference-types/nonNullFunc (mut funcref) (ref.null nofunc)) (global $features/reference-types/nonNullReal (mut externref) (ref.null noextern)) - (global $~lib/rt/__rtti_base i32 (i32.const 2592)) - (global $~lib/memory/__data_end i32 (i32.const 2612)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35380)) - (global $~lib/memory/__heap_base i32 (i32.const 35380)) + (global $~lib/memory/__data_end i32 (i32.const 220)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32988)) + (global $~lib/memory/__heap_base i32 (i32.const 32988)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00r\00e\00f\00e\00r\00e\00n\00c\00e\00-\00t\00y\00p\00e\00s\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2460) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2592) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00r\00e\00f\00e\00r\00e\00n\00c\00e\00-\00t\00y\00p\00e\00s\00.\00t\00s\00\00\00\00\00\00\00") + (data $1 (i32.const 92) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\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)) (elem declare func $features/reference-types/someFunc) @@ -80,2638 +36,6 @@ (export "nonNullReal" (global $features/reference-types/nonNullReal)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $features/reference-types/testLocal (local $local funcref) ref.null nofunc @@ -2723,7 +47,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 70 i32.const 3 call $~lib/builtins/abort @@ -2738,7 +62,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 72 i32.const 3 call $~lib/builtins/abort @@ -2756,7 +80,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 70 i32.const 3 call $~lib/builtins/abort @@ -2771,7 +95,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 72 i32.const 3 call $~lib/builtins/abort @@ -2784,23 +108,6 @@ (local $funcLocal funcref) (local $1 funcref) (local $2 externref) - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $features/reference-types/somethingReal ref.is_null i32.eqz @@ -2810,7 +117,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -2827,7 +134,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -2843,7 +150,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 26 i32.const 3 call $~lib/builtins/abort @@ -2858,7 +165,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 29 i32.const 3 call $~lib/builtins/abort @@ -2872,7 +179,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 55 i32.const 1 call $~lib/builtins/abort @@ -2887,7 +194,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 57 i32.const 1 call $~lib/builtins/abort @@ -2900,7 +207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 59 i32.const 1 call $~lib/builtins/abort @@ -2913,7 +220,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -2928,7 +235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 64 i32.const 1 call $~lib/builtins/abort @@ -2941,7 +248,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 66 i32.const 1 call $~lib/builtins/abort @@ -2955,7 +262,7 @@ ref.is_null if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 81 i32.const 1 call $~lib/builtins/abort @@ -2965,7 +272,7 @@ ref.is_null if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 83 i32.const 1 call $~lib/builtins/abort @@ -2977,7 +284,7 @@ ref.is_null if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 86 i32.const 3 call $~lib/builtins/abort @@ -2987,8 +294,8 @@ local.tee $1 ref.is_null if (result funcref) - i32.const 2480 - i32.const 2400 + i32.const 112 + i32.const 32 i32.const 95 i32.const 28 call $~lib/builtins/abort @@ -3001,8 +308,8 @@ local.tee $2 ref.is_null if (result externref) - i32.const 2480 - i32.const 2400 + i32.const 112 + i32.const 32 i32.const 96 i32.const 28 call $~lib/builtins/abort @@ -3036,92 +343,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35408 - i32.const 35456 + i32.const 33008 + i32.const 33056 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3130,322 +361,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/features/reference-types.release.wat b/tests/compiler/features/reference-types.release.wat index 7d09db1aa4..434ae3338c 100644 --- a/tests/compiler/features/reference-types.release.wat +++ b/tests/compiler/features/reference-types.release.wat @@ -1,70 +1,23 @@ (module - (type $0 (func)) - (type $1 (func (result externref))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32) (result i32))) - (type $6 (func (param externref) (result externref))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i32 i32 i32))) + (type $0 (func (result externref))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param externref) (result externref))) (import "reference-types" "somethingReal" (func $features/reference-types/somethingReal (result externref))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "reference-types" "somethingNull" (func $features/reference-types/somethingNull (result externref))) (import "reference-types" "external" (func $features/reference-types/external (param externref) (result externref))) - (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 $features/reference-types/funcGlobal (mut funcref) (ref.null nofunc)) (global $features/reference-types/a externref (ref.null noextern)) (global $features/reference-types/b funcref (ref.null nofunc)) (global $features/reference-types/nonNullFunc (mut funcref) (ref.null nofunc)) (global $features/reference-types/nonNullReal (mut externref) (ref.null noextern)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36404)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34012)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "L") - (data $19.1 (i32.const 3416) "\02\00\00\006\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00r\00e\00f\00e\00r\00e\00n\00c\00e\00-\00t\00y\00p\00e\00s\00.\00t\00s") - (data $20 (i32.const 3484) "|") - (data $20.1 (i32.const 3496) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") - (data $21 (i32.const 3616) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "L") + (data $0.1 (i32.const 1048) "\02\00\00\006\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00r\00e\00f\00e\00r\00e\00n\00c\00e\00-\00t\00y\00p\00e\00s\00.\00t\00s") + (data $1 (i32.const 1116) "|") + (data $1.1 (i32.const 1128) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") (elem declare func $features/reference-types/someFunc) (export "external" (func $features/reference-types/external)) (export "somethingReal" (func $features/reference-types/somethingReal)) @@ -76,1691 +29,6 @@ (export "nonNullReal" (global $features/reference-types/nonNullReal)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$121 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36404 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$121 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3616 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3620 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36416 - i32.const 0 - i32.store - i32.const 37984 - 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 36416 - 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 36416 - 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 36416 - i32.const 37988 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36416 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36404 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36404 - 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 - local.tee $0 - i32.const 36404 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3636 - i32.lt_s - if - i32.const 36432 - i32.const 36480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $features/reference-types/someFunc ) (func $features/reference-types/internal (param $0 externref) (result externref) @@ -1771,43 +39,11 @@ ) (func $~start (local $0 externref) - memory.size - i32.const 16 - i32.shl - i32.const 36404 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace call $features/reference-types/somethingReal ref.is_null if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -1818,7 +54,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -1828,7 +64,7 @@ ref.is_null if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 26 i32.const 3 call $~lib/builtins/abort @@ -1839,7 +75,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 29 i32.const 3 call $~lib/builtins/abort @@ -1850,7 +86,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 55 i32.const 1 call $~lib/builtins/abort @@ -1866,8 +102,8 @@ local.tee $0 ref.is_null if - i32.const 3504 - i32.const 3424 + i32.const 1136 + i32.const 1056 i32.const 96 i32.const 28 call $~lib/builtins/abort @@ -1876,228 +112,39 @@ local.get $0 global.set $features/reference-types/nonNullReal ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$126 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$126 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36432 - i32.const 36480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3636 + i32.const 1244 i32.lt_s if - i32.const 36432 - i32.const 36480 + i32.const 34032 + i32.const 34080 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index 780b5707d4..0679c5279c 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -1,21 +1,16 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func)) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $12 (func (param i32 i32 i32 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)) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -24,476 +19,41 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $~lib/rt/__rtti_base i32 (i32.const 2736)) - (global $~lib/memory/__data_end i32 (i32.const 2844)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35612)) - (global $~lib/memory/__heap_base i32 (i32.const 35612)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 768)) + (global $~lib/memory/__data_end i32 (i32.const 876)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33644)) + (global $~lib/memory/__heap_base i32 (i32.const 33644)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00f\00i\00e\00l\00d\00-\00i\00n\00i\00t\00i\00a\00l\00i\00z\00a\00t\00i\00o\00n\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $21 (i32.const 2508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $22 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00b\00b\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00b\00b\00b\00\00\00\00\00\00\00") - (data $26 (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00c\00c\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2736) "\1a\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00f\00i\00e\00l\00d\00-\00i\00n\00i\00t\00i\00a\00l\00i\00z\00a\00t\00i\00o\00n\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $10 (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00b\00b\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00b\00b\00b\00\00\00\00\00\00\00") + (data $15 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00c\00c\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 768) "\1a\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -558,7 +118,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -628,7 +188,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -645,7 +205,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -675,9 +235,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -744,7 +304,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -896,7 +456,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -916,7 +476,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -979,7 +539,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1132,7 +692,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1149,7 +709,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1238,7 +798,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1281,7 +841,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1299,7 +859,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1367,7 +927,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1484,7 +1044,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1530,7 +1090,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1562,7 +1122,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1806,7 +1366,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2026,7 +1586,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2137,8 +1697,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2240,7 +1800,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2311,7 +1871,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2468,7 +2028,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2583,7 +2143,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2603,7 +2163,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2651,8 +2211,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2730,7 +2290,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2962,6 +2522,19 @@ local.get $this i32.load offset=4 ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -3126,20 +2699,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35632 - i32.const 35680 + i32.const 33664 + i32.const 33712 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3148,196 +2717,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $field-initialization/Value_Init#constructor (param $this i32) (result i32) (local $1 i32) @@ -4439,13 +3839,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer @@ -4465,7 +3865,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -4488,7 +3888,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -4511,7 +3911,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 24 i32.const 3 call $~lib/builtins/abort @@ -4534,7 +3934,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -4557,7 +3957,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 40 i32.const 3 call $~lib/builtins/abort @@ -4580,7 +3980,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -4603,7 +4003,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 62 i32.const 3 call $~lib/builtins/abort @@ -4626,7 +4026,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 73 i32.const 3 call $~lib/builtins/abort @@ -4649,7 +4049,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -4672,7 +4072,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 94 i32.const 3 call $~lib/builtins/abort @@ -4707,7 +4107,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -4730,7 +4130,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -4753,7 +4153,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 124 i32.const 3 call $~lib/builtins/abort @@ -4776,7 +4176,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -4799,7 +4199,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -4822,7 +4222,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 153 i32.const 3 call $~lib/builtins/abort @@ -4855,7 +4255,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 164 i32.const 3 call $~lib/builtins/abort @@ -4878,7 +4278,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 165 i32.const 3 call $~lib/builtins/abort @@ -4916,7 +4316,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 167 i32.const 3 call $~lib/builtins/abort @@ -4939,7 +4339,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 168 i32.const 3 call $~lib/builtins/abort @@ -4957,7 +4357,7 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2592 + i32.const 624 call $field-initialization/SomeObject#set:b local.get $21 i32.const 0 @@ -4977,7 +4377,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 170 i32.const 3 call $~lib/builtins/abort @@ -4995,12 +4395,12 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2592 + i32.const 624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 171 i32.const 3 call $~lib/builtins/abort @@ -5026,7 +4426,7 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2624 + i32.const 656 call $field-initialization/SomeObject#set:b local.get $23 local.tee $24 @@ -5043,7 +4443,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 173 i32.const 3 call $~lib/builtins/abort @@ -5061,12 +4461,12 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2624 + i32.const 656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 174 i32.const 3 call $~lib/builtins/abort @@ -5084,7 +4484,7 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2656 + i32.const 688 call $field-initialization/SomeOtherObject#set:c local.get $25 i32.const 0 @@ -5107,7 +4507,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 182 i32.const 3 call $~lib/builtins/abort @@ -5130,7 +4530,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 183 i32.const 3 call $~lib/builtins/abort @@ -5148,12 +4548,12 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2656 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 184 i32.const 3 call $~lib/builtins/abort @@ -5179,7 +4579,7 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2688 + i32.const 720 call $field-initialization/SomeObject#set:b local.get $27 local.set $34 @@ -5187,7 +4587,7 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2720 + i32.const 752 call $field-initialization/SomeOtherObject#set:c local.get $27 local.tee $28 @@ -5204,7 +4604,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 186 i32.const 3 call $~lib/builtins/abort @@ -5222,12 +4622,12 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2688 + i32.const 720 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 187 i32.const 3 call $~lib/builtins/abort @@ -5245,12 +4645,12 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 2720 + i32.const 752 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 188 i32.const 3 call $~lib/builtins/abort @@ -5274,7 +4674,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 205 i32.const 3 call $~lib/builtins/abort @@ -5323,7 +4723,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 218 i32.const 3 call $~lib/builtins/abort @@ -5380,7 +4780,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 230 i32.const 3 call $~lib/builtins/abort @@ -5391,153 +4791,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -5581,8 +4834,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2480 - i32.const 2528 + i32.const 512 + i32.const 560 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -5609,19 +4862,13 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2480 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 512 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index c04cb41cb8..3b503a2dc3 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1,12 +1,13 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32))) + (type $3 (func (result i32))) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,269 +18,46 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36636)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34668)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "L") - (data $19.1 (i32.const 3416) "\02\00\00\00.\00\00\00f\00i\00e\00l\00d\00-\00i\00n\00i\00t\00i\00a\00l\00i\00z\00a\00t\00i\00o\00n\00.\00t\00s") - (data $20 (i32.const 3484) ",") - (data $20.1 (i32.const 3496) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $21 (i32.const 3532) "<") - (data $21.1 (i32.const 3544) "\02\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 $22 (i32.const 3596) "\1c") - (data $22.1 (i32.const 3608) "\02\00\00\00\02\00\00\00b") - (data $23 (i32.const 3628) "\1c") - (data $23.1 (i32.const 3640) "\02\00\00\00\04\00\00\00b\00b") - (data $24 (i32.const 3660) "\1c") - (data $24.1 (i32.const 3672) "\02\00\00\00\02\00\00\00c") - (data $25 (i32.const 3692) "\1c") - (data $25.1 (i32.const 3704) "\02\00\00\00\06\00\00\00b\00b\00b") - (data $26 (i32.const 3724) "\1c") - (data $26.1 (i32.const 3736) "\02\00\00\00\04\00\00\00c\00c") - (data $27 (i32.const 3760) "\1a\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") - (data $27.1 (i32.const 3800) " \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "L") + (data $8.1 (i32.const 1448) "\02\00\00\00.\00\00\00f\00i\00e\00l\00d\00-\00i\00n\00i\00t\00i\00a\00l\00i\00z\00a\00t\00i\00o\00n\00.\00t\00s") + (data $9 (i32.const 1516) ",") + (data $9.1 (i32.const 1528) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $10 (i32.const 1564) "<") + (data $10.1 (i32.const 1576) "\02\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 $11 (i32.const 1628) "\1c") + (data $11.1 (i32.const 1640) "\02\00\00\00\02\00\00\00b") + (data $12 (i32.const 1660) "\1c") + (data $12.1 (i32.const 1672) "\02\00\00\00\04\00\00\00b\00b") + (data $13 (i32.const 1692) "\1c") + (data $13.1 (i32.const 1704) "\02\00\00\00\02\00\00\00c") + (data $14 (i32.const 1724) "\1c") + (data $14.1 (i32.const 1736) "\02\00\00\00\06\00\00\00b\00b\00b") + (data $15 (i32.const 1756) "\1c") + (data $15.1 (i32.const 1768) "\02\00\00\00\04\00\00\00c\00c") + (data $16 (i32.const 1792) "\1a\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data $16.1 (i32.const 1832) " \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3868 - i32.lt_s - if - i32.const 36656 - i32.const 36704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3504 + i32.const 1536 call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -300,7 +78,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -333,7 +111,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -342,7 +120,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$253 + block $__inlined_func$~lib/rt/itcms/Object#unlink$242 local.get $0 i32.load offset=4 i32.const -4 @@ -354,19 +132,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36636 + i32.const 34668 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$253 + br $__inlined_func$~lib/rt/itcms/Object#unlink$242 end local.get $0 i32.load offset=8 @@ -374,7 +152,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -403,13 +181,13 @@ i32.const 1 else local.get $1 - i32.const 3760 + i32.const 1792 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -417,7 +195,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3764 + i32.const 1796 i32.add i32.load i32.const 32 @@ -488,7 +266,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -502,7 +280,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -548,7 +326,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -631,7 +409,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -645,7 +423,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -706,7 +484,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -739,7 +517,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -754,7 +532,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -805,7 +583,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -877,7 +655,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -902,7 +680,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -929,7 +707,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1001,10 +779,10 @@ if unreachable end - i32.const 36640 + i32.const 34672 i32.const 0 i32.store - i32.const 38208 + i32.const 36240 i32.const 0 i32.store loop $for-loop|0 @@ -1015,7 +793,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36640 + i32.const 34672 i32.add i32.const 0 i32.store offset=4 @@ -1033,7 +811,7 @@ i32.add i32.const 2 i32.shl - i32.const 36640 + i32.const 34672 i32.add i32.const 0 i32.store offset=96 @@ -1051,14 +829,14 @@ br $for-loop|0 end end - i32.const 36640 - i32.const 38212 + i32.const 34672 + i32.const 36244 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36640 + i32.const 34672 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1143,7 +921,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36636 + i32.const 34668 i32.lt_u if local.get $0 @@ -1232,14 +1010,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36636 + i32.const 34668 i32.lt_u if local.get $0 @@ -1262,7 +1040,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36636 + i32.const 34668 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1291,7 +1069,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1375,7 +1153,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1427,7 +1205,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1459,8 +1237,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1470,7 +1248,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1487,7 +1265,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1520,8 +1298,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1623,7 +1401,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1638,7 +1416,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1657,7 +1435,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1772,7 +1550,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1819,205 +1597,40 @@ (func $~start call $start:field-initialization ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3868 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3868 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$258 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$258 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36656 - i32.const 36704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $field-initialization/Inherit_Base#constructor (param $0 i32) (result i32) (local $1 i32) @@ -2026,11 +1639,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2086,11 +1699,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2148,11 +1761,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2251,7 +1864,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$117 + block $__inlined_func$~lib/util/string/compareImpl$114 loop $while-continue|1 local.get $0 local.tee $3 @@ -2271,7 +1884,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$117 + br_if $__inlined_func$~lib/util/string/compareImpl$114 local.get $2 i32.const 2 i32.add @@ -2307,11 +1920,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2359,7 +1972,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2369,34 +1982,34 @@ memory.size i32.const 16 i32.shl - i32.const 36636 + i32.const 34668 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2404,7 +2017,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2445,7 +2058,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -2457,7 +2070,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2496,7 +2109,7 @@ i32.load if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -2508,7 +2121,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2559,7 +2172,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 24 i32.const 3 call $~lib/builtins/abort @@ -2571,7 +2184,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2622,7 +2235,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -2634,7 +2247,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2676,7 +2289,7 @@ i32.load if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 40 i32.const 3 call $~lib/builtins/abort @@ -2688,7 +2301,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2719,7 +2332,7 @@ i32.load if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -2731,7 +2344,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2764,7 +2377,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 62 i32.const 3 call $~lib/builtins/abort @@ -2776,7 +2389,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2815,7 +2428,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 73 i32.const 3 call $~lib/builtins/abort @@ -2827,7 +2440,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2870,7 +2483,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -2882,7 +2495,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2934,7 +2547,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 94 i32.const 3 call $~lib/builtins/abort @@ -2953,7 +2566,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2995,7 +2608,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -3007,7 +2620,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3041,7 +2654,7 @@ i32.load if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -3053,7 +2666,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3096,7 +2709,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 124 i32.const 3 call $~lib/builtins/abort @@ -3108,7 +2721,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3160,7 +2773,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -3172,7 +2785,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3206,7 +2819,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -3218,7 +2831,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3252,7 +2865,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 153 i32.const 3 call $~lib/builtins/abort @@ -3279,7 +2892,7 @@ i32.load if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 164 i32.const 3 call $~lib/builtins/abort @@ -3299,7 +2912,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 165 i32.const 3 call $~lib/builtins/abort @@ -3331,7 +2944,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 167 i32.const 3 call $~lib/builtins/abort @@ -3351,7 +2964,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 168 i32.const 3 call $~lib/builtins/abort @@ -3367,10 +2980,10 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 3616 + i32.const 1648 i32.store offset=4 local.get $1 - i32.const 3616 + i32.const 1648 call $~lib/rt/itcms/__link local.get $1 i32.const 0 @@ -3384,7 +2997,7 @@ i32.load if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 170 i32.const 3 call $~lib/builtins/abort @@ -3399,12 +3012,12 @@ local.tee $0 i32.store offset=4 local.get $0 - i32.const 3616 + i32.const 1648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 171 i32.const 3 call $~lib/builtins/abort @@ -3426,10 +3039,10 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 3648 + i32.const 1680 i32.store offset=4 local.get $1 - i32.const 3648 + i32.const 1680 call $~lib/rt/itcms/__link local.get $1 i32.store offset=104 @@ -3442,7 +3055,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 173 i32.const 3 call $~lib/builtins/abort @@ -3457,12 +3070,12 @@ local.tee $0 i32.store offset=4 local.get $0 - i32.const 3648 + i32.const 1680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 174 i32.const 3 call $~lib/builtins/abort @@ -3477,10 +3090,10 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 3680 + i32.const 1712 i32.store offset=8 local.get $1 - i32.const 3680 + i32.const 1712 call $~lib/rt/itcms/__link local.get $1 i32.const 0 @@ -3497,7 +3110,7 @@ i32.load if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 182 i32.const 3 call $~lib/builtins/abort @@ -3517,7 +3130,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 183 i32.const 3 call $~lib/builtins/abort @@ -3532,12 +3145,12 @@ local.tee $0 i32.store offset=4 local.get $0 - i32.const 3680 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 184 i32.const 3 call $~lib/builtins/abort @@ -3558,19 +3171,19 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 3712 + i32.const 1744 i32.store offset=4 local.get $1 - i32.const 3712 + i32.const 1744 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 3744 + i32.const 1776 i32.store offset=8 local.get $1 - i32.const 3744 + i32.const 1776 call $~lib/rt/itcms/__link local.get $1 i32.store offset=120 @@ -3583,7 +3196,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 186 i32.const 3 call $~lib/builtins/abort @@ -3598,12 +3211,12 @@ local.tee $0 i32.store offset=4 local.get $0 - i32.const 3712 + i32.const 1744 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 187 i32.const 3 call $~lib/builtins/abort @@ -3618,12 +3231,12 @@ local.tee $0 i32.store offset=4 local.get $0 - i32.const 3744 + i32.const 1776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 188 i32.const 3 call $~lib/builtins/abort @@ -3635,7 +3248,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3687,7 +3300,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 205 i32.const 3 call $~lib/builtins/abort @@ -3724,7 +3337,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 218 i32.const 3 call $~lib/builtins/abort @@ -3770,7 +3383,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 230 i32.const 3 call $~lib/builtins/abort @@ -3782,8 +3395,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3795,11 +3408,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3831,11 +3444,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3868 + i32.const 1900 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index 1ebbb1a169..634c225f93 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -2,21 +2,16 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32) (result i32))) - (type $12 (func (param i32 i32 i32 i32))) - (type $13 (func (param i32 i32 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)) + (type $3 (func)) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (type $10 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -25,468 +20,33 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2416)) - (global $~lib/memory/__data_end i32 (i32.const 2448)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35216)) - (global $~lib/memory/__heap_base i32 (i32.const 35216)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/rt/__rtti_base i32 (i32.const 448)) + (global $~lib/memory/__data_end i32 (i32.const 480)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33248)) + (global $~lib/memory/__heap_base i32 (i32.const 33248)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\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 $20 (i32.const 2416) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\02A\00\00\02\t\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\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 $9 (i32.const 448) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\02A\00\00\02\t\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -551,7 +111,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -621,7 +181,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -638,7 +198,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -668,9 +228,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -737,7 +297,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -889,7 +449,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -909,7 +469,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -972,7 +532,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1125,7 +685,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1142,7 +702,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1231,7 +791,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1274,7 +834,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1292,7 +852,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1360,7 +920,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1477,7 +1037,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1523,7 +1083,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1555,7 +1115,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1799,7 +1359,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2019,7 +1579,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2130,8 +1690,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2233,7 +1793,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2304,7 +1864,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2461,7 +2021,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2576,7 +2136,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2596,7 +2156,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2644,8 +2204,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2721,7 +2281,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2840,13 +2400,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $field/testNoStaticConflict @@ -2860,20 +2420,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 33280 + i32.const 33328 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2882,196 +2438,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $field/NoStaticConflict#constructor (param $this i32) (result i32) (local $1 i32) @@ -3116,7 +2503,7 @@ i32.const 0 i32.const 2 i32.const 5 - i32.const 2400 + i32.const 432 call $~lib/rt/__newArray local.set $2 global.get $~lib/memory/__stack_pointer @@ -3160,153 +2547,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3366,6 +2606,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -3390,16 +2634,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3513,6 +2751,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -3580,6 +2822,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 208bd2745b..584b8fa6e0 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -2,11 +2,11 @@ (type $0 (func)) (type $1 (func (param i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,253 +17,30 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36240)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34272)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\01") - (data $20 (i32.const 3440) "\07\00\00\00 \00\00\00 \00\00\00 ") - (data $20.1 (i32.const 3464) "\02A\00\00\02\t") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "\1c") + (data $8.1 (i32.const 1448) "\01") + (data $9 (i32.const 1472) "\07\00\00\00 \00\00\00 \00\00\00 ") + (data $9.1 (i32.const 1496) "\02A\00\00\02\t") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3472 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -284,7 +61,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -317,7 +94,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -326,7 +103,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$140 + block $__inlined_func$~lib/rt/itcms/Object#unlink$128 local.get $0 i32.load offset=4 i32.const -4 @@ -338,19 +115,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36240 + i32.const 34272 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$140 + br $__inlined_func$~lib/rt/itcms/Object#unlink$128 end local.get $0 i32.load offset=8 @@ -358,7 +135,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -387,13 +164,13 @@ i32.const 1 else local.get $1 - i32.const 3440 + i32.const 1472 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -401,7 +178,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3444 + i32.const 1476 i32.add i32.load i32.const 32 @@ -472,7 +249,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -486,7 +263,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -532,7 +309,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -615,7 +392,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -629,7 +406,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -690,7 +467,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -723,7 +500,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -738,7 +515,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -789,7 +566,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -861,7 +638,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -886,7 +663,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -913,7 +690,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -985,10 +762,10 @@ if unreachable end - i32.const 36240 + i32.const 34272 i32.const 0 i32.store - i32.const 37808 + i32.const 35840 i32.const 0 i32.store loop $for-loop|0 @@ -999,7 +776,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36240 + i32.const 34272 i32.add i32.const 0 i32.store offset=4 @@ -1017,7 +794,7 @@ i32.add i32.const 2 i32.shl - i32.const 36240 + i32.const 34272 i32.add i32.const 0 i32.store offset=96 @@ -1035,14 +812,14 @@ br $for-loop|0 end end - i32.const 36240 - i32.const 37812 + i32.const 34272 + i32.const 35844 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36240 + i32.const 34272 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1127,7 +904,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36240 + i32.const 34272 i32.lt_u if local.get $0 @@ -1216,14 +993,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36240 + i32.const 34272 i32.lt_u if local.get $0 @@ -1246,7 +1023,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36240 + i32.const 34272 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1275,7 +1052,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1359,7 +1136,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1411,7 +1188,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1443,8 +1220,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1454,7 +1231,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1471,7 +1248,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1504,8 +1281,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1607,7 +1384,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1622,7 +1399,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1641,7 +1418,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1756,7 +1533,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1808,34 +1585,34 @@ memory.size i32.const 16 i32.shl - i32.const 36240 + i32.const 34272 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1843,7 +1620,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3472 + i32.const 1504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1855,7 +1632,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3472 + i32.const 1504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1879,7 +1656,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3472 + i32.const 1504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1909,7 +1686,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3472 + i32.const 1504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1920,7 +1697,7 @@ i32.const 1 call $~lib/rt/itcms/__new local.tee $3 - i32.const 3424 + i32.const 1456 i32.const 0 memory.copy local.get $3 @@ -2004,8 +1781,8 @@ global.set $~lib/rt/itcms/threshold return end - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2014,205 +1791,40 @@ (func $~start call $start:field ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3472 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3472 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$148 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$148 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3472 + i32.const 1504 i32.lt_s if - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -2255,7 +1867,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3472 + i32.const 1504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2303,7 +1915,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3472 + i32.const 1504 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2313,8 +1925,8 @@ end unreachable end - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index 079c559a19..1c2ce26143 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -4,17 +4,13 @@ (type $2 (func (param i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (result i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $for/ran (mut i32) (i32.const 0)) - (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_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,869 +19,847 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2416)) - (global $~lib/memory/__data_end i32 (i32.const 2440)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35208)) - (global $~lib/memory/__heap_base i32 (i32.const 35208)) + (global $~lib/rt/__rtti_base i32 (i32.const 448)) + (global $~lib/memory/__data_end i32 (i32.const 472)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33240)) + (global $~lib/memory/__heap_base i32 (i32.const 33240)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00f\00o\00r\00.\00t\00s\00") - (data $20 (i32.const 2416) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00f\00o\00r\00.\00t\00s\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 448) "\05\00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne + (func $for/testInitExpression + (local $i i32) + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i32.const 10 + i32.lt_s if + local.get $i i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + local.set $i + br $for-loop|0 end end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 + local.get $i + i32.const 10 i32.eq + i32.eqz if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz + i32.const 32 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testInitStatement + (local $j i32) + i32.const 0 + local.set $j + loop $for-loop|0 + local.get $j + i32.const 10 + i32.lt_s if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $j + i32.const 1 + i32.add + local.set $j + br $for-loop|0 end - return end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev + local.get $j + i32.const 10 + i32.eq i32.eqz if i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 + i32.const 32 + i32.const 19 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load + i32.const 1 + global.set $for/ran ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u + (func $for/testEmpty + (local $i i32) + i32.const 10 + local.set $i + loop $for-loop|0 + local.get $i + i32.const 0 + i32.gt_s + if + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end + end + local.get $i + i32.const 0 + i32.eq + i32.eqz if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return + i32.const 1 + global.set $for/ran ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne + (func $for/testConditionOmitted + (local $i i32) + i32.const 0 + local.set $i + block $for-break0 + loop $for-loop|0 + i32.const 1 + if + local.get $i + i32.const 10 + i32.eq + if + br $for-break0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter + local.get $i + i32.const 10 i32.eq + i32.eqz if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + ) + (func $for/testAllOmitted + (local $i i32) + i32.const 10 + local.set $i + block $for-break0 + loop $for-loop|0 + i32.const 1 + if + local.get $i + i32.const 1 + i32.sub + local.tee $i + i32.const 0 + i32.eq + if + br $for-break0 + end + br $for-loop|0 + end end - global.set $~lib/rt/itcms/iter end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - call $~lib/rt/itcms/Object#get:isPointerfree - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 + local.get $i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable end - call $~lib/rt/itcms/Object#linkTo + i32.const 1 + global.set $for/ran ) - (func $~lib/rt/itcms/__visit (param $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr + (func $for/testAlwaysTrue + (local $i i32) + i32.const 0 + local.set $i + block $for-break0 + loop $for-loop|0 + i32.const 1 + if + local.get $i + i32.const 1 + i32.add + local.tee $i + i32.const 10 + i32.eq + if + br $for-break0 + end + br $for-loop|0 + end + end + end + local.get $i + i32.const 10 + i32.eq i32.eqz if - return + i32.const 0 + i32.const 32 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj + i32.const 1 + global.set $for/ran + ) + (func $for/testAlwaysFalse i32.const 0 drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white + i32.const 1 + global.set $for/ran + ) + (func $for/testAlwaysContinues + (local $k i32) + i32.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i32.const 10 + i32.lt_s + if + block $for-continue|0 + br $for-continue|0 + end + local.get $k + i32.const 1 + i32.add + local.set $k + br $for-loop|0 + end + end + local.get $k + i32.const 10 i32.eq + i32.eqz if - local.get $obj - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 0 + i32.const 32 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable end + i32.const 1 + global.set $for/ran ) - (func $~lib/rt/itcms/visitStack (param $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u + (func $for/testAlwaysBreaks + (local $k i32) + i32.const 0 + local.set $k + block $for-break0 + local.get $k + i32.const 10 + i32.lt_s if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + br $for-break0 end end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and + local.get $k + i32.const 0 + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 + i32.const 32 + i32.const 89 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u + global.set $for/ran + ) + (func $for/testAlwaysReturns + (local $k i32) + i32.const 0 + local.set $k + local.get $k + i32.const 10 + i32.lt_s + if + i32.const 1 + global.set $for/ran + return + end + i32.const 0 i32.eqz if i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 + i32.const 32 + i32.const 101 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $size - i32.const 256 - i32.lt_u + ) + (func $for/testNestedContinue + (local $i i32) + (local $j i32) + (local $k i32) + i32.const 0 + local.set $i + i32.const 0 + local.set $j + i32.const 0 + local.set $k + loop $for-loop|0 + local.get $i + i32.const 10 + i32.lt_s + if + block $for-continue|0 + local.get $i + i32.const 2 + i32.lt_s + if + br $for-continue|0 + end + i32.const 0 + local.set $j + loop $for-loop|1 + local.get $j + i32.const 10 + i32.lt_s + if + block $for-continue|1 + local.get $i + local.get $j + i32.lt_s + if + local.get $k + i32.const 1 + i32.add + local.set $k + br $for-continue|1 + end + end + local.get $j + i32.const 1 + i32.add + local.set $j + br $for-loop|1 + end + end + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $i + i32.const 10 + i32.eq + i32.eqz if i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl + i32.const 32 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else + local.get $j + i32.const 10 + i32.eq + i32.eqz + if i32.const 0 + i32.const 32 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $k + i32.const 28 + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 + i32.const 32 + i32.const 122 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next + i32.const 1 + global.set $for/ran + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:prev + local.get $space + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq i32.eqz if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) - (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev i32.const 1 drop - local.get $block + local.get $prev i32.eqz if i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort + i32.const 128 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort unreachable end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 + i32.const 256 + i32.const 320 + i32.const 22 + i32.const 28 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo + i32.le_u + if (result i32) i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 i32.and + i32.const 0 + i32.ne + end + return + ) + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 i32.eqz - if + if (result i32) i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 + i32.const 128 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable + else + local.get $1 end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo + global.set $~lib/rt/itcms/iter end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + 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 $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr i32.eqz if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - i32.const 1 + local.get $ptr + i32.const 20 + i32.sub + local.set $obj + i32.const 0 drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white i32.eq - i32.eqz + if + local.get $obj + 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 $cookie i32) + (local $ptr i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end + end + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) + i32.const 4 + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $6 i32) + (local $7 i32) + (local $boundedSize i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) + (local $head i32) + (local $root|18 i32) + (local $fl|19 i32) + (local $slMap i32) + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz if i32.const 0 - i32.const 464 - i32.const 234 + i32.const 400 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store local.get $size i32.const 256 i32.lt_u @@ -898,11 +872,11 @@ local.set $sl else local.get $size - local.tee $13 + local.tee $6 i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 + local.tee $7 + local.get $6 + local.get $7 i32.lt_u select local.set $boundedSize @@ -943,824 +917,337 @@ i32.eqz if i32.const 0 - i32.const 464 - i32.const 251 + i32.const 400 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) local.get $root - local.set $root|16 + local.set $root|11 local.get $fl - local.set $fl|17 + local.set $fl|12 local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 + local.set $sl|13 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|18 + local.get $sl|13 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 + br $~lib/rt/tlsf/GETHEAD|inlined.0 end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head + i32.eq if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|24 + local.set $root|14 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and + local.get $head + i32.store offset=96 + local.get $next i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 i32.const 2 - global.set $~lib/rt/itcms/state + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 end - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/iter - local.set $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + local.get $slMap i32.eqz if - i32.const 0 - i32.const 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap end - local.get $obj - 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 - return ) - (func $~lib/rt/itcms/interrupt - (local $budget i32) - i32.const 0 + (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) + (local $left i32) + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) + i32.const 1 drop - i32.const 0 + local.get $block + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 drop - i32.const 1024 - i32.const 200 - i32.mul - i32.const 100 - i32.div_u - local.set $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 + i32.const 400 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 end - local.get $budget - i32.const 0 - i32.gt_s - br_if $do-loop|0 + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo + i32.const 1 + drop + local.get $leftInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo i32.const 4 i32.add - i32.const 15 - i32.add - i32.const 15 + local.get $blockInfo + i32.const 3 i32.const -1 i32.xor i32.and - i32.const 4 - i32.sub + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo end - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop local.get $size - i32.const 1073741820 - i32.gt_u + i32.const 12 + i32.ge_u + i32.eqz if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 + i32.const 0 + i32.const 400 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) + local.get $right + i32.const 4 + i32.sub + local.get $block + i32.store local.get $size i32.const 256 i32.lt_u @@ -1773,18 +1260,20 @@ local.set $sl else local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize i32.clz i32.sub local.set $fl - local.get $requestSize + local.get $boundedSize local.get $fl i32.const 4 i32.sub @@ -1816,170 +1305,302 @@ i32.eqz if i32.const 0 - i32.const 464 - i32.const 334 + i32.const 400 + i32.const 251 i32.const 14 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $root - local.set $root|5 + local.set $root|16 local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 end + local.set $head + local.get $block i32.const 0 - i32.const -1 - i32.xor + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 i32.shl - i32.and + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + 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 $start + local.get $end + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $end + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + local.set $tail i32.const 0 - local.set $head - local.get $slMap - i32.eqz + local.set $tailInfo + local.get $tail if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl i32.const 1 + drop + local.get $start + local.get $tail + i32.const 4 i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap + i32.ge_u i32.eqz if i32.const 0 - local.set $head + i32.const 400 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head end else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.set $head end - local.get $head + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 return ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) (local $pagesBefore i32) - (local $root|3 i32) (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart i32) i32.const 0 drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $rootOffset memory.size local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl + local.get $rootOffset + i32.const 1572 i32.add - local.set $size - local.get $size i32.const 65535 i32.add i32.const 65535 @@ -1989,1092 +1610,1030 @@ i32.const 16 i32.shr_u local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) local.get $pagesNeeded + local.get $pagesBefore + i32.sub memory.grow i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u if - unreachable + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $sl + i32.const 1 + i32.add + local.set $sl + br $for-loop|1 + end + end + local.get $fl + i32.const 1 + i32.add + local.set $fl + br $for-loop|0 end end - memory.size - local.set $pagesAfter + local.get $rootOffset + i32.const 1572 + i32.add + local.set $memStart + i32.const 0 + drop local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter + local.get $memStart + memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory drop + local.get $root + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 + local.set $block + local.get $ptr + i32.const 0 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock + i32.eqz else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo + i32.const 0 end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop + if (result i32) local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end i32.eqz if i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 + i32.const 400 + i32.const 562 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) i32.const 0 drop local.get $block - return + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/__alloc (param $size i32) (result i32) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill local.get $ptr - return + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 + (func $~lib/rt/itcms/free (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base i32.lt_u if - local.get $value - i32.const 100 - i32.lt_u - if + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $from 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 $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + 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 $obj + local.get $obj + 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 $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + 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 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add + i32.mul return end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u + global.get $~lib/rt/itcms/iter + local.set $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter i32.const 1 - i32.add - local.set $e - br $while-continue|1 + drop + local.get $obj + 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 128 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $obj + 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 - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 return ) - (func $for/testInitExpression - (local $i i32) + (func $~lib/rt/itcms/interrupt + (local $budget i32) i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - i32.const 10 - i32.lt_s - if - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - local.get $i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $for/ran - ) - (func $for/testInitStatement - (local $j i32) + drop i32.const 0 - local.set $j - loop $for-loop|0 - local.get $j - i32.const 10 - i32.lt_s + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step + i32.sub + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq if - local.get $j - i32.const 1 + i32.const 0 + drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop + global.get $~lib/rt/itcms/total + i32.const 200 + i32.const 100 + i32.div_u + i32.mul + i32.const 1024 i32.add - local.set $j - br $for-loop|0 + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return end - end - local.get $j - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $for/ran - ) - (func $for/testEmpty - (local $i i32) - i32.const 10 - local.set $i - loop $for-loop|0 - local.get $i + local.get $budget i32.const 0 i32.gt_s - if - local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 - end + br_if $do-loop|0 end - local.get $i i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 29 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $for/ran - ) - (func $for/testConditionOmitted - (local $i i32) + 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 - local.set $i - block $for-break0 - loop $for-loop|0 - i32.const 1 - if - local.get $i - i32.const 10 - i32.eq - if - br $for-break0 - end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end + drop + ) + (func $~lib/rt/tlsf/computeSize (param $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $size + 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 - local.get $i - i32.const 10 - i32.eq - i32.eqz + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u if - i32.const 0 - i32.const 2400 - i32.const 39 - i32.const 3 + i32.const 64 + i32.const 400 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $for/ran + local.get $size + call $~lib/rt/tlsf/computeSize + return ) - (func $for/testAllOmitted - (local $i i32) - i32.const 10 - local.set $i - block $for-break0 - loop $for-loop|0 - i32.const 1 - if - local.get $i - i32.const 1 - i32.sub - local.tee $i - i32.const 0 - i32.eq - if - br $for-break0 - end - br $for-loop|0 - end - end + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size + i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $size end - local.get $i - i32.const 0 - i32.eq - i32.eqz + return + ) + (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u if i32.const 0 - i32.const 2400 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $for/ran - ) - (func $for/testAlwaysTrue - (local $i i32) - i32.const 0 - local.set $i - block $for-break0 - loop $for-loop|0 - i32.const 1 - if - local.get $i - i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq - if - br $for-break0 - end - br $for-loop|0 - end - end + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + local.get $requestSize + i32.clz + i32.sub + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 end - local.get $i - i32.const 10 - i32.eq i32.eqz if i32.const 0 - i32.const 2400 - i32.const 61 - i32.const 3 + i32.const 400 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $for/ran - ) - (func $for/testAlwaysFalse + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 - drop - i32.const 1 - global.set $for/ran - ) - (func $for/testAlwaysContinues - (local $k i32) + i32.const -1 + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap i32.const 0 - local.set $k - loop $for-loop|0 - local.get $k - i32.const 10 - i32.lt_s + local.set $head + local.get $slMap + i32.eqz + if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 0 + i32.const -1 + i32.xor + local.get $fl + i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz if - block $for-continue|0 - br $for-continue|0 + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 end - local.get $k + local.set $slMap i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 i32.add - local.set $k - br $for-loop|0 + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 end + local.set $head end - local.get $k - i32.const 10 - i32.eq - i32.eqz + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) + i32.const 0 + drop + local.get $size + i32.const 256 + i32.ge_u if - i32.const 0 - i32.const 2400 - i32.const 80 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size end - i32.const 1 - global.set $for/ran - ) - (func $for/testAlwaysBreaks - (local $k i32) + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow i32.const 0 - local.set $k - block $for-break0 - local.get $k - i32.const 10 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 i32.lt_s if - br $for-break0 + unreachable end end - local.get $k - i32.const 0 - i32.eq + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz i32.eqz if i32.const 0 - i32.const 2400 - i32.const 89 - i32.const 3 + i32.const 400 + i32.const 361 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $for/ran - ) - (func $for/testAlwaysReturns - (local $k i32) - i32.const 0 - local.set $k - local.get $k - i32.const 10 - i32.lt_s + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u if + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub i32.const 1 - global.set $for/ran - return + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo end - i32.const 0 + ) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block i32.eqz if - i32.const 0 - i32.const 2400 - i32.const 101 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $for/testNestedContinue - (local $i i32) - (local $j i32) - (local $k i32) - i32.const 0 - local.set $i - i32.const 0 - local.set $j - i32.const 0 - local.set $k - loop $for-loop|0 - local.get $i - i32.const 10 - i32.lt_s + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + i32.const 1 + drop + local.get $block + i32.eqz if - block $for-continue|0 - local.get $i - i32.const 2 - i32.lt_s - if - br $for-continue|0 - end - i32.const 0 - local.set $j - loop $for-loop|1 - local.get $j - i32.const 10 - i32.lt_s - if - block $for-continue|1 - local.get $i - local.get $j - i32.lt_s - if - local.get $k - i32.const 1 - i32.add - local.set $k - br $for-continue|1 - end - end - local.get $j - i32.const 1 - i32.add - local.set $j - br $for-loop|1 - end - end - end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.const 0 + i32.const 400 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end end - local.get $i - i32.const 10 - i32.eq + i32.const 1 + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u i32.eqz if i32.const 0 - i32.const 2400 - i32.const 120 - i32.const 3 + i32.const 400 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $j - i32.const 10 - i32.eq + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $block + return + ) + (func $~lib/rt/tlsf/__alloc (param $size i32) (result i32) + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 2400 - i32.const 121 - i32.const 3 + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $k - i32.const 28 - i32.eq - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 2400 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/interrupt end - i32.const 1 - global.set $for/ran + i32.const 16 + local.get $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill + local.get $ptr + return ) (func $for/testRef (local $i i32) @@ -3122,7 +2681,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 137 i32.const 3 call $~lib/builtins/abort @@ -3133,7 +2692,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -3202,7 +2761,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 157 i32.const 3 call $~lib/builtins/abort @@ -3213,7 +2772,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 158 i32.const 3 call $~lib/builtins/abort @@ -3275,29 +2834,12 @@ (func $start:for i32.const 0 global.set $for/ran - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $for/testInitExpression global.get $for/ran i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -3310,7 +2852,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -3323,7 +2865,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -3336,7 +2878,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -3349,7 +2891,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -3362,7 +2904,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 66 i32.const 1 call $~lib/builtins/abort @@ -3375,7 +2917,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 76 i32.const 1 call $~lib/builtins/abort @@ -3388,7 +2930,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 85 i32.const 1 call $~lib/builtins/abort @@ -3401,7 +2943,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -3414,7 +2956,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 105 i32.const 1 call $~lib/builtins/abort @@ -3427,7 +2969,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 127 i32.const 1 call $~lib/builtins/abort @@ -3435,12 +2977,29 @@ end i32.const 0 global.set $for/ran + 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 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace call $for/testRef global.get $for/ran i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 143 i32.const 1 call $~lib/builtins/abort @@ -3453,7 +3012,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -3469,20 +3028,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35232 - i32.const 35280 + i32.const 33264 + i32.const 33312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3491,196 +3046,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $for/Ref#constructor (param $this i32) (result i32) (local $1 i32) @@ -3720,153 +3106,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3897,16 +3136,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index fa6053214a..7057d52177 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (param i32) (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,54 +17,29 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36232)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34264)) (memory $0 1) (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\0c\00\00\00f\00o\00r\00.\00t\00s") - (data $20 (i32.const 3440) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0.1 (i32.const 1048) "\02\00\00\00\0c\00\00\00f\00o\00r\00.\00t\00s") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\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 $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1324) ",") + (data $6.1 (i32.const 1336) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1472) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1088 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -85,7 +60,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -133,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -142,7 +117,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$141 + block $__inlined_func$~lib/rt/itcms/Object#unlink$129 local.get $1 i32.load offset=4 i32.const -4 @@ -154,19 +129,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36232 + i32.const 34264 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$141 + br $__inlined_func$~lib/rt/itcms/Object#unlink$129 end local.get $1 i32.load offset=8 @@ -174,7 +149,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -203,13 +178,13 @@ i32.const 1 else local.get $0 - i32.const 3440 + i32.const 1472 i32.load i32.gt_u if + i32.const 1280 i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -217,7 +192,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3444 + i32.const 1476 i32.add i32.load i32.const 32 @@ -269,7 +244,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -283,7 +258,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -329,7 +304,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -412,7 +387,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -426,7 +401,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -487,7 +462,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -520,7 +495,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -535,7 +510,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -586,7 +561,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -658,7 +633,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -683,7 +658,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -710,7 +685,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -782,10 +757,10 @@ if unreachable end - i32.const 36240 + i32.const 34272 i32.const 0 i32.store - i32.const 37808 + i32.const 35840 i32.const 0 i32.store loop $for-loop|0 @@ -796,7 +771,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36240 + i32.const 34272 i32.add i32.const 0 i32.store offset=4 @@ -814,7 +789,7 @@ i32.add i32.const 2 i32.shl - i32.const 36240 + i32.const 34272 i32.add i32.const 0 i32.store offset=96 @@ -832,14 +807,14 @@ br $for-loop|0 end end - i32.const 36240 - i32.const 37812 + i32.const 34272 + i32.const 35844 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36240 + i32.const 34272 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -924,7 +899,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36232 + i32.const 34264 i32.lt_u if local.get $0 @@ -1013,14 +988,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1152 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36232 + i32.const 34264 i32.lt_u if local.get $0 @@ -1043,7 +1018,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36232 + i32.const 34264 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1072,7 +1047,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1102,85 +1077,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1188,11 +1096,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1208,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1230,35 +1134,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1268,9 +1160,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1293,86 +1185,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1388,8 +1225,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1397,136 +1234,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1424 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1534,269 +1354,39 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) + (func $start:for + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end local.get $0 - 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 3464 - i32.lt_s + i32.const 10 + i32.ne if - i32.const 36256 - i32.const 36304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $start:for - (local $0 i32) - (local $1 i32) - (local $2 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36232 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - loop $for-loop|0 - local.get $0 - i32.const 10 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 3424 - i32.const 8 - i32.const 3 + i32.const 0 + i32.const 1056 + i32.const 8 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -1819,7 +1409,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 19 i32.const 3 call $~lib/builtins/abort @@ -1842,7 +1432,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 29 i32.const 3 call $~lib/builtins/abort @@ -1867,7 +1457,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 39 i32.const 3 call $~lib/builtins/abort @@ -1885,7 +1475,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -1907,7 +1497,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -1932,7 +1522,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 80 i32.const 3 call $~lib/builtins/abort @@ -1985,7 +1575,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 120 i32.const 3 call $~lib/builtins/abort @@ -1996,7 +1586,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 121 i32.const 3 call $~lib/builtins/abort @@ -2007,19 +1597,51 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 122 i32.const 3 call $~lib/builtins/abort unreachable end + memory.size + i32.const 16 + i32.shl + i32.const 34264 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace 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 3464 + i32.const 1496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2057,7 +1679,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 137 i32.const 3 call $~lib/builtins/abort @@ -2066,7 +1688,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -2081,7 +1703,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3464 + i32.const 1496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2124,7 +1746,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 157 i32.const 3 call $~lib/builtins/abort @@ -2133,7 +1755,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 158 i32.const 3 call $~lib/builtins/abort @@ -2178,8 +1800,8 @@ global.set $~lib/rt/itcms/threshold return end - i32.const 36256 - i32.const 36304 + i32.const 34288 + i32.const 34336 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2188,205 +1810,40 @@ (func $~start call $start:for ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3464 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3464 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$146 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$146 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36256 - i32.const 36304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3464 + i32.const 1496 i32.lt_s if - i32.const 36256 - i32.const 36304 + i32.const 34288 + i32.const 34336 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $for/Ref#constructor (result i32) (local $0 i32) @@ -2397,14 +1854,13 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3464 + i32.const 1496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2418,7 +1874,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3464 + i32.const 1496 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2429,7 +1885,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2447,8 +1902,8 @@ local.get $0 return end - i32.const 36256 - i32.const 36304 + i32.const 34288 + i32.const 34336 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index c5511d9ec4..6714967dc1 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -1,24 +1,22 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func)) - (type $4 (func (param i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $function-call/fnVoid (mut i32) (i32.const 32)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $function-call/faVoid (mut i32) (i32.const 64)) (global $function-call/fnRet (mut i32) (i32.const 96)) - (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_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $function-call/faRet (mut i32) (i32.const 192)) + (global $function-call/fnThis (mut i32) (i32.const 224)) (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)) @@ -27,47 +25,38 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $function-call/faRet (mut i32) (i32.const 2560)) - (global $function-call/fnThis (mut i32) (i32.const 2592)) (global $function-call/foo (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2704)) - (global $~lib/memory/__data_end i32 (i32.const 2748)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35516)) - (global $~lib/memory/__heap_base i32 (i32.const 35516)) + (global $~lib/rt/__rtti_base i32 (i32.const 736)) + (global $~lib/memory/__data_end i32 (i32.const 780)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33548)) + (global $~lib/memory/__heap_base i32 (i32.const 33548)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $4 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $5 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 512) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 636) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 764) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 860) "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 $19 (i32.const 1260) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2316) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00c\00a\00l\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2704) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00c\00a\00l\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 700) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 736) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") (table $0 9 9 funcref) (elem $0 (i32.const 1) $start:function-call~anonymous|0 $start:function-call~anonymous|1 $start:function-call~anonymous|2 $start:function-call~anonymous|3 $start:function-call~fn2|4 $function-call/Foo#fnVoid $function-call/Foo#fnThis $function-call/Foo#fnRet) (export "memory" (memory $0)) @@ -82,17 +71,14 @@ i32.add return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 + (func $start:function-call~anonymous|3 (param $a i32) (param $b i32) (result i32) + local.get $a + local.get $b + i32.add + return ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $start:function-call~fn2|4 (param $this i32) (result i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u return ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) @@ -159,7 +145,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 320 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -229,7 +215,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 320 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -246,7 +232,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 320 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -276,9 +262,9 @@ i32.load i32.gt_u if - i32.const 416 - i32.const 480 - i32.const 21 + i32.const 448 + i32.const 512 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -345,7 +331,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 288 + i32.const 320 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -497,7 +483,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -517,7 +503,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -580,7 +566,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -733,7 +719,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -750,7 +736,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -839,7 +825,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -882,7 +868,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -900,7 +886,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -968,7 +954,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1085,7 +1071,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1131,7 +1117,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1163,7 +1149,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1407,7 +1393,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1627,7 +1613,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 320 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1738,8 +1724,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 224 - i32.const 560 + i32.const 256 + i32.const 592 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1841,7 +1827,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1912,7 +1898,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2069,7 +2055,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2184,7 +2170,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2204,7 +2190,7 @@ i32.eqz if i32.const 0 - i32.const 560 + i32.const 592 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2252,8 +2238,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 224 - i32.const 288 + i32.const 256 + i32.const 320 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2298,432 +2284,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 860 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 860 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 860 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 860 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1280 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1280 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2336 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2336 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $start:function-call~anonymous|3 (param $a i32) (param $b i32) (result i32) - local.get $a - local.get $b - i32.add - return - ) - (func $start:function-call~fn2|4 (param $this i32) (result i32) - local.get $this - return - ) (func $function-call/Foo#fnVoid (param $this i32) ) (func $function-call/Foo#fnThis (param $this i32) (result i32) @@ -2744,20 +2304,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35536 - i32.const 35584 + i32.const 33568 + i32.const 33616 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2766,196 +2322,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 192 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 128 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 160 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 624 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 624 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2432 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $function-call/Foo#constructor (param $this i32) (result i32) (local $1 i32) @@ -3009,42 +2396,25 @@ global.set $~argumentsLength global.get $function-call/fnVoid i32.load - call_indirect (type $3) + call_indirect (type $2) i32.const 0 global.set $~argumentsLength global.get $function-call/faVoid i32.load - call_indirect (type $3) - 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 336 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 368 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 512 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace + call_indirect (type $2) i32.const 1 i32.const 2 i32.const 2 global.set $~argumentsLength global.get $function-call/fnRet i32.load - call_indirect (type $2) + call_indirect (type $4) i32.const 3 i32.eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -3056,13 +2426,13 @@ global.set $~argumentsLength global.get $function-call/faRet i32.load - call_indirect (type $2) + call_indirect (type $4) i32.const 5 i32.eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -3079,12 +2449,29 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 20 i32.const 1 call $~lib/builtins/abort unreachable end + 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 call $function-call/Foo#constructor global.set $function-call/foo @@ -3096,13 +2483,13 @@ local.get $0 i32.const 0 global.set $~argumentsLength - i32.const 2624 + i32.const 656 i32.load - call_indirect (type $4) + call_indirect (type $3) i32.const 1 i32.const 0 global.set $~argumentsLength - i32.const 2656 + i32.const 688 i32.load call_indirect (type $0) i32.const 1 @@ -3110,7 +2497,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -3126,15 +2513,15 @@ i32.const 2 i32.const 2 global.set $~argumentsLength - i32.const 2688 + i32.const 720 i32.load - call_indirect (type $6) + call_indirect (type $7) i32.const 3 i32.eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -3145,153 +2532,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 656 - i32.const 784 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 848 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3329,16 +2569,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 416 + i32.const 448 local.get $0 call $~lib/rt/itcms/__visit - i32.const 224 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1280 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2336 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3482,6 +2716,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3506,6 +2744,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3530,6 +2772,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3554,6 +2800,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3578,6 +2828,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 5041d3d2cc..66384538e3 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -1,13 +1,14 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32) (result i32))) (type $2 (func (param i32))) - (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32))) + (type $6 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -19,7 +20,7 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $function-call/foo (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36540)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34572)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") @@ -27,51 +28,30 @@ (data $1.1 (i32.const 1080) "\04\00\00\00\08\00\00\00\02") (data $2 (i32.const 1100) "\1c") (data $2.1 (i32.const 1112) "\05\00\00\00\08\00\00\00\03") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $4 (i32.const 1164) "\1c") - (data $4.1 (i32.const 1176) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $5 (i32.const 1196) "\1c") - (data $5.1 (i32.const 1208) "\02") - (data $6 (i32.const 1228) "<") - (data $6.1 (i32.const 1240) "\02\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 $7 (i32.const 1292) "<") - (data $7.1 (i32.const 1304) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $10 (i32.const 1420) "<") - (data $10.1 (i32.const 1432) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $11 (i32.const 1484) ",") - (data $11.1 (i32.const 1496) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $13 (i32.const 1564) "<") - (data $13.1 (i32.const 1576) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $14 (i32.const 1628) "\1c") - (data $14.1 (i32.const 1640) "\02\00\00\00\02\00\00\00:") - (data $15 (i32.const 1660) "|") - (data $15.1 (i32.const 1672) "\02\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 $16 (i32.const 1788) "<") - (data $16.1 (i32.const 1800) "\02\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 $17 (i32.const 1852) "\1c") - (data $17.1 (i32.const 1864) "\02\00\00\00\02\00\00\000") - (data $18 (i32.const 1884) "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 $19 (i32.const 2284) "\1c\04") - (data $19.1 (i32.const 2296) "\02\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 $20 (i32.const 3340) "\\") - (data $20.1 (i32.const 3352) "\02\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 $21 (i32.const 3436) "<") - (data $21.1 (i32.const 3448) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $22 (i32.const 3500) "<") - (data $22.1 (i32.const 3512) "\02\00\00\00 \00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00c\00a\00l\00l\00.\00t\00s") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\05\00\00\00\08\00\00\00\04") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\06\00\00\00\08\00\00\00\05") - (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\08\00\00\00\08\00\00\00\06") - (data $26 (i32.const 3660) "\1c") - (data $26.1 (i32.const 3672) "\06\00\00\00\08\00\00\00\07") - (data $27 (i32.const 3692) "\1c") - (data $27.1 (i32.const 3704) "\t\00\00\00\08\00\00\00\08") - (data $28 (i32.const 3728) "\n\00\00\00 \00\00\00 \00\00\00 ") - (data $28.1 (i32.const 3760) " ") + (data $3 (i32.const 1132) "<") + (data $3.1 (i32.const 1144) "\02\00\00\00 \00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00c\00a\00l\00l\00.\00t\00s") + (data $4 (i32.const 1196) "\1c") + (data $4.1 (i32.const 1208) "\05\00\00\00\08\00\00\00\04") + (data $5 (i32.const 1228) "\1c") + (data $5.1 (i32.const 1240) "\06\00\00\00\08\00\00\00\05") + (data $6 (i32.const 1260) "<") + (data $6.1 (i32.const 1272) "\02\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 $7 (i32.const 1324) "<") + (data $7.1 (i32.const 1336) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $10 (i32.const 1452) "<") + (data $10.1 (i32.const 1464) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $11 (i32.const 1516) ",") + (data $11.1 (i32.const 1528) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $13 (i32.const 1596) "<") + (data $13.1 (i32.const 1608) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $14 (i32.const 1660) "\1c") + (data $14.1 (i32.const 1672) "\08\00\00\00\08\00\00\00\06") + (data $15 (i32.const 1692) "\1c") + (data $15.1 (i32.const 1704) "\06\00\00\00\08\00\00\00\07") + (data $16 (i32.const 1724) "\1c") + (data $16.1 (i32.const 1736) "\t\00\00\00\08\00\00\00\08") + (data $17 (i32.const 1760) "\n\00\00\00 \00\00\00 \00\00\00 ") + (data $17.1 (i32.const 1792) " ") (table $0 9 9 funcref) (elem $0 (i32.const 1) $start:function-call~anonymous|0 $start:function-call~anonymous|0 $start:function-call~anonymous|2 $start:function-call~anonymous|2 $start:function-call~fn2|4 $function-call/Foo#fnVoid $start:function-call~fn2|4 $function-call/Foo#fnRet) (export "memory" (memory $0)) @@ -83,6 +63,9 @@ local.get $1 i32.add ) + (func $start:function-call~fn2|4 (param $0 i32) (result i32) + i32.const 1 + ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -92,13 +75,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1440 - call $~lib/rt/itcms/__visit - i32.const 1248 + i32.const 1472 call $~lib/rt/itcms/__visit - i32.const 2304 - call $~lib/rt/itcms/__visit - i32.const 3360 + i32.const 1280 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -119,7 +98,7 @@ i32.ne if i32.const 0 - i32.const 1312 + i32.const 1344 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -167,7 +146,7 @@ i32.eqz if i32.const 0 - i32.const 1312 + i32.const 1344 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -176,7 +155,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$128 + block $__inlined_func$~lib/rt/itcms/Object#unlink$116 local.get $1 i32.load offset=4 i32.const -4 @@ -188,19 +167,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36540 + i32.const 34572 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1312 + i32.const 1344 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$128 + br $__inlined_func$~lib/rt/itcms/Object#unlink$116 end local.get $1 i32.load offset=8 @@ -208,7 +187,7 @@ i32.eqz if i32.const 0 - i32.const 1312 + i32.const 1344 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -237,13 +216,13 @@ i32.const 1 else local.get $0 - i32.const 3728 + i32.const 1760 i32.load i32.gt_u if - i32.const 1440 - i32.const 1504 - i32.const 21 + i32.const 1472 + i32.const 1536 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -251,7 +230,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3732 + i32.const 1764 i32.add i32.load i32.const 32 @@ -303,7 +282,7 @@ i32.eqz if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -317,7 +296,7 @@ i32.lt_u if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -363,7 +342,7 @@ i32.eqz if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -446,7 +425,7 @@ i32.eqz if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -460,7 +439,7 @@ i32.eqz if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -521,7 +500,7 @@ i32.eqz if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -554,7 +533,7 @@ i32.lt_u if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -569,7 +548,7 @@ i32.ne if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -620,7 +599,7 @@ i32.eqz if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -692,7 +671,7 @@ i64.lt_u if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -717,7 +696,7 @@ i32.gt_u if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -744,7 +723,7 @@ i32.gt_u if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -816,10 +795,10 @@ if unreachable end - i32.const 36544 + i32.const 34576 i32.const 0 i32.store - i32.const 38112 + i32.const 36144 i32.const 0 i32.store loop $for-loop|0 @@ -830,7 +809,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36544 + i32.const 34576 i32.add i32.const 0 i32.store offset=4 @@ -848,7 +827,7 @@ i32.add i32.const 2 i32.shl - i32.const 36544 + i32.const 34576 i32.add i32.const 0 i32.store offset=96 @@ -866,14 +845,14 @@ br $for-loop|0 end end - i32.const 36544 - i32.const 38116 + i32.const 34576 + i32.const 36148 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36544 + i32.const 34576 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -958,7 +937,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36540 + i32.const 34572 i32.lt_u if local.get $0 @@ -1047,14 +1026,14 @@ i32.ne if i32.const 0 - i32.const 1312 + i32.const 1344 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36540 + i32.const 34572 i32.lt_u if local.get $0 @@ -1077,7 +1056,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36540 + i32.const 34572 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1106,7 +1085,7 @@ end if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1136,85 +1115,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1584 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1222,11 +1134,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1242,7 +1150,7 @@ i32.eqz if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1264,35 +1172,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 1248 - i32.const 1312 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1302,9 +1198,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1327,86 +1223,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1248 - i32.const 1584 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1422,8 +1263,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1431,136 +1272,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1584 + i32.const 1616 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1584 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1568,231 +1392,30 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 + ) + (func $function-call/Foo#fnVoid (param $0 i32) ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) + (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 3 + ) + (func $~start + (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3772 - i32.lt_s - if - i32.const 36560 - i32.const 36608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1872 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1884 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1884 - 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 1884 - 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 1884 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $start:function-call~fn2|4 (param $0 i32) (result i32) - i32.const 1 - ) - (func $function-call/Foo#fnVoid (param $0 i32) - ) - (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - i32.const 3 - ) - (func $~start - (local $0 i32) - (local $1 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 3772 + i32.const 1804 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1804,48 +1427,16 @@ i32.const 1088 i32.load call_indirect (type $0) - memory.size - i32.const 16 - i32.shl - i32.const 36540 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/pinSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/toSpace - i32.const 1540 - i32.const 1536 - i32.store - i32.const 1544 - i32.const 1536 - i32.store - i32.const 1536 - global.set $~lib/rt/itcms/fromSpace i32.const 1 i32.const 2 i32.const 1120 i32.load - call_indirect (type $1) + call_indirect (type $3) i32.const 3 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -1853,37 +1444,68 @@ end i32.const 2 i32.const 3 - i32.const 3584 + i32.const 1216 i32.load - call_indirect (type $1) + call_indirect (type $3) i32.const 5 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 15 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1 - i32.const 3616 + i32.const 1248 i32.load - call_indirect (type $3) + call_indirect (type $1) drop + memory.size + i32.const 16 + i32.shl + i32.const 34572 + 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 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 3772 + i32.const 1804 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 @@ -1897,7 +1519,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3772 + i32.const 1804 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1908,7 +1530,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1930,13 +1551,13 @@ local.tee $0 i32.store local.get $0 - i32.const 3648 + i32.const 1680 i32.load call_indirect (type $2) i32.const 1 - i32.const 3680 + i32.const 1712 i32.load - call_indirect (type $3) + call_indirect (type $1) drop global.get $~lib/memory/__stack_pointer global.get $function-call/foo @@ -1945,14 +1566,14 @@ local.get $0 i32.const 1 i32.const 2 - i32.const 3712 + i32.const 1744 i32.load - call_indirect (type $5) + call_indirect (type $6) i32.const 3 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -1964,212 +1585,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36560 - i32.const 36608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3772 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3772 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$134 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1216 - local.set $0 - br $__inlined_func$~lib/string/String#concat$134 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36560 - i32.const 36608 + i32.const 34592 + i32.const 34640 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3772 + i32.const 1804 i32.lt_s if - i32.const 36560 - i32.const 36608 + i32.const 34592 + i32.const 34640 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1152 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1184 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1648 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1648 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3456 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -2205,11 +1661,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3772 + i32.const 1804 i32.lt_s if - i32.const 36560 - i32.const 36608 + i32.const 34592 + i32.const 34640 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index 2d5ce00624..424bcded02 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -6,16 +6,16 @@ (type $4 (func)) (type $5 (func (param i32))) (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $function-expression/f1 (mut i32) (i32.const 32)) (global $~argumentsLength (mut i32) (i32.const 0)) - (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_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $function-expression/f2 (mut i32) (i32.const 128)) + (global $function-expression/f3 (mut i32) (i32.const 160)) + (global $function-expression/f4 (mut i32) (i32.const 192)) + (global $function-expression/globalFunc (mut i32) (i32.const 480)) (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)) @@ -24,59 +24,48 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $function-expression/f2 (mut i32) (i32.const 2496)) - (global $function-expression/f3 (mut i32) (i32.const 2528)) - (global $function-expression/f4 (mut i32) (i32.const 2560)) - (global $function-expression/globalFunc (mut i32) (i32.const 2848)) - (global $~lib/rt/__rtti_base i32 (i32.const 3056)) - (global $~lib/memory/__data_end i32 (i32.const 3100)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35868)) - (global $~lib/memory/__heap_base i32 (i32.const 35868)) + (global $~lib/rt/__rtti_base i32 (i32.const 1088)) + (global $~lib/memory/__data_end i32 (i32.const 1132)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33900)) + (global $~lib/memory/__heap_base i32 (i32.const 33900)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s\00") - (data $21 (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2764) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2796) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2828) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") - (data $38 (i32.const 3020) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") - (data $39 (i32.const 3056) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s\00") + (data $2 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 268) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 300) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 364) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 396) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 428) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 460) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 492) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 556) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 620) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 688) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 720) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 748) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $22 (i32.const 864) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 892) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $24 (i32.const 956) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 988) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1020) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data $28 (i32.const 1088) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 20 20 funcref) (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|1 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $function-expression/testOmittedReturn1~anonymous|0 $function-expression/testOmittedReturn2~anonymous|0 $function-expression/testOmittedReturn3~anonymous|0 $function-expression/testNullable~anonymous|0 $start:function-expression~anonymous|7~anonymous|0 $start:function-expression~anonymous|7 $function-expression/testLocal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testField~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $function-expression/semanticallyAnonymous~fnDecl $function-expression/semanticallyAnonymous~fnDecl|0) (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) @@ -86,19 +75,170 @@ local.get $a return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 + (func $start:function-expression~anonymous|1 (param $a i32) (result i32) + local.get $a + return ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 + (func $start:function-expression~someName|2 + ) + (func $start:function-expression~anonymous|3 (result i32) + i32.const 1 + ) + (func $start:function-expression~anonymous|4 (param $a i32) (param $b i32) (result i32) + local.get $a + local.get $b + i32.add + ) + (func $function-expression/testOmitted (param $fn i32) (result i32) + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + local.get $fn + i32.load + call_indirect (type $2) + return + ) + (func $start:function-expression~anonymous|5 (param $a i32) (param $$1 i32) (result i32) + local.get $a + ) + (func $start:function-expression~anonymous|6 (param $$0 i32) (param $$1 i32) (result i32) + i32.const 42 + ) + (func $function-expression/testOmittedReturn1~anonymous|0 (param $a i32) (param $b i32) (result i32) + local.get $a + local.get $b + i32.add + ) + (func $function-expression/testOmittedReturn1 (result i32) + i32.const 320 + return + ) + (func $function-expression/testOmittedReturn2~anonymous|0 (param $a i32) (param $$1 i32) (result i32) + local.get $a + ) + (func $function-expression/testOmittedReturn2 (result i32) + i32.const 352 + return + ) + (func $function-expression/testOmittedReturn3~anonymous|0 (param $$0 i32) (param $$1 i32) (result i32) + i32.const 42 + ) + (func $function-expression/testOmittedReturn3 (result i32) + i32.const 384 + return + ) + (func $function-expression/testNullable~anonymous|0 (result i32) + i32.const 1 + ) + (func $function-expression/testNullable (param $b i32) (result i32) + local.get $b + if + i32.const 416 + return + else + i32.const 0 + return + end + unreachable + ) + (func $start:function-expression~anonymous|7~anonymous|0 (param $x i32) (result i32) + i32.const 24 + local.get $x + i32.add + return + ) + (func $function-expression/testGlobal + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - call $~lib/rt/common/OBJECT#get:rtSize + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 - i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + global.get $function-expression/globalFunc + i32.load + call_indirect (type $3) + local.tee $0 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load + call_indirect (type $0) + i32.const 25 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $function-expression/testLocal~anonymous|0~anonymous|0 (param $x i32) (result i32) + i32.const 24 + local.get $x + i32.add return ) + (func $function-expression/testLocal + (local $localFunc i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 544 + local.tee $localFunc + i32.store + i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength + local.get $localFunc + i32.load + call_indirect (type $3) + local.tee $1 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $0) + i32.const 25 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -163,7 +303,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 640 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -233,7 +373,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 640 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -250,7 +390,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 640 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -280,9 +420,9 @@ i32.load i32.gt_u if - i32.const 352 - i32.const 416 - i32.const 21 + i32.const 768 + i32.const 832 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -349,7 +489,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 224 + i32.const 640 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -501,7 +641,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -521,7 +661,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -584,7 +724,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -737,7 +877,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -754,7 +894,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -843,7 +983,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -886,7 +1026,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -904,7 +1044,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -972,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1089,7 +1229,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1135,7 +1275,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1167,7 +1307,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1411,7 +1551,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1631,7 +1771,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 640 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1742,8 +1882,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 160 - i32.const 496 + i32.const 576 + i32.const 912 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1845,7 +1985,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1916,7 +2056,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2073,7 +2213,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2188,7 +2328,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2208,7 +2348,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 912 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2256,8 +2396,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 160 - i32.const 224 + i32.const 576 + i32.const 640 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2302,651 +2442,71 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u + (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) + (local $child i32) + (local $parent i32) + (local $parentColor i32) + local.get $childPtr + i32.eqz if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end + return + end + i32.const 1 + drop + local.get $parentPtr + i32.eqz + if + i32.const 0 + i32.const 640 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u + end + local.get $childPtr + i32.const 20 + i32.sub + local.set $child + local.get $child + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $parentPtr + i32.const 20 + i32.sub + local.set $parent + local.get $parent + call $~lib/rt/itcms/Object#get:color + local.set $parentColor + local.get $parentColor + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return + local.get $expectMultiple + if + local.get $parent + call $~lib/rt/itcms/Object#makeGray + else + local.get $child + call $~lib/rt/itcms/Object#makeGray + end else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $start:function-expression~anonymous|1 (param $a i32) (result i32) - local.get $a - return - ) - (func $start:function-expression~someName|2 - ) - (func $start:function-expression~anonymous|3 (result i32) - i32.const 1 - ) - (func $start:function-expression~anonymous|4 (param $a i32) (param $b i32) (result i32) - local.get $a - local.get $b - i32.add - ) - (func $function-expression/testOmitted (param $fn i32) (result i32) - i32.const 1 - i32.const 2 - i32.const 2 - global.set $~argumentsLength - local.get $fn - i32.load - call_indirect (type $2) - return - ) - (func $start:function-expression~anonymous|5 (param $a i32) (param $$1 i32) (result i32) - local.get $a - ) - (func $start:function-expression~anonymous|6 (param $$0 i32) (param $$1 i32) (result i32) - i32.const 42 - ) - (func $function-expression/testOmittedReturn1~anonymous|0 (param $a i32) (param $b i32) (result i32) - local.get $a - local.get $b - i32.add - ) - (func $function-expression/testOmittedReturn1 (result i32) - i32.const 2688 - return - ) - (func $function-expression/testOmittedReturn2~anonymous|0 (param $a i32) (param $$1 i32) (result i32) - local.get $a - ) - (func $function-expression/testOmittedReturn2 (result i32) - i32.const 2720 - return - ) - (func $function-expression/testOmittedReturn3~anonymous|0 (param $$0 i32) (param $$1 i32) (result i32) - i32.const 42 - ) - (func $function-expression/testOmittedReturn3 (result i32) - i32.const 2752 - return - ) - (func $function-expression/testNullable~anonymous|0 (result i32) - i32.const 1 - ) - (func $function-expression/testNullable (param $b i32) (result i32) - local.get $b - if - i32.const 2784 - return - else - i32.const 0 - return - end - unreachable - ) - (func $start:function-expression~anonymous|7~anonymous|0 (param $x i32) (result i32) - i32.const 24 - local.get $x - i32.add - return - ) - (func $function-expression/testGlobal - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - global.set $~argumentsLength - global.get $function-expression/globalFunc - i32.load - call_indirect (type $3) - local.tee $0 - i32.store - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.load - call_indirect (type $0) - i32.const 25 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2432 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $function-expression/testLocal~anonymous|0~anonymous|0 (param $x i32) (result i32) - i32.const 24 - local.get $x - i32.add - return - ) - (func $function-expression/testLocal - (local $localFunc i32) - (local $1 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 - global.get $~lib/memory/__stack_pointer - i32.const 2912 - local.tee $localFunc - i32.store - i32.const 1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - global.set $~argumentsLength - local.get $localFunc - i32.load - call_indirect (type $3) - local.tee $1 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $0) - i32.const 25 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2432 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) - (local $child i32) - (local $parent i32) - (local $parentColor i32) - local.get $childPtr - i32.eqz - if - return - end - i32.const 1 - drop - local.get $parentPtr - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $childPtr - i32.const 20 - i32.sub - local.set $child - local.get $child - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $parentPtr - i32.const 20 - i32.sub - local.set $parent - local.get $parent - call $~lib/rt/itcms/Object#get:color - local.set $parentColor - local.get $parentColor - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $expectMultiple - if - local.get $parent - call $~lib/rt/itcms/Object#makeGray - else - local.get $child - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $parentColor - 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 $child - call $~lib/rt/itcms/Object#makeGray - end + local.get $parentColor + 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 $child + call $~lib/rt/itcms/Object#makeGray + end end end ) @@ -2988,18 +2548,18 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3008 + i32.const 1040 local.tee $fnDecl i32.store local.get $fnDecl drop local.get $fnDecl - i32.const 3040 + i32.const 1072 i32.ne i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 92 i32.const 3 call $~lib/builtins/abort @@ -3018,20 +2578,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35888 - i32.const 35936 + i32.const 33920 + i32.const 33968 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3040,196 +2596,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $function-expression/FieldClass#constructor (param $this i32) (param $fieldFunc i32) (result i32) (local $2 i32) @@ -3292,7 +2679,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 2976 + i32.const 1008 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -3326,7 +2713,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -3347,23 +2734,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - 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 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 448 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 1 i32.const 1 global.set $~argumentsLength @@ -3375,7 +2745,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 4 i32.const 1 call $~lib/builtins/abort @@ -3392,7 +2762,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -3413,13 +2783,13 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2592 + i32.const 224 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3431,13 +2801,13 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2624 + i32.const 256 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3449,13 +2819,13 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2656 + i32.const 288 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3467,7 +2837,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -3485,7 +2855,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -3503,7 +2873,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -3521,7 +2891,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -3534,7 +2904,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 45 i32.const 1 call $~lib/builtins/abort @@ -3542,6 +2912,23 @@ end call $function-expression/testGlobal call $function-expression/testLocal + 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 688 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 720 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 864 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace call $function-expression/testField call $function-expression/semanticallyAnonymous global.get $~lib/memory/__stack_pointer @@ -3549,153 +2936,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $start:function-expression~anonymous|7 (result i32) (local $myFunc i32) (local $1 i32) @@ -3708,7 +2948,7 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 448 local.tee $myFunc i32.store local.get $myFunc @@ -3732,7 +2972,7 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 512 local.tee $myFunc i32.store local.get $myFunc @@ -3756,7 +2996,7 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2944 + i32.const 976 local.tee $myFunc i32.store local.get $myFunc @@ -3770,16 +3010,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 160 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1216 + i32.const 768 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2272 + i32.const 576 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3936,6 +3170,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3960,6 +3198,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3984,6 +3226,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -4008,6 +3254,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -4032,6 +3282,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index 60fb94df81..05c90b6cbd 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -1,12 +1,13 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (result i32))) + (type $0 (func (result i32))) + (type $1 (func (param i32 i32) (result i32))) (type $2 (func (param i32) (result i32))) (type $3 (func)) (type $4 (func (param i32))) - (type $5 (func (param i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32))) + (type $7 (func (param i32 i32 i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,80 +18,59 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36892)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34924)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) "<") - (data $20.1 (i32.const 3448) "\02\00\00\00,\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s") - (data $21 (i32.const 3500) "\1c") - (data $21.1 (i32.const 3512) "\04\00\00\00\08\00\00\00\02") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\05\00\00\00\08\00\00\00\03") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\06\00\00\00\08\00\00\00\04") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\07\00\00\00\08\00\00\00\05") - (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\07\00\00\00\08\00\00\00\06") - (data $26 (i32.const 3660) "\1c") - (data $26.1 (i32.const 3672) "\07\00\00\00\08\00\00\00\07") - (data $27 (i32.const 3692) "\1c") - (data $27.1 (i32.const 3704) "\07\00\00\00\08\00\00\00\08") - (data $28 (i32.const 3724) "\1c") - (data $28.1 (i32.const 3736) "\07\00\00\00\08\00\00\00\t") - (data $29 (i32.const 3756) "\1c") - (data $29.1 (i32.const 3768) "\07\00\00\00\08\00\00\00\n") - (data $30 (i32.const 3788) "\1c") - (data $30.1 (i32.const 3800) "\06\00\00\00\08\00\00\00\0b") - (data $31 (i32.const 3820) "\1c") - (data $31.1 (i32.const 3832) "\04\00\00\00\08\00\00\00\0c") - (data $32 (i32.const 3852) "\1c") - (data $32.1 (i32.const 3864) "\08\00\00\00\08\00\00\00\r") - (data $33 (i32.const 3884) "\1c") - (data $33.1 (i32.const 3896) "\04\00\00\00\08\00\00\00\0e") - (data $34 (i32.const 3916) "\1c") - (data $34.1 (i32.const 3928) "\08\00\00\00\08\00\00\00\0f") - (data $35 (i32.const 3948) "\1c") - (data $35.1 (i32.const 3960) "\04\00\00\00\08\00\00\00\10") - (data $36 (i32.const 3980) "\1c") - (data $36.1 (i32.const 3992) "\08\00\00\00\08\00\00\00\11") - (data $37 (i32.const 4012) "\1c") - (data $37.1 (i32.const 4024) "\04\00\00\00\08\00\00\00\12") - (data $38 (i32.const 4044) "\1c") - (data $38.1 (i32.const 4056) "\04\00\00\00\08\00\00\00\13") - (data $39 (i32.const 4080) "\n\00\00\00 \00\00\00 \00\00\00 ") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\00\00\00,\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s") + (data $2 (i32.const 1132) "\1c") + (data $2.1 (i32.const 1144) "\04\00\00\00\08\00\00\00\02") + (data $3 (i32.const 1164) "\1c") + (data $3.1 (i32.const 1176) "\05\00\00\00\08\00\00\00\03") + (data $4 (i32.const 1196) "\1c") + (data $4.1 (i32.const 1208) "\06\00\00\00\08\00\00\00\04") + (data $5 (i32.const 1228) "\1c") + (data $5.1 (i32.const 1240) "\07\00\00\00\08\00\00\00\05") + (data $6 (i32.const 1260) "\1c") + (data $6.1 (i32.const 1272) "\07\00\00\00\08\00\00\00\06") + (data $7 (i32.const 1292) "\1c") + (data $7.1 (i32.const 1304) "\07\00\00\00\08\00\00\00\07") + (data $8 (i32.const 1324) "\1c") + (data $8.1 (i32.const 1336) "\07\00\00\00\08\00\00\00\08") + (data $9 (i32.const 1356) "\1c") + (data $9.1 (i32.const 1368) "\07\00\00\00\08\00\00\00\t") + (data $10 (i32.const 1388) "\1c") + (data $10.1 (i32.const 1400) "\07\00\00\00\08\00\00\00\n") + (data $11 (i32.const 1420) "\1c") + (data $11.1 (i32.const 1432) "\06\00\00\00\08\00\00\00\0b") + (data $12 (i32.const 1452) "\1c") + (data $12.1 (i32.const 1464) "\04\00\00\00\08\00\00\00\0c") + (data $13 (i32.const 1484) "\1c") + (data $13.1 (i32.const 1496) "\08\00\00\00\08\00\00\00\r") + (data $14 (i32.const 1516) "\1c") + (data $14.1 (i32.const 1528) "\04\00\00\00\08\00\00\00\0e") + (data $15 (i32.const 1548) "\1c") + (data $15.1 (i32.const 1560) "\08\00\00\00\08\00\00\00\0f") + (data $16 (i32.const 1580) "<") + (data $16.1 (i32.const 1592) "\02\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 $17 (i32.const 1644) "<") + (data $17.1 (i32.const 1656) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $20 (i32.const 1772) "<") + (data $20.1 (i32.const 1784) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $21 (i32.const 1836) ",") + (data $21.1 (i32.const 1848) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $23 (i32.const 1916) "<") + (data $23.1 (i32.const 1928) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $24 (i32.const 1980) "\1c") + (data $24.1 (i32.const 1992) "\04\00\00\00\08\00\00\00\10") + (data $25 (i32.const 2012) "\1c") + (data $25.1 (i32.const 2024) "\08\00\00\00\08\00\00\00\11") + (data $26 (i32.const 2044) "\1c") + (data $26.1 (i32.const 2056) "\04\00\00\00\08\00\00\00\12") + (data $27 (i32.const 2076) "\1c") + (data $27.1 (i32.const 2088) "\04\00\00\00\08\00\00\00\13") + (data $28 (i32.const 2112) "\n\00\00\00 \00\00\00 \00\00\00 ") (table $0 20 20 funcref) (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|3 $start:function-expression~anonymous|7~anonymous|0 $start:function-expression~anonymous|7 $start:function-expression~anonymous|7~anonymous|0 $function-expression/testLocal~anonymous|0 $start:function-expression~anonymous|7~anonymous|0 $function-expression/testField~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~anonymous|0) (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) @@ -99,16 +79,31 @@ (func $start:function-expression~anonymous|0 (param $0 i32) (result i32) local.get $0 ) + (func $start:function-expression~someName|2 + ) + (func $start:function-expression~anonymous|3 (result i32) + i32.const 1 + ) + (func $start:function-expression~anonymous|4 (param $0 i32) (param $1 i32) (result i32) + i32.const 3 + ) + (func $start:function-expression~anonymous|5 (param $0 i32) (param $1 i32) (result i32) + i32.const 1 + ) + (func $start:function-expression~anonymous|6 (param $0 i32) (param $1 i32) (result i32) + i32.const 42 + ) + (func $start:function-expression~anonymous|7~anonymous|0 (param $0 i32) (result i32) + local.get $0 + i32.const 24 + i32.add + ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 1792 call $~lib/rt/itcms/__visit - i32.const 2240 - call $~lib/rt/itcms/__visit - i32.const 3296 + i32.const 1600 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -129,7 +124,7 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1664 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -162,7 +157,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1664 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -171,7 +166,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$146 + block $__inlined_func$~lib/rt/itcms/Object#unlink$134 local.get $0 i32.load offset=4 i32.const -4 @@ -183,19 +178,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36892 + i32.const 34924 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1664 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$146 + br $__inlined_func$~lib/rt/itcms/Object#unlink$134 end local.get $0 i32.load offset=8 @@ -203,7 +198,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1664 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -232,13 +227,13 @@ i32.const 1 else local.get $1 - i32.const 4080 + i32.const 2112 i32.load i32.gt_u if - i32.const 1376 - i32.const 1440 - i32.const 21 + i32.const 1792 + i32.const 1856 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -246,7 +241,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 4084 + i32.const 2116 i32.add i32.load i32.const 32 @@ -317,7 +312,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -331,7 +326,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -377,7 +372,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -460,7 +455,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -474,7 +469,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -535,7 +530,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -568,7 +563,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -583,7 +578,7 @@ i32.ne if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -634,7 +629,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -706,7 +701,7 @@ i64.lt_u if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -731,7 +726,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -758,7 +753,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -830,10 +825,10 @@ if unreachable end - i32.const 36896 + i32.const 34928 i32.const 0 i32.store - i32.const 38464 + i32.const 36496 i32.const 0 i32.store loop $for-loop|0 @@ -844,7 +839,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36896 + i32.const 34928 i32.add i32.const 0 i32.store offset=4 @@ -862,7 +857,7 @@ i32.add i32.const 2 i32.shl - i32.const 36896 + i32.const 34928 i32.add i32.const 0 i32.store offset=96 @@ -880,14 +875,14 @@ br $for-loop|0 end end - i32.const 36896 - i32.const 38468 + i32.const 34928 + i32.const 36500 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36896 + i32.const 34928 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -972,7 +967,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36892 + i32.const 34924 i32.lt_u if local.get $0 @@ -1061,14 +1056,14 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1664 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36892 + i32.const 34924 i32.lt_u if local.get $0 @@ -1091,7 +1086,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36892 + i32.const 34924 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1120,7 +1115,7 @@ end if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1150,85 +1145,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1520 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1236,11 +1164,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1256,7 +1180,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1278,35 +1202,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1184 - i32.const 1248 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$71 i32.const 2048 - local.set $2 + local.set $0 loop $do-loop|0 - local.get $2 + local.get $0 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $0 global.get $~lib/rt/itcms/state i32.eqz if @@ -1316,9 +1228,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$71 end - local.get $2 + local.get $0 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1341,94 +1253,39 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1184 - i32.const 1520 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $0 i32.const 4 - local.get $4 + local.get $1 i32.load offset=1568 - local.get $2 + local.get $0 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $0 local.get $2 - local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1436,8 +1293,8 @@ unreachable end end - local.get $4 - local.get $2 + local.get $1 + local.get $0 i32.const 16 i32.shl memory.size @@ -1445,136 +1302,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $0 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1936 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 + local.get $0 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $0 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1520 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $2 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub local.tee $3 i32.const 16 i32.ge_u if + local.get $0 local.get $2 - local.get $5 - local.get $6 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $0 + i32.const 32 i32.add - local.tee $5 + local.tee $2 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $0 local.get $2 - local.get $6 i32.const -2 i32.and i32.store - local.get $2 + local.get $0 i32.const 4 i32.add - local.get $2 + local.get $0 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and i32.store end - local.get $2 - local.get $1 + local.get $0 + i32.const 9 i32.store offset=12 - local.get $2 local.get $0 + i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + local.get $0 local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $0 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.load i32.const -4 i32.and @@ -1582,31 +1422,25 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.const 20 i32.add - local.tee $1 + local.tee $0 i32.const 0 + i32.store align=1 local.get $0 - memory.fill - local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $1 + (func $function-expression/semanticallyAnonymous 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 4124 + i32.const 2156 i32.lt_s if - i32.const 36912 - i32.const 36960 + i32.const 34944 + i32.const 34992 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1615,220 +1449,8 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $start:function-expression~someName|2 - ) - (func $start:function-expression~anonymous|3 (result i32) - i32.const 1 - ) - (func $start:function-expression~anonymous|4 (param $0 i32) (param $1 i32) (result i32) - i32.const 3 - ) - (func $start:function-expression~anonymous|5 (param $0 i32) (param $1 i32) (result i32) - i32.const 1 - ) - (func $start:function-expression~anonymous|6 (param $0 i32) (param $1 i32) (result i32) - i32.const 42 - ) - (func $start:function-expression~anonymous|7~anonymous|0 (param $0 i32) (result i32) - local.get $0 - i32.const 24 - i32.add - ) - (func $function-expression/semanticallyAnonymous 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 4124 - i32.lt_s - if - i32.const 36912 - i32.const 36960 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4032 + i32.const 2064 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1838,205 +1460,40 @@ (func $~start call $start:function-expression ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 4124 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4124 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$151 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$151 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36912 - i32.const 36960 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4124 + i32.const 2156 i32.lt_s if - i32.const 36912 - i32.const 36960 + i32.const 34944 + i32.const 34992 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $start:function-expression (local $0 i32) @@ -2048,44 +1505,12 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4124 + i32.const 2156 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - memory.size - i32.const 16 - i32.shl - i32.const 36892 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/fromSpace i32.const 1 i32.const 1056 i32.load @@ -2094,91 +1519,91 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 4 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 2 - i32.const 3520 + i32.const 1152 i32.load call_indirect (type $2) i32.const 2 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 9 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3552 + i32.const 1184 i32.load call_indirect (type $3) - i32.const 3584 + i32.const 1216 i32.load - call_indirect (type $1) + call_indirect (type $0) i32.const 1 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3616 + i32.const 1248 i32.store i32.const 1 i32.const 2 - i32.const 3616 + i32.const 1248 i32.load - call_indirect (type $0) + call_indirect (type $1) i32.const 3 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3648 + i32.const 1280 i32.store i32.const 1 i32.const 2 - i32.const 3648 + i32.const 1280 i32.load - call_indirect (type $0) + call_indirect (type $1) i32.const 1 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3680 + i32.const 1312 i32.store i32.const 1 i32.const 2 - i32.const 3680 + i32.const 1312 i32.load - call_indirect (type $0) + call_indirect (type $1) i32.const 42 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -2186,14 +1611,14 @@ end i32.const 1 i32.const 2 - i32.const 3712 + i32.const 1344 i32.load - call_indirect (type $0) + call_indirect (type $1) i32.const 3 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -2201,14 +1626,14 @@ end i32.const 1 i32.const 2 - i32.const 3744 + i32.const 1376 i32.load - call_indirect (type $0) + call_indirect (type $1) i32.const 1 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -2216,14 +1641,14 @@ end i32.const 1 i32.const 2 - i32.const 3776 + i32.const 1408 i32.load - call_indirect (type $0) + call_indirect (type $1) i32.const 42 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -2234,16 +1659,16 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4124 + i32.const 2156 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3872 + i32.const 1504 i32.load - call_indirect (type $1) + call_indirect (type $0) local.tee $0 i32.store i32.const 1 @@ -2254,7 +1679,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -2269,19 +1694,19 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4124 + i32.const 2156 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 3936 + i32.const 1568 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3936 + i32.const 1568 i32.load - call_indirect (type $1) + call_indirect (type $0) local.tee $0 i32.store offset=4 i32.const 1 @@ -2292,7 +1717,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -2302,12 +1727,44 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 34924 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1716 + i32.const 1712 + i32.store + i32.const 1720 + i32.const 1712 + i32.store + i32.const 1712 + global.set $~lib/rt/itcms/pinSpace + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + i32.store + i32.const 1744 + global.set $~lib/rt/itcms/toSpace + i32.const 1892 + i32.const 1888 + i32.store + i32.const 1896 + i32.const 1888 + i32.store + i32.const 1888 + global.set $~lib/rt/itcms/fromSpace 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 4124 + i32.const 2156 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2318,14 +1775,14 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4000 + i32.const 2032 i32.store 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 4124 + i32.const 2156 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2335,8 +1792,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 9 call $~lib/rt/itcms/__new local.tee $1 i32.store @@ -2344,23 +1799,23 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4000 + i32.const 2032 i32.store offset=8 local.get $1 - i32.const 4000 + i32.const 2032 i32.store local.get $1 i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1664 i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end global.get $~lib/rt/itcms/white - i32.const 3984 + i32.const 2016 i32.load i32.const 3 i32.and @@ -2377,7 +1832,7 @@ i32.eqz i32.eq if - i32.const 3980 + i32.const 2012 call $~lib/rt/itcms/Object#makeGray else global.get $~lib/rt/itcms/state @@ -2388,7 +1843,7 @@ i32.eq i32.and if - i32.const 3980 + i32.const 2012 call $~lib/rt/itcms/Object#makeGray end end @@ -2406,7 +1861,7 @@ local.get $1 i32.load i32.load - call_indirect (type $1) + call_indirect (type $0) local.tee $0 i32.store offset=8 i32.const 1 @@ -2417,7 +1872,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -2434,8 +1889,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36912 - i32.const 36960 + i32.const 34944 + i32.const 34992 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2447,11 +1902,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4124 + i32.const 2156 i32.lt_s if - i32.const 36912 - i32.const 36960 + i32.const 34944 + i32.const 34992 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2461,13 +1916,13 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3840 + i32.const 1472 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 3840 + i32.const 1472 ) (func $function-expression/testLocal~anonymous|0 (result i32) global.get $~lib/memory/__stack_pointer @@ -2475,11 +1930,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4124 + i32.const 2156 i32.lt_s if - i32.const 36912 - i32.const 36960 + i32.const 34944 + i32.const 34992 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2489,13 +1944,13 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 1536 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 1536 ) (func $function-expression/testField~anonymous|0 (result i32) global.get $~lib/memory/__stack_pointer @@ -2503,11 +1958,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4124 + i32.const 2156 i32.lt_s if - i32.const 36912 - i32.const 36960 + i32.const 34944 + i32.const 34992 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2517,13 +1972,13 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3968 + i32.const 2000 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 3968 + i32.const 2000 ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -2562,11 +2017,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4124 + i32.const 2156 i32.lt_s if - i32.const 36912 - i32.const 36960 + i32.const 34944 + i32.const 34992 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/function-types.debug.wat b/tests/compiler/function-types.debug.wat index 4a59abf8cd..ed8e7a81fd 100644 --- a/tests/compiler/function-types.debug.wat +++ b/tests/compiler/function-types.debug.wat @@ -1,67 +1,25 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i32) (result i32))) - (type $8 (func (param i64 i64) (result i64))) - (type $9 (func (param f64 f64) (result f64))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (param i32 i64 i32))) - (type $12 (func (param i64 i32) (result i32))) - (type $13 (func (param i32 i64 i32 i32))) - (type $14 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32) (result i32))) + (type $1 (func (result i32))) + (type $2 (func (param i32 i32 i32) (result i32))) + (type $3 (func)) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i64 i64) (result i64))) + (type $6 (func (param f64 f64) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $function-types/i32Adder (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $function-types/i64Adder (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2576)) - (global $~lib/memory/__data_end i32 (i32.const 2608)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35376)) - (global $~lib/memory/__heap_base i32 (i32.const 35376)) + (global $~lib/memory/__data_end i32 (i32.const 204)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32972)) + (global $~lib/memory/__heap_base i32 (i32.const 32972)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00t\00y\00p\00e\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2576) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00t\00y\00p\00e\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") (table $0 5 5 funcref) (elem $0 (i32.const 1) $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0 $function-types/addI32) (export "memory" (memory $0)) @@ -76,2638 +34,6 @@ i32.const 32 return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 352 - i32.const 416 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 224 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 224 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 160 - i32.const 496 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 160 - i32.const 224 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $function-types/makeAdder~anonymous|0 (param $a i64) (param $b i64) (result i64) local.get $a local.get $b @@ -2715,7 +41,7 @@ return ) (func $function-types/makeAdder (result i32) - i32.const 2496 + i32.const 128 return ) (func $function-types/makeAdder~anonymous|0 (param $a f64) (param $b f64) (result f64) @@ -2725,7 +51,7 @@ return ) (func $function-types/makeAdder (result i32) - i32.const 2528 + i32.const 160 return ) (func $function-types/doAddWithFn (param $a i32) (param $b i32) (param $fn i32) (result i32) @@ -2735,7 +61,7 @@ global.set $~argumentsLength local.get $fn i32.load - call_indirect (type $2) + call_indirect (type $0) return ) (func $function-types/doAdd (param $a i32) (param $b i32) (result i32) @@ -2745,7 +71,7 @@ global.set $~argumentsLength call $function-types/makeAdder i32.load - call_indirect (type $2) + call_indirect (type $0) return ) (func $function-types/addI32 (param $a i32) (param $b i32) (result i32) @@ -2761,7 +87,7 @@ global.set $~argumentsLength local.get $adder i32.load - call_indirect (type $2) + call_indirect (type $0) return ) (func $~start @@ -2772,20 +98,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35408 - i32.const 35456 + i32.const 32992 + i32.const 33040 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2794,196 +116,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $function-types/makeAndAdd@varargs (param $a i32) (param $b i32) (param $adder i32) (result i32) (local $3 i32) @@ -3038,36 +191,19 @@ i32.store call $function-types/makeAdder global.set $function-types/i32Adder - 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 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 448 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 1 i32.const 2 i32.const 2 global.set $~argumentsLength global.get $function-types/i32Adder i32.load - call_indirect (type $2) + call_indirect (type $0) i32.const 3 i32.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -3081,13 +217,13 @@ global.set $~argumentsLength global.get $function-types/i64Adder i32.load - call_indirect (type $8) + call_indirect (type $5) i64.const 30 i64.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -3099,13 +235,13 @@ global.set $~argumentsLength call $function-types/makeAdder i32.load - call_indirect (type $9) + call_indirect (type $6) f64.const 4 f64.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -3125,7 +261,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -3139,7 +275,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -3147,7 +283,7 @@ end i32.const 4 i32.const 5 - i32.const 2560 + i32.const 192 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3159,7 +295,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -3176,7 +312,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -3196,7 +332,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -3207,329 +343,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 160 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1216 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2272 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit - ) - (func $~lib/function/Function<%28i64%2Ci64%29=>i64>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28i64%2Ci64%29=>i64>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28i64%2Ci64%29=>i64>#__visit - ) - (func $~lib/function/Function<%28f64%2Cf64%29=>f64>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28f64%2Cf64%29=>f64>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Cf64%29=>f64>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/function/Function<%28f64%2Cf64%29=>f64> - block $~lib/function/Function<%28i64%2Ci64%29=>i64> - block $~lib/function/Function<%28i32%2Ci32%29=>i32> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28i64%2Ci64%29=>i64> $~lib/function/Function<%28f64%2Cf64%29=>f64> $invalid - end - return - 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/function/Function<%28i32%2Ci32%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i64%2Ci64%29=>i64>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Cf64%29=>f64>~visit - return - end - unreachable - ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (param $this i32) (param $cookie 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 $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/function/Function<%28i64%2Ci64%29=>i64>#__visit (param $this i32) (param $cookie 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 $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28i64%2Ci64%29=>i64>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/function/Function<%28f64%2Cf64%29=>f64>#__visit (param $this i32) (param $cookie 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 $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28f64%2Cf64%29=>f64>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/function-types.release.wat b/tests/compiler/function-types.release.wat index 71c4f32210..71978b8cb9 100644 --- a/tests/compiler/function-types.release.wat +++ b/tests/compiler/function-types.release.wat @@ -1,69 +1,24 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i64 i64) (result i64))) - (type $6 (func (param f64 f64) (result f64))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i32 i32 i32))) + (type $1 (func (param i64 i64) (result i64))) + (type $2 (func (param f64 f64) (result f64))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func)) + (type $5 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $function-types/i32Adder (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/memory/__stack_pointer (mut i32) (i32.const 36400)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33996)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) "<") - (data $20.1 (i32.const 3448) "\02\00\00\00\"\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00t\00y\00p\00e\00s\00.\00t\00s") - (data $21 (i32.const 3500) "\1c") - (data $21.1 (i32.const 3512) "\05\00\00\00\08\00\00\00\02") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\06\00\00\00\08\00\00\00\03") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\04\00\00\00\08\00\00\00\04") - (data $24 (i32.const 3600) "\07\00\00\00 \00\00\00 \00\00\00 ") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\00\00\00\"\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00t\00y\00p\00e\00s\00.\00t\00s") + (data $2 (i32.const 1132) "\1c") + (data $2.1 (i32.const 1144) "\05\00\00\00\08\00\00\00\02") + (data $3 (i32.const 1164) "\1c") + (data $3.1 (i32.const 1176) "\06\00\00\00\08\00\00\00\03") + (data $4 (i32.const 1196) "\1c") + (data $4.1 (i32.const 1208) "\04\00\00\00\08\00\00\00\04") (table $0 5 5 funcref) (elem $0 (i32.const 1) $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0 $function-types/makeAdder~anonymous|0) (export "memory" (memory $0)) @@ -73,1691 +28,6 @@ local.get $1 i32.add ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 2240 - call $~lib/rt/itcms/__visit - i32.const 3296 - call $~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 1248 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$138 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36400 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$138 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3600 - i32.load - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3604 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1520 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1520 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1520 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1520 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1520 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36400 - i32.const 0 - i32.store - i32.const 37968 - 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 36400 - 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 36400 - 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 36400 - i32.const 37972 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36400 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36400 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1248 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36400 - 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 - local.tee $0 - i32.const 36400 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1520 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1520 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1184 - i32.const 1248 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1184 - i32.const 1520 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1520 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3632 - i32.lt_s - if - i32.const 36432 - i32.const 36480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $function-types/makeAdder~anonymous|0 (param $0 i64) (param $1 i64) (result i64) i64.const 30 ) @@ -1772,7 +42,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3632 + i32.const 1228 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1780,38 +50,6 @@ i32.store i32.const 1056 global.set $function-types/i32Adder - memory.size - i32.const 16 - i32.shl - i32.const 36400 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/fromSpace i32.const 1 i32.const 2 i32.const 1056 @@ -1821,39 +59,36 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 11 - i32.const 1 call $~lib/builtins/abort unreachable end i64.const 10 i64.const 20 - i32.const 3520 + i32.const 1152 i32.load - call_indirect (type $5) + call_indirect (type $1) i64.const 30 i64.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 15 - i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.5 f64.const 2.5 - i32.const 3552 + i32.const 1184 i32.load - call_indirect (type $6) + call_indirect (type $2) f64.const 4 f64.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 17 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1870,9 +105,8 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 23 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1885,27 +119,25 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 29 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1216 i32.store i32.const 4 i32.const 5 - i32.const 3584 + i32.const 1216 i32.load call_indirect (type $0) i32.const 9 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 35 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1914,7 +146,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3632 + i32.const 1228 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1939,9 +171,8 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 41 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1957,9 +188,8 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 42 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1969,264 +199,43 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36432 - i32.const 36480 - i32.const 1 + i32.const 34016 + i32.const 34064 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3632 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3632 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$143 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$143 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36432 - i32.const 36480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3632 + i32.const 1228 i32.lt_s if - i32.const 36432 - i32.const 36480 - i32.const 1 + i32.const 34016 + i32.const 34064 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - end - 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 3632 - i32.lt_s - if - i32.const 36432 - i32.const 36480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 i32.store global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index 297584644a..b809367a53 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,470 +18,35 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2416)) - (global $~lib/memory/__data_end i32 (i32.const 2444)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35212)) - (global $~lib/memory/__heap_base i32 (i32.const 35212)) + (global $~lib/rt/__rtti_base i32 (i32.const 448)) + (global $~lib/memory/__data_end i32 (i32.const 476)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33244)) + (global $~lib/memory/__heap_base i32 (i32.const 33244)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2416) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 448) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $getter-call/C#get:x~anonymous|0) (export "test" (func $getter-call/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -551,7 +111,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -621,7 +181,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -638,7 +198,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -668,9 +228,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -737,7 +297,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -889,7 +449,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -909,7 +469,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -972,7 +532,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1125,7 +685,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1142,7 +702,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1231,7 +791,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1274,7 +834,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1292,7 +852,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1360,7 +920,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1477,7 +1037,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1523,7 +1083,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1555,7 +1115,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1799,7 +1359,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2019,7 +1579,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2130,8 +1690,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2233,7 +1793,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2304,7 +1864,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2461,7 +2021,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2576,7 +2136,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2596,7 +2156,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2644,8 +2204,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2694,7 +2254,7 @@ i32.const 42 ) (func $getter-call/C#get:x (param $this i32) (result i32) - i32.const 2400 + i32.const 432 return ) (func $~start @@ -2706,13 +2266,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace ) @@ -2721,20 +2281,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35232 - i32.const 35280 + i32.const 33264 + i32.const 33312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2743,196 +2299,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $getter-call/C#constructor (param $this i32) (result i32) (local $1 i32) @@ -2998,7 +2385,7 @@ local.get $1 call $getter-call/C#get:x i32.load - call_indirect (type $5) + call_indirect (type $4) local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3007,153 +2394,6 @@ local.get $1 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3184,16 +2424,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3265,6 +2499,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index deb64e2f5f..783083404e 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func (result i32))) (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,255 +17,32 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36236)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34268)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\05\00\00\00\08\00\00\00\01") - (data $20 (i32.const 3440) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "\1c") + (data $8.1 (i32.const 1448) "\05\00\00\00\08\00\00\00\01") + (data $9 (i32.const 1472) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (table $0 2 2 funcref) (elem $0 (i32.const 1) $getter-call/C#get:x~anonymous|0) (export "test" (func $getter-call/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3468 - i32.lt_s - if - i32.const 36256 - i32.const 36304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -286,7 +63,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -334,7 +111,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -343,7 +120,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$128 + block $__inlined_func$~lib/rt/itcms/Object#unlink$116 local.get $1 i32.load offset=4 i32.const -4 @@ -355,19 +132,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36236 + i32.const 34268 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$128 + br $__inlined_func$~lib/rt/itcms/Object#unlink$116 end local.get $1 i32.load offset=8 @@ -375,7 +152,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -404,13 +181,13 @@ i32.const 1 else local.get $0 - i32.const 3440 + i32.const 1472 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -418,7 +195,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3444 + i32.const 1476 i32.add i32.load i32.const 32 @@ -470,7 +247,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -484,7 +261,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -530,7 +307,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -613,7 +390,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -627,7 +404,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -688,7 +465,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -721,7 +498,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -736,7 +513,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -787,7 +564,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -859,7 +636,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -884,7 +661,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -911,7 +688,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -983,10 +760,10 @@ if unreachable end - i32.const 36240 + i32.const 34272 i32.const 0 i32.store - i32.const 37808 + i32.const 35840 i32.const 0 i32.store loop $for-loop|0 @@ -997,7 +774,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36240 + i32.const 34272 i32.add i32.const 0 i32.store offset=4 @@ -1015,7 +792,7 @@ i32.add i32.const 2 i32.shl - i32.const 36240 + i32.const 34272 i32.add i32.const 0 i32.store offset=96 @@ -1033,14 +810,14 @@ br $for-loop|0 end end - i32.const 36240 - i32.const 37812 + i32.const 34272 + i32.const 35844 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36240 + i32.const 34272 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1125,7 +902,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36236 + i32.const 34268 i32.lt_u if local.get $0 @@ -1214,14 +991,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36236 + i32.const 34268 i32.lt_u if local.get $0 @@ -1244,7 +1021,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36236 + i32.const 34268 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1273,7 +1050,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1303,85 +1080,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1389,11 +1099,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1409,7 +1115,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1431,35 +1137,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1469,9 +1163,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1494,86 +1188,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1589,8 +1228,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1598,136 +1237,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1735,14 +1357,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $getter-call/C#get:x~anonymous|0 (result i32) i32.const 42 @@ -1751,235 +1373,70 @@ memory.size i32.const 16 i32.shl - i32.const 36236 + i32.const 34268 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$133 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$133 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36256 - i32.const 36304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3468 + i32.const 1500 i32.lt_s if - i32.const 36256 - i32.const 36304 + i32.const 34288 + i32.const 34336 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $getter-call/test (result i32) (local $0 i32) @@ -1991,7 +1448,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3468 + i32.const 1500 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2003,14 +1460,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3468 + i32.const 1500 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2024,7 +1480,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3468 + i32.const 1500 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2035,7 +1491,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2055,7 +1510,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 3424 + i32.const 1456 i32.load call_indirect (type $0) drop @@ -2066,8 +1521,8 @@ i32.const 42 return end - i32.const 36256 - i32.const 36304 + i32.const 34288 + i32.const 34336 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2105,11 +1560,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3468 + i32.const 1500 i32.lt_s if - i32.const 36256 - i32.const 36304 + i32.const 34288 + i32.const 34336 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/getter-setter.debug.wat b/tests/compiler/getter-setter.debug.wat index cf6f09728e..d0b38e3ca3 100644 --- a/tests/compiler/getter-setter.debug.wat +++ b/tests/compiler/getter-setter.debug.wat @@ -1,58 +1,16 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (result i32))) + (type $3 (func (param i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $getter-setter/Foo._bar (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2468)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35236)) - (global $~lib/memory/__heap_base i32 (i32.const 35236)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 76)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32844)) + (global $~lib/memory/__heap_base i32 (i32.const 32844)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2448) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -61,2668 +19,19 @@ global.get $getter-setter/Foo._bar return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $getter-setter/Foo.set:bar (param $bar i32) local.get $bar global.set $getter-setter/Foo._bar ) (func $start:getter-setter (local $0 i32) - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $getter-setter/Foo.get:bar i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -2736,7 +45,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -2751,7 +60,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -2766,92 +75,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35264 - i32.const 35312 + i32.const 32864 + i32.const 32912 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2860,322 +93,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/getter-setter.release.wat b/tests/compiler/getter-setter.release.wat index 4b1c7a0c01..cfdf02b057 100644 --- a/tests/compiler/getter-setter.release.wat +++ b/tests/compiler/getter-setter.release.wat @@ -1,1785 +1,21 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $getter-setter/Foo._bar (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/memory/__stack_pointer (mut i32) (i32.const 36260)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33868)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00 \00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s") - (data $20 (i32.const 3472) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00 \00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$123 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36260 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$123 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3472 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3476 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36272 - i32.const 0 - i32.store - i32.const 37840 - 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 36272 - 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 36272 - 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 36272 - i32.const 37844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36272 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36260 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36260 - 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 - local.tee $0 - i32.const 36260 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3492 - i32.lt_s - if - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36260 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $getter-setter/Foo._bar if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 13 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1788,228 +24,38 @@ i32.const 2 global.set $getter-setter/Foo._bar ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$129 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$129 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1100 i32.lt_s if - i32.const 36288 - i32.const 36336 - i32.const 1 + i32.const 33888 + i32.const 33936 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/heap.debug.wat b/tests/compiler/heap.debug.wat index b92c169edf..618f37106d 100644 --- a/tests/compiler/heap.debug.wat +++ b/tests/compiler/heap.debug.wat @@ -1,58 +1,24 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i64) (result i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32) (result i32))) + (type $6 (func (param i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $heap/ptr (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2404)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35172)) - (global $~lib/memory/__heap_base i32 (i32.const 35172)) + (global $~lib/memory/__data_end i32 (i32.const 140)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32908)) + (global $~lib/memory/__heap_base i32 (i32.const 32908)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2384) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -62,415 +28,32 @@ local.get $flMap i32.store ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) local.get $this local.get $mmInfo i32.store ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) local.get $this - i32.load offset=8 + local.get $prev + i32.store offset=4 ) (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) local.get $this local.get $next i32.store offset=8 ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) local.get $this - local.get $prev - i32.store offset=4 + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 ) (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) local.get $this @@ -510,7 +93,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -530,7 +113,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -593,7 +176,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -746,7 +329,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -763,7 +346,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -852,7 +435,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -895,7 +478,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -913,7 +496,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -981,7 +564,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1044,812 +627,37 @@ i32.const 1 local.get $fl i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1873,7 +681,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1919,7 +727,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1951,7 +759,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -2192,8 +1000,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 96 + i32.const 32 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2295,7 +1103,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2366,7 +1174,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2523,7 +1331,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2638,7 +1446,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2658,7 +1466,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2694,6 +1502,57 @@ call $~lib/rt/tlsf/__alloc return ) + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr + i32.const 4 + i32.sub + local.set $block + local.get $ptr + i32.const 0 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) + i32.const 0 + drop + local.get $block + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock + ) (func $~lib/rt/tlsf/moveBlock (param $root i32) (param $block i32) (param $newSize i32) (result i32) (local $newBlock i32) local.get $root @@ -2854,28 +1713,28 @@ call $~lib/rt/tlsf/__realloc return ) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + 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 $ptr + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) (func $~lib/memory/heap.free (param $ptr i32) local.get $ptr call $~lib/rt/tlsf/__free ) (func $start:heap - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 16 call $~lib/memory/heap.alloc global.set $heap/ptr @@ -2894,92 +1753,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35200 - i32.const 35248 + i32.const 32928 + i32.const 32976 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2988,322 +1771,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/heap.release.wat b/tests/compiler/heap.release.wat index 1814c8835f..6e951f8dd0 100644 --- a/tests/compiler/heap.release.wat +++ b/tests/compiler/heap.release.wat @@ -1,291 +1,22 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32))) + (type $3 (func)) + (type $4 (func (param i32) (result i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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 $heap/ptr (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36196)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33932)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3408) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\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") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$124 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36196 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$124 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3408 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3412 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 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 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -299,7 +30,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -313,7 +44,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -359,7 +90,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -442,7 +173,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -456,7 +187,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -517,7 +248,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -550,7 +281,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -565,7 +296,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -616,7 +347,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -632,601 +363,51 @@ 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/__free (param $0 i32) - (local $1 i32) - local.get $0 - i32.const 36196 - 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 - local.tee $0 - local.get $0 - i32.load - i32.const 1 - i32.or - i32.store - local.get $0 - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36196 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36196 - 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 - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$50 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$50 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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 - i32.const 2 - 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/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3428 - i32.lt_s - if - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$54 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$54 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end + 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.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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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 i64) (local $3 i32) @@ -1238,7 +419,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1263,7 +444,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1290,7 +471,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1362,10 +543,10 @@ if unreachable end - i32.const 36208 + i32.const 33936 i32.const 0 i32.store - i32.const 37776 + i32.const 35504 i32.const 0 i32.store loop $for-loop|0 @@ -1376,7 +557,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36208 + i32.const 33936 i32.add i32.const 0 i32.store offset=4 @@ -1394,7 +575,7 @@ i32.add i32.const 2 i32.shl - i32.const 36208 + i32.const 33936 i32.add i32.const 0 i32.store offset=96 @@ -1412,14 +593,14 @@ br $for-loop|0 end end - i32.const 36208 - i32.const 37780 + i32.const 33936 + i32.const 35508 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36208 + i32.const 33936 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) @@ -1427,8 +608,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1120 + i32.const 1056 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1503,7 +684,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1555,7 +736,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1590,7 +771,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1736,7 +917,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1751,7 +932,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1766,6 +947,36 @@ call $~lib/rt/tlsf/prepareBlock local.get $1 ) + (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 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 1056 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) (func $~lib/rt/tlsf/moveBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 @@ -1783,7 +994,7 @@ i32.and memory.copy local.get $1 - i32.const 36196 + i32.const 33932 i32.ge_u if local.get $1 @@ -1806,38 +1017,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36196 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -1857,7 +1036,7 @@ call $~lib/rt/tlsf/initialize end local.get $0 - i32.const 36196 + i32.const 33932 i32.lt_u if global.get $~lib/rt/tlsf/ROOT @@ -1866,28 +1045,28 @@ call $~lib/rt/tlsf/moveBlock local.set $0 else - block $__inlined_func$~lib/rt/tlsf/reallocateBlock$116 + block $__inlined_func$~lib/rt/tlsf/reallocateBlock$54 global.get $~lib/rt/tlsf/ROOT - local.set $1 + local.set $3 local.get $0 call $~lib/rt/tlsf/checkUsedBlock local.set $0 i32.const 32 call $~lib/rt/tlsf/prepareSize - local.tee $2 + local.tee $5 local.get $0 i32.load - local.tee $3 + local.tee $1 i32.const -4 i32.and - local.tee $5 + local.tee $4 i32.le_u if - local.get $1 + local.get $3 local.get $0 - local.get $2 + local.get $5 call $~lib/rt/tlsf/prepareBlock - br $__inlined_func$~lib/rt/tlsf/reallocateBlock$116 + br $__inlined_func$~lib/rt/tlsf/reallocateBlock$54 end local.get $0 i32.const 4 @@ -1897,41 +1076,41 @@ i32.const -4 i32.and i32.add - local.tee $4 + local.tee $2 i32.load local.tee $6 i32.const 1 i32.and if - local.get $5 + local.get $4 i32.const 4 i32.add local.get $6 i32.const -4 i32.and i32.add - local.tee $5 - local.get $2 + local.tee $4 + local.get $5 i32.ge_u if - local.get $1 - local.get $4 + local.get $3 + local.get $2 call $~lib/rt/tlsf/removeBlock local.get $0 - local.get $3 + local.get $1 i32.const 3 i32.and - local.get $5 + local.get $4 i32.or i32.store - local.get $1 + local.get $3 local.get $0 - local.get $2 + local.get $5 call $~lib/rt/tlsf/prepareBlock - br $__inlined_func$~lib/rt/tlsf/reallocateBlock$116 + br $__inlined_func$~lib/rt/tlsf/reallocateBlock$54 end end - local.get $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/moveBlock local.set $0 @@ -1942,230 +1121,61 @@ i32.add global.set $heap/ptr global.get $heap/ptr - call $~lib/rt/tlsf/__free - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3428 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3428 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 33932 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - local.tee $2 - i32.store + call $~lib/rt/tlsf/checkUsedBlock + local.tee $0 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.load + i32.const 1 + i32.or i32.store - block $__inlined_func$~lib/string/String#concat$130 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$130 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - return + call $~lib/rt/tlsf/insertBlock end - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3428 + i32.const 1164 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 33952 + i32.const 34000 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/if.debug.wat b/tests/compiler/if.debug.wat index 048702bdff..b0ecf46b73 100644 --- a/tests/compiler/if.debug.wat +++ b/tests/compiler/if.debug.wat @@ -1,58 +1,15 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2468)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35236)) - (global $~lib/memory/__heap_base i32 (i32.const 35236)) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 76)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32844)) + (global $~lib/memory/__heap_base i32 (i32.const 32844)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00i\00f\00.\00t\00s\00\00\00") - (data $20 (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00e\00r\00r\00o\00r\00\00\00") - (data $21 (i32.const 2448) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00i\00f\00.\00t\00s\00\00\00") + (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00e\00r\00r\00o\00r\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "ifThenElse" (func $if/ifThenElse)) @@ -72,2638 +29,6 @@ end unreachable ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $if/ifThen (param $n i32) (result i32) local.get $n if @@ -2725,23 +50,6 @@ unreachable ) (func $start:if - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 0 call $if/ifThenElse i32.const 0 @@ -2749,7 +57,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -2762,7 +70,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -2775,7 +83,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -2788,7 +96,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -2801,7 +109,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -2814,7 +122,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -2827,8 +135,8 @@ i32.const 1 return else - i32.const 2432 - i32.const 2400 + i32.const 64 + i32.const 32 i32.const 37 i32.const 5 call $~lib/builtins/abort @@ -2844,92 +152,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35264 - i32.const 35312 + i32.const 32864 + i32.const 32912 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2938,322 +170,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/if.release.wat b/tests/compiler/if.release.wat index 371409a43f..aab4812562 100644 --- a/tests/compiler/if.release.wat +++ b/tests/compiler/if.release.wat @@ -1,1756 +1,23 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36260)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33868)) (memory $0 1) (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") + (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00i\00f\00.\00t\00s") (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\n\00\00\00i\00f\00.\00t\00s") - (data $20 (i32.const 3436) "\1c") - (data $20.1 (i32.const 3448) "\02\00\00\00\n\00\00\00e\00r\00r\00o\00r") - (data $21 (i32.const 3472) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00e\00r\00r\00o\00r") (export "ifThenElse" (func $if/ifThenElse)) (export "ifThen" (func $if/ifThen)) (export "ifThenElseBlock" (func $if/ifThenElse)) (export "ifAlwaysReturns" (func $if/ifAlwaysReturns)) (export "memory" (memory $0)) - (start $~start) (func $if/ifThenElse (param $0 i32) (result i32) local.get $0 i32.const 0 i32.ne ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$125 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36260 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$125 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3472 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3476 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36272 - i32.const 0 - i32.store - i32.const 37840 - 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 36272 - 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 36272 - 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 36272 - i32.const 37844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36272 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36260 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36260 - 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 - local.tee $0 - i32.const 36260 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3492 - i32.lt_s - if - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $if/ifThen (param $0 i32) (result i32) local.get $0 if @@ -1763,8 +30,8 @@ local.get $0 i32.eqz if - i32.const 3456 - i32.const 3424 + i32.const 1088 + i32.const 1056 i32.const 37 i32.const 5 call $~lib/builtins/abort @@ -1772,262 +39,39 @@ end i32.const 1 ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36260 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$130 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$130 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1100 i32.lt_s if - i32.const 36288 - i32.const 36336 + i32.const 33888 + i32.const 33936 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/import-memory.debug.wat b/tests/compiler/import-memory.debug.wat index b579be55ae..3e89ffca11 100644 --- a/tests/compiler/import-memory.debug.wat +++ b/tests/compiler/import-memory.debug.wat @@ -1,2718 +1,25 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "memory" (memory $0 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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2468)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35236)) - (global $~lib/memory/__heap_base i32 (i32.const 35236)) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00m\00p\00o\00r\00t\00-\00m\00e\00m\00o\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2448) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 76)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32844)) + (global $~lib/memory/__heap_base i32 (i32.const 32844)) + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00m\00p\00o\00r\00t\00-\00m\00e\00m\00o\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:import-memory - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace memory.size i32.const 0 i32.ne i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2727,92 +34,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35264 - i32.const 35312 + i32.const 32864 + i32.const 32912 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2821,322 +52,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/import-memory.release.wat b/tests/compiler/import-memory.release.wat index d06dd44ec8..6536fc9fd1 100644 --- a/tests/compiler/import-memory.release.wat +++ b/tests/compiler/import-memory.release.wat @@ -1,1998 +1,54 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) (import "env" "memory" (memory $0 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/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36260)) - (data $0 (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 1068) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 1100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 1132) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 1196) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 1264) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 1296) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 1324) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 1388) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1440) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 1468) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 1532) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 1564) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 1692) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 1756) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 3244) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 3340) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 3404) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00m\00p\00o\00r\00t\00-\00m\00e\00m\00o\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 3472) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33868)) + (data $0 (i32.const 1036) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00m\00p\00o\00r\00t\00-\00m\00e\00m\00o\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$120 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36260 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$120 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3472 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3476 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36272 - i32.const 0 - i32.store - i32.const 37840 - 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 36272 - 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 36272 - 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 36272 - i32.const 37844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36272 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36260 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36260 - 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 - local.tee $0 - i32.const 36260 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3492 - i32.lt_s - if - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36260 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace memory.size i32.eqz if i32.const 0 - i32.const 3424 - i32.const 1 - i32.const 1 + i32.const 1056 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$125 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$125 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1100 i32.lt_s if - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 + i32.const 33888 + i32.const 33936 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/incremental-gc/call-indirect.debug.wat b/tests/compiler/incremental-gc/call-indirect.debug.wat index e2b5900822..b7e519d2fe 100644 --- a/tests/compiler/incremental-gc/call-indirect.debug.wat +++ b/tests/compiler/incremental-gc/call-indirect.debug.wat @@ -1,58 +1,47 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (result i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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/native/ASC_FEATURE_EXCEPTION_HANDLING 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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/rt/itcms/fromSpace (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/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/native/ASC_SHRINK_LEVEL 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/__rtti_base i32 (i32.const 2512)) - (global $~lib/memory/__data_end i32 (i32.const 2544)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35312)) - (global $~lib/memory/__heap_base i32 (i32.const 35312)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 544)) + (global $~lib/memory/__data_end i32 (i32.const 576)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33344)) + (global $~lib/memory/__heap_base i32 (i32.const 33344)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) (data $0 (i32.const 16) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 396) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 620) "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 $13 (i32.const 1020) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2076) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 2240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 2268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00>\00\00\00i\00n\00c\00r\00e\00m\00e\00n\00t\00a\00l\00-\00g\00c\00/\00c\00a\00l\00l\00-\00i\00n\00d\00i\00r\00e\00c\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2512) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 284) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00>\00\00\00i\00n\00c\00r\00e\00m\00e\00n\00t\00a\00l\00-\00g\00c\00/\00c\00a\00l\00l\00-\00i\00n\00d\00i\00r\00e\00c\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 544) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $incremental-gc/call-indirect/foo) (export "issue_2923" (func $incremental-gc/call-indirect/issue_2923)) @@ -98,392 +87,357 @@ i32.and return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne if - i32.const 0 + i32.const 1 drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $budget - 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/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) local.get $this - i32.load offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) local.get $this - i32.load + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) + (func $~lib/rt/itcms/Object#unlink (param $this i32) (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev i32.const 0 - i32.const 288 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev i32.const 1 drop - local.get $size - i32.const 12 - i32.ge_u + local.get $prev i32.eqz if i32.const 0 - i32.const 288 - i32.const 270 - i32.const 14 + i32.const 64 + i32.const 132 + i32.const 16 call $~lib/builtins/abort unreachable end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u + if + i32.const 160 + i32.const 224 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId + i32.const 2 + i32.le_u if (result i32) - local.get $sl - i32.const 16 - i32.lt_u + i32.const 1 else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 + i32.and i32.const 0 + i32.ne end - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev + return + ) + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 64 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (param $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr + i32.eqz + if + return + end + local.get $ptr + i32.const 20 + i32.sub + local.set $obj + i32.const 0 + drop + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl + local.get $obj + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (param $cookie i32) + (local $ptr i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap - end + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) - (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) + i32.const 4 + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) (local $size i32) (local $fl i32) (local $sl i32) - (local $13 i32) - (local $14 i32) + (local $6 i32) + (local $7 i32) (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) + (local $root|18 i32) + (local $fl|19 i32) (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) local.get $block call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo @@ -495,124 +449,12 @@ i32.eqz if i32.const 0 - i32.const 288 - i32.const 203 + i32.const 304 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo local.get $blockInfo i32.const 3 i32.const -1 @@ -627,35 +469,12 @@ i32.eqz if i32.const 0 - i32.const 288 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 234 + i32.const 304 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store local.get $size i32.const 256 i32.lt_u @@ -668,11 +487,11 @@ local.set $sl else local.get $size - local.tee $13 + local.tee $6 i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 + local.tee $7 + local.get $6 + local.get $7 i32.lt_u select local.set $boundedSize @@ -713,385 +532,773 @@ i32.eqz if i32.const 0 - i32.const 288 - i32.const 251 + i32.const 304 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) local.get $root - local.set $root|16 + local.set $root|11 local.get $fl - local.set $fl|17 + local.set $fl|12 local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 + local.set $sl|13 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|18 + local.get $sl|13 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 + br $~lib/rt/tlsf/GETHEAD|inlined.0 end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head + i32.eq if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|24 + local.set $root|14 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $head + i32.store offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + local.get $slMap + i32.eqz + if + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) + (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) i32.const 1 drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u + local.get $block i32.eqz if i32.const 0 - i32.const 288 - i32.const 382 + i32.const 304 + i32.const 201 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail + i32.eqz if - i32.const 1 - drop - local.get $start - local.get $tail + i32.const 0 + i32.const 304 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 i32.const 4 i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 end - else + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo i32.const 1 drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u + local.get $leftInfo + i32.const 1 + i32.and i32.eqz if i32.const 0 - i32.const 288 - i32.const 402 - i32.const 5 + i32.const 304 + i32.const 221 + i32.const 16 call $~lib/builtins/abort unreachable end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo + i32.const 4 + i32.add + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo end - local.get $end - local.get $start - i32.sub + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and local.set $size + i32.const 1 + drop local.get $size - i32.const 4 i32.const 12 - i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $block i32.const 4 i32.add - i32.lt_u + local.get $size + i32.add + local.get $right + i32.eq + i32.eqz if i32.const 0 - return + i32.const 304 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $size - i32.const 2 + local.get $right i32.const 4 - i32.mul i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize + local.get $block + i32.store + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + local.set $head + local.get $block + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 - return + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) (local $root|4 i32) (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart i32) - i32.const 0 + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 drop - global.get $~lib/memory/__heap_base + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 4 + i32.add i32.const 15 i32.add i32.const 15 i32.const -1 i32.xor i32.and - local.set $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - i32.const 1572 - i32.add - i32.const 65535 - i32.add - i32.const 65535 + i32.const 4 + i32.sub + local.set $start + local.get $end + i32.const 15 i32.const -1 i32.xor i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable + local.set $end + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u + local.set $tailInfo + local.get $tail + if + i32.const 1 + drop + local.get $start + local.get $tail + i32.const 4 + i32.add + i32.ge_u + i32.eqz if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + i32.const 304 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo + else + end + else + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart 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 $rootOffset + memory.size + local.set $pagesBefore + local.get $rootOffset + 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 $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) + local.get $pagesNeeded + local.get $pagesBefore + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1123,1618 +1330,971 @@ local.get $root global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/computeSize (param $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr + i32.const 4 + i32.sub + local.set $block + local.get $ptr + i32.const 0 + i32.ne if (result i32) - i32.const 12 - else - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.add + local.get $ptr i32.const 15 - i32.const -1 - i32.xor i32.and - i32.const 4 - i32.sub - end - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 160 - i32.const 288 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable + i32.eqz + else + i32.const 0 end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u + i32.and + i32.eqz else i32.const 0 end i32.eqz if i32.const 0 - i32.const 288 - i32.const 334 - i32.const 14 + i32.const 304 + i32.const 562 + i32.const 3 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) i32.const 0 - local.set $head - local.get $slMap + drop + local.get $block + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT i32.eqz if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $ptr + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $obj i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $from 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 - i32.const 288 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add + global.get $~lib/rt/itcms/white + i32.eqz + local.set $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + 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 $obj + local.get $obj + 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 $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 + global.set $~lib/rt/itcms/state end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz + global.get $~lib/rt/itcms/iter + local.set $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 288 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $obj + 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 64 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $obj + 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 - i32.const 288 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state + br $break|0 end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add return ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 160 - i32.const 224 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr + (func $~lib/rt/itcms/__collect i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return + call $~lib/rt/itcms/step + drop + br $while-continue|1 end - unreachable end - unreachable + 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 + i32.const 0 + drop ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u + (func $~lib/rt/itcms/interrupt + (local $budget 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 $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step + i32.sub + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 + i32.const 0 + drop + i32.const 200 + i32.const 100 i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r + i32.const 0 + i32.eq + drop + global.get $~lib/rt/itcms/total + i32.const 200 i32.const 100 i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 620 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 620 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl + i32.mul + i32.const 1024 i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return end + local.get $budget + i32.const 0 + i32.gt_s + br_if $do-loop|0 end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 620 - local.get $d1|10 - i32.const 2 - i32.shl + 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 $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $size + i32.const 4 i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl + i32.const 15 i32.add - local.get $digits - i32.store + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub end - local.get $num - i32.const 10 - i32.ge_u + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 620 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset + i32.const 368 + i32.const 304 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub i32.shl i32.add - local.get $digits|12 - i32.store - else - local.get $offset i32.const 1 i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 + else + local.get $size end + return ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1040 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and + (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u if - local.get $buffer - i32.const 1040 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 i32.sub - i32.const 31 - local.get $base + local.get $requestSize i32.clz i32.sub - i32.div_u + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u i32.const 1 - i32.add - return + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq + i32.eqz if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2096 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2096 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end + i32.const 0 + i32.const 304 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + i32.const 0 + i32.const -1 + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap + i32.const 0 + local.set $head + local.get $slMap + i32.eqz + if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 0 + i32.const -1 + i32.xor + local.get $fl + i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz if + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap i32.const 1 drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq + local.get $slMap i32.eqz if i32.const 0 - i32.const 224 - i32.const 160 - i32.const 16 + i32.const 304 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $iter - i32.const 20 + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 end + local.set $head end + local.get $head + return ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next + (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u + local.get $size + i32.const 256 + i32.ge_u if - i32.const 2288 - i32.const 2352 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size end - local.get $ptr + memory.size + local.set $pagesBefore + local.get $size i32.const 4 - i32.add - local.get $id + local.get $pagesBefore + i32.const 16 + i32.shl i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow + i32.const 0 + i32.lt_s if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 224 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if unreachable - else - local.get $1 end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop ) - (func $~lib/rt/itcms/__visit (param $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr + (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz i32.eqz if - return + i32.const 0 + i32.const 304 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $ptr - i32.const 20 + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u if - local.get $obj - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/itcms/visitStack (param $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 i32.const 4 i32.add - local.set $ptr - br $while-continue|0 + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo end ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) (local $block i32) - local.get $ptr - i32.const 4 - i32.sub + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo + local.get $block + i32.eqz + if + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block i32.const 1 - i32.and + drop + local.get $block i32.eqz - else - i32.const 0 + if + i32.const 0 + i32.const 304 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end + i32.const 1 + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u i32.eqz if i32.const 0 - i32.const 288 - i32.const 562 - i32.const 3 + i32.const 304 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end + local.get $root local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock i32.const 0 drop local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock + return ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - return - end + (func $~lib/rt/tlsf/__alloc (param $size 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 224 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 + local.get $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add return ) - (func $~lib/rt/itcms/__collect - i32.const 0 - drop - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - end - end + i32.const 368 + i32.const 64 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - 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 $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo 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 + local.get $obj + call $~lib/rt/itcms/Object#get:size i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr i32.const 0 - drop + local.get $size + memory.fill + local.get $ptr + return ) (func $incremental-gc/call-indirect/B#set:v (param $this i32) (param $v i32) local.get $this @@ -2759,6 +2319,12 @@ i32.const 16 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace + i32.const 112 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace memory.size i32.const 16 i32.shl @@ -2767,19 +2333,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 336 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 2240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace call $incremental-gc/call-indirect/issue_2923 i32.const 10 i32.eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 464 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -2794,20 +2354,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35344 - i32.const 35392 + i32.const 33376 + i32.const 33424 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2816,196 +2372,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 384 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 384 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2192 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $incremental-gc/call-indirect/B#constructor (param $this i32) (result i32) (local $1 i32) @@ -3148,7 +2535,7 @@ local.get $0 i32.store local.get $0 - i32.const 2400 + i32.const 432 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3164,153 +2551,6 @@ local.get $0 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 416 - i32.const 544 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 608 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3341,16 +2581,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2288 - local.get $0 - call $~lib/rt/itcms/__visit i32.const 160 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1040 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2096 + i32.const 368 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3425,6 +2659,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/incremental-gc/call-indirect.release.wat b/tests/compiler/incremental-gc/call-indirect.release.wat index 0f1ac05b47..4697415cac 100644 --- a/tests/compiler/incremental-gc/call-indirect.release.wat +++ b/tests/compiler/incremental-gc/call-indirect.release.wat @@ -1,65 +1,242 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32))) + (type $0 (func)) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32) (result i32))) + (type $7 (func (param i32 i32 i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (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/memory/__stack_pointer (mut i32) (i32.const 36320)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34352)) (memory $0 1) - (data $1 (i32.const 1052) "\1c") - (data $1.1 (i32.const 1064) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1084) "\1c") - (data $2.1 (i32.const 1096) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1116) "\1c") - (data $3.1 (i32.const 1128) "\02") - (data $4 (i32.const 1148) "<") - (data $4.1 (i32.const 1160) "\02\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 $5 (i32.const 1212) "<") - (data $5.1 (i32.const 1224) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $6 (i32.const 1276) "<") - (data $6.1 (i32.const 1288) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $8 (i32.const 1372) "\1c") - (data $8.1 (i32.const 1384) "\02\00\00\00\02\00\00\00:") - (data $9 (i32.const 1404) "|") - (data $9.1 (i32.const 1416) "\02\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 $10 (i32.const 1532) "<") - (data $10.1 (i32.const 1544) "\02\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 $11 (i32.const 1596) "\1c") - (data $11.1 (i32.const 1608) "\02\00\00\00\02\00\00\000") - (data $12 (i32.const 1628) "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 $13 (i32.const 2028) "\1c\04") - (data $13.1 (i32.const 2040) "\02\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 $14 (i32.const 3084) "\\") - (data $14.1 (i32.const 3096) "\02\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 $15 (i32.const 3180) "<") - (data $15.1 (i32.const 3192) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $17 (i32.const 3276) "<") - (data $17.1 (i32.const 3288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $18 (i32.const 3340) ",") - (data $18.1 (i32.const 3352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $19 (i32.const 3388) "\1c") - (data $19.1 (i32.const 3400) "\05\00\00\00\08\00\00\00\01") - (data $20 (i32.const 3420) "\\") - (data $20.1 (i32.const 3432) "\02\00\00\00>\00\00\00i\00n\00c\00r\00e\00m\00e\00n\00t\00a\00l\00-\00g\00c\00/\00c\00a\00l\00l\00-\00i\00n\00d\00i\00r\00e\00c\00t\00.\00t\00s") - (data $21 (i32.const 3520) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 ") + (data $1 (i32.const 1052) "<") + (data $1.1 (i32.const 1064) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $3 (i32.const 1148) "<") + (data $3.1 (i32.const 1160) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $4 (i32.const 1212) ",") + (data $4.1 (i32.const 1224) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $6 (i32.const 1292) "<") + (data $6.1 (i32.const 1304) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $7 (i32.const 1356) "<") + (data $7.1 (i32.const 1368) "\02\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 $8 (i32.const 1420) "\1c") + (data $8.1 (i32.const 1432) "\05\00\00\00\08\00\00\00\01") + (data $9 (i32.const 1452) "\\") + (data $9.1 (i32.const 1464) "\02\00\00\00>\00\00\00i\00n\00c\00r\00e\00m\00e\00n\00t\00a\00l\00-\00g\00c\00/\00c\00a\00l\00l\00-\00i\00n\00d\00i\00r\00e\00c\00t\00.\00t\00s") + (data $10 (i32.const 1552) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 ") (table $0 2 2 funcref) (elem $0 (i32.const 1) $incremental-gc/call-indirect/foo) (export "issue_2923" (func $incremental-gc/call-indirect/issue_2923)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1168 + call $~lib/rt/itcms/__visit + i32.const 1376 + call $~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 1072 + i32.const 160 + i32.const 16 + call $~lib/builtins/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/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $1 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1072 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$124 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34352 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1072 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$124 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1072 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + 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 $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1552 + i32.load + i32.gt_u + if + i32.const 1168 + i32.const 1232 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1556 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 + local.get $1 + 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 $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -73,7 +250,7 @@ i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -87,7 +264,7 @@ i32.lt_u if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -133,7 +310,7 @@ i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -216,7 +393,7 @@ i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -230,7 +407,7 @@ i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -291,7 +468,7 @@ i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -324,7 +501,7 @@ i32.lt_u if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -339,7 +516,7 @@ i32.ne if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -390,7 +567,7 @@ i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -462,7 +639,7 @@ i64.lt_u if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -487,7 +664,7 @@ i32.gt_u if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -514,7 +691,7 @@ i32.gt_u if i32.const 0 - i32.const 1296 + i32.const 1312 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -586,10 +763,10 @@ if unreachable end - i32.const 36320 + i32.const 34352 i32.const 0 i32.store - i32.const 37888 + i32.const 35920 i32.const 0 i32.store loop $for-loop|0 @@ -600,7 +777,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36320 + i32.const 34352 i32.add i32.const 0 i32.store offset=4 @@ -618,7 +795,7 @@ i32.add i32.const 2 i32.shl - i32.const 36320 + i32.const 34352 i32.add i32.const 0 i32.store offset=96 @@ -636,1115 +813,716 @@ br $for-loop|0 end end - i32.const 36320 - i32.const 37892 + i32.const 34352 + i32.const 35924 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36320 + i32.const 34352 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub + 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 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1296 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 + global.get $~lib/rt/itcms/iter i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1296 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (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 - i32.const 1073741804 - i32.ge_u - if - i32.const 1168 - i32.const 1232 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$52 - 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 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$52 + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1168 - i32.const 1296 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if i32.const 0 - i32.const 1296 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1296 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1296 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $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/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3552 - i32.lt_s - if - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$56 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1616 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$56 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u + 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 - 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 1628 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1628 - 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 1628 - 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 1628 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 3296 - call $~lib/rt/itcms/__visit - i32.const 1168 - call $~lib/rt/itcms/__visit - i32.const 2048 - call $~lib/rt/itcms/__visit - i32.const 3104 - call $~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 + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34352 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 - i32.const 3 + 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 1232 - i32.const 160 - i32.const 16 + i32.const 1072 + i32.const 229 + i32.const 20 call $~lib/builtins/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 + i32.const 34352 + 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 + local.tee $0 + i32.const 34352 + i32.ge_u + if + 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 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1312 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end + i32.const 0 ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - local.get $0 + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + 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.add + i32.const 1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and i32.eqz if - return + i32.const 0 + i32.const 1312 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white local.get $0 - i32.const 20 - i32.sub - local.tee $1 + local.get $2 + i32.const 2 + i32.shl + i32.add i32.load offset=4 - i32.const 3 + i32.const -1 + local.get $1 + i32.shl i32.and - i32.eq - if + local.tee $1 + if (result i32) + local.get $0 local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end + 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 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$137 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36320 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$137 - end local.get $1 - i32.load offset=8 + 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 1232 - i32.const 132 - i32.const 16 + i32.const 1312 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end local.get $0 local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3520 - i32.load - i32.gt_u - if - i32.const 3296 - i32.const 3360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add i32.const 2 i32.shl - i32.const 3524 i32.add - i32.load - i32.const 32 - i32.and + i32.load offset=96 + else + i32.const 0 end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result 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 + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 1376 + i32.const 1072 + i32.const 261 + i32.const 31 + call $~lib/builtins/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$69 + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36320 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 end - global.get $~lib/rt/itcms/visitCount - return + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1376 + i32.const 1312 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + memory.size + local.tee $2 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s 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 + local.get $3 + memory.grow + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1232 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 36320 - 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 - local.tee $0 - i32.const 36320 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1296 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1312 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1312 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store end + local.get $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 $~start i32.const 1028 @@ -1755,241 +1533,76 @@ i32.store i32.const 1024 global.set $~lib/rt/itcms/pinSpace + i32.const 1124 + i32.const 1120 + i32.store + i32.const 1128 + i32.const 1120 + i32.store + i32.const 1120 + global.set $~lib/rt/itcms/toSpace + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/fromSpace memory.size i32.const 16 i32.shl - i32.const 36320 + i32.const 34352 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - i32.const 3252 - i32.const 3248 - i32.store - i32.const 3256 - i32.const 3248 - i32.store - i32.const 3248 - global.set $~lib/rt/itcms/toSpace call $incremental-gc/call-indirect/issue_2923 i32.const 10 i32.ne if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3552 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3552 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$141 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1136 - local.set $0 - br $__inlined_func$~lib/string/String#concat$141 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1584 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1072 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1104 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1392 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1392 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3200 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $incremental-gc/call-indirect/foo (param $0 i32) (result i32) (local $1 i32) @@ -2000,7 +1613,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1584 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2045,7 +1658,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1584 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2088,8 +1701,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2103,7 +1716,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1584 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2114,7 +1727,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1584 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2148,20 +1761,20 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3408 + i32.const 1440 i32.store offset=4 local.get $0 - i32.const 3408 + i32.const 1440 i32.load - call_indirect (type $0) + call_indirect (type $1) global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2173,11 +1786,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1584 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2235,11 +1848,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3552 + i32.const 1584 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index 7737c4c3c3..c81dd5c55d 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -6,19 +6,18 @@ (type $4 (func (param i32 i32 i32))) (type $5 (func)) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (result i32))) - (type $12 (func (param i32 i32 i32) (result i32))) - (type $13 (func (param i32 i32) (result f64))) - (type $14 (func (param i32 i32) (result f32))) - (type $15 (func (param i32 i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (type $10 (func (param i32 i32) (result f64))) + (type $11 (func (param i32 i32) (result f32))) + (type $12 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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 $~lib/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -31,481 +30,41 @@ (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 $~lib/rt/__rtti_base i32 (i32.const 3104)) - (global $~lib/memory/__data_end i32 (i32.const 3160)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35928)) - (global $~lib/memory/__heap_base i32 (i32.const 35928)) + (global $~lib/rt/__rtti_base i32 (i32.const 1136)) + (global $~lib/memory/__data_end i32 (i32.const 1192)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33960)) + (global $~lib/memory/__heap_base i32 (i32.const 33960)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 172) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 396) "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 $9 (i32.const 796) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1852) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 1948) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 2012) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2076) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 2204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $21 (i32.const 2460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00n\00f\00e\00r\00-\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data $22 (i32.const 2508) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00") - (data $23 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\ff\ff\ff\ff\00\00\00\00") - (data $24 (i32.const 2588) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00") - (data $25 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") - (data $26 (i32.const 2668) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $27 (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\b0\n\00\00\00\00\00\00") - (data $29 (i32.const 2780) "\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\00\00") - (data $30 (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00") - (data $33 (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 2972) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $36 (i32.const 3104) "\r\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\1a\00\00\02\01\00\00\02\19\00\00 \00\00\00\02a\00\00\02a\00\00\02\01\00\00\02A\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 444) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $10 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00n\00f\00e\00r\00-\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data $11 (i32.const 540) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00") + (data $12 (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\ff\ff\ff\ff\00\00\00\00") + (data $13 (i32.const 620) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00") + (data $14 (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") + (data $15 (i32.const 700) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $16 (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\00\03\00\00\00\00\00\00") + (data $18 (i32.const 812) "\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\00\00") + (data $19 (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00") + (data $22 (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 1004) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $25 (i32.const 1136) "\r\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\1a\00\00\02\01\00\00\02\19\00\00 \00\00\00\02a\00\00\02a\00\00\02\01\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 396 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 396 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 396 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 396 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 816 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 816 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1872 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1872 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -570,7 +129,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -640,7 +199,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -657,7 +216,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -687,9 +246,9 @@ i32.load i32.gt_u if - i32.const 2224 - i32.const 2288 - i32.const 21 + i32.const 256 + i32.const 320 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -756,7 +315,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2096 + i32.const 128 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -908,7 +467,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -928,7 +487,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -991,7 +550,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1144,7 +703,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1161,7 +720,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1250,7 +809,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1293,7 +852,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1311,7 +870,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1379,7 +938,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1496,7 +1055,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1542,7 +1101,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1574,7 +1133,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1818,7 +1377,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2038,7 +1597,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2149,8 +1708,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2032 - i32.const 2368 + i32.const 64 + i32.const 400 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2252,7 +1811,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2323,7 +1882,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2480,7 +2039,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2595,7 +2154,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2615,7 +2174,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2663,8 +2222,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2032 - i32.const 2096 + i32.const 64 + i32.const 128 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2740,7 +2299,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2933,20 +2492,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35952 - i32.const 36000 + i32.const 33984 + i32.const 34032 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2955,196 +2510,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 160 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 160 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1968 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3167,9 +2553,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2432 - i32.const 114 + i32.const 256 + i32.const 464 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3220,9 +2606,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2432 - i32.const 114 + i32.const 256 + i32.const 464 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3272,9 +2658,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2432 - i32.const 114 + i32.const 256 + i32.const 464 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3325,9 +2711,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2432 - i32.const 114 + i32.const 256 + i32.const 464 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3434,8 +2820,8 @@ i32.shr_u i32.gt_u if - i32.const 2688 - i32.const 2432 + i32.const 720 + i32.const 464 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -3499,6 +2885,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -3537,9 +2927,9 @@ i32.const 0 i32.lt_s if - i32.const 2224 - i32.const 2432 - i32.const 130 + i32.const 256 + i32.const 464 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3577,6 +2967,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -3607,9 +3001,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2432 - i32.const 114 + i32.const 256 + i32.const 464 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3664,9 +3058,9 @@ call $~lib/array/Array<~lib/string/String|null>#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2432 - i32.const 114 + i32.const 256 + i32.const 464 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3721,9 +3115,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2432 - i32.const 114 + i32.const 256 + i32.const 464 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3776,9 +3170,9 @@ i32.const 0 i32.lt_s if - i32.const 2224 - i32.const 2432 - i32.const 130 + i32.const 256 + i32.const 464 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3816,6 +3210,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -3846,9 +3244,9 @@ call $~lib/array/Array<~lib/array/Array>#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2432 - i32.const 114 + i32.const 256 + i32.const 464 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3876,9 +3274,9 @@ local.get $value i32.eqz if - i32.const 2992 - i32.const 2432 - i32.const 118 + i32.const 1024 + i32.const 464 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -3947,13 +3345,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2176 + i32.const 208 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2320 + i32.const 352 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer @@ -3977,7 +3375,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 3 i32.const 3 call $~lib/builtins/abort @@ -3996,7 +3394,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 4 i32.const 3 call $~lib/builtins/abort @@ -4006,7 +3404,7 @@ i32.const 3 i32.const 3 i32.const 5 - i32.const 2528 + i32.const 560 call $~lib/rt/__newArray local.tee $3 i32.store offset=8 @@ -4023,7 +3421,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -4033,7 +3431,7 @@ i32.const 2 i32.const 2 i32.const 6 - i32.const 2576 + i32.const 608 call $~lib/rt/__newArray local.tee $5 i32.store offset=12 @@ -4050,7 +3448,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 12 i32.const 3 call $~lib/builtins/abort @@ -4070,7 +3468,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 13 i32.const 3 call $~lib/builtins/abort @@ -4089,7 +3487,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 14 i32.const 3 call $~lib/builtins/abort @@ -4099,7 +3497,7 @@ i32.const 3 i32.const 3 i32.const 5 - i32.const 2608 + i32.const 640 call $~lib/rt/__newArray local.tee $7 i32.store offset=16 @@ -4116,7 +3514,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -4126,7 +3524,7 @@ i32.const 3 i32.const 2 i32.const 7 - i32.const 2656 + i32.const 688 call $~lib/rt/__newArray local.tee $9 i32.store offset=20 @@ -4143,7 +3541,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -4201,7 +3599,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 30 i32.const 3 call $~lib/builtins/abort @@ -4250,7 +3648,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -4294,7 +3692,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 41 i32.const 3 call $~lib/builtins/abort @@ -4304,7 +3702,7 @@ i32.const 2 i32.const 2 i32.const 10 - i32.const 2768 + i32.const 800 call $~lib/rt/__newArray local.tee $23 i32.store offset=68 @@ -4321,7 +3719,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -4331,7 +3729,7 @@ i32.const 1 i32.const 2 i32.const 11 - i32.const 2800 + i32.const 832 call $~lib/rt/__newArray local.tee $25 i32.store offset=72 @@ -4348,7 +3746,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -4368,7 +3766,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 50 i32.const 3 call $~lib/builtins/abort @@ -4378,7 +3776,7 @@ i32.const 2 i32.const 2 i32.const 11 - i32.const 2832 + i32.const 864 call $~lib/rt/__newArray local.tee $27 i32.store offset=76 @@ -4395,7 +3793,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -4415,7 +3813,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 53 i32.const 3 call $~lib/builtins/abort @@ -4425,7 +3823,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 2864 + i32.const 896 call $~lib/rt/__newArray local.tee $29 i32.store offset=80 @@ -4442,7 +3840,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -4462,7 +3860,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 58 i32.const 3 call $~lib/builtins/abort @@ -4472,7 +3870,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 2896 + i32.const 928 call $~lib/rt/__newArray local.tee $31 i32.store offset=84 @@ -4489,7 +3887,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -4509,7 +3907,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -4529,7 +3927,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 2928 + i32.const 960 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $32 @@ -4537,7 +3935,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 2960 + i32.const 992 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $32 @@ -4556,7 +3954,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 512 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -4570,153 +3968,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 192 - i32.const 320 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 384 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) (local $buffer i32) @@ -4748,6 +3999,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -4800,22 +4055,16 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2224 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2688 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2992 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2032 + i32.const 720 local.get $0 call $~lib/rt/itcms/__visit - i32.const 816 + i32.const 1024 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1872 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit ) @@ -5013,6 +4262,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -5039,6 +4292,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -5065,6 +4322,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -5091,6 +4352,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -5120,6 +4385,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -5190,6 +4459,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -5257,6 +4530,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -5286,6 +4563,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index 1bbb3d84d1..ae5635a9ce 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -3,12 +3,12 @@ (type $1 (func)) (type $2 (func (param i32 i32))) (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32 i32 i32))) (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32 i32))) - (type $9 (func (param i32 i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -19,290 +19,67 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36952)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34984)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "\1c") - (data $4.1 (i32.const 1176) "\02\00\00\00\02\00\00\00:") - (data $5 (i32.const 1196) "|") - (data $5.1 (i32.const 1208) "\02\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 $6 (i32.const 1324) "<") - (data $6.1 (i32.const 1336) "\02\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 $7 (i32.const 1388) "\1c") - (data $7.1 (i32.const 1400) "\02\00\00\00\02\00\00\000") - (data $8 (i32.const 1420) "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 $9 (i32.const 1820) "\1c\04") - (data $9.1 (i32.const 1832) "\02\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 $10 (i32.const 2876) "\\") - (data $10.1 (i32.const 2888) "\02\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 $11 (i32.const 2972) "<") - (data $11.1 (i32.const 2984) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $12 (i32.const 3036) "<") - (data $12.1 (i32.const 3048) "\02\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 $13 (i32.const 3100) "<") - (data $13.1 (i32.const 3112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $16 (i32.const 3228) "<") - (data $16.1 (i32.const 3240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $17 (i32.const 3292) ",") - (data $17.1 (i32.const 3304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $20 (i32.const 3436) ",") - (data $20.1 (i32.const 3448) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $21 (i32.const 3484) ",") - (data $21.1 (i32.const 3496) "\02\00\00\00\1c\00\00\00i\00n\00f\00e\00r\00-\00a\00r\00r\00a\00y\00.\00t\00s") - (data $22 (i32.const 3532) ",") - (data $22.1 (i32.const 3544) "\01\00\00\00\18") - (data $22.2 (i32.const 3558) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@") - (data $23 (i32.const 3580) "\1c") - (data $23.1 (i32.const 3592) "\01\00\00\00\08\00\00\00\01\00\00\00\ff\ff\ff\ff") - (data $24 (i32.const 3612) ",") - (data $24.1 (i32.const 3624) "\01\00\00\00\18") - (data $24.2 (i32.const 3638) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@") - (data $25 (i32.const 3660) "\1c") - (data $25.1 (i32.const 3672) "\01\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") - (data $26 (i32.const 3692) ",") - (data $26.1 (i32.const 3704) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $27 (i32.const 3740) "\1c") - (data $27.1 (i32.const 3752) "\02\00\00\00\02\00\00\00a") - (data $28 (i32.const 3772) "\1c") - (data $28.1 (i32.const 3784) "\01\00\00\00\08\00\00\00\00\00\00\00\b0\0e") - (data $29 (i32.const 3804) "\1c") - (data $29.1 (i32.const 3816) "\01\00\00\00\04") - (data $30 (i32.const 3836) "\1c") - (data $30.1 (i32.const 3848) "\01\00\00\00\08") - (data $31 (i32.const 3868) "\1c") - (data $31.1 (i32.const 3880) "\01\00\00\00\08\00\00\00\01") - (data $32 (i32.const 3900) "\1c") - (data $32.1 (i32.const 3912) "\01\00\00\00\08\00\00\00\00\00\00\00\01") - (data $33 (i32.const 3932) "\1c") - (data $33.1 (i32.const 3944) "\01\00\00\00\04\00\00\00\01") - (data $34 (i32.const 3964) "\1c") - (data $34.1 (i32.const 3976) "\01\00\00\00\04\00\00\00\02") - (data $35 (i32.const 3996) "|") - (data $35.1 (i32.const 4008) "\02\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 $36 (i32.const 4128) "\r\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\1a\00\00\02\01\00\00\02\19\00\00 \00\00\00\02a\00\00\02a\00\00\02\01\00\00\02A") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\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 $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1324) ",") + (data $6.1 (i32.const 1336) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1468) ",") + (data $9.1 (i32.const 1480) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $10 (i32.const 1516) ",") + (data $10.1 (i32.const 1528) "\02\00\00\00\1c\00\00\00i\00n\00f\00e\00r\00-\00a\00r\00r\00a\00y\00.\00t\00s") + (data $11 (i32.const 1564) ",") + (data $11.1 (i32.const 1576) "\01\00\00\00\18") + (data $11.2 (i32.const 1590) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@") + (data $12 (i32.const 1612) "\1c") + (data $12.1 (i32.const 1624) "\01\00\00\00\08\00\00\00\01\00\00\00\ff\ff\ff\ff") + (data $13 (i32.const 1644) ",") + (data $13.1 (i32.const 1656) "\01\00\00\00\18") + (data $13.2 (i32.const 1670) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@") + (data $14 (i32.const 1692) "\1c") + (data $14.1 (i32.const 1704) "\01\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") + (data $15 (i32.const 1724) ",") + (data $15.1 (i32.const 1736) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $16 (i32.const 1772) "\1c") + (data $16.1 (i32.const 1784) "\02\00\00\00\02\00\00\00a") + (data $17 (i32.const 1804) "\1c") + (data $17.1 (i32.const 1816) "\01\00\00\00\08\00\00\00\00\00\00\00\00\07") + (data $18 (i32.const 1836) "\1c") + (data $18.1 (i32.const 1848) "\01\00\00\00\04") + (data $19 (i32.const 1868) "\1c") + (data $19.1 (i32.const 1880) "\01\00\00\00\08") + (data $20 (i32.const 1900) "\1c") + (data $20.1 (i32.const 1912) "\01\00\00\00\08\00\00\00\01") + (data $21 (i32.const 1932) "\1c") + (data $21.1 (i32.const 1944) "\01\00\00\00\08\00\00\00\00\00\00\00\01") + (data $22 (i32.const 1964) "\1c") + (data $22.1 (i32.const 1976) "\01\00\00\00\04\00\00\00\01") + (data $23 (i32.const 1996) "\1c") + (data $23.1 (i32.const 2008) "\01\00\00\00\04\00\00\00\02") + (data $24 (i32.const 2028) "|") + (data $24.1 (i32.const 2040) "\02\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 $25 (i32.const 2160) "\r\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\1a\00\00\02\01\00\00\02\19\00\00 \00\00\00\02a\00\00\02a\00\00\02\01\00\00\02A") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 4184 - i32.lt_s - if - i32.const 36976 - i32.const 37024 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1408 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1420 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1420 - 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 1420 - 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 1420 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3248 - call $~lib/rt/itcms/__visit - i32.const 3712 - call $~lib/rt/itcms/__visit - i32.const 4016 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 3056 + i32.const 1744 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 2048 call $~lib/rt/itcms/__visit - i32.const 2896 + i32.const 1088 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -323,7 +100,7 @@ i32.ne if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -356,7 +133,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -365,7 +142,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$167 + block $__inlined_func$~lib/rt/itcms/Object#unlink$155 local.get $0 i32.load offset=4 i32.const -4 @@ -377,19 +154,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36952 + i32.const 34984 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$167 + br $__inlined_func$~lib/rt/itcms/Object#unlink$155 end local.get $0 i32.load offset=8 @@ -397,7 +174,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -426,13 +203,13 @@ i32.const 1 else local.get $1 - i32.const 4128 + i32.const 2160 i32.load i32.gt_u if - i32.const 3248 - i32.const 3312 - i32.const 21 + i32.const 1280 + i32.const 1344 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -440,7 +217,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 4132 + i32.const 2164 i32.add i32.load i32.const 32 @@ -511,7 +288,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -525,7 +302,7 @@ i32.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -571,7 +348,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -654,7 +431,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -668,7 +445,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -729,7 +506,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -762,7 +539,7 @@ i32.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -777,7 +554,7 @@ i32.ne if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -828,7 +605,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -900,7 +677,7 @@ i64.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -925,7 +702,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -952,7 +729,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1024,10 +801,10 @@ if unreachable end - i32.const 36960 + i32.const 34992 i32.const 0 i32.store - i32.const 38528 + i32.const 36560 i32.const 0 i32.store loop $for-loop|0 @@ -1038,7 +815,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36960 + i32.const 34992 i32.add i32.const 0 i32.store offset=4 @@ -1056,7 +833,7 @@ i32.add i32.const 2 i32.shl - i32.const 36960 + i32.const 34992 i32.add i32.const 0 i32.store offset=96 @@ -1074,14 +851,14 @@ br $for-loop|0 end end - i32.const 36960 - i32.const 38532 + i32.const 34992 + i32.const 36564 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36960 + i32.const 34992 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1166,7 +943,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36952 + i32.const 34984 i32.lt_u if local.get $0 @@ -1255,14 +1032,14 @@ i32.ne if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36952 + i32.const 34984 i32.lt_u if local.get $0 @@ -1285,7 +1062,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36952 + i32.const 34984 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1314,7 +1091,7 @@ end if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1398,7 +1175,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1450,7 +1227,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1482,8 +1259,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3056 - i32.const 3120 + i32.const 1088 + i32.const 1152 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1493,7 +1270,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1510,7 +1287,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1543,8 +1320,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3056 - i32.const 3392 + i32.const 1088 + i32.const 1424 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1646,7 +1423,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1661,7 +1438,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1680,7 +1457,7 @@ i32.and if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1796,7 +1573,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1847,205 +1624,40 @@ (func $~start call $start:infer-array ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 4184 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4184 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$172 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$172 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36976 - i32.const 37024 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s if - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1184 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1184 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2992 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) global.get $~lib/memory/__stack_pointer @@ -2053,11 +1665,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s if - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2073,9 +1685,9 @@ i32.load offset=12 i32.eqz if - i32.const 3248 - i32.const 3456 - i32.const 114 + i32.const 1280 + i32.const 1488 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2098,11 +1710,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s if - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2118,9 +1730,9 @@ i32.load offset=12 i32.eqz if - i32.const 3248 - i32.const 3456 - i32.const 114 + i32.const 1280 + i32.const 1488 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2143,11 +1755,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s if - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2164,9 +1776,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3248 - i32.const 3456 - i32.const 114 + i32.const 1280 + i32.const 1488 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2192,11 +1804,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s if - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2213,9 +1825,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3248 - i32.const 3456 - i32.const 114 + i32.const 1280 + i32.const 1488 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2245,7 +1857,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2266,7 +1878,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2295,8 +1907,8 @@ local.get $0 return end - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2314,7 +1926,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2332,9 +1944,9 @@ i32.const 0 i32.lt_s if - i32.const 3248 - i32.const 3456 - i32.const 130 + i32.const 1280 + i32.const 1488 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -2349,7 +1961,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2370,8 +1982,8 @@ i32.const 268435455 i32.gt_u if - i32.const 3712 - i32.const 3456 + i32.const 1744 + i32.const 1488 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -2380,7 +1992,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$155 + block $__inlined_func$~lib/rt/itcms/__renew$143 i32.const 1073741820 local.get $4 i32.const 1 @@ -2423,7 +2035,7 @@ i32.store offset=16 local.get $4 local.set $3 - br $__inlined_func$~lib/rt/itcms/__renew$155 + br $__inlined_func$~lib/rt/itcms/__renew$143 end local.get $5 local.get $7 @@ -2492,8 +2104,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2505,11 +2117,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s if - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2526,9 +2138,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3248 - i32.const 3456 - i32.const 114 + i32.const 1280 + i32.const 1488 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2561,7 +2173,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2571,34 +2183,34 @@ memory.size i32.const 16 i32.shl - i32.const 36952 + i32.const 34984 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/pinSpace - i32.const 3204 - i32.const 3200 + i32.const 1236 + i32.const 1232 i32.store - i32.const 3208 - i32.const 3200 + i32.const 1240 + i32.const 1232 i32.store - i32.const 3200 + i32.const 1232 global.set $~lib/rt/itcms/toSpace - i32.const 3348 - i32.const 3344 + i32.const 1380 + i32.const 1376 i32.store - i32.const 3352 - i32.const 3344 + i32.const 1384 + i32.const 1376 i32.store - i32.const 3344 + i32.const 1376 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 3 @@ -2622,7 +2234,7 @@ i32.const 3 i32.const 3 i32.const 5 - i32.const 3552 + i32.const 1584 call $~lib/rt/__newArray local.tee $0 i32.store offset=8 @@ -2635,7 +2247,7 @@ i32.const 2 i32.const 2 i32.const 6 - i32.const 3600 + i32.const 1632 call $~lib/rt/__newArray local.tee $0 i32.store offset=12 @@ -2663,7 +2275,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1536 i32.const 14 i32.const 3 call $~lib/builtins/abort @@ -2673,7 +2285,7 @@ i32.const 3 i32.const 3 i32.const 5 - i32.const 3632 + i32.const 1664 call $~lib/rt/__newArray local.tee $0 i32.store offset=16 @@ -2686,7 +2298,7 @@ i32.const 3 i32.const 2 i32.const 7 - i32.const 3680 + i32.const 1712 call $~lib/rt/__newArray local.tee $0 i32.store offset=20 @@ -2801,7 +2413,7 @@ i32.const 2 i32.const 2 i32.const 10 - i32.const 3792 + i32.const 1824 call $~lib/rt/__newArray local.tee $0 i32.store offset=68 @@ -2815,7 +2427,7 @@ i32.const 1 i32.const 2 i32.const 11 - i32.const 3824 + i32.const 1856 call $~lib/rt/__newArray local.tee $0 i32.store offset=72 @@ -2837,7 +2449,7 @@ i32.const 2 i32.const 2 i32.const 11 - i32.const 3856 + i32.const 1888 call $~lib/rt/__newArray local.tee $0 i32.store offset=76 @@ -2859,7 +2471,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 3888 + i32.const 1920 call $~lib/rt/__newArray local.tee $0 i32.store offset=80 @@ -2877,7 +2489,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 3920 + i32.const 1952 call $~lib/rt/__newArray local.tee $0 i32.store offset=84 @@ -2905,7 +2517,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 3952 + i32.const 1984 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -2913,7 +2525,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 3984 + i32.const 2016 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -2926,7 +2538,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2939,9 +2551,9 @@ i32.load offset=12 i32.eqz if - i32.const 3248 - i32.const 3456 - i32.const 114 + i32.const 1280 + i32.const 1488 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2958,9 +2570,9 @@ local.get $0 i32.eqz if - i32.const 4016 - i32.const 3456 - i32.const 118 + i32.const 2048 + i32.const 1488 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -2975,8 +2587,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2990,11 +2602,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s if - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3084,7 +2696,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -3107,7 +2719,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4184 + i32.const 2216 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -3160,8 +2772,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36976 - i32.const 37024 + i32.const 35008 + i32.const 35056 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index 530aa175b8..b5c328aee6 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -2,22 +2,24 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 f32 i32 i32) (result i32))) - (type $7 (func (param f32) (result f32))) - (type $8 (func (param f64 f64) (result i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i64 i32))) - (type $12 (func (param i64 i32) (result i32))) - (type $13 (func (param i32 i64 i32 i32))) - (type $14 (func (param i32 i32 i32 i32))) - (type $15 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param f32) (result f32))) + (type $9 (func (param f64 f64) (result i32))) + (type $10 (func (param i32 i32 i64) (result i32))) + (type $11 (func (result i32))) + (type $12 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $infer-generic/arr i32 (i32.const 128)) (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (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)) @@ -29,38 +31,25 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $infer-generic/arr i32 (i32.const 2496)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2560)) - (global $~lib/memory/__data_end i32 (i32.const 2604)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35372)) - (global $~lib/memory/__heap_base i32 (i32.const 35372)) + (global $~lib/rt/__rtti_base i32 (i32.const 592)) + (global $~lib/memory/__data_end i32 (i32.const 636)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33404)) + (global $~lib/memory/__heap_base i32 (i32.const 33404)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00n\00f\00e\00r\00-\00g\00e\00n\00e\00r\00i\00c\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2444) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") - (data $21 (i32.const 2476) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\a0\t\00\00\a0\t\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2560) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\19\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00n\00f\00e\00r\00-\00g\00e\00n\00e\00r\00i\00c\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") + (data $2 (i32.const 108) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00`\00\00\00`\00\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 444) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 496) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 592) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\19\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:infer-generic~anonymous|0) (export "test1" (func $infer-generic/test1)) @@ -77,19 +66,33 @@ f64.eq return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + (func $start:infer-generic~anonymous|0 (param $acc i32) (param $cur f32) (param $$2 i32) (param $$3 i32) (result i32) + local.get $acc + if (result i32) + local.get $cur + f32.const 0 + f32.ne + else + i32.const 0 + end + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) local.get $this - i32.load offset=16 + i32.load offset=12 ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u + i32.load offset=4 + ) + (func $infer-generic/inferDefault (param $a i32) (result i32) + local.get $a return ) + (func $infer-generic/Ref#set:x (param $this i32) (param $x i32) + local.get $this + local.get $x + i32.store + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -154,7 +157,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 272 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -224,7 +227,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 272 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -241,7 +244,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 272 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -271,9 +274,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 400 + i32.const 464 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -340,7 +343,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 272 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -492,7 +495,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -512,7 +515,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -575,7 +578,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -728,7 +731,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -745,7 +748,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -834,7 +837,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -877,7 +880,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -895,7 +898,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -963,7 +966,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1080,7 +1083,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1126,7 +1129,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1158,7 +1161,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1402,7 +1405,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1622,7 +1625,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 272 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1733,8 +1736,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 208 + i32.const 544 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1836,7 +1839,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1907,7 +1910,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2064,7 +2067,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2179,7 +2182,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2199,7 +2202,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 544 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2247,8 +2250,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 208 + i32.const 272 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2293,449 +2296,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $start:infer-generic~anonymous|0 (param $acc i32) (param $cur f32) (param $$2 i32) (param $$3 i32) (result i32) - local.get $acc - if (result i32) - local.get $cur - f32.const 0 - f32.ne - else - i32.const 0 - end - ) - (func $~lib/array/Array#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $infer-generic/inferDefault (param $a i32) (result i32) - local.get $a - return - ) - (func $infer-generic/Ref#set:x (param $this i32) (param $x i32) - local.get $this - local.get $x - i32.store - ) (func $infer-generic/inferDefault (param $a i32) (result i32) local.get $a return @@ -2777,218 +2337,137 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35392 - i32.const 35440 + i32.const 33424 + i32.const 33472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $export:infer-generic/test2 (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end + local.get $0 + call $infer-generic/test2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize + i32.const 4 i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:infer-generic/test3 (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $infer-generic/test3 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.get $1 ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $export:infer-generic/test4 (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $left - local.set $2 + local.get $0 + i32.store + local.get $0 + call $infer-generic/test4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:infer-generic/test5 (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 + local.get $0 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $0 + call $infer-generic/test5 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:infer-generic/inferAssert (param $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $infer-generic/inferAssert + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return ) (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + 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 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#reduce (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) (local $acc i32) @@ -3138,30 +2617,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace f64.const 1 f64.const 1 call $infer-generic/inferCompatible i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -3173,7 +2635,7 @@ local.get $2 i32.store local.get $2 - i32.const 2544 + i32.const 176 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -3189,12 +2651,29 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 70 i32.const 1 call $~lib/builtins/abort unreachable end + 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 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 496 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-generic/Ref#constructor @@ -3220,7 +2699,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 71 i32.const 1 call $~lib/builtins/abort @@ -3350,7 +2829,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2400 + i32.const 32 i32.const 75 i32.const 3 call $~lib/builtins/abort @@ -3370,153 +2849,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3545,98 +2877,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $export:infer-generic/test2 (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 - local.get $0 - i32.store - local.get $0 - call $infer-generic/test2 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:infer-generic/test3 (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 - local.get $0 - i32.store - local.get $0 - call $infer-generic/test3 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:infer-generic/test4 (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 - local.get $0 - i32.store - local.get $0 - call $infer-generic/test4 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:infer-generic/test5 (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 - local.get $0 - i32.store - local.get $0 - call $infer-generic/test5 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:infer-generic/inferAssert (param $0 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 - local.get $0 - i32.store - local.get $0 - call $infer-generic/inferAssert - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $infer-generic/arr @@ -3646,16 +2886,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 400 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 208 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3799,6 +3033,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -3825,6 +3063,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3849,6 +3091,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3873,6 +3119,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3897,6 +3147,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index 78fa427ada..396c166f2d 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1,14 +1,15 @@ (module (type $0 (func)) (type $1 (func (param i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 f32 i32 i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 f32 i32 i32) (result i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (param i32 i32) (result i32))) (type $6 (func (param i32 i32 i64))) (type $7 (func (result i32))) (type $8 (func (param f32) (result f32))) - (type $9 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -19,48 +20,27 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36396)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34428)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00 \00\00\00i\00n\00f\00e\00r\00-\00g\00e\00n\00e\00r\00i\00c\00.\00t\00s") - (data $20 (i32.const 3468) "\1c") - (data $20.1 (i32.const 3480) "\01\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") - (data $21 (i32.const 3500) ",") - (data $21.1 (i32.const 3512) "\04\00\00\00\10\00\00\00\a0\r\00\00\a0\r\00\00\0c\00\00\00\03") - (data $22 (i32.const 3548) "\1c") - (data $22.1 (i32.const 3560) "\05\00\00\00\08\00\00\00\01") - (data $23 (i32.const 3584) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\19\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00 \00\00\00i\00n\00f\00e\00r\00-\00g\00e\00n\00e\00r\00i\00c\00.\00t\00s") + (data $1 (i32.const 1100) "\1c") + (data $1.1 (i32.const 1112) "\01\00\00\00\0c\00\00\00\00\00\80?\00\00\00@\00\00@@") + (data $2 (i32.const 1132) ",") + (data $2.1 (i32.const 1144) "\04\00\00\00\10\00\00\00`\04\00\00`\04\00\00\0c\00\00\00\03") + (data $3 (i32.const 1180) "\1c") + (data $3.1 (i32.const 1192) "\05\00\00\00\08\00\00\00\01") + (data $4 (i32.const 1212) "<") + (data $4.1 (i32.const 1224) "\02\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 $5 (i32.const 1276) "<") + (data $5.1 (i32.const 1288) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $9 (i32.const 1468) ",") + (data $9.1 (i32.const 1480) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $11 (i32.const 1548) "<") + (data $11.1 (i32.const 1560) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $12 (i32.const 1616) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\19\00\00\00\00\00\00 ") (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:infer-generic~anonymous|0) (export "test1" (func $infer-generic/test1)) @@ -71,18 +51,22 @@ (export "test5" (func $export:infer-generic/test2)) (export "inferAssert" (func $export:infer-generic/inferAssert)) (start $~start) + (func $start:infer-generic~anonymous|0 (param $0 i32) (param $1 f32) (param $2 i32) (param $3 i32) (result i32) + local.get $1 + f32.const 0 + f32.ne + i32.const 0 + local.get $0 + select + ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3520 - call $~lib/rt/itcms/__visit - i32.const 1344 - call $~lib/rt/itcms/__visit i32.const 1152 call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 1424 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1232 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -103,7 +87,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1296 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -151,7 +135,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1296 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -160,7 +144,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$151 + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 local.get $1 i32.load offset=4 i32.const -4 @@ -172,19 +156,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36396 + i32.const 34428 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1296 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$151 + br $__inlined_func$~lib/rt/itcms/Object#unlink$139 end local.get $1 i32.load offset=8 @@ -192,7 +176,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1296 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -221,13 +205,13 @@ i32.const 1 else local.get $0 - i32.const 3584 + i32.const 1616 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1424 + i32.const 1488 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -235,7 +219,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3588 + i32.const 1620 i32.add i32.load i32.const 32 @@ -287,7 +271,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -301,7 +285,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -347,7 +331,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -430,7 +414,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -444,7 +428,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -505,7 +489,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -538,7 +522,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -553,7 +537,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -604,7 +588,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -676,7 +660,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -701,7 +685,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -728,7 +712,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -800,10 +784,10 @@ if unreachable end - i32.const 36400 + i32.const 34432 i32.const 0 i32.store - i32.const 37968 + i32.const 36000 i32.const 0 i32.store loop $for-loop|0 @@ -814,7 +798,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36400 + i32.const 34432 i32.add i32.const 0 i32.store offset=4 @@ -832,7 +816,7 @@ i32.add i32.const 2 i32.shl - i32.const 36400 + i32.const 34432 i32.add i32.const 0 i32.store offset=96 @@ -850,14 +834,14 @@ br $for-loop|0 end end - i32.const 36400 - i32.const 37972 + i32.const 34432 + i32.const 36004 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36400 + i32.const 34432 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -942,7 +926,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36396 + i32.const 34428 i32.lt_u if local.get $0 @@ -1031,14 +1015,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1296 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36396 + i32.const 34428 i32.lt_u if local.get $0 @@ -1061,7 +1045,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36396 + i32.const 34428 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1090,7 +1074,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1174,7 +1158,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1226,7 +1210,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1258,8 +1242,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1232 + i32.const 1296 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1269,7 +1253,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1286,7 +1270,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1319,8 +1303,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1232 + i32.const 1568 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1422,7 +1406,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1437,7 +1421,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1456,7 +1440,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1568 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1561,212 +1545,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3628 - i32.lt_s - if - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $start:infer-generic~anonymous|0 (param $0 i32) (param $1 f32) (param $2 i32) (param $3 i32) (result i32) - local.get $1 - f32.const 0 - f32.ne - i32.const 0 - local.get $0 - select - ) (func $infer-generic/test1 (param $0 f32) (result f32) local.get $0 ) @@ -1782,7 +1560,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1791,68 +1569,36 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - memory.size - i32.const 16 - i32.shl - i32.const 36396 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1152 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3568 + i32.const 1200 i32.store offset=4 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 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1152 i32.store - i32.const 3532 + i32.const 1164 i32.load local.set $3 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1152 i32.store local.get $1 local.get $3 - i32.const 3532 + i32.const 1164 i32.load local.tee $4 local.get $3 @@ -1862,9 +1608,9 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1152 i32.store offset=4 - i32.const 3524 + i32.const 1156 i32.load local.get $1 i32.const 2 @@ -1873,15 +1619,15 @@ f32.load local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 1152 i32.store local.get $0 local.get $2 local.get $1 - i32.const 3520 - i32.const 3568 + i32.const 1152 + i32.const 1200 i32.load - call_indirect (type $5) + call_indirect (type $3) local.set $0 local.get $1 i32.const 1 @@ -1894,13 +1640,45 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 34428 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/pinSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/toSpace + i32.const 1524 + i32.const 1520 + i32.store + i32.const 1528 + i32.const 1520 + i32.store + i32.const 1520 + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer 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 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1921,7 +1699,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1970,213 +1748,13 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36416 - i32.const 36464 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$157 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$157 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3628 - i32.lt_s - if - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) (func $export:infer-generic/test2 (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2184,7 +1762,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2195,7 +1773,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2215,8 +1793,8 @@ local.get $0 return end - i32.const 36416 - i32.const 36464 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2229,7 +1807,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2240,7 +1818,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2253,7 +1831,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 75 i32.const 3 call $~lib/builtins/abort @@ -2275,13 +1853,48 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36416 - i32.const 36464 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 1660 + i32.lt_s + if + i32.const 34448 + i32.const 34496 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner1 block $folding-inner0 @@ -2314,7 +1927,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2341,7 +1954,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2359,8 +1972,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36416 - i32.const 36464 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/inlining-blocklocals.debug.wat b/tests/compiler/inlining-blocklocals.debug.wat index d52e582da8..b4a4c34c96 100644 --- a/tests/compiler/inlining-blocklocals.debug.wat +++ b/tests/compiler/inlining-blocklocals.debug.wat @@ -1,2697 +1,21 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $inlining-blocklocals/b (mut i32) (i32.const 2)) (global $inlining-blocklocals/theCall_a (mut i32) (i32.const 0)) (global $inlining-blocklocals/theCall_b (mut i32) (i32.const 0)) (global $inlining-blocklocals/theCall_c (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2464)) - (global $~lib/memory/__data_end i32 (i32.const 2484)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35252)) - (global $~lib/memory/__heap_base i32 (i32.const 35252)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32860)) + (global $~lib/memory/__heap_base i32 (i32.const 32860)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00-\00b\00l\00o\00c\00k\00l\00o\00c\00a\00l\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2464) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00-\00b\00l\00o\00c\00k\00l\00o\00c\00a\00l\00s\00.\00t\00s\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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $inlining-blocklocals/test (local $a i32) (local $1 i32) @@ -2732,7 +56,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -2744,7 +68,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 19 i32.const 3 call $~lib/builtins/abort @@ -2756,7 +80,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 20 i32.const 3 call $~lib/builtins/abort @@ -2768,7 +92,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -2776,23 +100,6 @@ end ) (func $start:inlining-blocklocals - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $inlining-blocklocals/test ) (func $~start @@ -2803,92 +110,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35280 - i32.const 35328 + i32.const 32880 + i32.const 32928 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2897,322 +128,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/inlining-blocklocals.release.wat b/tests/compiler/inlining-blocklocals.release.wat index b466425f0b..d162825303 100644 --- a/tests/compiler/inlining-blocklocals.release.wat +++ b/tests/compiler/inlining-blocklocals.release.wat @@ -1,1782 +1,18 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $inlining-blocklocals/b (mut i32) (i32.const 2)) (global $inlining-blocklocals/theCall_b (mut i32) (i32.const 0)) (global $inlining-blocklocals/theCall_c (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/memory/__stack_pointer (mut i32) (i32.const 36276)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33884)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "L") - (data $19.1 (i32.const 3416) "\02\00\00\00.\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00-\00b\00l\00o\00c\00k\00l\00o\00c\00a\00l\00s\00.\00t\00s") - (data $20 (i32.const 3488) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "L") + (data $0.1 (i32.const 1048) "\02\00\00\00.\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00-\00b\00l\00o\00c\00k\00l\00o\00c\00a\00l\00s\00.\00t\00s") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$120 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36276 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$120 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3488 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3492 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36288 - i32.const 0 - i32.store - i32.const 37856 - 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 36288 - 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 36288 - 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 36288 - i32.const 37860 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36288 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36276 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36276 - 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 - local.tee $0 - i32.const 36276 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3508 - i32.lt_s - if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36276 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $inlining-blocklocals/b local.tee $0 i32.const 1 @@ -1791,7 +27,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 19 i32.const 3 call $~lib/builtins/abort @@ -1802,235 +38,46 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 20 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$126 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$126 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3508 + i32.const 1116 i32.lt_s if - i32.const 36304 - i32.const 36352 + i32.const 33904 + i32.const 33952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 128f4723f6..b652eae280 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -1,22 +1,19 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func)) + (type $2 (func)) + (type $3 (func (param i32))) (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32) (result f64))) - (type $8 (func (param i32 i32 i64) (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param f64) (result f64))) - (type $13 (func (param i32 i32 i32 i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i32) (result f64))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (param f64) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $inlining/constantGlobal 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/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -25,38 +22,30 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2464)) - (global $~lib/memory/__data_end i32 (i32.const 2500)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35268)) - (global $~lib/memory/__heap_base i32 (i32.const 35268)) + (global $~lib/rt/__rtti_base i32 (i32.const 496)) + (global $~lib/memory/__data_end i32 (i32.const 532)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33300)) + (global $~lib/memory/__heap_base i32 (i32.const 33300)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2464) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00") + (data $1 (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 284) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 496) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) (export "test" (func $inlining/test)) @@ -70,297 +59,541 @@ i32.add return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 + (func $inlining/func_fe~anonymous|0 (param $a i32) (result i32) + local.get $a ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 + (func $inlining/test_funcs + (local $a f32) + (local $b f64) + (local $a|2 i32) + (local $a|3 i32) + (local $a|4 i32) + (local $a|5 i32) + (local $a|6 i32) + (local $a|7 i32) + (local $a|8 i32) + (local $a|9 i32) + (local $b|10 i32) + (local $e i32) + (local $c i32) + (local $d i32) + (local $a|14 i32) + (local $b|15 i32) + (local $e|16 i32) + (local $c|17 i32) + (local $d|18 i32) + (local $a|19 i32) + (local $a|20 i32) + (local $b|21 i32) + (local $foo i32) + (local $this i32) + (local $a|24 i32) + (local $b|25 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + f32.const -1 + local.set $a + f64.const -2 + local.set $b + block $inlining/func_ii|inlined.0 (result i32) + i32.const 42 + local.set $a|2 + local.get $a|2 + i32.const 42 + i32.eq if i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color + br $inlining/func_ii|inlined.0 + end + local.get $a|2 + i32.const 42 + i32.lt_s + if (result i32) + i32.const 2 + else i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end + br $inlining/func_ii|inlined.0 end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 + i32.const 1 i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 + drop + block $inlining/func_ii|inlined.1 (result i32) + i32.const 41 + local.set $a|3 + local.get $a|3 + i32.const 42 i32.eq + if + i32.const 1 + br $inlining/func_ii|inlined.1 + end + local.get $a|3 + i32.const 42 + i32.lt_s if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u + i32.const 2 else - i32.const 0 + i32.const 3 end - i32.eqz + br $inlining/func_ii|inlined.1 + end + i32.const 2 + i32.eq + drop + block $inlining/func_ii|inlined.2 (result i32) + i32.const 43 + local.set $a|4 + local.get $a|4 + i32.const 42 + i32.eq if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + i32.const 1 + br $inlining/func_ii|inlined.2 end - return + local.get $a|4 + i32.const 42 + i32.lt_s + if (result i32) + i32.const 2 + else + i32.const 3 + end + br $inlining/func_ii|inlined.2 end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 + i32.const 3 + i32.eq drop - local.get $prev - i32.eqz - if + block $inlining/func_ii_opt|inlined.0 (result i32) i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.set $a|5 + local.get $a|5 + br $inlining/func_ii_opt|inlined.0 + end + i32.const 0 + i32.eq + drop + block $inlining/func_ii_opt|inlined.1 (result i32) + i32.const 1 + local.set $a|6 + local.get $a|6 + br $inlining/func_ii_opt|inlined.1 + end + i32.const 1 + i32.eq + drop + block $inlining/func_ii_opt|inlined.3 (result i32) + block $inlining/func_ii_opt|inlined.2 (result i32) + i32.const 1 + local.set $a|7 + local.get $a|7 + br $inlining/func_ii_opt|inlined.2 + end + local.set $a|8 + local.get $a|8 + br $inlining/func_ii_opt|inlined.3 + end + i32.const 1 + i32.eq + drop + block $inlining/func_ii_loc|inlined.0 (result i32) + i32.const 2 + local.set $a|9 + local.get $a|9 + local.set $b|10 + i32.const 1 + drop + local.get $b|10 + local.set $c + local.get $c + local.set $d + local.get $d + i32.const 1 + i32.add + local.set $e + local.get $e + br $inlining/func_ii_loc|inlined.0 + end + i32.const 3 + i32.eq + drop + block $inlining/func_ii_loc|inlined.1 (result i32) + i32.const 3 + local.set $a|14 + local.get $a|14 + local.set $b|15 + i32.const 1 + drop + local.get $b|15 + local.set $c|17 + local.get $c|17 + local.set $d|18 + local.get $d|18 + i32.const 1 + i32.add + local.set $e|16 + local.get $e|16 + br $inlining/func_ii_loc|inlined.1 + end + i32.const 4 + i32.eq + drop + i32.const 0 + local.set $a|19 + i32.const 2 + i32.const 1 + global.set $~argumentsLength + block $inlining/func_fe|inlined.0 (result i32) + i32.const 80 + br $inlining/func_fe|inlined.0 end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr i32.load - i32.gt_u + call_indirect (type $0) + i32.const 2 + i32.eq + i32.eqz if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 + i32.const 0 + i32.const 32 + i32.const 69 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul + block $inlining/Foo.method_static|inlined.0 (result i32) + i32.const 42 + local.set $a|20 + i32.const 2 + local.set $b|21 + local.get $a|20 + local.get $b|21 + i32.add + br $inlining/Foo.method_static|inlined.0 + end + i32.const 44 + i32.eq + drop + global.get $~lib/memory/__stack_pointer + i32.const 123 + local.tee $foo + i32.store + block $inlining/Foo#method_this|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $foo + local.tee $this + i32.store offset=4 + i32.const 43 + local.set $a|24 + i32.const 3 + local.set $b|25 + local.get $this + br $inlining/Foo#method_this|inlined.0 + end + i32.const 123 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) + (func $inlining/Baz#set:b (param $this i32) (param $b i32) local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return + local.get $b + i32.store offset=4 ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) local.get $this local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev + local.get $space + return ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) local.get $this - call $~lib/rt/itcms/Object#unlink + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) local.get $this - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) local.get $this - 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 + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return ) - (func $~lib/rt/itcms/__visit (param $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev + i32.const 1 + drop + local.get $prev + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u + if + i32.const 304 + i32.const 368 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + return + ) + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 176 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + 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 $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr + i32.eqz if return end @@ -485,7 +718,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -505,7 +738,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -568,7 +801,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -721,7 +954,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -738,7 +971,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -827,7 +1060,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -870,7 +1103,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -888,7 +1121,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -956,7 +1189,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1073,7 +1306,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1119,7 +1352,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1151,7 +1384,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1395,7 +1628,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1615,7 +1848,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 176 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1726,8 +1959,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 112 + i32.const 448 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1829,7 +2062,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1900,7 +2133,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 448 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2045,919 +2278,246 @@ (local $block|7 i32) local.get $block call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $inlining/func_fe~anonymous|0 (param $a i32) (result i32) - local.get $a - ) - (func $inlining/test_funcs - (local $a f32) - (local $b f64) - (local $a|2 i32) - (local $a|3 i32) - (local $a|4 i32) - (local $a|5 i32) - (local $a|6 i32) - (local $a|7 i32) - (local $a|8 i32) - (local $a|9 i32) - (local $b|10 i32) - (local $e i32) - (local $c i32) - (local $d i32) - (local $a|14 i32) - (local $b|15 i32) - (local $e|16 i32) - (local $c|17 i32) - (local $d|18 i32) - (local $a|19 i32) - (local $a|20 i32) - (local $b|21 i32) - (local $foo i32) - (local $this i32) - (local $a|24 i32) - (local $b|25 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 - f32.const -1 - local.set $a - f64.const -2 - local.set $b - block $inlining/func_ii|inlined.0 (result i32) - i32.const 42 - local.set $a|2 - local.get $a|2 - i32.const 42 - i32.eq - if - i32.const 1 - br $inlining/func_ii|inlined.0 - end - local.get $a|2 - i32.const 42 - i32.lt_s - if (result i32) - i32.const 2 - else - i32.const 3 - end - br $inlining/func_ii|inlined.0 - end - i32.const 1 - i32.eq - drop - block $inlining/func_ii|inlined.1 (result i32) - i32.const 41 - local.set $a|3 - local.get $a|3 - i32.const 42 - i32.eq - if - i32.const 1 - br $inlining/func_ii|inlined.1 - end - local.get $a|3 - i32.const 42 - i32.lt_s - if (result i32) - i32.const 2 - else - i32.const 3 - end - br $inlining/func_ii|inlined.1 - end - i32.const 2 - i32.eq - drop - block $inlining/func_ii|inlined.2 (result i32) - i32.const 43 - local.set $a|4 - local.get $a|4 - i32.const 42 - i32.eq - if - i32.const 1 - br $inlining/func_ii|inlined.2 - end - local.get $a|4 - i32.const 42 - i32.lt_s - if (result i32) - i32.const 2 - else - i32.const 3 - end - br $inlining/func_ii|inlined.2 - end - i32.const 3 - i32.eq - drop - block $inlining/func_ii_opt|inlined.0 (result i32) - i32.const 0 - local.set $a|5 - local.get $a|5 - br $inlining/func_ii_opt|inlined.0 - end - i32.const 0 - i32.eq - drop - block $inlining/func_ii_opt|inlined.1 (result i32) - i32.const 1 - local.set $a|6 - local.get $a|6 - br $inlining/func_ii_opt|inlined.1 - end + local.set $blockInfo i32.const 1 - i32.eq drop - block $inlining/func_ii_opt|inlined.3 (result i32) - block $inlining/func_ii_opt|inlined.2 (result i32) - i32.const 1 - local.set $a|7 - local.get $a|7 - br $inlining/func_ii_opt|inlined.2 - end - local.set $a|8 - local.get $a|8 - br $inlining/func_ii_opt|inlined.3 + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable end - i32.const 1 - i32.eq - drop - block $inlining/func_ii_loc|inlined.0 (result i32) + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $block + local.get $size + local.get $blockInfo i32.const 2 - local.set $a|9 - local.get $a|9 - local.set $b|10 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub i32.const 1 - drop - local.get $b|10 - local.set $c - local.get $c - local.set $d - local.get $d + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo i32.const 1 - i32.add - local.set $e - local.get $e - br $inlining/func_ii_loc|inlined.0 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo end - i32.const 3 - i32.eq - drop - block $inlining/func_ii_loc|inlined.1 (result i32) - i32.const 3 - local.set $a|14 - local.get $a|14 - local.set $b|15 + ) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block + i32.eqz + if + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block i32.const 1 drop - local.get $b|15 - local.set $c|17 - local.get $c|17 - local.set $d|18 - local.get $d|18 - i32.const 1 - i32.add - local.set $e|16 - local.get $e|16 - br $inlining/func_ii_loc|inlined.1 + local.get $block + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - i32.const 4 - i32.eq - drop - i32.const 0 - local.set $a|19 - i32.const 2 i32.const 1 - global.set $~argumentsLength - block $inlining/func_fe|inlined.0 (result i32) - i32.const 2448 - br $inlining/func_fe|inlined.0 - end - i32.load - call_indirect (type $0) - i32.const 2 - i32.eq + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u i32.eqz if i32.const 0 - i32.const 2400 - i32.const 69 - i32.const 3 + i32.const 448 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - block $inlining/Foo.method_static|inlined.0 (result i32) - i32.const 42 - local.set $a|20 - i32.const 2 - local.set $b|21 - local.get $a|20 - local.get $b|21 - i32.add - br $inlining/Foo.method_static|inlined.0 - end - i32.const 44 - i32.eq + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock + i32.const 0 drop - global.get $~lib/memory/__stack_pointer - i32.const 123 - local.tee $foo - i32.store - block $inlining/Foo#method_this|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $foo - local.tee $this - i32.store offset=4 - i32.const 43 - local.set $a|24 - i32.const 3 - local.set $b|25 - local.get $this - br $inlining/Foo#method_this|inlined.0 - end - i32.const 123 - i32.eq + local.get $block + return + ) + (func $~lib/rt/tlsf/__alloc (param $size i32) (result i32) + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 2400 - i32.const 72 - i32.const 3 + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u + if + i32.const 112 + i32.const 176 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 $size i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $inlining/Baz#set:b (param $this i32) (param $b i32) - local.get $this - local.get $b - i32.store offset=4 + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill + local.get $ptr + return ) (func $inlining/Baz#set:a (param $this i32) (param $a i32) local.get $this @@ -2991,6 +2551,19 @@ i32.load offset=12 ) (func $start:inlining + call $inlining/test + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $inlining/test_funcs memory.size i32.const 16 i32.shl @@ -2999,28 +2572,15 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 240 + i32.const 224 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 272 + i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 416 + i32.const 400 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace - call $inlining/test - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 10 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $inlining/test_funcs call $inlining/test_ctor ) (func $~lib/math/NativeMath.cbrt (param $x f64) (result f64) @@ -3217,20 +2777,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 33328 + i32.const 33376 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3239,196 +2795,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $inlining/test_ctor (local $this i32) @@ -3546,7 +2933,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 96 i32.const 3 call $~lib/builtins/abort @@ -3564,7 +2951,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -3582,7 +2969,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -3600,7 +2987,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 99 i32.const 3 call $~lib/builtins/abort @@ -3611,165 +2998,12 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 304 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 112 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3847,6 +3081,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index 00bba309b9..c3c7bc696f 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -1,14 +1,15 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) - (type $3 (func (result i32))) + (type $1 (func (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32) (result i32))) (type $4 (func (param i32))) (type $5 (func (param i32 i32))) - (type $6 (func (param i32 i32 i32) (result f64))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param f64) (result f64))) - (type $9 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32) (result i32))) + (type $7 (func (param i32 i32 i32) (result f64))) + (type $8 (func (param i32 i32 i64))) + (type $9 (func (param f64) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -19,45 +20,24 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36292)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34324)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s") - (data $20 (i32.const 3452) "\1c") - (data $20.1 (i32.const 3464) "\04\00\00\00\08\00\00\00\01") - (data $21 (i32.const 3488) "\08\00\00\00 \00\00\00 \00\00\00 ") - (data $21.1 (i32.const 3512) " \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s") + (data $1 (i32.const 1084) "\1c") + (data $1.1 (i32.const 1096) "\04\00\00\00\08\00\00\00\01") + (data $2 (i32.const 1116) "<") + (data $2.1 (i32.const 1128) "\02\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 $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1308) "<") + (data $6.1 (i32.const 1320) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1372) ",") + (data $7.1 (i32.const 1384) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1452) "<") + (data $9.1 (i32.const 1464) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1520) "\08\00\00\00 \00\00\00 \00\00\00 ") + (data $10.1 (i32.const 1544) " \00\00\00 \00\00\00 ") (table $0 2 2 funcref) (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) (export "test" (func $inlining/test)) @@ -68,16 +48,15 @@ (func $inlining/test (result i32) i32.const 3 ) + (func $inlining/func_fe~anonymous|0 (param $0 i32) (result i32) + i32.const 2 + ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 1328 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1136 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -98,7 +77,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1200 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -146,7 +125,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1200 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -155,7 +134,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$138 + block $__inlined_func$~lib/rt/itcms/Object#unlink$126 local.get $1 i32.load offset=4 i32.const -4 @@ -167,19 +146,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36292 + i32.const 34324 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1200 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$138 + br $__inlined_func$~lib/rt/itcms/Object#unlink$126 end local.get $1 i32.load offset=8 @@ -187,7 +166,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1200 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -216,13 +195,13 @@ i32.const 1 else local.get $0 - i32.const 3488 + i32.const 1520 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1328 + i32.const 1392 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -230,7 +209,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3492 + i32.const 1524 i32.add i32.load i32.const 32 @@ -282,7 +261,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -296,7 +275,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -342,7 +321,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -425,7 +404,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -439,7 +418,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -500,7 +479,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -533,7 +512,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -548,7 +527,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -599,7 +578,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -671,7 +650,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -696,7 +675,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -723,7 +702,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -795,10 +774,10 @@ if unreachable end - i32.const 36304 + i32.const 34336 i32.const 0 i32.store - i32.const 37872 + i32.const 35904 i32.const 0 i32.store loop $for-loop|0 @@ -809,7 +788,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=4 @@ -827,7 +806,7 @@ i32.add i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=96 @@ -845,14 +824,14 @@ br $for-loop|0 end end - i32.const 36304 - i32.const 37876 + i32.const 34336 + i32.const 35908 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36304 + i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -937,7 +916,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36292 + i32.const 34324 i32.lt_u if local.get $0 @@ -1026,14 +1005,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1200 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36292 + i32.const 34324 i32.lt_u if local.get $0 @@ -1056,7 +1035,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36292 + i32.const 34324 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1085,7 +1064,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1169,7 +1148,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1221,7 +1200,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1253,8 +1232,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1136 + i32.const 1200 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1314,8 +1293,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1136 + i32.const 1472 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1417,7 +1396,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1432,7 +1411,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1451,7 +1430,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1472 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1556,259 +1535,26 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3524 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $inlining/func_fe~anonymous|0 (param $0 i32) (result i32) - i32.const 2 - ) (func $start:inlining (local $0 i32) (local $1 i32) (local $2 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36292 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace 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 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store i32.const 2 - i32.const 3472 + i32.const 1104 i32.load - call_indirect (type $2) + call_indirect (type $3) drop global.get $~lib/memory/__stack_pointer i32.const 123 @@ -1820,12 +1566,44 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 34324 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/pinSpace + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/toSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1904,7 +1682,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 96 i32.const 3 call $~lib/builtins/abort @@ -1919,7 +1697,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -1934,7 +1712,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -1949,7 +1727,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 99 i32.const 3 call $~lib/builtins/abort @@ -1961,8 +1739,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2127,205 +1905,40 @@ (func $~start call $start:inlining ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3524 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3524 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$143 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$143 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -2359,11 +1972,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3524 + i32.const 1556 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index c188ae4599..3568508fd2 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -2,20 +2,15 @@ (type $0 (func (param i32))) (type $1 (func (param i32) (result i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param f64) (result i32))) - (type $12 (func (param i32 i32 i32 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)) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -24,6 +19,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -49,465 +48,25 @@ (global $instanceof/x (mut i32) (i32.const 0)) (global $instanceof/y (mut i32) (i32.const 0)) (global $instanceof/z (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2532)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35300)) - (global $~lib/memory/__heap_base i32 (i32.const 35300)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 564)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33332)) + (global $~lib/memory/__heap_base i32 (i32.const 33332)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00\00\00") - (data $20 (i32.const 2432) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00\00\00") + (data $9 (i32.const 464) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -572,7 +131,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -642,7 +201,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -659,7 +218,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -689,9 +248,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -758,7 +317,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -910,7 +469,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -930,7 +489,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -993,7 +552,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1146,7 +705,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1163,7 +722,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1252,7 +811,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1295,7 +854,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1313,7 +872,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1381,7 +940,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1498,7 +1057,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1544,7 +1103,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1576,7 +1135,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1820,7 +1379,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2040,7 +1599,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2151,8 +1710,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2254,7 +1813,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2325,7 +1884,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2482,7 +2041,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2597,7 +2156,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2617,7 +2176,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2665,8 +2224,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2808,7 +2367,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -2853,7 +2412,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -2898,7 +2457,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -2943,7 +2502,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -2988,7 +2547,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3033,7 +2592,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3078,7 +2637,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3123,7 +2682,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3213,7 +2772,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -3257,7 +2816,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -3302,7 +2861,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3347,7 +2906,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3401,7 +2960,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -3446,7 +3005,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3505,7 +3064,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -3549,7 +3108,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -3593,7 +3152,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -3637,7 +3196,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -3694,7 +3253,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3739,7 +3298,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3784,7 +3343,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3829,7 +3388,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -3883,7 +3442,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -3927,7 +3486,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -3978,7 +3537,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4023,7 +3582,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4144,7 +3703,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4189,7 +3748,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4234,7 +3793,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4279,7 +3838,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4324,7 +3883,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4369,7 +3928,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4414,7 +3973,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4459,7 +4018,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4504,7 +4063,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4549,7 +4108,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4904,20 +4463,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35328 - i32.const 35376 + i32.const 33360 + i32.const 33408 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4926,196 +4481,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $instanceof/A#constructor (param $this i32) (result i32) (local $1 i32) @@ -5689,13 +5075,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -5744,7 +5130,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -5837,7 +5223,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -5849,7 +5235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 95 i32.const 1 call $~lib/builtins/abort @@ -5861,7 +5247,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 96 i32.const 1 call $~lib/builtins/abort @@ -5873,7 +5259,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 97 i32.const 1 call $~lib/builtins/abort @@ -5886,7 +5272,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 100 i32.const 1 call $~lib/builtins/abort @@ -5902,7 +5288,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 103 i32.const 1 call $~lib/builtins/abort @@ -5958,7 +5344,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 126 i32.const 1 call $~lib/builtins/abort @@ -5982,7 +5368,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 128 i32.const 1 call $~lib/builtins/abort @@ -6021,7 +5407,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 143 i32.const 1 call $~lib/builtins/abort @@ -6043,7 +5429,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 144 i32.const 1 call $~lib/builtins/abort @@ -6066,7 +5452,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 147 i32.const 1 call $~lib/builtins/abort @@ -6088,7 +5474,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 148 i32.const 1 call $~lib/builtins/abort @@ -6111,7 +5497,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -6132,7 +5518,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 152 i32.const 1 call $~lib/builtins/abort @@ -6153,7 +5539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 158 i32.const 1 call $~lib/builtins/abort @@ -6175,7 +5561,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 159 i32.const 1 call $~lib/builtins/abort @@ -6197,7 +5583,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 160 i32.const 1 call $~lib/builtins/abort @@ -6209,7 +5595,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -6230,7 +5616,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -6252,7 +5638,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 164 i32.const 1 call $~lib/builtins/abort @@ -6264,7 +5650,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 166 i32.const 1 call $~lib/builtins/abort @@ -6285,7 +5671,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 167 i32.const 1 call $~lib/builtins/abort @@ -6306,7 +5692,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 168 i32.const 1 call $~lib/builtins/abort @@ -6319,7 +5705,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 174 i32.const 1 call $~lib/builtins/abort @@ -6341,7 +5727,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 175 i32.const 1 call $~lib/builtins/abort @@ -6363,7 +5749,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 176 i32.const 1 call $~lib/builtins/abort @@ -6376,7 +5762,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 178 i32.const 1 call $~lib/builtins/abort @@ -6398,7 +5784,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 179 i32.const 1 call $~lib/builtins/abort @@ -6420,7 +5806,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 180 i32.const 1 call $~lib/builtins/abort @@ -6433,7 +5819,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 182 i32.const 1 call $~lib/builtins/abort @@ -6455,7 +5841,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 183 i32.const 1 call $~lib/builtins/abort @@ -6477,7 +5863,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 184 i32.const 1 call $~lib/builtins/abort @@ -7424,153 +6810,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -7727,16 +6966,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index 4365f1a9e1..8386c2cfe9 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -2,11 +2,11 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32))) (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32 i32))) (type $5 (func (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -32,242 +32,23 @@ (global $instanceof/x (mut i32) (i32.const 0)) (global $instanceof/y (mut i32) (i32.const 0)) (global $instanceof/z (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36324)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34356)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s") - (data $20 (i32.const 3456) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) ",") + (data $8.1 (i32.const 1448) "\02\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s") + (data $9 (i32.const 1488) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3556 - i32.lt_s - if - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -361,13 +142,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -388,7 +165,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -436,7 +213,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -445,7 +222,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$254 + block $__inlined_func$~lib/rt/itcms/Object#unlink$242 local.get $1 i32.load offset=4 i32.const -4 @@ -457,19 +234,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36324 + i32.const 34356 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$254 + br $__inlined_func$~lib/rt/itcms/Object#unlink$242 end local.get $1 i32.load offset=8 @@ -477,7 +254,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -506,13 +283,13 @@ i32.const 1 else local.get $0 - i32.const 3456 + i32.const 1488 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -520,7 +297,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3460 + i32.const 1492 i32.add i32.load i32.const 32 @@ -572,7 +349,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -586,7 +363,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -632,7 +409,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -715,7 +492,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -729,7 +506,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -790,7 +567,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -823,7 +600,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -838,7 +615,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -889,7 +666,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -961,7 +738,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -986,7 +763,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1013,7 +790,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1085,10 +862,10 @@ if unreachable end - i32.const 36336 + i32.const 34368 i32.const 0 i32.store - i32.const 37904 + i32.const 35936 i32.const 0 i32.store loop $for-loop|0 @@ -1099,7 +876,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36336 + i32.const 34368 i32.add i32.const 0 i32.store offset=4 @@ -1117,7 +894,7 @@ i32.add i32.const 2 i32.shl - i32.const 36336 + i32.const 34368 i32.add i32.const 0 i32.store offset=96 @@ -1135,14 +912,14 @@ br $for-loop|0 end end - i32.const 36336 - i32.const 37908 + i32.const 34368 + i32.const 35940 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36336 + i32.const 34368 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1227,7 +1004,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36324 + i32.const 34356 i32.lt_u if local.get $0 @@ -1316,14 +1093,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36324 + i32.const 34356 i32.lt_u if local.get $0 @@ -1346,7 +1123,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36324 + i32.const 34356 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1375,7 +1152,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1405,85 +1182,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1491,11 +1201,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1511,7 +1217,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1533,35 +1239,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1571,9 +1265,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1596,86 +1290,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1691,8 +1330,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1700,136 +1339,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 3360 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 + local.get $1 + i32.load + i32.const -4 i32.and + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 - i32.const 361 + i32.const 1392 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 + local.get $2 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1837,14 +1459,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" (param $0 i32) global.get $~lib/memory/__stack_pointer @@ -1852,11 +1474,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1870,7 +1492,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/X$78 (result i32) + block $__inlined_func$~instanceof|instanceof/X$76 (result i32) block $is_instance block $tablify|0 local.get $0 @@ -1882,7 +1504,7 @@ br_table $is_instance $tablify|0 $tablify|0 $is_instance $tablify|0 $tablify|0 $is_instance $tablify|0 end i32.const 0 - br $__inlined_func$~instanceof|instanceof/X$78 + br $__inlined_func$~instanceof|instanceof/X$76 end i32.const 1 end @@ -1892,7 +1514,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -1909,11 +1531,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1927,7 +1549,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/Y$80 (result i32) + block $__inlined_func$~instanceof|instanceof/Y$78 (result i32) block $is_instance local.get $0 i32.const 8 @@ -1942,7 +1564,7 @@ i32.eq br_if $is_instance i32.const 0 - br $__inlined_func$~instanceof|instanceof/Y$80 + br $__inlined_func$~instanceof|instanceof/Y$78 end i32.const 1 end @@ -1952,7 +1574,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -1969,11 +1591,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1999,7 +1621,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -2016,11 +1638,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2034,7 +1656,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/Y$84 (result i32) + block $__inlined_func$~instanceof|instanceof/Y$82 (result i32) block $is_instance local.get $0 i32.const 8 @@ -2049,7 +1671,7 @@ i32.eq br_if $is_instance i32.const 0 - br $__inlined_func$~instanceof|instanceof/Y$84 + br $__inlined_func$~instanceof|instanceof/Y$82 end i32.const 1 end @@ -2058,7 +1680,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -2075,11 +1697,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2104,7 +1726,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -2118,205 +1740,40 @@ (func $~start call $start:instanceof ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3556 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3556 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$259 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$259 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $instanceof/A#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2324,11 +1781,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2341,7 +1798,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2367,11 +1823,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2384,7 +1840,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 12 call $~lib/rt/itcms/__new local.tee $0 @@ -2410,11 +1865,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2427,7 +1882,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 13 call $~lib/rt/itcms/__new local.tee $0 @@ -2454,11 +1908,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2468,7 +1922,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 14 call $~lib/rt/itcms/__new local.tee $0 @@ -2493,11 +1946,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2510,7 +1963,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 16 call $~lib/rt/itcms/__new local.tee $0 @@ -2536,11 +1988,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2553,7 +2005,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 19 call $~lib/rt/itcms/__new local.tee $0 @@ -2582,7 +2033,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2592,34 +2043,34 @@ memory.size i32.const 16 i32.shl - i32.const 36324 + i32.const 34356 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace i32.const 0 call $instanceof/A#constructor @@ -2629,14 +2080,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -2660,14 +2110,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 @@ -2699,7 +2148,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2739,7 +2188,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -2748,7 +2197,7 @@ global.get $instanceof/an if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 100 i32.const 1 call $~lib/builtins/abort @@ -2761,14 +2210,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 @@ -2782,7 +2230,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2792,7 +2240,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 @@ -2823,14 +2270,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 9 call $~lib/rt/itcms/__new local.tee $0 @@ -2844,7 +2290,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2854,7 +2300,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 @@ -2898,7 +2343,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 126 i32.const 1 call $~lib/builtins/abort @@ -2910,7 +2355,7 @@ i32.store offset=12 local.get $0 if (result i32) - block $__inlined_func$~anyinstanceof|instanceof/Child$114 (result i32) + block $__inlined_func$~anyinstanceof|instanceof/Child$110 (result i32) block $is_instance1 local.get $0 i32.const 8 @@ -2925,7 +2370,7 @@ i32.eq br_if $is_instance1 i32.const 0 - br $__inlined_func$~anyinstanceof|instanceof/Child$114 + br $__inlined_func$~anyinstanceof|instanceof/Child$110 end i32.const 1 end @@ -2935,7 +2380,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 128 i32.const 1 call $~lib/builtins/abort @@ -2955,7 +2400,7 @@ i32.store offset=16 local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/Cat$115 (result i32) + block $__inlined_func$~instanceof|instanceof/Cat$111 (result i32) block $is_instance2 local.get $0 i32.const 8 @@ -2970,7 +2415,7 @@ i32.eq br_if $is_instance2 i32.const 0 - br $__inlined_func$~instanceof|instanceof/Cat$115 + br $__inlined_func$~instanceof|instanceof/Cat$111 end i32.const 1 end @@ -2979,7 +2424,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 143 i32.const 1 call $~lib/builtins/abort @@ -3002,7 +2447,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 144 i32.const 1 call $~lib/builtins/abort @@ -3014,7 +2459,7 @@ i32.store offset=24 local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/Cat$117 (result i32) + block $__inlined_func$~instanceof|instanceof/Cat$113 (result i32) block $is_instance4 local.get $0 i32.const 8 @@ -3029,7 +2474,7 @@ i32.eq br_if $is_instance4 i32.const 0 - br $__inlined_func$~instanceof|instanceof/Cat$117 + br $__inlined_func$~instanceof|instanceof/Cat$113 end i32.const 1 end @@ -3039,7 +2484,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 147 i32.const 1 call $~lib/builtins/abort @@ -3062,7 +2507,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 148 i32.const 1 call $~lib/builtins/abort @@ -3074,7 +2519,7 @@ i32.store offset=32 local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/Cat$119 (result i32) + block $__inlined_func$~instanceof|instanceof/Cat$115 (result i32) block $is_instance6 local.get $0 i32.const 8 @@ -3089,7 +2534,7 @@ i32.eq br_if $is_instance6 i32.const 0 - br $__inlined_func$~instanceof|instanceof/Cat$119 + br $__inlined_func$~instanceof|instanceof/Cat$115 end i32.const 1 end @@ -3099,7 +2544,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -3123,7 +2568,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 152 i32.const 1 call $~lib/builtins/abort @@ -3141,7 +2586,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 158 i32.const 1 call $~lib/builtins/abort @@ -3153,7 +2598,7 @@ i32.store offset=40 local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/Cat$121 (result i32) + block $__inlined_func$~instanceof|instanceof/Cat$117 (result i32) block $is_instance8 local.get $0 i32.const 8 @@ -3168,7 +2613,7 @@ i32.eq br_if $is_instance8 i32.const 0 - br $__inlined_func$~instanceof|instanceof/Cat$121 + br $__inlined_func$~instanceof|instanceof/Cat$117 end i32.const 1 end @@ -3177,7 +2622,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 159 i32.const 1 call $~lib/builtins/abort @@ -3200,7 +2645,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 160 i32.const 1 call $~lib/builtins/abort @@ -3210,7 +2655,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -3222,7 +2667,7 @@ i32.store offset=48 local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/Cat$123 (result i32) + block $__inlined_func$~instanceof|instanceof/Cat$119 (result i32) block $is_instance10 local.get $0 i32.const 8 @@ -3237,7 +2682,7 @@ i32.eq br_if $is_instance10 i32.const 0 - br $__inlined_func$~instanceof|instanceof/Cat$123 + br $__inlined_func$~instanceof|instanceof/Cat$119 end i32.const 1 end @@ -3247,7 +2692,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -3270,7 +2715,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 164 i32.const 1 call $~lib/builtins/abort @@ -3280,7 +2725,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 166 i32.const 1 call $~lib/builtins/abort @@ -3292,7 +2737,7 @@ i32.store offset=56 local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/Cat$125 (result i32) + block $__inlined_func$~instanceof|instanceof/Cat$121 (result i32) block $is_instance12 local.get $0 i32.const 8 @@ -3307,7 +2752,7 @@ i32.eq br_if $is_instance12 i32.const 0 - br $__inlined_func$~instanceof|instanceof/Cat$125 + br $__inlined_func$~instanceof|instanceof/Cat$121 end i32.const 1 end @@ -3317,7 +2762,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 167 i32.const 1 call $~lib/builtins/abort @@ -3341,7 +2786,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 168 i32.const 1 call $~lib/builtins/abort @@ -3370,14 +2815,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 15 call $~lib/rt/itcms/__new local.tee $0 @@ -3407,14 +2851,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 22 call $~lib/rt/itcms/__new local.tee $0 @@ -3484,7 +2927,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3507,7 +2950,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 12 i32.const 5 call $~lib/builtins/abort @@ -4054,8 +3497,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4067,11 +3510,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4085,7 +3528,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 1c862c374a..a95acad696 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -2,19 +2,14 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $3 (func)) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,470 +18,34 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2592)) - (global $~lib/memory/__data_end i32 (i32.const 2616)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35384)) - (global $~lib/memory/__heap_base i32 (i32.const 35384)) + (global $~lib/rt/__rtti_base i32 (i32.const 624)) + (global $~lib/memory/__data_end i32 (i32.const 648)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33416)) + (global $~lib/memory/__heap_base i32 (i32.const 33416)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00e\00s\00t\00\00\00\00\00") - (data $20 (i32.const 2412) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s\00") - (data $22 (i32.const 2592) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00e\00s\00t\00\00\00\00\00") + (data $9 (i32.const 444) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s\00") + (data $11 (i32.const 624) "\05\00\00\00 \00\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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -551,7 +110,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -621,7 +180,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -638,7 +197,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -668,9 +227,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -737,7 +296,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -889,7 +448,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -909,7 +468,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -972,7 +531,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1125,7 +684,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1142,7 +701,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1231,7 +790,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1274,7 +833,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1292,7 +851,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1360,7 +919,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1477,7 +1036,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1523,7 +1082,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1555,7 +1114,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1799,7 +1358,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2019,7 +1578,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2130,8 +1689,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2233,7 +1792,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2304,7 +1863,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2461,7 +2020,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2576,7 +2135,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2596,7 +2155,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2644,8 +2203,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2705,7 +2264,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2779,20 +2338,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35408 - i32.const 35456 + i32.const 33440 + i32.const 33488 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2801,196 +2356,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $issues/1095/Foo#constructor (param $this i32) (result i32) (local $1 i32) @@ -3028,7 +2414,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2400 + i32.const 432 call $issues/1095/Foo#set:bar local.get $this local.set $1 @@ -3072,8 +2458,8 @@ if (result i32) local.get $1 else - i32.const 2432 - i32.const 2560 + i32.const 464 + i32.const 592 i32.const 8 i32.const 13 call $~lib/builtins/abort @@ -3108,13 +2494,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3130,153 +2516,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3307,16 +2546,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 7e61fc97df..4cb45461d9 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -2,11 +2,11 @@ (type $0 (func)) (type $1 (func (param i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,256 +17,33 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36408)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34440)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\08\00\00\00t\00e\00s\00t") - (data $20 (i32.const 3436) "|") - (data $20.1 (i32.const 3448) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") - (data $21 (i32.const 3564) ",") - (data $21.1 (i32.const 3576) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s") - (data $22 (i32.const 3616) "\05\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "\1c") + (data $8.1 (i32.const 1448) "\02\00\00\00\08\00\00\00t\00e\00s\00t") + (data $9 (i32.const 1468) "|") + (data $9.1 (i32.const 1480) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") + (data $10 (i32.const 1596) ",") + (data $10.1 (i32.const 1608) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s") + (data $11 (i32.const 1648) "\05\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3640 - i32.lt_s - if - i32.const 36432 - i32.const 36480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -287,7 +64,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -320,7 +97,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -329,7 +106,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$130 + block $__inlined_func$~lib/rt/itcms/Object#unlink$118 local.get $0 i32.load offset=4 i32.const -4 @@ -341,19 +118,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36408 + i32.const 34440 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$130 + br $__inlined_func$~lib/rt/itcms/Object#unlink$118 end local.get $0 i32.load offset=8 @@ -361,7 +138,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -390,13 +167,13 @@ i32.const 1 else local.get $1 - i32.const 3616 + i32.const 1648 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -404,7 +181,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3620 + i32.const 1652 i32.add i32.load i32.const 32 @@ -475,7 +252,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -489,7 +266,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -535,7 +312,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -618,7 +395,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -632,7 +409,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -693,7 +470,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -726,7 +503,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -741,7 +518,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -792,7 +569,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -864,7 +641,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -889,7 +666,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -916,7 +693,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -988,10 +765,10 @@ if unreachable end - i32.const 36416 + i32.const 34448 i32.const 0 i32.store - i32.const 37984 + i32.const 36016 i32.const 0 i32.store loop $for-loop|0 @@ -1002,7 +779,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36416 + i32.const 34448 i32.add i32.const 0 i32.store offset=4 @@ -1020,7 +797,7 @@ i32.add i32.const 2 i32.shl - i32.const 36416 + i32.const 34448 i32.add i32.const 0 i32.store offset=96 @@ -1038,14 +815,14 @@ br $for-loop|0 end end - i32.const 36416 - i32.const 37988 + i32.const 34448 + i32.const 36020 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36416 + i32.const 34448 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1130,7 +907,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36408 + i32.const 34440 i32.lt_u if local.get $0 @@ -1219,14 +996,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36408 + i32.const 34440 i32.lt_u if local.get $0 @@ -1249,7 +1026,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36408 + i32.const 34440 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1278,7 +1055,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1362,7 +1139,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1414,7 +1191,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1446,8 +1223,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1457,7 +1234,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1474,7 +1251,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1507,8 +1284,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1610,7 +1387,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1625,7 +1402,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1644,7 +1421,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1759,7 +1536,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1813,7 +1590,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3640 + i32.const 1672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1822,41 +1599,41 @@ memory.size i32.const 16 i32.shl - i32.const 36408 + i32.const 34440 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 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 3640 + i32.const 1672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1877,7 +1654,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3640 + i32.const 1672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1903,7 +1680,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 3424 + i32.const 1456 call $issues/1095/Foo#set:bar global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1917,7 +1694,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3640 + i32.const 1672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1940,8 +1717,8 @@ local.get $1 i32.eqz if - i32.const 3456 - i32.const 3584 + i32.const 1488 + i32.const 1616 i32.const 8 i32.const 13 call $~lib/builtins/abort @@ -1963,212 +1740,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36432 - i32.const 36480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3640 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3640 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$136 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$136 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36432 - i32.const 36480 + i32.const 34464 + i32.const 34512 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3640 + i32.const 1672 i32.lt_s if - i32.const 36432 - i32.const 36480 + i32.const 34464 + i32.const 34512 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index 43612d014f..8944465cdb 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,36 +18,29 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $issues/1225/x (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2456)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35224)) - (global $~lib/memory/__heap_base i32 (i32.const 35224)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 488)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33256)) + (global $~lib/memory/__heap_base i32 (i32.const 33256)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\002\002\005\00.\00t\00s\00") - (data $20 (i32.const 2432) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\002\002\005\00.\00t\00s\00") + (data $9 (i32.const 464) "\05\00\00\00 \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 "normal" (func $issues/1225/normal)) @@ -73,435 +61,6 @@ local.get $normal i32.store ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -566,7 +125,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -636,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -653,7 +212,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -683,9 +242,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -752,7 +311,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -904,7 +463,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -924,7 +483,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -987,7 +546,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1140,7 +699,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1157,7 +716,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1246,7 +805,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1289,7 +848,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1307,7 +866,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1375,7 +934,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1492,7 +1051,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1538,7 +1097,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1570,7 +1129,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1814,7 +1373,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2034,7 +1593,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2145,8 +1704,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2248,7 +1807,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2319,7 +1878,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2476,7 +2035,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2591,7 +2150,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2611,7 +2170,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2659,8 +2218,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2773,13 +2332,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -2792,7 +2351,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -2804,7 +2363,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -2822,20 +2381,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 33280 + i32.const 33328 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2844,196 +2399,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $issues/1225/X#constructor (param $this i32) (param $x i32) (result i32) (local $2 i32) @@ -3162,153 +2548,6 @@ local.get $0 return ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $issues/1225/x @@ -3318,16 +2557,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index bfad913c3f..e978c5e5c9 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -1,12 +1,12 @@ (module - (type $0 (func)) - (type $1 (func (result i32))) - (type $2 (func (param i32 i32) (result i32))) + (type $0 (func (result i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) - (type $5 (func (param i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,244 +18,25 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $issues/1225/x (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36248)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34280)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\002\002\005\00.\00t\00s") - (data $20 (i32.const 3456) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) ",") + (data $8.1 (i32.const 1448) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\002\002\005\00.\00t\00s") + (data $9 (i32.const 1488) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "normal" (func $issues/1225/normal)) (export "viaThis" (func $issues/1225/viaThis)) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3480 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -265,13 +46,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -292,7 +69,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -340,7 +117,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -349,7 +126,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + block $__inlined_func$~lib/rt/itcms/Object#unlink$120 local.get $1 i32.load offset=4 i32.const -4 @@ -361,19 +138,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36248 + i32.const 34280 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$132 + br $__inlined_func$~lib/rt/itcms/Object#unlink$120 end local.get $1 i32.load offset=8 @@ -381,7 +158,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -410,13 +187,13 @@ i32.const 1 else local.get $0 - i32.const 3456 + i32.const 1488 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -424,7 +201,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3460 + i32.const 1492 i32.add i32.load i32.const 32 @@ -476,7 +253,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -490,7 +267,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -536,7 +313,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -619,7 +396,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -633,7 +410,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -694,7 +471,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -727,7 +504,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -742,7 +519,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -793,7 +570,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -865,7 +642,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -890,7 +667,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -917,7 +694,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -989,10 +766,10 @@ if unreachable end - i32.const 36256 + i32.const 34288 i32.const 0 i32.store - i32.const 37824 + i32.const 35856 i32.const 0 i32.store loop $for-loop|0 @@ -1003,7 +780,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36256 + i32.const 34288 i32.add i32.const 0 i32.store offset=4 @@ -1021,7 +798,7 @@ i32.add i32.const 2 i32.shl - i32.const 36256 + i32.const 34288 i32.add i32.const 0 i32.store offset=96 @@ -1039,14 +816,14 @@ br $for-loop|0 end end - i32.const 36256 - i32.const 37828 + i32.const 34288 + i32.const 35860 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36256 + i32.const 34288 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1131,7 +908,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36248 + i32.const 34280 i32.lt_u if local.get $0 @@ -1220,14 +997,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36248 + i32.const 34280 i32.lt_u if local.get $0 @@ -1250,7 +1027,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36248 + i32.const 34280 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1279,7 +1056,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1309,85 +1086,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1395,11 +1105,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1415,7 +1121,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1437,35 +1143,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $0 loop $do-loop|0 - local.get $2 + local.get $0 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $0 global.get $~lib/rt/itcms/state i32.eqz if @@ -1475,9 +1169,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $0 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1500,94 +1194,39 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $0 i32.const 4 - local.get $4 + local.get $1 i32.load offset=1568 - local.get $2 + local.get $0 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $0 local.get $2 - local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1595,8 +1234,8 @@ unreachable end end - local.get $4 - local.get $2 + local.get $1 + local.get $0 i32.const 16 i32.shl memory.size @@ -1604,136 +1243,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $0 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 + local.get $0 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $0 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $2 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub local.tee $3 i32.const 16 i32.ge_u if + local.get $0 local.get $2 - local.get $5 - local.get $6 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $0 + i32.const 32 i32.add - local.tee $5 + local.tee $2 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $0 local.get $2 - local.get $6 i32.const -2 i32.and i32.store - local.get $2 + local.get $0 i32.const 4 i32.add - local.get $2 + local.get $0 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and i32.store end - local.get $2 - local.get $1 + local.get $0 + i32.const 4 i32.store offset=12 - local.get $2 local.get $0 + i32.const 12 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + local.get $0 local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $0 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.load i32.const -4 i32.and @@ -1741,59 +1363,59 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.const 20 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $0 + i32.const 12 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) memory.size i32.const 16 i32.shl - i32.const 36248 + i32.const 34280 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace 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 3480 + i32.const 1512 i32.lt_s if - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1806,8 +1428,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1856,7 +1476,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -1867,7 +1487,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -1909,205 +1529,40 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$137 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$137 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s if - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $issues/1225/normal (result i32) (local $0 i32) @@ -2116,11 +1571,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s if - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2147,11 +1602,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s if - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index a62ed94080..c3b4c4df14 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -1,19 +1,19 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64) (result i32))) (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -25,54 +25,29 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 2656)) - (global $~lib/memory/__data_end i32 (i32.const 2684)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35452)) - (global $~lib/memory/__heap_base i32 (i32.const 35452)) + (global $~lib/rt/__rtti_base i32 (i32.const 688)) + (global $~lib/memory/__data_end i32 (i32.const 716)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33484)) + (global $~lib/memory/__heap_base i32 (i32.const 33484)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $21 (i32.const 2476) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $22 (i32.const 2604) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\006\009\009\00.\00t\00s\00") - (data $23 (i32.const 2656) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\02A\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $1 (i32.const 60) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 508) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\006\009\009\00.\00t\00s\00") + (data $12 (i32.const 688) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -256,7 +231,7 @@ if i32.const 320 i32.const 384 - i32.const 21 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -2276,422 +2251,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2883,20 +2442,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35472 - i32.const 35520 + i32.const 33504 + i32.const 33552 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2905,196 +2460,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -3161,9 +2547,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 - i32.const 70 + i32.const 32 + i32.const 80 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -3320,8 +2706,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -3385,6 +2771,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -3424,8 +2814,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3463,6 +2853,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -3494,8 +2888,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3523,9 +2917,9 @@ local.get $value i32.eqz if - i32.const 2496 - i32.const 2448 - i32.const 118 + i32.const 528 + i32.const 80 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -3691,7 +3085,7 @@ i32.eqz if i32.const 0 - i32.const 2624 + i32.const 656 i32.const 15 i32.const 3 call $~lib/builtins/abort @@ -3717,7 +3111,7 @@ i32.eqz if i32.const 0 - i32.const 2624 + i32.const 656 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -3728,153 +3122,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3908,21 +3155,15 @@ i32.const 320 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2496 + i32.const 528 local.get $0 call $~lib/rt/itcms/__visit i32.const 128 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - local.get $0 - call $~lib/rt/itcms/__visit ) (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -3995,6 +3236,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 4e8e8a185a..0c790de5c0 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -1,13 +1,13 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32) (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,48 +18,27 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36476)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34508)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) ",") - (data $20.1 (i32.const 3464) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $21 (i32.const 3500) "|") - (data $21.1 (i32.const 3512) "\02\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 $22 (i32.const 3628) ",") - (data $22.1 (i32.const 3640) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\006\009\009\00.\00t\00s") - (data $23 (i32.const 3680) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\02A") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $1 (i32.const 1084) ",") + (data $1.1 (i32.const 1096) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\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 $3 (i32.const 1196) "<") + (data $3.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1324) "<") + (data $6.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1388) ",") + (data $7.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1468) "<") + (data $9.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1532) "|") + (data $10.1 (i32.const 1544) "\02\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 $11 (i32.const 1660) ",") + (data $11.1 (i32.const 1672) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\006\009\009\00.\00t\00s") + (data $12 (i32.const 1712) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\02A") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots @@ -67,16 +46,12 @@ (local $1 i32) i32.const 1344 call $~lib/rt/itcms/__visit - i32.const 3424 + i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 3520 + i32.const 1552 call $~lib/rt/itcms/__visit i32.const 1152 call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 i32.load offset=4 @@ -138,7 +113,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$159 + block $__inlined_func$~lib/rt/itcms/Object#unlink$147 local.get $0 i32.load offset=4 i32.const -4 @@ -150,7 +125,7 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36476 + i32.const 34508 i32.lt_u i32.and i32.eqz @@ -162,7 +137,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$159 + br $__inlined_func$~lib/rt/itcms/Object#unlink$147 end local.get $0 i32.load offset=8 @@ -199,13 +174,13 @@ i32.const 1 else local.get $1 - i32.const 3680 + i32.const 1712 i32.load i32.gt_u if i32.const 1344 i32.const 1408 - i32.const 21 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -213,7 +188,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3684 + i32.const 1716 i32.add i32.load i32.const 32 @@ -797,10 +772,10 @@ if unreachable end - i32.const 36480 + i32.const 34512 i32.const 0 i32.store - i32.const 38048 + i32.const 36080 i32.const 0 i32.store loop $for-loop|0 @@ -811,7 +786,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36480 + i32.const 34512 i32.add i32.const 0 i32.store offset=4 @@ -829,7 +804,7 @@ i32.add i32.const 2 i32.shl - i32.const 36480 + i32.const 34512 i32.add i32.const 0 i32.store offset=96 @@ -847,14 +822,14 @@ br $for-loop|0 end end - i32.const 36480 - i32.const 38052 + i32.const 34512 + i32.const 36084 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36480 + i32.const 34512 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -939,7 +914,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36476 + i32.const 34508 i32.lt_u if local.get $0 @@ -1035,7 +1010,7 @@ unreachable end local.get $0 - i32.const 36476 + i32.const 34508 i32.lt_u if local.get $0 @@ -1058,7 +1033,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36476 + i32.const 34508 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1266,7 +1241,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1283,7 +1258,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1558,204 +1533,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3708 - i32.lt_s - if - i32.const 36496 - i32.const 36544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -1822,7 +1599,7 @@ memory.size i32.const 16 i32.shl - i32.const 36476 + i32.const 34508 i32.sub i32.const 1 i32.shr_u @@ -1857,7 +1634,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -1870,7 +1647,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -1997,7 +1774,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2060,7 +1837,7 @@ i32.ne if i32.const 0 - i32.const 3648 + i32.const 1680 i32.const 15 i32.const 3 call $~lib/builtins/abort @@ -2083,7 +1860,7 @@ i32.eq if i32.const 0 - i32.const 3648 + i32.const 1680 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -2095,8 +1872,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36496 - i32.const 36544 + i32.const 34528 + i32.const 34576 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2105,205 +1882,40 @@ (func $~start call $start:issues/1699 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3708 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3708 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$164 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$164 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36496 - i32.const 36544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s if - i32.const 36496 - i32.const 36544 + i32.const 34528 + i32.const 34576 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $issues/1699/MultiAssignmentTest#constructor (result i32) (local $0 i32) @@ -2314,7 +1926,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2335,7 +1947,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2370,8 +1982,8 @@ local.get $0 return end - i32.const 36496 - i32.const 36544 + i32.const 34528 + i32.const 34576 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2389,7 +2001,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2408,8 +2020,8 @@ i32.lt_s if i32.const 1344 - i32.const 3472 - i32.const 130 + i32.const 1104 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -2424,7 +2036,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2445,8 +2057,8 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -2455,7 +2067,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$153 + block $__inlined_func$~lib/rt/itcms/__renew$141 i32.const 1073741820 local.get $4 i32.const 1 @@ -2498,7 +2110,7 @@ i32.store offset=16 local.get $4 local.set $3 - br $__inlined_func$~lib/rt/itcms/__renew$153 + br $__inlined_func$~lib/rt/itcms/__renew$141 end local.get $5 local.get $7 @@ -2567,8 +2179,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36496 - i32.const 36544 + i32.const 34528 + i32.const 34576 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2580,11 +2192,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s if - i32.const 36496 - i32.const 36544 + i32.const 34528 + i32.const 34576 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2602,8 +2214,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 114 + i32.const 1104 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2624,9 +2236,9 @@ local.get $0 i32.eqz if - i32.const 3520 - i32.const 3472 - i32.const 118 + i32.const 1552 + i32.const 1104 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -2672,11 +2284,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3708 + i32.const 1740 i32.lt_s if - i32.const 36496 - i32.const 36544 + i32.const 34528 + i32.const 34576 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index 40d2785c21..35f9f5e099 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -1,59 +1,23 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (result i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $0 (func (result i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2464)) - (global $~lib/memory/__data_end i32 (i32.const 2484)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35252)) - (global $~lib/memory/__heap_base i32 (i32.const 35252)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32860)) + (global $~lib/memory/__heap_base i32 (i32.const 32860)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\007\001\004\00.\00t\00s\00") - (data $20 (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") - (data $21 (i32.const 2464) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\007\001\004\00.\00t\00s\00") + (data $1 (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -70,2642 +34,10 @@ i32.eq return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $"issues/1714/bar" (result i32) i32.const 0 drop - i32.const 2448 + i32.const 80 return ) (func $"issues/1714/bar" (result i32) @@ -2714,6 +46,19 @@ call $"issues/1714/bar" return ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -2826,20 +171,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35280 - i32.const 35328 + i32.const 32880 + i32.const 32928 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2848,196 +189,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -3145,30 +317,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $"issues/1714/foo" i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -3180,12 +335,12 @@ local.get $0 i32.store local.get $0 - i32.const 2448 + i32.const 80 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -3196,203 +351,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable - ) ) diff --git a/tests/compiler/issues/1714.release.wat b/tests/compiler/issues/1714.release.wat index 136356749b..f22cb73924 100644 --- a/tests/compiler/issues/1714.release.wat +++ b/tests/compiler/issues/1714.release.wat @@ -1,2045 +1,85 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36276)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33884)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\007\001\004\00.\00t\00s") - (data $20 (i32.const 3452) "\1c") - (data $20.1 (i32.const 3464) "\02\00\00\00\06\00\00\00i\003\002") - (data $21 (i32.const 3488) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\007\001\004\00.\00t\00s") + (data $1 (i32.const 1084) "\1c") + (data $1.1 (i32.const 1096) "\02\00\00\00\06\00\00\00i\003\002") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$129 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36276 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$129 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3488 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3492 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + (func $~start + global.get $~lib/memory/__stack_pointer 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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1116 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36288 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 37856 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 1104 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 36288 - 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 36288 - 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 36288 - i32.const 37860 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36288 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36276 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36276 - 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 - local.tee $0 - i32.const 36276 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3508 + i32.const 1116 i32.lt_s if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$75 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$75 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~start + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub + i32.const 8 + i32.add global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 36276 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 3472 - i32.store - 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub + i32.const 4 + i32.add global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$134 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$134 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) + (func $~lib/builtins/abort global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3508 + i32.const 1116 i32.lt_s if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 + i32.const 33904 i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 33952 + i32.store offset=4 + i32.const 33904 + i32.const 33952 + i32.const 1 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index c35941b479..d0821f4809 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -1,21 +1,16 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $12 (func (param i32 i32 i32 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)) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -24,472 +19,37 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2576)) - (global $~lib/memory/__data_end i32 (i32.const 2604)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35372)) - (global $~lib/memory/__heap_base i32 (i32.const 35372)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 608)) + (global $~lib/memory/__data_end i32 (i32.const 636)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33404)) + (global $~lib/memory/__heap_base i32 (i32.const 33404)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\001\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") - (data $21 (i32.const 2444) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\001\006\006\00.\00t\00s\00") - (data $22 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") - (data $23 (i32.const 2524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00t\00e\00s\00t\00-\002\001\006\006\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2576) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\001\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") + (data $10 (i32.const 476) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\001\006\006\00.\00t\00s\00") + (data $11 (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\003\002\00\00\00\00\00\00\00") + (data $12 (i32.const 556) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00t\00e\00s\00t\00-\002\001\006\006\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 608) "\06\00\00\00 \00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -554,7 +114,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -624,7 +184,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -641,7 +201,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -671,9 +231,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -740,7 +300,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -892,7 +452,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -912,7 +472,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -975,7 +535,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1128,7 +688,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1145,7 +705,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1234,7 +794,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1277,7 +837,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1295,7 +855,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1363,7 +923,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1480,7 +1040,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1526,7 +1086,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1558,7 +1118,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1802,7 +1362,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2022,7 +1582,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2133,8 +1693,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2236,7 +1796,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2307,7 +1867,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2464,7 +2024,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2579,7 +2139,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2599,7 +2159,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2647,8 +2207,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2693,6 +2253,19 @@ local.get $ptr return ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -2798,25 +2371,25 @@ return ) (func $issues/2166/Test2166Ref1<~lib/string/String>#fn (param $this i32) (param $a1 i32) (param $a2 i32) - i32.const 2432 - i32.const 2432 + i32.const 464 + i32.const 464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 2512 - i32.const 2512 + i32.const 544 + i32.const 544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -2824,13 +2397,13 @@ end ) (func $issues/2166/Test2166Ref2#bar<~lib/string/String> (param $this i32) (param $i i32) - i32.const 2432 - i32.const 2432 + i32.const 464 + i32.const 464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 22 i32.const 5 call $~lib/builtins/abort @@ -2845,20 +2418,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35392 - i32.const 35440 + i32.const 33424 + i32.const 33472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2867,196 +2436,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $issues/2166/Test2166Ref1<~lib/string/String>#constructor (param $this i32) (result i32) (local $1 i32) @@ -3214,7 +2614,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2400 + i32.const 432 i32.const 1 call $issues/2166/Test2166Ref1<~lib/string/String>#fn global.get $~lib/memory/__stack_pointer @@ -3240,13 +2640,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $issues/2166/testfunc2166 @@ -3257,160 +2657,13 @@ local.get $0 i32.store local.get $0 - i32.const 2544 + i32.const 576 call $issues/2166/Test2166Ref2#bar<~lib/string/String> global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3459,13 +2712,13 @@ local.tee $this i32.store end - i32.const 2512 - i32.const 2512 + i32.const 544 + i32.const 544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 496 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -3481,16 +2734,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 9cc9abc23f..20351d0b4c 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -1,12 +1,13 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,260 +18,37 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36396)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34428)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\04\00\00\001\001") - (data $20 (i32.const 3436) "\1c") - (data $20.1 (i32.const 3448) "\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g") - (data $21 (i32.const 3468) ",") - (data $21.1 (i32.const 3480) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\001\006\006\00.\00t\00s") - (data $22 (i32.const 3516) "\1c") - (data $22.1 (i32.const 3528) "\02\00\00\00\06\00\00\00i\003\002") - (data $23 (i32.const 3548) ",") - (data $23.1 (i32.const 3560) "\02\00\00\00\12\00\00\00t\00e\00s\00t\00-\002\001\006\006") - (data $24 (i32.const 3600) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "\1c") + (data $8.1 (i32.const 1448) "\02\00\00\00\04\00\00\001\001") + (data $9 (i32.const 1468) "\1c") + (data $9.1 (i32.const 1480) "\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g") + (data $10 (i32.const 1500) ",") + (data $10.1 (i32.const 1512) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\001\006\006\00.\00t\00s") + (data $11 (i32.const 1548) "\1c") + (data $11.1 (i32.const 1560) "\02\00\00\00\06\00\00\00i\003\002") + (data $12 (i32.const 1580) ",") + (data $12.1 (i32.const 1592) "\02\00\00\00\12\00\00\00t\00e\00s\00t\00-\002\001\006\006") + (data $13 (i32.const 1632) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3628 - i32.lt_s - if - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -291,7 +69,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -339,7 +117,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -348,7 +126,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$134 + block $__inlined_func$~lib/rt/itcms/Object#unlink$123 local.get $1 i32.load offset=4 i32.const -4 @@ -360,19 +138,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36396 + i32.const 34428 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$134 + br $__inlined_func$~lib/rt/itcms/Object#unlink$123 end local.get $1 i32.load offset=8 @@ -380,7 +158,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -409,13 +187,13 @@ i32.const 1 else local.get $0 - i32.const 3600 + i32.const 1632 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -423,7 +201,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3604 + i32.const 1636 i32.add i32.load i32.const 32 @@ -475,7 +253,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -489,7 +267,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -535,7 +313,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -618,7 +396,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -632,7 +410,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -693,7 +471,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -726,7 +504,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -741,7 +519,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -792,7 +570,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -864,7 +642,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -889,7 +667,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -916,7 +694,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -988,10 +766,10 @@ if unreachable end - i32.const 36400 + i32.const 34432 i32.const 0 i32.store - i32.const 37968 + i32.const 36000 i32.const 0 i32.store loop $for-loop|0 @@ -1002,7 +780,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36400 + i32.const 34432 i32.add i32.const 0 i32.store offset=4 @@ -1020,7 +798,7 @@ i32.add i32.const 2 i32.shl - i32.const 36400 + i32.const 34432 i32.add i32.const 0 i32.store offset=96 @@ -1038,14 +816,14 @@ br $for-loop|0 end end - i32.const 36400 - i32.const 37972 + i32.const 34432 + i32.const 36004 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36400 + i32.const 34432 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1130,7 +908,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36396 + i32.const 34428 i32.lt_u if local.get $0 @@ -1219,14 +997,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36396 + i32.const 34428 i32.lt_u if local.get $0 @@ -1249,7 +1027,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36396 + i32.const 34428 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1278,7 +1056,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1308,85 +1086,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1394,11 +1105,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1414,7 +1121,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1436,35 +1143,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1474,9 +1169,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1499,86 +1194,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1594,8 +1234,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1603,136 +1243,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1740,14 +1363,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) @@ -1759,7 +1382,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1768,41 +1391,41 @@ memory.size i32.const 16 i32.shl - i32.const 36396 + i32.const 34428 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 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 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1814,14 +1437,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -1835,7 +1457,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1846,7 +1468,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1866,25 +1487,25 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 3456 - i32.const 3456 + i32.const 1488 + i32.const 1488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 3536 - i32.const 3536 + i32.const 1568 + i32.const 1568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 10 i32.const 5 call $~lib/builtins/abort @@ -1899,25 +1520,24 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store - i32.const 3536 - i32.const 3536 + i32.const 1568 + i32.const 1568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -1930,13 +1550,13 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 3456 - i32.const 3456 + i32.const 1488 + i32.const 1488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1520 i32.const 22 i32.const 5 call $~lib/builtins/abort @@ -1948,212 +1568,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$140 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$140 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36416 - i32.const 36464 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s if - i32.const 36416 - i32.const 36464 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2165,11 +1620,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3628 + i32.const 1660 i32.lt_s if - i32.const 36416 - i32.const 36464 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2268,7 +1723,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$82 + block $__inlined_func$~lib/util/string/compareImpl$79 loop $while-continue|1 local.get $0 local.tee $3 @@ -2288,7 +1743,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$82 + br_if $__inlined_func$~lib/util/string/compareImpl$79 local.get $2 i32.const 2 i32.add diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index 45fae53b80..e634a21075 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -2,19 +2,14 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,468 +18,32 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2408)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35176)) - (global $~lib/memory/__heap_base i32 (i32.const 35176)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 440)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33208)) + (global $~lib/memory/__heap_base i32 (i32.const 33208)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2384) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\05\00\00\00 \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 $issues/2322/index/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -549,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -619,7 +178,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -636,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -666,9 +225,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -735,7 +294,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -887,7 +446,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -907,7 +466,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -970,7 +529,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1123,7 +682,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1140,7 +699,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1229,7 +788,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1272,7 +831,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1290,7 +849,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1358,7 +917,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1475,7 +1034,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1521,7 +1080,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1553,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1797,7 +1356,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2017,7 +1576,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2128,8 +1687,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2231,7 +1790,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2302,7 +1861,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2459,7 +2018,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2574,7 +2133,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2594,7 +2153,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2642,8 +2201,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2704,13 +2263,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace ) @@ -2719,20 +2278,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35200 - i32.const 35248 + i32.const 33232 + i32.const 33280 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2741,196 +2296,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $issues/2322/lib/Wrapper#constructor (param $this i32) (result i32) (local $1 i32) @@ -3001,153 +2387,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3178,16 +2417,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index fe2d0deaa9..978cd62df4 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,251 +17,28 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36200)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34232)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3408) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1440) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "test" (func $issues/2322/index/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3432 - i32.lt_s - if - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -282,7 +59,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -330,7 +107,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -339,7 +116,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$125 + block $__inlined_func$~lib/rt/itcms/Object#unlink$113 local.get $1 i32.load offset=4 i32.const -4 @@ -351,19 +128,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36200 + i32.const 34232 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + br $__inlined_func$~lib/rt/itcms/Object#unlink$113 end local.get $1 i32.load offset=8 @@ -371,7 +148,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -400,13 +177,13 @@ i32.const 1 else local.get $0 - i32.const 3408 + i32.const 1440 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -414,7 +191,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3412 + i32.const 1444 i32.add i32.load i32.const 32 @@ -466,7 +243,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -480,7 +257,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -526,7 +303,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -609,7 +386,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -623,7 +400,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -684,7 +461,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -717,7 +494,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -732,7 +509,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -783,7 +560,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -855,7 +632,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -880,7 +657,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -907,7 +684,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -979,10 +756,10 @@ if unreachable end - i32.const 36208 + i32.const 34240 i32.const 0 i32.store - i32.const 37776 + i32.const 35808 i32.const 0 i32.store loop $for-loop|0 @@ -993,7 +770,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=4 @@ -1011,7 +788,7 @@ i32.add i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=96 @@ -1029,14 +806,14 @@ br $for-loop|0 end end - i32.const 36208 - i32.const 37780 + i32.const 34240 + i32.const 35812 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36208 + i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1121,7 +898,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36200 + i32.const 34232 i32.lt_u if local.get $0 @@ -1210,14 +987,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36200 + i32.const 34232 i32.lt_u if local.get $0 @@ -1240,7 +1017,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36200 + i32.const 34232 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1269,7 +1046,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1353,7 +1130,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1405,7 +1182,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1437,8 +1214,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1448,7 +1225,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1465,7 +1242,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1498,8 +1275,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1601,7 +1378,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1616,7 +1393,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1635,7 +1412,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1744,235 +1521,70 @@ memory.size i32.const 16 i32.shl - i32.const 36200 + i32.const 34232 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3432 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3432 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$130 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$130 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3432 + i32.const 1464 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $issues/2322/index/test (local $0 i32) @@ -1983,7 +1595,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3432 + i32.const 1464 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1994,7 +1606,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3432 + i32.const 1464 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2015,7 +1627,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3432 + i32.const 1464 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2056,8 +1668,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/issues/2622.debug.wat b/tests/compiler/issues/2622.debug.wat index cd1755036a..72e483c4d7 100644 --- a/tests/compiler/issues/2622.debug.wat +++ b/tests/compiler/issues/2622.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,6 +18,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -30,464 +29,24 @@ (global $issues/2622/a (mut i32) (i32.const 0)) (global $issues/2622/_b/t2 (mut i32) (i32.const 0)) (global $issues/2622/b (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2412)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35180)) - (global $~lib/memory/__heap_base i32 (i32.const 35180)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 444)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33212)) + (global $~lib/memory/__heap_base i32 (i32.const 33212)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2384) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\06\00\00\00 \00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -552,7 +111,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -622,7 +181,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -639,7 +198,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -669,9 +228,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -738,7 +297,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -890,7 +449,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -910,7 +469,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -973,7 +532,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1126,7 +685,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1143,7 +702,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1232,7 +791,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1275,7 +834,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1293,7 +852,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1361,7 +920,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1478,7 +1037,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1524,7 +1083,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1556,7 +1115,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1800,7 +1359,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2020,7 +1579,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2131,8 +1690,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2234,7 +1793,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2305,7 +1864,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2462,7 +2021,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2577,7 +2136,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2597,7 +2156,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2645,8 +2204,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2700,13 +2259,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -2731,20 +2290,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35200 - i32.const 35248 + i32.const 33232 + i32.const 33280 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2753,196 +2308,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $issues/2622/_a/T1#constructor (param $this i32) (result i32) (local $1 i32) @@ -3020,153 +2406,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3211,16 +2450,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit global.get $issues/2622/_a/t1 diff --git a/tests/compiler/issues/2622.release.wat b/tests/compiler/issues/2622.release.wat index 5a97fe8f42..6f99a89570 100644 --- a/tests/compiler/issues/2622.release.wat +++ b/tests/compiler/issues/2622.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -21,240 +21,21 @@ (global $issues/2622/a (mut i32) (i32.const 0)) (global $issues/2622/_b/t2 (mut i32) (i32.const 0)) (global $issues/2622/b (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36204)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34236)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3408) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1440) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3436 - i32.lt_s - if - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -270,13 +51,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $issues/2622/_a/t1 local.tee $0 @@ -321,7 +98,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -369,7 +146,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -378,7 +155,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$124 + block $__inlined_func$~lib/rt/itcms/Object#unlink$112 local.get $1 i32.load offset=4 i32.const -4 @@ -390,19 +167,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36204 + i32.const 34236 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$124 + br $__inlined_func$~lib/rt/itcms/Object#unlink$112 end local.get $1 i32.load offset=8 @@ -410,7 +187,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -439,13 +216,13 @@ i32.const 1 else local.get $0 - i32.const 3408 + i32.const 1440 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -453,7 +230,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3412 + i32.const 1444 i32.add i32.load i32.const 32 @@ -505,7 +282,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -519,7 +296,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -565,7 +342,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -648,7 +425,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -662,7 +439,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -723,7 +500,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -756,7 +533,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -771,7 +548,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -822,7 +599,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -894,7 +671,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -919,7 +696,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -946,7 +723,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1018,10 +795,10 @@ if unreachable end - i32.const 36208 + i32.const 34240 i32.const 0 i32.store - i32.const 37776 + i32.const 35808 i32.const 0 i32.store loop $for-loop|0 @@ -1032,7 +809,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=4 @@ -1050,7 +827,7 @@ i32.add i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=96 @@ -1068,14 +845,14 @@ br $for-loop|0 end end - i32.const 36208 - i32.const 37780 + i32.const 34240 + i32.const 35812 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36208 + i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1160,7 +937,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36204 + i32.const 34236 i32.lt_u if local.get $0 @@ -1249,14 +1026,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36204 + i32.const 34236 i32.lt_u if local.get $0 @@ -1279,7 +1056,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36204 + i32.const 34236 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1308,7 +1085,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1338,85 +1115,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1424,11 +1134,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1444,7 +1150,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1466,35 +1172,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1504,9 +1198,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1529,86 +1223,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1624,8 +1263,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1633,136 +1272,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1770,49 +1392,49 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) - block $__inlined_func$start:issues/2622 + block $__inlined_func$start:issues/2622$1 memory.size i32.const 16 i32.shl - i32.const 36204 + i32.const 34236 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1820,14 +1442,13 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -1853,14 +1474,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -1881,215 +1501,50 @@ global.set $issues/2622/_b/t2 global.get $issues/2622/_b/t2 global.set $issues/2622/b - br $__inlined_func$start:issues/2622 + br $__inlined_func$start:issues/2622$1 end - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3436 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3436 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$130 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$130 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2097,11 +1552,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2115,7 +1570,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store diff --git a/tests/compiler/issues/2707.debug.wat b/tests/compiler/issues/2707.debug.wat index 9aa6fafa41..bbdd250616 100644 --- a/tests/compiler/issues/2707.debug.wat +++ b/tests/compiler/issues/2707.debug.wat @@ -1,23 +1,22 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32) (result i32))) - (type $12 (func (param i32 i32 i32 i32))) - (type $13 (func (param i32 i32 i32 i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (type $10 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $issues/2707/func (mut i32) (i32.const 32)) (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 $~lib/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -29,34 +28,24 @@ (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 $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2464)) - (global $~lib/memory/__data_end i32 (i32.const 2492)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35260)) - (global $~lib/memory/__heap_base i32 (i32.const 35260)) + (global $~lib/rt/__rtti_base i32 (i32.const 496)) + (global $~lib/memory/__data_end i32 (i32.const 524)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33292)) + (global $~lib/memory/__heap_base i32 (i32.const 33292)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $3 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $4 (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 220) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 444) "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 $10 (i32.const 844) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 1900) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 1996) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 2060) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 2192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 2224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 2252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2464) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\00\00\00\00") + (data $2 (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 284) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 496) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\00\00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:issues/2707~anonymous|0) (export "memory" (memory $0)) @@ -65,435 +54,6 @@ i32.const 1 return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 444 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 444 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 444 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 444 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 864 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 864 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1920 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1920 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -558,7 +118,7 @@ i32.eqz if i32.const 0 - i32.const 2144 + i32.const 176 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -628,7 +188,7 @@ i32.eqz if i32.const 0 - i32.const 2144 + i32.const 176 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -645,7 +205,7 @@ i32.eqz if i32.const 0 - i32.const 2144 + i32.const 176 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -675,9 +235,9 @@ i32.load i32.gt_u if - i32.const 2272 - i32.const 2336 - i32.const 21 + i32.const 304 + i32.const 368 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -744,7 +304,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2144 + i32.const 176 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -896,7 +456,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -916,7 +476,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -979,7 +539,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1132,7 +692,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1149,7 +709,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1238,7 +798,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1281,7 +841,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1299,7 +859,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1367,7 +927,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1484,7 +1044,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1530,7 +1090,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1562,7 +1122,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1806,7 +1366,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2026,7 +1586,7 @@ i32.eqz if i32.const 0 - i32.const 2144 + i32.const 176 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2137,8 +1697,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2080 - i32.const 2416 + i32.const 112 + i32.const 448 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2240,7 +1800,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2311,7 +1871,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2468,7 +2028,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2583,7 +2143,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2603,7 +2163,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 448 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2651,8 +2211,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2080 - i32.const 2144 + i32.const 112 + i32.const 176 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2728,7 +2288,7 @@ i32.eqz if i32.const 0 - i32.const 2144 + i32.const 176 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2789,20 +2349,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35280 - i32.const 35328 + i32.const 33312 + i32.const 33360 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2811,196 +2367,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 176 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 112 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 144 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 208 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 208 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2016 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $start:issues/2707 (local $0 i32) @@ -3021,13 +2408,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2192 + i32.const 224 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2224 + i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2368 + i32.const 400 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 4 @@ -3051,153 +2438,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 240 - i32.const 368 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 432 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) (local $buffer i32) @@ -3229,6 +2469,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -3253,16 +2497,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2272 + i32.const 304 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2080 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 864 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1920 + i32.const 112 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3349,6 +2587,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -3375,6 +2617,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat index c743747d3b..dd54009adb 100644 --- a/tests/compiler/issues/2707.release.wat +++ b/tests/compiler/issues/2707.release.wat @@ -2,11 +2,11 @@ (type $0 (func (param i32) (result i32))) (type $1 (func)) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,44 +17,23 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36284)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34316)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\05\00\00\00\08\00\00\00\01") (data $1 (i32.const 1068) ",") (data $1.1 (i32.const 1080) "\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04") - (data $2 (i32.const 1116) "\1c") - (data $2.1 (i32.const 1128) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $3 (i32.const 1148) "\1c") - (data $3.1 (i32.const 1160) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $4 (i32.const 1180) "\1c") - (data $4.1 (i32.const 1192) "\02") - (data $5 (i32.const 1212) "\1c") - (data $5.1 (i32.const 1224) "\02\00\00\00\02\00\00\00:") - (data $6 (i32.const 1244) "|") - (data $6.1 (i32.const 1256) "\02\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 $7 (i32.const 1372) "<") - (data $7.1 (i32.const 1384) "\02\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 $8 (i32.const 1436) "\1c") - (data $8.1 (i32.const 1448) "\02\00\00\00\02\00\00\000") - (data $9 (i32.const 1468) "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 $10 (i32.const 1868) "\1c\04") - (data $10.1 (i32.const 1880) "\02\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 $11 (i32.const 2924) "\\") - (data $11.1 (i32.const 2936) "\02\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 $12 (i32.const 3020) "<") - (data $12.1 (i32.const 3032) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $13 (i32.const 3084) "<") - (data $13.1 (i32.const 3096) "\02\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 $14 (i32.const 3148) "<") - (data $14.1 (i32.const 3160) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $17 (i32.const 3276) "<") - (data $17.1 (i32.const 3288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $18 (i32.const 3340) ",") - (data $18.1 (i32.const 3352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $20 (i32.const 3420) "<") - (data $20.1 (i32.const 3432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $21 (i32.const 3488) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t") + (data $2 (i32.const 1116) "<") + (data $2.1 (i32.const 1128) "\02\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 $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1308) "<") + (data $6.1 (i32.const 1320) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1372) ",") + (data $7.1 (i32.const 1384) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1452) "<") + (data $9.1 (i32.const 1464) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1520) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t") (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:issues/2707~anonymous|0) (export "memory" (memory $0)) @@ -62,214 +41,12 @@ (func $start:issues/2707~anonymous|0 (param $0 i32) (result i32) i32.const 1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3516 - i32.lt_s - if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1456 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1468 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1468 - 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 1468 - 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 1468 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3296 - call $~lib/rt/itcms/__visit - i32.const 3104 + i32.const 1328 call $~lib/rt/itcms/__visit - i32.const 1888 - call $~lib/rt/itcms/__visit - i32.const 2944 + i32.const 1136 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -290,7 +67,7 @@ i32.ne if i32.const 0 - i32.const 3168 + i32.const 1200 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -323,7 +100,7 @@ i32.eqz if i32.const 0 - i32.const 3168 + i32.const 1200 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -332,7 +109,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + block $__inlined_func$~lib/rt/itcms/Object#unlink$120 local.get $0 i32.load offset=4 i32.const -4 @@ -344,19 +121,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36284 + i32.const 34316 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3168 + i32.const 1200 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$132 + br $__inlined_func$~lib/rt/itcms/Object#unlink$120 end local.get $0 i32.load offset=8 @@ -364,7 +141,7 @@ i32.eqz if i32.const 0 - i32.const 3168 + i32.const 1200 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -393,13 +170,13 @@ i32.const 1 else local.get $1 - i32.const 3488 + i32.const 1520 i32.load i32.gt_u if - i32.const 3296 - i32.const 3360 - i32.const 21 + i32.const 1328 + i32.const 1392 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -407,7 +184,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3492 + i32.const 1524 i32.add i32.load i32.const 32 @@ -478,7 +255,7 @@ i32.eqz if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -492,7 +269,7 @@ i32.lt_u if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -538,7 +315,7 @@ i32.eqz if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -621,7 +398,7 @@ i32.eqz if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -635,7 +412,7 @@ i32.eqz if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -696,7 +473,7 @@ i32.eqz if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -729,7 +506,7 @@ i32.lt_u if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -744,7 +521,7 @@ i32.ne if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -795,7 +572,7 @@ i32.eqz if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -867,7 +644,7 @@ i64.lt_u if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -892,7 +669,7 @@ i32.gt_u if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -919,7 +696,7 @@ i32.gt_u if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -991,10 +768,10 @@ if unreachable end - i32.const 36288 + i32.const 34320 i32.const 0 i32.store - i32.const 37856 + i32.const 35888 i32.const 0 i32.store loop $for-loop|0 @@ -1005,7 +782,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36288 + i32.const 34320 i32.add i32.const 0 i32.store offset=4 @@ -1023,7 +800,7 @@ i32.add i32.const 2 i32.shl - i32.const 36288 + i32.const 34320 i32.add i32.const 0 i32.store offset=96 @@ -1041,14 +818,14 @@ br $for-loop|0 end end - i32.const 36288 - i32.const 37860 + i32.const 34320 + i32.const 35892 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36288 + i32.const 34320 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1133,7 +910,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36284 + i32.const 34316 i32.lt_u if local.get $0 @@ -1222,14 +999,14 @@ i32.ne if i32.const 0 - i32.const 3168 + i32.const 1200 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36284 + i32.const 34316 i32.lt_u if local.get $0 @@ -1252,7 +1029,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36284 + i32.const 34316 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1281,7 +1058,7 @@ end if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1311,85 +1088,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3440 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -4 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 @@ -1397,11 +1107,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1417,7 +1123,7 @@ i32.eqz if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1439,35 +1145,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3104 - i32.const 3168 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1477,9 +1171,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1502,86 +1196,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3104 - i32.const 3440 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65579 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1597,8 +1236,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1606,136 +1245,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 44 + i32.lt_u if i32.const 0 - i32.const 3440 + i32.const 1472 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3440 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 44 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 44 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 48 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 16 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1743,14 +1365,16 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 - i32.const 0 + local.tee $0 + i64.const 0 + i64.store align=1 + local.get $0 + i64.const 0 + i64.store offset=8 align=1 local.get $0 - memory.fill - local.get $1 ) (func $~start (local $0 i32) @@ -1763,7 +1387,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1772,48 +1396,47 @@ memory.size i32.const 16 i32.shl - i32.const 36284 + i32.const 34316 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3220 - i32.const 3216 + i32.const 1252 + i32.const 1248 i32.store - i32.const 3224 - i32.const 3216 + i32.const 1256 + i32.const 1248 i32.store - i32.const 3216 + i32.const 1248 global.set $~lib/rt/itcms/pinSpace - i32.const 3252 - i32.const 3248 + i32.const 1284 + i32.const 1280 i32.store - i32.const 3256 - i32.const 3248 + i32.const 1288 + i32.const 1280 i32.store - i32.const 3248 + i32.const 1280 global.set $~lib/rt/itcms/toSpace - i32.const 3396 - i32.const 3392 + i32.const 1428 + i32.const 1424 i32.store - i32.const 3400 - i32.const 3392 + i32.const 1432 + i32.const 1424 i32.store - i32.const 3392 + i32.const 1424 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 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 16 i32.const 1 call $~lib/rt/itcms/__new local.tee $0 @@ -1822,7 +1445,6 @@ memory.copy local.get $0 i32.store - i32.const 16 i32.const 4 call $~lib/rt/itcms/__new local.tee $2 @@ -1834,7 +1456,7 @@ i32.eqz if i32.const 0 - i32.const 3168 + i32.const 1200 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1905,212 +1527,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3516 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3516 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$139 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1200 - local.set $0 - br $__inlined_func$~lib/string/String#concat$139 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s if - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1136 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1168 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1232 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1232 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3040 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -2143,7 +1600,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2166,7 +1623,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3516 + i32.const 1548 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2186,8 +1643,8 @@ end unreachable end - i32.const 36304 - i32.const 36352 + i32.const 34336 + i32.const 34384 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/issues/2825.debug.wat b/tests/compiler/issues/2825.debug.wat index 7b839f092a..ce6afd0bd1 100644 --- a/tests/compiler/issues/2825.debug.wat +++ b/tests/compiler/issues/2825.debug.wat @@ -1,2694 +1,19 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\002\005\00.\00t\00s\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\002\005\00.\00t\00s\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "init" (func $issues/2825/init)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $issues/2825/increment (param $x i32) (result i32) local.get $x i32.const 1234 @@ -2696,7 +21,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2 i32.const 3 call $~lib/builtins/abort @@ -2710,23 +35,6 @@ (func $start:issues/2825 (local $i i32) (local $i|1 i32) - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 0 local.set $i loop $for-loop|0 @@ -2764,92 +72,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2858,322 +90,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/issues/2825.release.wat b/tests/compiler/issues/2825.release.wat index 58f5450b2a..985541d8ee 100644 --- a/tests/compiler/issues/2825.release.wat +++ b/tests/compiler/issues/2825.release.wat @@ -1,1746 +1,14 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36244)) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\002\005\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\002\005\00.\00t\00s") (export "init" (func $issues/2825/init)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$120 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36244 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$120 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3456 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3460 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36256 - i32.const 0 - i32.store - i32.const 37824 - 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 36256 - 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 36256 - 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 36256 - i32.const 37828 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36256 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36244 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36244 - 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 - local.tee $0 - i32.const 36244 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3476 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $issues/2825/init loop $for-loop|0 br $for-loop|0 @@ -1749,38 +17,6 @@ ) (func $~start (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace loop $for-loop|0 local.get $0 i32.const 10 @@ -1791,7 +27,7 @@ i32.eq if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2 i32.const 3 call $~lib/builtins/abort @@ -1805,228 +41,39 @@ end end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$126 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$126 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3476 + i32.const 1084 i32.lt_s if - i32.const 36272 - i32.const 36320 + i32.const 33872 + i32.const 33920 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/issues/2873.debug.wat b/tests/compiler/issues/2873.debug.wat index f94527e271..9d145ae09a 100644 --- a/tests/compiler/issues/2873.debug.wat +++ b/tests/compiler/issues/2873.debug.wat @@ -1,26 +1,24 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func)) (type $5 (func (param i32 i32 i32) (result i32))) (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $8 (func (param i32 f64 i32) (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i64) (result i32))) - (type $13 (func (result i32))) - (type $14 (func (param f32 i32) (result i32))) - (type $15 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $16 (func (param f64 i32) (result i32))) - (type $17 (func (param i32 f32) (result i32))) - (type $18 (func (param i32 f64) (result i32))) - (type $19 (func (param i32 i32 i32 i32))) - (type $20 (func (param f32) (result i32))) - (type $21 (func (param f64) (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $9 (func (param i32 f64 i32) (result i32))) + (type $10 (func (param i32 i32 i64) (result i32))) + (type $11 (func (result i32))) + (type $12 (func (param f32 i32) (result i32))) + (type $13 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $14 (func (param f64 i32) (result i32))) + (type $15 (func (param i32 f32) (result i32))) + (type $16 (func (param i32 f64) (result i32))) + (type $17 (func (param f32) (result i32))) + (type $18 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -28,9 +26,7 @@ (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (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_FEATURE_EXCEPTION_HANDLING 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)) @@ -39,15 +35,20 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $issues/2873/f32arr i32 (i32.const 3648)) - (global $issues/2873/f64arr i32 (i32.const 3824)) - (global $~lib/rt/__rtti_base i32 (i32.const 3856)) - (global $~lib/memory/__data_end i32 (i32.const 3884)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36652)) - (global $~lib/memory/__heap_base i32 (i32.const 36652)) + (global $issues/2873/f32arr i32 (i32.const 2080)) + (global $issues/2873/f64arr i32 (i32.const 2288)) + (global $~lib/rt/__rtti_base i32 (i32.const 2320)) + (global $~lib/memory/__data_end i32 (i32.const 2348)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35116)) + (global $~lib/memory/__heap_base i32 (i32.const 35116)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") @@ -58,33 +59,24 @@ (data $6 (i32.const 928) "<\fbW\fbr\fb\8c\fb\a7\fb\c1\fb\dc\fb\f6\fb\11\fc,\fcF\fca\fc{\fc\96\fc\b1\fc\cb\fc\e6\fc\00\fd\1b\fd5\fdP\fdk\fd\85\fd\a0\fd\ba\fd\d5\fd\ef\fd\n\fe%\fe?\feZ\fet\fe\8f\fe\a9\fe\c4\fe\df\fe\f9\fe\14\ff.\ffI\ffc\ff~\ff\99\ff\b3\ff\ce\ff\e8\ff\03\00\1e\008\00S\00m\00\88\00\a2\00\bd\00\d8\00\f2\00\r\01\'\01B\01\\\01w\01\92\01\ac\01\c7\01\e1\01\fc\01\16\021\02L\02f\02\81\02\9b\02\b6\02\d0\02\eb\02\06\03 \03;\03U\03p\03\8b\03\a5\03\c0\03\da\03\f5\03\0f\04*\04") (data $7 (i32.const 1104) "\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;") (data $8 (i32.const 1144) "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 $9 (i32.const 1548) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $10 (i32.const 1580) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $11 (i32.const 1612) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 1644) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 1676) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 1804) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 1868) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 1900) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2956) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 3052) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 3116) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 3180) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 3248) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 3280) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 3308) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $24 (i32.const 3372) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $25 (i32.const 3424) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 3452) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $27 (i32.const 3516) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00.\001\00\00\00\00\00\00\00") - (data $28 (i32.const 3548) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\007\003\00.\00t\00s\00") - (data $29 (i32.const 3596) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\cd\cc\8c?\cd\cc\0c@33S@") - (data $30 (i32.const 3628) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00 \0e\00\00 \0e\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 3676) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 3708) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\001\00.\001\00,\002\00.\002\00,\003\00.\003\00\00\00\00\00\00\00") - (data $33 (i32.const 3756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\9a\99\99\99\99\99\f1?\9a\99\99\99\99\99\01@ffffff\n@\00\00\00\00") - (data $34 (i32.const 3804) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\10\00\00\00\c0\0e\00\00\c0\0e\00\00\18\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 3856) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\19\00\00\02\1a\00\00") + (data $9 (i32.const 1548) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1612) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 1680) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 1712) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 1740) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 1804) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 1856) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 1884) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 1948) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00.\001\00\00\00\00\00\00\00") + (data $18 (i32.const 1980) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\007\003\00.\00t\00s\00") + (data $19 (i32.const 2028) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\cd\cc\8c?\cd\cc\0c@33S@") + (data $20 (i32.const 2060) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\00\08\00\00\00\08\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 2108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 2140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 2172) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\001\00.\001\00,\002\00.\002\00,\003\00.\003\00\00\00\00\00\00\00") + (data $24 (i32.const 2220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\9a\99\99\99\99\99\f1?\9a\99\99\99\99\99\01@ffffff\n@\00\00\00\00") + (data $25 (i32.const 2268) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\10\00\00\00\c0\08\00\00\c0\08\00\00\18\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 2320) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\19\00\00\02\1a\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -1654,240 +1646,6 @@ i32.add return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1920 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1920 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2976 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2976 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -1952,7 +1710,7 @@ i32.eqz if i32.const 0 - i32.const 3200 + i32.const 1632 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -2022,7 +1780,7 @@ i32.eqz if i32.const 0 - i32.const 3200 + i32.const 1632 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -2039,7 +1797,7 @@ i32.eqz if i32.const 0 - i32.const 3200 + i32.const 1632 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -2069,9 +1827,9 @@ i32.load i32.gt_u if - i32.const 3328 - i32.const 3392 - i32.const 21 + i32.const 1760 + i32.const 1824 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -2138,7 +1896,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 3200 + i32.const 1632 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -2290,7 +2048,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -2310,7 +2068,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -2373,7 +2131,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -2526,7 +2284,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -2543,7 +2301,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -2632,7 +2390,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -2675,7 +2433,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -2693,7 +2451,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -2761,7 +2519,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -2878,7 +2636,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -2924,7 +2682,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -2956,7 +2714,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -3200,7 +2958,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -3420,7 +3178,7 @@ i32.eqz if i32.const 0 - i32.const 3200 + i32.const 1632 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -3531,8 +3289,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3136 - i32.const 3472 + i32.const 1568 + i32.const 1904 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -3634,7 +3392,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -3705,7 +3463,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -3862,7 +3620,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -3977,7 +3735,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -3997,7 +3755,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1904 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -4045,8 +3803,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3136 - i32.const 3200 + i32.const 1568 + i32.const 1632 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -4096,6 +3854,19 @@ call $~lib/util/number/dtoa return ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -4402,20 +4173,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 36672 - i32.const 36720 + i32.const 35136 + i32.const 35184 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4424,196 +4191,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 1632 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 1568 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1600 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 1664 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 1664 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 3072 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -4809,7 +4407,7 @@ local.get $size i32.eqz if - i32.const 1632 + i32.const 2128 local.set $22 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4885,7 +4483,7 @@ i32.const 0 i32.lt_s if - i32.const 1632 + i32.const 2128 local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5105,7 +4703,7 @@ i32.const 0 i32.lt_s if - i32.const 1632 + i32.const 2128 local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5320,13 +4918,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3248 + i32.const 1680 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 3280 + i32.const 1712 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 3424 + i32.const 1856 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace f32.const 1.100000023841858 @@ -5337,12 +4935,12 @@ local.get $2 i32.store local.get $2 - i32.const 3536 + i32.const 1968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3568 + i32.const 2000 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5356,12 +4954,12 @@ local.get $2 i32.store local.get $2 - i32.const 3536 + i32.const 1968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3568 + i32.const 2000 i32.const 2 i32.const 1 call $~lib/builtins/abort @@ -5373,19 +4971,19 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 3696 + i32.const 2160 call $~lib/array/Array#join local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - i32.const 3728 + i32.const 2192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3568 + i32.const 2000 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -5397,19 +4995,19 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 3696 + i32.const 2160 call $~lib/array/Array#join local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - i32.const 3728 + i32.const 2192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3568 + i32.const 2000 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -5420,153 +5018,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 1696 - i32.const 1824 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 1888 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/util/number/dtoa (param $value f32) (result i32) (local $value|1 f64) (local $isSingle i32) @@ -5736,16 +5187,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3328 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3136 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1920 + i32.const 1760 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2976 + i32.const 1568 local.get $0 call $~lib/rt/itcms/__visit ) @@ -5832,6 +5277,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -5858,6 +5307,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/issues/2873.release.wat b/tests/compiler/issues/2873.release.wat index 95a3f0a5cb..d01dc3539f 100644 --- a/tests/compiler/issues/2873.release.wat +++ b/tests/compiler/issues/2873.release.wat @@ -1,8 +1,8 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) - (type $3 (func (param i32) (result i32))) + (type $0 (func)) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i64 i64 i32 i64 i32) (result i32))) (type $6 (func (param i32 i32 i32))) @@ -10,11 +10,12 @@ (type $8 (func (param i32 f64 i32) (result i32))) (type $9 (func (param i32 i32 i64))) (type $10 (func (result i32))) - (type $11 (func (param i32 f32) (result i32))) - (type $12 (func (param i32 f64) (result i32))) - (type $13 (func (param i32 i32 i32 i32))) + (type $11 (func (param i32) (result i32))) + (type $12 (func (param i32 f32) (result i32))) + (type $13 (func (param i32 f64) (result i32))) (type $14 (func (param f32) (result i32))) (type $15 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -31,7 +32,7 @@ (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/memory/__stack_pointer (mut i32) (i32.const 37676)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36140)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\06\00\00\000\00.\000") @@ -45,53 +46,35 @@ (data $6 (i32.const 1952) "<\fbW\fbr\fb\8c\fb\a7\fb\c1\fb\dc\fb\f6\fb\11\fc,\fcF\fca\fc{\fc\96\fc\b1\fc\cb\fc\e6\fc\00\fd\1b\fd5\fdP\fdk\fd\85\fd\a0\fd\ba\fd\d5\fd\ef\fd\n\fe%\fe?\feZ\fet\fe\8f\fe\a9\fe\c4\fe\df\fe\f9\fe\14\ff.\ffI\ffc\ff~\ff\99\ff\b3\ff\ce\ff\e8\ff\03\00\1e\008\00S\00m\00\88\00\a2\00\bd\00\d8\00\f2\00\r\01\'\01B\01\\\01w\01\92\01\ac\01\c7\01\e1\01\fc\01\16\021\02L\02f\02\81\02\9b\02\b6\02\d0\02\eb\02\06\03 \03;\03U\03p\03\8b\03\a5\03\c0\03\da\03\f5\03\0f\04*\04") (data $7 (i32.const 2128) "\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;") (data $8 (i32.const 2168) "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 $9 (i32.const 2572) "\1c") - (data $9.1 (i32.const 2584) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $10 (i32.const 2604) "\1c") - (data $10.1 (i32.const 2616) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $11 (i32.const 2636) "\1c") - (data $11.1 (i32.const 2648) "\02") - (data $12 (i32.const 2668) "\1c") - (data $12.1 (i32.const 2680) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 2700) "|") - (data $13.1 (i32.const 2712) "\02\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 $14 (i32.const 2828) "<") - (data $14.1 (i32.const 2840) "\02\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 $15 (i32.const 2892) "\1c") - (data $15.1 (i32.const 2904) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 2924) "\1c\04") - (data $16.1 (i32.const 2936) "\02\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 $17 (i32.const 3980) "\\") - (data $17.1 (i32.const 3992) "\02\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 $18 (i32.const 4076) "<") - (data $18.1 (i32.const 4088) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 4140) "<") - (data $19.1 (i32.const 4152) "\02\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 $20 (i32.const 4204) "<") - (data $20.1 (i32.const 4216) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $23 (i32.const 4332) "<") - (data $23.1 (i32.const 4344) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $24 (i32.const 4396) ",") - (data $24.1 (i32.const 4408) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $26 (i32.const 4476) "<") - (data $26.1 (i32.const 4488) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $27 (i32.const 4540) "\1c") - (data $27.1 (i32.const 4552) "\02\00\00\00\06\00\00\001\00.\001") - (data $28 (i32.const 4572) ",") - (data $28.1 (i32.const 4584) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\007\003\00.\00t\00s") - (data $29 (i32.const 4620) "\1c") - (data $29.1 (i32.const 4632) "\01\00\00\00\0c\00\00\00\cd\cc\8c?\cd\cc\0c@33S@") - (data $30 (i32.const 4652) ",") - (data $30.1 (i32.const 4664) "\04\00\00\00\10\00\00\00 \12\00\00 \12\00\00\0c\00\00\00\03") - (data $31 (i32.const 4700) "\1c") - (data $31.1 (i32.const 4712) "\02\00\00\00\02\00\00\00,") - (data $32 (i32.const 4732) ",") - (data $32.1 (i32.const 4744) "\02\00\00\00\16\00\00\001\00.\001\00,\002\00.\002\00,\003\00.\003") - (data $33 (i32.const 4780) ",") - (data $33.1 (i32.const 4792) "\01\00\00\00\18\00\00\00\9a\99\99\99\99\99\f1?\9a\99\99\99\99\99\01@ffffff\n@") - (data $34 (i32.const 4828) ",") - (data $34.1 (i32.const 4840) "\05\00\00\00\10\00\00\00\c0\12\00\00\c0\12\00\00\18\00\00\00\03") - (data $35 (i32.const 4880) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\19\00\00\02\1a") + (data $9 (i32.const 2572) "<") + (data $9.1 (i32.const 2584) "\02\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 $10 (i32.const 2636) "<") + (data $10.1 (i32.const 2648) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $13 (i32.const 2764) "<") + (data $13.1 (i32.const 2776) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $14 (i32.const 2828) ",") + (data $14.1 (i32.const 2840) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $16 (i32.const 2908) "<") + (data $16.1 (i32.const 2920) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $17 (i32.const 2972) "\1c") + (data $17.1 (i32.const 2984) "\02\00\00\00\06\00\00\001\00.\001") + (data $18 (i32.const 3004) ",") + (data $18.1 (i32.const 3016) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\007\003\00.\00t\00s") + (data $19 (i32.const 3052) "\1c") + (data $19.1 (i32.const 3064) "\01\00\00\00\0c\00\00\00\cd\cc\8c?\cd\cc\0c@33S@") + (data $20 (i32.const 3084) ",") + (data $20.1 (i32.const 3096) "\04\00\00\00\10\00\00\00\00\0c\00\00\00\0c\00\00\0c\00\00\00\03") + (data $21 (i32.const 3132) "\1c") + (data $21.1 (i32.const 3144) "\02") + (data $22 (i32.const 3164) "\1c") + (data $22.1 (i32.const 3176) "\02\00\00\00\02\00\00\00,") + (data $23 (i32.const 3196) ",") + (data $23.1 (i32.const 3208) "\02\00\00\00\16\00\00\001\00.\001\00,\002\00.\002\00,\003\00.\003") + (data $24 (i32.const 3244) ",") + (data $24.1 (i32.const 3256) "\01\00\00\00\18\00\00\00\9a\99\99\99\99\99\f1?\9a\99\99\99\99\99\01@ffffff\n@") + (data $25 (i32.const 3292) ",") + (data $25.1 (i32.const 3304) "\05\00\00\00\10\00\00\00\c0\0c\00\00\c0\0c\00\00\18\00\00\00\03") + (data $26 (i32.const 3344) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\19\00\00\02\1a") (export "memory" (memory $0)) (start $~start) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) @@ -1265,118 +1248,16 @@ local.get $4 i32.add ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 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 4908 - i32.lt_s - if - i32.const 37696 - i32.const 37744 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$4 - local.get $0 - 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 2912 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$4 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 4672 - call $~lib/rt/itcms/__visit - i32.const 4848 - call $~lib/rt/itcms/__visit - i32.const 4352 + i32.const 3104 call $~lib/rt/itcms/__visit - i32.const 4160 + i32.const 3312 call $~lib/rt/itcms/__visit - i32.const 2944 + i32.const 2784 call $~lib/rt/itcms/__visit - i32.const 4000 + i32.const 2592 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -1397,7 +1278,7 @@ i32.ne if i32.const 0 - i32.const 4224 + i32.const 2656 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -1445,7 +1326,7 @@ i32.eqz if i32.const 0 - i32.const 4224 + i32.const 2656 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -1454,7 +1335,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$149 + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 local.get $1 i32.load offset=4 i32.const -4 @@ -1466,19 +1347,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 37676 + i32.const 36140 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 4224 + i32.const 2656 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$149 + br $__inlined_func$~lib/rt/itcms/Object#unlink$139 end local.get $1 i32.load offset=8 @@ -1486,7 +1367,7 @@ i32.eqz if i32.const 0 - i32.const 4224 + i32.const 2656 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -1515,13 +1396,13 @@ i32.const 1 else local.get $0 - i32.const 4880 + i32.const 3344 i32.load i32.gt_u if - i32.const 4352 - i32.const 4416 - i32.const 21 + i32.const 2784 + i32.const 2848 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -1529,7 +1410,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 4884 + i32.const 3348 i32.add i32.load i32.const 32 @@ -1581,7 +1462,7 @@ i32.eqz if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -1595,7 +1476,7 @@ i32.lt_u if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1641,7 +1522,7 @@ i32.eqz if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1724,7 +1605,7 @@ i32.eqz if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1738,7 +1619,7 @@ i32.eqz if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1799,7 +1680,7 @@ i32.eqz if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1832,7 +1713,7 @@ i32.lt_u if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1847,7 +1728,7 @@ i32.ne if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1898,7 +1779,7 @@ i32.eqz if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1970,7 +1851,7 @@ i64.lt_u if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1995,7 +1876,7 @@ i32.gt_u if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -2022,7 +1903,7 @@ i32.gt_u if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -2094,10 +1975,10 @@ if unreachable end - i32.const 37680 + i32.const 36144 i32.const 0 i32.store - i32.const 39248 + i32.const 37712 i32.const 0 i32.store loop $for-loop|0 @@ -2108,7 +1989,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 37680 + i32.const 36144 i32.add i32.const 0 i32.store offset=4 @@ -2126,7 +2007,7 @@ i32.add i32.const 2 i32.shl - i32.const 37680 + i32.const 36144 i32.add i32.const 0 i32.store offset=96 @@ -2144,14 +2025,14 @@ br $for-loop|0 end end - i32.const 37680 - i32.const 39252 + i32.const 36144 + i32.const 37716 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 37680 + i32.const 36144 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -2236,7 +2117,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 37676 + i32.const 36140 i32.lt_u if local.get $0 @@ -2325,14 +2206,14 @@ i32.ne if i32.const 0 - i32.const 4224 + i32.const 2656 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 37676 + i32.const 36140 i32.lt_u if local.get $0 @@ -2355,7 +2236,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 37676 + i32.const 36140 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -2384,7 +2265,7 @@ end if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2468,7 +2349,7 @@ i32.eqz if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2520,7 +2401,7 @@ i32.eqz if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2552,8 +2433,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 4160 - i32.const 4224 + i32.const 2592 + i32.const 2656 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2563,7 +2444,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$74 + block $__inlined_func$~lib/rt/itcms/interrupt$72 i32.const 2048 local.set $1 loop $do-loop|0 @@ -2580,7 +2461,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$74 + br $__inlined_func$~lib/rt/itcms/interrupt$72 end local.get $1 i32.const 0 @@ -2613,8 +2494,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 4160 - i32.const 4496 + i32.const 2592 + i32.const 2928 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2716,7 +2597,7 @@ i32.eqz if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2731,7 +2612,7 @@ i32.gt_u if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2750,7 +2631,7 @@ i32.and if i32.const 0 - i32.const 4496 + i32.const 2928 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -3018,7 +2899,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4908 + i32.const 3372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3027,34 +2908,34 @@ memory.size i32.const 16 i32.shl - i32.const 37676 + i32.const 36140 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 4276 - i32.const 4272 + i32.const 2708 + i32.const 2704 i32.store - i32.const 4280 - i32.const 4272 + i32.const 2712 + i32.const 2704 i32.store - i32.const 4272 + i32.const 2704 global.set $~lib/rt/itcms/pinSpace - i32.const 4308 - i32.const 4304 + i32.const 2740 + i32.const 2736 i32.store - i32.const 4312 - i32.const 4304 + i32.const 2744 + i32.const 2736 i32.store - i32.const 4304 + i32.const 2736 global.set $~lib/rt/itcms/toSpace - i32.const 4452 - i32.const 4448 + i32.const 2884 + i32.const 2880 i32.store - i32.const 4456 - i32.const 4448 + i32.const 2888 + i32.const 2880 i32.store - i32.const 4448 + i32.const 2880 global.set $~lib/rt/itcms/fromSpace f32.const 1.100000023841858 call $~lib/util/number/dtoa @@ -3063,12 +2944,12 @@ local.get $1 i32.store local.get $1 - i32.const 4560 + i32.const 2992 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 4592 + i32.const 3024 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3081,58 +2962,58 @@ local.get $1 i32.store local.get $1 - i32.const 4560 + i32.const 2992 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 4592 + i32.const 3024 i32.const 2 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4672 + i32.const 3104 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 4908 + i32.const 3372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4672 + i32.const 3104 i32.store - i32.const 4676 + i32.const 3108 i32.load local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4672 + i32.const 3104 i32.store - i32.const 4684 + i32.const 3116 i32.load local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4720 + i32.const 3184 i32.store 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 4908 + i32.const 3372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinFloatArray$154 + block $__inlined_func$~lib/util/string/joinFloatArray$144 local.get $1 i32.const 1 i32.sub @@ -3144,9 +3025,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 2656 + i32.const 3152 local.set $1 - br $__inlined_func$~lib/util/string/joinFloatArray$154 + br $__inlined_func$~lib/util/string/joinFloatArray$144 end local.get $4 i32.eqz @@ -3159,13 +3040,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$154 + br $__inlined_func$~lib/util/string/joinFloatArray$144 end global.get $~lib/memory/__stack_pointer - i32.const 4720 + i32.const 3184 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4716 + i32.const 3180 i32.load i32.const 1 i32.shr_u @@ -3209,7 +3090,7 @@ i32.const 1 i32.shl i32.add - i32.const 4720 + i32.const 3184 local.get $5 i32.const 1 i32.shl @@ -3255,7 +3136,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$154 + br $__inlined_func$~lib/util/string/joinFloatArray$144 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3270,58 +3151,58 @@ local.get $1 i32.store local.get $1 - i32.const 4752 + i32.const 3216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 4592 + i32.const 3024 i32.const 5 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4848 + i32.const 3312 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 4908 + i32.const 3372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4848 + i32.const 3312 i32.store - i32.const 4852 + i32.const 3316 i32.load local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4848 + i32.const 3312 i32.store - i32.const 4860 + i32.const 3324 i32.load local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4720 + i32.const 3184 i32.store 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 4908 + i32.const 3372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinFloatArray$155 + block $__inlined_func$~lib/util/string/joinFloatArray$145 local.get $0 i32.const 1 i32.sub @@ -3333,9 +3214,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 2656 + i32.const 3152 local.set $1 - br $__inlined_func$~lib/util/string/joinFloatArray$155 + br $__inlined_func$~lib/util/string/joinFloatArray$145 end local.get $4 i32.eqz @@ -3348,13 +3229,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$155 + br $__inlined_func$~lib/util/string/joinFloatArray$145 end global.get $~lib/memory/__stack_pointer - i32.const 4720 + i32.const 3184 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4716 + i32.const 3180 i32.load i32.const 1 i32.shr_u @@ -3402,7 +3283,7 @@ i32.const 1 i32.shl i32.add - i32.const 4720 + i32.const 3184 local.get $5 i32.const 1 i32.shl @@ -3448,7 +3329,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$155 + br $__inlined_func$~lib/util/string/joinFloatArray$145 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3463,12 +3344,12 @@ local.get $1 i32.store local.get $1 - i32.const 4752 + i32.const 3216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 4592 + i32.const 3024 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -3480,211 +3361,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 37696 - i32.const 37744 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 4908 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4908 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$156 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2656 - local.set $0 - br $__inlined_func$~lib/string/String#concat$156 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 37696 - i32.const 37744 + i32.const 36160 + i32.const 36208 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4908 + i32.const 3372 i32.lt_s if - i32.const 37696 - i32.const 37744 + i32.const 36160 + i32.const 36208 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2592 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 2624 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 2688 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 2688 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 4096 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3696,11 +3413,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4908 + i32.const 3372 i32.lt_s if - i32.const 37696 - i32.const 37744 + i32.const 36160 + i32.const 36208 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3799,7 +3516,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$83 + block $__inlined_func$~lib/util/string/compareImpl$80 loop $while-continue|1 local.get $0 local.tee $3 @@ -3819,7 +3536,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$83 + br_if $__inlined_func$~lib/util/string/compareImpl$80 local.get $2 i32.const 2 i32.add @@ -3857,11 +3574,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4908 + i32.const 3372 i32.lt_s if - i32.const 37696 - i32.const 37744 + i32.const 36160 + i32.const 36208 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3918,7 +3635,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 2656 + i32.const 3152 return end local.get $3 @@ -3963,11 +3680,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4908 + i32.const 3372 i32.lt_s if - i32.const 37696 - i32.const 37744 + i32.const 36160 + i32.const 36208 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4037,11 +3754,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4908 + i32.const 3372 i32.lt_s if - i32.const 37696 - i32.const 37744 + i32.const 36160 + i32.const 36208 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4107,11 +3824,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4908 + i32.const 3372 i32.lt_s if - i32.const 37696 - i32.const 37744 + i32.const 36160 + i32.const 36208 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index 60e8142012..f5ba99c3f3 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -1,20 +1,20 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i64 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $logical/i (mut i32) (i32.const 0)) - (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_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $logical/I (mut i64) (i64.const 0)) + (global $logical/f (mut f32) (f32.const 0)) + (global $logical/F (mut f64) (f64.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)) @@ -23,45 +23,34 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $logical/I (mut i64) (i64.const 0)) - (global $logical/f (mut f32) (f32.const 0)) - (global $logical/F (mut f64) (f64.const 0)) (global $logical/foo (mut i32) (i32.const 456)) (global $logical/bar (mut f64) (f64.const -0)) (global $logical/baz (mut i32) (i32.const 321)) (global $logical/qux (mut f64) (f64.const 2.718)) (global $logical/b (mut i32) (i32.const 0)) (global $logical/c (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2468)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35236)) - (global $~lib/memory/__heap_base i32 (i32.const 35236)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 500)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33268)) + (global $~lib/memory/__heap_base i32 (i32.const 33268)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 464) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "foo" (global $logical/foo)) @@ -70,17 +59,26 @@ (export "qux" (global $logical/qux)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 + (func $logical/testShortcutAnd (param $a i64) (param $b i32) (result i32) + local.get $a + i64.const 0 + i64.ne + if (result i32) + local.get $b + else + i32.const 0 + end + return ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u + (func $logical/testShortcutOr (param $a i64) (param $b i32) (result i32) + local.get $a + i64.const 0 + i64.ne + if (result i32) + i32.const 1 + else + local.get $b + end return ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) @@ -147,7 +145,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -217,7 +215,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -234,7 +232,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -264,9 +262,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 272 + i32.const 336 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -333,7 +331,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 144 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -485,7 +483,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -505,7 +503,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -568,7 +566,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -721,7 +719,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -738,7 +736,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -827,7 +825,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -870,7 +868,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -888,7 +886,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -956,7 +954,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1073,7 +1071,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1119,7 +1117,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1151,7 +1149,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1395,7 +1393,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1615,7 +1613,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1726,8 +1724,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 80 + i32.const 416 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1829,7 +1827,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1900,7 +1898,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2057,7 +2055,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2172,7 +2170,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2192,7 +2190,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2240,8 +2238,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 80 + i32.const 144 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2286,444 +2284,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $logical/testShortcutAnd (param $a i64) (param $b i32) (result i32) - local.get $a - i64.const 0 - i64.ne - if (result i32) - local.get $b - else - i32.const 0 - end - return - ) - (func $logical/testShortcutOr (param $a i64) (param $b i32) (result i32) - local.get $a - i64.const 0 - i64.ne - if (result i32) - i32.const 1 - else - local.get $b - end - return - ) (func $logical/testContextualBoolAnd (param $someObj i32) (param $someInt i32) (result i32) local.get $someObj if (result i32) @@ -2768,20 +2328,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35264 - i32.const 35312 + i32.const 33296 + i32.const 33344 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2790,196 +2346,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $logical/Obj#constructor (param $this i32) (result i32) (local $1 i32) @@ -3182,30 +2569,13 @@ drop i32.const 2 global.set $logical/i - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $logical/i i32.const 2 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -3219,7 +2589,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -3233,7 +2603,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -3247,7 +2617,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -3261,7 +2631,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -3275,7 +2645,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -3289,7 +2659,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -3303,7 +2673,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 39 i32.const 1 call $~lib/builtins/abort @@ -3317,7 +2687,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -3331,7 +2701,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 47 i32.const 1 call $~lib/builtins/abort @@ -3345,7 +2715,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -3359,7 +2729,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 53 i32.const 1 call $~lib/builtins/abort @@ -3374,7 +2744,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 56 i32.const 1 call $~lib/builtins/abort @@ -3389,7 +2759,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 59 i32.const 1 call $~lib/builtins/abort @@ -3404,7 +2774,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -3419,7 +2789,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 65 i32.const 1 call $~lib/builtins/abort @@ -3433,7 +2803,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 76 i32.const 1 call $~lib/builtins/abort @@ -3447,12 +2817,29 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 77 i32.const 1 call $~lib/builtins/abort unreachable end + 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 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace i32.const 0 call $logical/Obj#constructor local.set $4 @@ -3467,7 +2854,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 87 i32.const 1 call $~lib/builtins/abort @@ -3487,7 +2874,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 92 i32.const 1 call $~lib/builtins/abort @@ -3511,7 +2898,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 114 i32.const 1 call $~lib/builtins/abort @@ -3524,7 +2911,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -3542,7 +2929,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -3555,7 +2942,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 121 i32.const 1 call $~lib/builtins/abort @@ -3566,153 +2953,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3757,16 +2997,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 272 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 80 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 5cb7807313..6fa36f750c 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -1,12 +1,12 @@ (module - (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -23,42 +23,21 @@ (global $logical/qux (mut f64) (f64.const 2.718)) (global $logical/b (mut i32) (i32.const 0)) (global $logical/c (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36260)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34292)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\14\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s") - (data $20 (i32.const 3456) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\14\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1276) "<") + (data $5.1 (i32.const 1288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1340) ",") + (data $6.1 (i32.const 1352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1488) "\08\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 ") (export "foo" (global $logical/foo)) (export "bar" (global $logical/bar)) (export "baz" (global $logical/baz)) @@ -80,13 +59,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1344 + i32.const 1296 call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1104 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -107,7 +82,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -155,7 +130,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -164,7 +139,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$135 + block $__inlined_func$~lib/rt/itcms/Object#unlink$123 local.get $1 i32.load offset=4 i32.const -4 @@ -176,19 +151,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36260 + i32.const 34292 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$135 + br $__inlined_func$~lib/rt/itcms/Object#unlink$123 end local.get $1 i32.load offset=8 @@ -196,7 +171,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -225,13 +200,13 @@ i32.const 1 else local.get $0 - i32.const 3456 + i32.const 1488 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1296 + i32.const 1360 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -239,7 +214,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3460 + i32.const 1492 i32.add i32.load i32.const 32 @@ -291,7 +266,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -305,7 +280,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -351,7 +326,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -434,7 +409,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -448,7 +423,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -509,7 +484,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -542,7 +517,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -557,7 +532,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -608,7 +583,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -680,7 +655,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -705,7 +680,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -732,7 +707,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -804,10 +779,10 @@ if unreachable end - i32.const 36272 + i32.const 34304 i32.const 0 i32.store - i32.const 37840 + i32.const 35872 i32.const 0 i32.store loop $for-loop|0 @@ -818,7 +793,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36272 + i32.const 34304 i32.add i32.const 0 i32.store offset=4 @@ -836,7 +811,7 @@ i32.add i32.const 2 i32.shl - i32.const 36272 + i32.const 34304 i32.add i32.const 0 i32.store offset=96 @@ -854,14 +829,14 @@ br $for-loop|0 end end - i32.const 36272 - i32.const 37844 + i32.const 34304 + i32.const 35876 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36272 + i32.const 34304 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -946,7 +921,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36260 + i32.const 34292 i32.lt_u if local.get $0 @@ -1035,14 +1010,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36260 + i32.const 34292 i32.lt_u if local.get $0 @@ -1065,7 +1040,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36260 + i32.const 34292 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1094,7 +1069,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1124,85 +1099,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1210,11 +1118,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1230,7 +1134,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1252,35 +1156,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1290,9 +1182,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1315,86 +1207,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1410,8 +1247,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1419,136 +1256,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1556,223 +1376,25 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3492 - i32.lt_s - if - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end + memory.fill local.get $0 ) (func $~start (local $0 i32) - block $__inlined_func$start:logical + block $__inlined_func$start:logical$1 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 3492 + i32.const 1524 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1781,34 +1403,34 @@ memory.size i32.const 16 i32.shl - i32.const 36260 + i32.const 34292 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1220 + i32.const 1216 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1224 + i32.const 1216 i32.store - i32.const 1264 + i32.const 1216 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1252 + i32.const 1248 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1256 + i32.const 1248 i32.store - i32.const 1296 + i32.const 1248 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1396 + i32.const 1392 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1400 + i32.const 1392 i32.store - i32.const 1440 + i32.const 1392 global.set $~lib/rt/itcms/fromSpace call $logical/Obj#constructor local.set $0 @@ -1819,7 +1441,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 87 i32.const 1 call $~lib/builtins/abort @@ -1834,7 +1456,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 92 i32.const 1 call $~lib/builtins/abort @@ -1845,14 +1467,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1524 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -1876,14 +1497,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1524 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 @@ -1914,7 +1534,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 114 i32.const 1 call $~lib/builtins/abort @@ -1932,7 +1552,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -1942,215 +1562,50 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:logical + br $__inlined_func$start:logical$1 end - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$140 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$140 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1524 i32.lt_s if - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $logical/Obj#constructor (result i32) (local $0 i32) @@ -2159,11 +1614,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1524 i32.lt_s if - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2173,7 +1628,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2198,11 +1652,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1524 i32.lt_s if - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2215,7 +1669,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 @@ -2241,11 +1694,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1524 i32.lt_s if - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2259,7 +1712,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store diff --git a/tests/compiler/loop-flow.debug.wat b/tests/compiler/loop-flow.debug.wat index 987c21fa26..05c6e911dd 100644 --- a/tests/compiler/loop-flow.debug.wat +++ b/tests/compiler/loop-flow.debug.wat @@ -1,58 +1,16 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2464)) - (global $~lib/memory/__data_end i32 (i32.const 2484)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35252)) - (global $~lib/memory/__heap_base i32 (i32.const 35252)) + (type $0 (func (result i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func)) + (type $3 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32860)) + (global $~lib/memory/__heap_base i32 (i32.const 32860)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s\00\00\00\00\00") - (data $20 (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00e\00r\00m\00\00\00\00\00") - (data $21 (i32.const 2464) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s\00\00\00\00\00") + (data $1 (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00e\00r\00m\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "whileReturn" (func $loop-flow/whileReturn)) @@ -78,2638 +36,6 @@ end unreachable ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $loop-flow/whileAny (param $a i32) (result i32) loop $while-continue|0 i32.const 1 @@ -2725,8 +51,8 @@ i32.const 2 i32.eq if - i32.const 2448 - i32.const 2400 + i32.const 80 + i32.const 32 i32.const 24 i32.const 22 call $~lib/builtins/abort @@ -2765,8 +91,8 @@ i32.const 2 i32.eq if - i32.const 2448 - i32.const 2400 + i32.const 80 + i32.const 32 i32.const 54 i32.const 22 call $~lib/builtins/abort @@ -2804,8 +130,8 @@ i32.const 2 i32.eq if - i32.const 2448 - i32.const 2400 + i32.const 80 + i32.const 32 i32.const 78 i32.const 22 call $~lib/builtins/abort @@ -2823,30 +149,13 @@ unreachable ) (func $start:loop-flow - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $loop-flow/whileReturn i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 7 i32.const 1 call $~lib/builtins/abort @@ -2859,7 +168,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -2871,7 +180,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 37 i32.const 1 call $~lib/builtins/abort @@ -2884,7 +193,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 59 i32.const 1 call $~lib/builtins/abort @@ -2896,7 +205,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 67 i32.const 1 call $~lib/builtins/abort @@ -2909,7 +218,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 83 i32.const 1 call $~lib/builtins/abort @@ -2920,8 +229,8 @@ loop $while-continue|0 i32.const 1 if - i32.const 2448 - i32.const 2400 + i32.const 80 + i32.const 32 i32.const 11 i32.const 5 call $~lib/builtins/abort @@ -2942,8 +251,8 @@ (func $loop-flow/forThrow (result i32) i32.const 1 if - i32.const 2448 - i32.const 2400 + i32.const 80 + i32.const 32 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -2965,8 +274,8 @@ ) (func $loop-flow/doThrow (result i32) loop $do-loop|0 - i32.const 2448 - i32.const 2400 + i32.const 80 + i32.const 32 i32.const 71 i32.const 5 call $~lib/builtins/abort @@ -2982,92 +291,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35280 - i32.const 35328 + i32.const 32880 + i32.const 32928 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3076,322 +309,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/loop-flow.release.wat b/tests/compiler/loop-flow.release.wat index 0b37abca46..9cf9b6b708 100644 --- a/tests/compiler/loop-flow.release.wat +++ b/tests/compiler/loop-flow.release.wat @@ -1,60 +1,15 @@ (module (type $0 (func (result i32))) (type $1 (func (param i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36276)) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33884)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s") - (data $20 (i32.const 3452) "\1c") - (data $20.1 (i32.const 3464) "\02\00\00\00\08\00\00\00t\00e\00r\00m") - (data $21 (i32.const 3488) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s") + (data $1 (i32.const 1084) "\1c") + (data $1.1 (i32.const 1096) "\02\00\00\00\08\00\00\00t\00e\00r\00m") (export "whileReturn" (func $loop-flow/whileReturn)) (export "whileThrow" (func $loop-flow/whileThrow)) (export "whileContinue" (func $loop-flow/whileContinue)) @@ -71,1691 +26,6 @@ (func $loop-flow/whileReturn (result i32) i32.const 1 ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$122 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36276 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$122 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3488 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3492 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36288 - i32.const 0 - i32.store - i32.const 37856 - 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 36288 - 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 36288 - 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 36288 - i32.const 37860 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36288 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36276 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36276 - 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 - local.tee $0 - i32.const 36276 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3508 - i32.lt_s - if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $loop-flow/whileAny (param $0 i32) (result i32) loop $while-continue|0 (result i32) local.get $0 @@ -1768,8 +38,8 @@ i32.const 2 i32.eq if - i32.const 3472 - i32.const 3424 + i32.const 1104 + i32.const 1056 i32.const 24 i32.const 22 call $~lib/builtins/abort @@ -1793,8 +63,8 @@ i32.const 2 i32.eq if - i32.const 3472 - i32.const 3424 + i32.const 1104 + i32.const 1056 i32.const 54 i32.const 22 call $~lib/builtins/abort @@ -1816,8 +86,8 @@ i32.const 2 i32.eq if - i32.const 3472 - i32.const 3424 + i32.const 1104 + i32.const 1056 i32.const 78 i32.const 22 call $~lib/builtins/abort @@ -1828,8 +98,8 @@ end ) (func $loop-flow/whileThrow (result i32) - i32.const 3472 - i32.const 3424 + i32.const 1104 + i32.const 1056 i32.const 11 i32.const 5 call $~lib/builtins/abort @@ -1842,54 +112,22 @@ unreachable ) (func $loop-flow/forThrow (result i32) - i32.const 3472 - i32.const 3424 + i32.const 1104 + i32.const 1056 i32.const 41 i32.const 5 call $~lib/builtins/abort unreachable ) (func $loop-flow/doThrow (result i32) - i32.const 3472 - i32.const 3424 + i32.const 1104 + i32.const 1056 i32.const 71 i32.const 5 call $~lib/builtins/abort unreachable ) (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36276 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace i32.const 1 call $loop-flow/whileAny drop @@ -1900,228 +138,39 @@ call $loop-flow/doAny drop ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3508 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$128 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$128 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3508 + i32.const 1116 i32.lt_s if - i32.const 36304 - i32.const 36352 + i32.const 33904 + i32.const 33952 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index 3b717d0f83..278f3cbcac 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -2,19 +2,14 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,470 +18,34 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2640)) - (global $~lib/memory/__data_end i32 (i32.const 2668)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35436)) - (global $~lib/memory/__heap_base i32 (i32.const 35436)) + (global $~lib/rt/__rtti_base i32 (i32.const 672)) + (global $~lib/memory/__data_end i32 (i32.const 700)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33468)) + (global $~lib/memory/__heap_base i32 (i32.const 33468)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2508) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2572) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2640) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 604) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 672) "\06\00\00\00 \00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -551,7 +110,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -621,7 +180,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -638,7 +197,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -668,9 +227,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -737,7 +296,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -889,7 +448,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -909,7 +468,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -972,7 +531,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1125,7 +684,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1142,7 +701,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1231,7 +790,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1274,7 +833,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1292,7 +851,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1360,7 +919,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1477,7 +1036,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1523,7 +1082,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1555,7 +1114,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1799,7 +1358,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2019,7 +1578,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2130,8 +1689,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2233,7 +1792,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2304,7 +1863,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2461,7 +2020,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2576,7 +2135,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2596,7 +2155,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2644,8 +2203,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2765,20 +2324,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35456 - i32.const 35504 + i32.const 33488 + i32.const 33536 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2787,196 +2342,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $managed-cast/Animal#constructor (param $this i32) (result i32) (local $1 i32) @@ -3095,8 +2481,8 @@ if (result i32) local.get $1 else - i32.const 2400 - i32.const 2528 + i32.const 432 + i32.const 560 i32.const 14 i32.const 12 call $~lib/builtins/abort @@ -3193,8 +2579,8 @@ if (result i32) local.get $1 else - i32.const 2592 - i32.const 2528 + i32.const 624 + i32.const 560 i32.const 31 i32.const 9 call $~lib/builtins/abort @@ -3235,8 +2621,8 @@ if (result i32) local.get $1 else - i32.const 2400 - i32.const 2528 + i32.const 432 + i32.const 560 i32.const 36 i32.const 9 call $~lib/builtins/abort @@ -3249,8 +2635,8 @@ if (result i32) local.get $2 else - i32.const 2592 - i32.const 2528 + i32.const 624 + i32.const 560 i32.const 36 i32.const 9 call $~lib/builtins/abort @@ -3292,8 +2678,8 @@ if (result i32) local.get $1 else - i32.const 2592 - i32.const 2528 + i32.const 624 + i32.const 560 i32.const 41 i32.const 30 call $~lib/builtins/abort @@ -3346,8 +2732,8 @@ if (result i32) local.get $1 else - i32.const 2592 - i32.const 2528 + i32.const 624 + i32.const 560 i32.const 47 i32.const 30 call $~lib/builtins/abort @@ -3389,13 +2775,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3470,153 +2856,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3647,16 +2886,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 1519d70e74..2d25a77ab8 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) (type $1 (func (param i32))) - (type $2 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32 i32))) (type $4 (func (result i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,256 +17,33 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36460)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34492)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "|") - (data $19.1 (i32.const 3416) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") - (data $20 (i32.const 3532) "<") - (data $20.1 (i32.const 3544) "\02\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s") - (data $21 (i32.const 3596) "<") - (data $21.1 (i32.const 3608) "\02\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t") - (data $22 (i32.const 3664) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "|") + (data $8.1 (i32.const 1448) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") + (data $9 (i32.const 1564) "<") + (data $9.1 (i32.const 1576) "\02\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s") + (data $10 (i32.const 1628) "<") + (data $10.1 (i32.const 1640) "\02\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t") + (data $11 (i32.const 1696) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3692 - i32.lt_s - if - i32.const 36480 - i32.const 36528 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -287,7 +64,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -335,7 +112,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -344,7 +121,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$150 + block $__inlined_func$~lib/rt/itcms/Object#unlink$138 local.get $1 i32.load offset=4 i32.const -4 @@ -356,19 +133,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36460 + i32.const 34492 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$150 + br $__inlined_func$~lib/rt/itcms/Object#unlink$138 end local.get $1 i32.load offset=8 @@ -376,7 +153,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -405,13 +182,13 @@ i32.const 1 else local.get $0 - i32.const 3664 + i32.const 1696 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -419,7 +196,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3668 + i32.const 1700 i32.add i32.load i32.const 32 @@ -471,7 +248,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -485,7 +262,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -531,7 +308,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -614,7 +391,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -628,7 +405,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -689,7 +466,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -722,7 +499,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -737,7 +514,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -788,7 +565,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -860,7 +637,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -885,7 +662,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -912,7 +689,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -984,10 +761,10 @@ if unreachable end - i32.const 36464 + i32.const 34496 i32.const 0 i32.store - i32.const 38032 + i32.const 36064 i32.const 0 i32.store loop $for-loop|0 @@ -998,7 +775,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36464 + i32.const 34496 i32.add i32.const 0 i32.store offset=4 @@ -1016,7 +793,7 @@ i32.add i32.const 2 i32.shl - i32.const 36464 + i32.const 34496 i32.add i32.const 0 i32.store offset=96 @@ -1034,14 +811,14 @@ br $for-loop|0 end end - i32.const 36464 - i32.const 38036 + i32.const 34496 + i32.const 36068 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36464 + i32.const 34496 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1126,7 +903,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36460 + i32.const 34492 i32.lt_u if local.get $0 @@ -1215,14 +992,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36460 + i32.const 34492 i32.lt_u if local.get $0 @@ -1245,7 +1022,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36460 + i32.const 34492 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1274,7 +1051,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1304,85 +1081,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1390,11 +1100,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1410,7 +1116,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1432,35 +1138,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1470,9 +1164,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1495,86 +1189,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1590,8 +1229,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1599,136 +1238,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1736,14 +1358,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) @@ -1754,7 +1376,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1763,34 +1385,34 @@ memory.size i32.const 16 i32.shl - i32.const 36460 + i32.const 34492 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $managed-cast/Cat#constructor local.set $0 @@ -1802,7 +1424,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1825,7 +1447,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1837,8 +1459,8 @@ local.get $0 i32.eqz if - i32.const 3424 - i32.const 3552 + i32.const 1456 + i32.const 1584 i32.const 14 i32.const 12 call $~lib/builtins/abort @@ -1875,13 +1497,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~instanceof|managed-cast/Cat$89 (result i32) + block $__inlined_func$~instanceof|managed-cast/Cat$85 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1892,14 +1514,14 @@ i32.load i32.const 4 i32.ne - br_if $__inlined_func$~instanceof|managed-cast/Cat$89 + br_if $__inlined_func$~instanceof|managed-cast/Cat$85 drop i32.const 1 end i32.eqz if - i32.const 3616 - i32.const 3552 + i32.const 1648 + i32.const 1584 i32.const 31 i32.const 9 call $~lib/builtins/abort @@ -1922,7 +1544,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1931,7 +1553,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $__inlined_func$~instanceof|managed-cast/Cat$92 (result i32) + block $__inlined_func$~instanceof|managed-cast/Cat$88 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1939,8 +1561,8 @@ local.get $0 i32.eqz if - i32.const 3424 - i32.const 3552 + i32.const 1456 + i32.const 1584 i32.const 36 i32.const 9 call $~lib/builtins/abort @@ -1955,14 +1577,14 @@ i32.load i32.const 4 i32.ne - br_if $__inlined_func$~instanceof|managed-cast/Cat$92 + br_if $__inlined_func$~instanceof|managed-cast/Cat$88 drop i32.const 1 end i32.eqz if - i32.const 3616 - i32.const 3552 + i32.const 1648 + i32.const 1584 i32.const 36 i32.const 9 call $~lib/builtins/abort @@ -1985,7 +1607,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1995,7 +1617,7 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - block $__inlined_func$~instanceof|managed-cast/Cat$95 (result i32) + block $__inlined_func$~instanceof|managed-cast/Cat$91 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -2006,14 +1628,14 @@ i32.load i32.const 4 i32.ne - br_if $__inlined_func$~instanceof|managed-cast/Cat$95 + br_if $__inlined_func$~instanceof|managed-cast/Cat$91 drop i32.const 1 end i32.eqz if - i32.const 3616 - i32.const 3552 + i32.const 1648 + i32.const 1584 i32.const 41 i32.const 30 call $~lib/builtins/abort @@ -2041,7 +1663,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2063,8 +1685,8 @@ i32.const 4 i32.ne if - i32.const 3616 - i32.const 3552 + i32.const 1648 + i32.const 1584 i32.const 47 i32.const 30 call $~lib/builtins/abort @@ -2086,7 +1708,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 36460 + i32.const 34492 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -2127,212 +1749,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36480 - i32.const 36528 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3692 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3692 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$155 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$155 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36480 - i32.const 36528 + i32.const 34512 + i32.const 34560 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s if - i32.const 36480 - i32.const 36528 + i32.const 34512 + i32.const 34560 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $managed-cast/Cat#constructor (result i32) (local $0 i32) @@ -2344,14 +1801,13 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2365,7 +1821,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2375,7 +1831,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -2390,7 +1845,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2401,7 +1856,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2425,8 +1879,8 @@ local.get $0 return end - i32.const 36480 - i32.const 36528 + i32.const 34512 + i32.const 34560 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2438,11 +1892,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3692 + i32.const 1724 i32.lt_s if - i32.const 36480 - i32.const 36528 + i32.const 34512 + i32.const 34560 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/many-locals.debug.wat b/tests/compiler/many-locals.debug.wat index 8defc65024..aaabfefb03 100644 --- a/tests/compiler/many-locals.debug.wat +++ b/tests/compiler/many-locals.debug.wat @@ -1,57 +1,14 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (type $0 (func)) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00m\00a\00n\00y\00-\00l\00o\00c\00a\00l\00s\00.\00t\00s\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00m\00a\00n\00y\00-\00l\00o\00c\00a\00l\00s\00.\00t\00s\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "testI32" (func $many-locals/testI32)) @@ -446,2638 +403,6 @@ local.get $a7F return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $many-locals/testI8 (param $a i32) (result i32) (local $a00 i32) (local $a01 i32) @@ -3468,23 +793,6 @@ return ) (func $start:many-locals - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 42 call $many-locals/testI32 i32.const 42 @@ -3492,7 +800,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 133 i32.const 1 call $~lib/builtins/abort @@ -3505,7 +813,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 267 i32.const 1 call $~lib/builtins/abort @@ -3520,92 +828,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3614,322 +846,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/many-locals.release.wat b/tests/compiler/many-locals.release.wat index 4d33f3381a..d6e24e0568 100644 --- a/tests/compiler/many-locals.release.wat +++ b/tests/compiler/many-locals.release.wat @@ -1,49 +1,11 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00m\00a\00n\00y\00-\00l\00o\00c\00a\00l\00s\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00m\00a\00n\00y\00-\00l\00o\00c\00a\00l\00s\00.\00t\00s") (export "testI32" (func $many-locals/testI32)) (export "testI8" (func $many-locals/testI8)) (export "memory" (memory $0)) - (start $~start) (func $many-locals/testI32 (param $0 i32) (result i32) local.get $0 ) @@ -51,38 +13,4 @@ local.get $0 i32.extend8_s ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/memcpy.debug.wat b/tests/compiler/memcpy.debug.wat index e34cae5f90..1860565e97 100644 --- a/tests/compiler/memcpy.debug.wat +++ b/tests/compiler/memcpy.debug.wat @@ -1,60 +1,16 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $memcpy/base i32 (i32.const 8)) (global $memcpy/dest (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memcpy" (func $memcpy/memcpy)) @@ -1157,2638 +1113,6 @@ local.get $ret return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:memcpy global.get $memcpy/base i64.const 1229782938247303441 @@ -3817,23 +1141,6 @@ i32.const 4 call $memcpy/memcpy global.set $memcpy/dest - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $memcpy/dest global.get $memcpy/base i32.const 1 @@ -3842,7 +1149,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -3855,7 +1162,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 152 i32.const 1 call $~lib/builtins/abort @@ -3872,7 +1179,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 155 i32.const 1 call $~lib/builtins/abort @@ -3885,7 +1192,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 156 i32.const 1 call $~lib/builtins/abort @@ -3900,7 +1207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 157 i32.const 1 call $~lib/builtins/abort @@ -3915,7 +1222,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 158 i32.const 1 call $~lib/builtins/abort @@ -3930,7 +1237,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 159 i32.const 1 call $~lib/builtins/abort @@ -3952,7 +1259,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -3974,7 +1281,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 165 i32.const 1 call $~lib/builtins/abort @@ -3989,7 +1296,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 166 i32.const 1 call $~lib/builtins/abort @@ -4004,7 +1311,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 167 i32.const 1 call $~lib/builtins/abort @@ -4019,7 +1326,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 168 i32.const 1 call $~lib/builtins/abort @@ -4034,92 +1341,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4128,322 +1359,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/memcpy.release.wat b/tests/compiler/memcpy.release.wat index daee3f91e8..ed2015fd9b 100644 --- a/tests/compiler/memcpy.release.wat +++ b/tests/compiler/memcpy.release.wat @@ -1,60 +1,14 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $memcpy/dest (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/memory/__stack_pointer (mut i32) (i32.const 36244)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\12\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\12\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s") (export "memcpy" (func $memcpy/memcpy)) (export "memory" (memory $0)) (start $~start) @@ -745,1692 +699,7 @@ end local.get $5 ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$119 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36244 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$119 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3456 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3460 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36256 - i32.const 0 - i32.store - i32.const 37824 - 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 36256 - 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 36256 - 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 36256 - i32.const 37828 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36256 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36244 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36244 - 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 - local.tee $0 - i32.const 36244 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3476 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $start:memcpy + (func $~start i32.const 8 i64.const 1229782938247303441 i64.store @@ -2448,46 +717,13 @@ i32.const 4 call $memcpy/memcpy global.set $memcpy/dest - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $memcpy/dest i32.const 9 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 151 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2497,9 +733,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 152 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2513,9 +748,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 155 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2525,9 +759,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 156 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2537,9 +770,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 157 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2549,9 +781,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 158 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2561,9 +792,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 159 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2578,9 +808,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 162 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2595,9 +824,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 165 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2607,9 +835,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 166 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2619,9 +846,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 167 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2631,238 +857,44 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 168 - i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~start - call $start:memcpy - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$124 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$124 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3476 + i32.const 1084 i32.lt_s if - i32.const 36272 - i32.const 36320 - i32.const 1 + i32.const 33872 + i32.const 33920 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/memmove.debug.wat b/tests/compiler/memmove.debug.wat index 290b4152b4..2afeaca31e 100644 --- a/tests/compiler/memmove.debug.wat +++ b/tests/compiler/memmove.debug.wat @@ -1,60 +1,16 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $memmove/base i32 (i32.const 8)) (global $memmove/dest (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -245,2638 +201,6 @@ local.get $ret return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:memmove global.get $memmove/base i64.const 1229782938247303441 @@ -2905,23 +229,6 @@ i32.const 4 call $memmove/memmove global.set $memmove/dest - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $memmove/dest global.get $memmove/base i32.const 1 @@ -2930,7 +237,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 55 i32.const 1 call $~lib/builtins/abort @@ -2943,7 +250,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 56 i32.const 1 call $~lib/builtins/abort @@ -2960,7 +267,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 59 i32.const 1 call $~lib/builtins/abort @@ -2973,7 +280,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 60 i32.const 1 call $~lib/builtins/abort @@ -2988,7 +295,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 61 i32.const 1 call $~lib/builtins/abort @@ -3003,7 +310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -3018,7 +325,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 63 i32.const 1 call $~lib/builtins/abort @@ -3040,7 +347,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 66 i32.const 1 call $~lib/builtins/abort @@ -3062,7 +369,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 69 i32.const 1 call $~lib/builtins/abort @@ -3077,7 +384,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 70 i32.const 1 call $~lib/builtins/abort @@ -3092,7 +399,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 71 i32.const 1 call $~lib/builtins/abort @@ -3107,7 +414,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 72 i32.const 1 call $~lib/builtins/abort @@ -3122,92 +429,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3216,322 +447,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/memmove.release.wat b/tests/compiler/memmove.release.wat index 656e072dac..ee5907a19b 100644 --- a/tests/compiler/memmove.release.wat +++ b/tests/compiler/memmove.release.wat @@ -1,60 +1,14 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $memmove/dest (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/memory/__stack_pointer (mut i32) (i32.const 36244)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\14\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\14\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s") (export "memory" (memory $0)) (start $~start) (func $memmove/memmove (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -239,1692 +193,7 @@ end local.get $5 ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$119 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36244 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$119 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3456 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3460 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36256 - i32.const 0 - i32.store - i32.const 37824 - 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 36256 - 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 36256 - 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 36256 - i32.const 37828 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36256 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36244 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36244 - 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 - local.tee $0 - i32.const 36244 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3476 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $start:memmove + (func $~start i32.const 8 i64.const 1229782938247303441 i64.store @@ -1942,46 +211,13 @@ i32.const 4 call $memmove/memmove global.set $memmove/dest - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $memmove/dest i32.const 9 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 55 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1991,9 +227,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 56 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2007,9 +242,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 59 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2019,9 +253,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 60 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2031,9 +264,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 61 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2043,9 +275,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 62 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2055,9 +286,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 63 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2072,9 +302,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 66 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2089,9 +318,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 69 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2101,9 +329,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 70 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2113,9 +340,8 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 71 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2125,238 +351,44 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 72 - i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~start - call $start:memmove - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$124 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$124 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3476 + i32.const 1084 i32.lt_s if - i32.const 36272 - i32.const 36320 - i32.const 1 + i32.const 33872 + i32.const 33920 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/memory.debug.wat b/tests/compiler/memory.debug.wat index 72568074f4..30e50e5710 100644 --- a/tests/compiler/memory.debug.wat +++ b/tests/compiler/memory.debug.wat @@ -1,82 +1,39 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $memory/ptr (mut i32) (i32.const 2448)) - (global $~lib/rt/__rtti_base i32 (i32.const 2592)) - (global $~lib/memory/__data_end i32 (i32.const 2612)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35380)) - (global $~lib/memory/__heap_base i32 (i32.const 35380)) + (type $0 (func (result i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $memory/ptr (mut i32) (i32.const 80)) + (global $~lib/memory/__data_end i32 (i32.const 212)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32980)) + (global $~lib/memory/__heap_base i32 (i32.const 32980)) (memory $0 1) (data $0 (i32.const 16) "\00\00\00\00") - (data $1 (i32.const 28) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 556) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 684) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 780) "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 $17 (i32.const 1180) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2236) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2332) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2396) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00m\00e\00m\00o\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2448) "\00") - (data $22 (i32.const 2464) "\00") - (data $23 (i32.const 2472) "\00") - (data $24 (i32.const 2476) "\00") - (data $25 (i32.const 2478) "\00") - (data $26 (i32.const 2479) "\00") - (data $27 (i32.const 2480) "\00") - (data $28 (i32.const 2496) "\00") - (data $29 (i32.const 2512) "\00") - (data $30 (i32.const 2520) "\00") - (data $31 (i32.const 2524) "\00") - (data $32 (i32.const 2526) "\00") - (data $33 (i32.const 2527) "\00") - (data $34 (i32.const 2528) "\00") - (data $35 (i32.const 2529) "\01\02\03") - (data $36 (i32.const 2532) "\00\00\c0?\00\00 @\00\00`@") - (data $37 (i32.const 2544) "\00") - (data $38 (i32.const 2560) "\01") - (data $39 (i32.const 2568) "\01") - (data $40 (i32.const 2572) "\01") - (data $41 (i32.const 2574) "\01") - (data $42 (i32.const 2575) "\01") - (data $43 (i32.const 2576) "\01") - (data $44 (i32.const 2592) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $1 (i32.const 28) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00m\00e\00m\00o\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 80) "\00") + (data $3 (i32.const 96) "\00") + (data $4 (i32.const 104) "\00") + (data $5 (i32.const 108) "\00") + (data $6 (i32.const 110) "\00") + (data $7 (i32.const 111) "\00") + (data $8 (i32.const 112) "\00") + (data $9 (i32.const 128) "\00") + (data $10 (i32.const 144) "\00") + (data $11 (i32.const 152) "\00") + (data $12 (i32.const 156) "\00") + (data $13 (i32.const 158) "\00") + (data $14 (i32.const 159) "\00") + (data $15 (i32.const 160) "\00") + (data $16 (i32.const 161) "\01\02\03") + (data $17 (i32.const 164) "\00\00\c0?\00\00 @\00\00`@") + (data $18 (i32.const 176) "\00") + (data $19 (i32.const 192) "\01") + (data $20 (i32.const 200) "\01") + (data $21 (i32.const 204) "\01") + (data $22 (i32.const 206) "\01") + (data $23 (i32.const 207) "\01") + (data $24 (i32.const 208) "\01") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -94,2683 +51,34 @@ local.get $value return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 208 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 208 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 208 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 336 - i32.const 400 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 208 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 208 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 144 - i32.const 480 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 480 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 144 - i32.const 208 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 780 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 780 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 780 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 780 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1200 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1200 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2256 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2256 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $memory/testGeneric (result i32) - i32.const 2512 + i32.const 144 return ) (func $memory/testGeneric (result i32) - i32.const 2520 + i32.const 152 return ) (func $memory/testGeneric (result i32) - i32.const 2524 + i32.const 156 return ) (func $memory/testGeneric (result i32) - i32.const 2526 + i32.const 158 return ) (func $memory/testGeneric (result i32) - i32.const 2527 + i32.const 159 return ) (func $start:memory - 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 256 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 288 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 432 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $memory/test i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -2782,7 +90,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -2794,7 +102,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -2803,14 +111,14 @@ global.get $memory/ptr i32.const 16 i32.add - i32.const 2464 + i32.const 96 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -2819,14 +127,14 @@ global.get $memory/ptr i32.const 8 i32.add - i32.const 2472 + i32.const 104 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -2835,14 +143,14 @@ global.get $memory/ptr i32.const 4 i32.add - i32.const 2476 + i32.const 108 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -2851,14 +159,14 @@ global.get $memory/ptr i32.const 2 i32.add - i32.const 2478 + i32.const 110 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -2867,14 +175,14 @@ global.get $memory/ptr i32.const 1 i32.add - i32.const 2479 + i32.const 111 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -2883,18 +191,18 @@ global.get $memory/ptr i32.const 1 i32.add - i32.const 2480 + i32.const 112 i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 24 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2496 + i32.const 128 global.set $memory/ptr global.get $memory/ptr i32.const 16 @@ -2906,7 +214,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -2922,7 +230,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -2938,7 +246,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -2954,7 +262,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 37 i32.const 1 call $~lib/builtins/abort @@ -2970,7 +278,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -2979,18 +287,18 @@ global.get $memory/ptr i32.const 1 i32.add - i32.const 2528 + i32.const 160 i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 39 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2529 + i32.const 161 global.set $memory/ptr global.get $memory/ptr i32.load8_u @@ -2999,7 +307,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -3012,7 +320,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 45 i32.const 1 call $~lib/builtins/abort @@ -3025,13 +333,13 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 46 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2532 + i32.const 164 global.set $memory/ptr global.get $memory/ptr f32.load @@ -3040,7 +348,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 49 i32.const 1 call $~lib/builtins/abort @@ -3053,7 +361,7 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -3066,25 +374,25 @@ i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 51 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2544 + i32.const 176 global.set $memory/ptr global.get $memory/ptr i32.const 16 i32.add - i32.const 2560 + i32.const 192 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 56 i32.const 1 call $~lib/builtins/abort @@ -3093,14 +401,14 @@ global.get $memory/ptr i32.const 8 i32.add - i32.const 2568 + i32.const 200 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 57 i32.const 1 call $~lib/builtins/abort @@ -3109,14 +417,14 @@ global.get $memory/ptr i32.const 4 i32.add - i32.const 2572 + i32.const 204 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 58 i32.const 1 call $~lib/builtins/abort @@ -3125,14 +433,14 @@ global.get $memory/ptr i32.const 2 i32.add - i32.const 2574 + i32.const 206 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 59 i32.const 1 call $~lib/builtins/abort @@ -3141,14 +449,14 @@ global.get $memory/ptr i32.const 1 i32.add - i32.const 2575 + i32.const 207 global.set $memory/ptr global.get $memory/ptr i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 60 i32.const 1 call $~lib/builtins/abort @@ -3157,12 +465,12 @@ global.get $memory/ptr i32.const 1 i32.add - i32.const 2576 + i32.const 208 i32.eq i32.eqz if i32.const 0 - i32.const 2416 + i32.const 48 i32.const 61 i32.const 1 call $~lib/builtins/abort @@ -3177,92 +485,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35408 - i32.const 35456 + i32.const 33008 + i32.const 33056 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 112 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3271,322 +503,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 48 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 80 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 544 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 544 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2352 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 576 - i32.const 704 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 768 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 336 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 144 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1200 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2256 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/memory.release.wat b/tests/compiler/memory.release.wat index 3f5376a349..bb0002009d 100644 --- a/tests/compiler/memory.release.wat +++ b/tests/compiler/memory.release.wat @@ -1,1788 +1,25 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (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 $memory/ptr (mut i32) (i32.const 3456)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36388)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $memory/ptr (mut i32) (i32.const 1088)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33988)) (memory $0 1) - (data $1 (i32.const 1036) "\1c") - (data $1.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1068) "\1c") - (data $2.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1100) "\1c") - (data $3.1 (i32.const 1112) "\02") - (data $4 (i32.const 1132) "<") - (data $4.1 (i32.const 1144) "\02\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 $5 (i32.const 1196) "<") - (data $5.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1324) "<") - (data $8.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1388) ",") - (data $9.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1468) "<") - (data $11.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1532) "\1c") - (data $12.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1564) "|") - (data $13.1 (i32.const 1576) "\02\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 $14 (i32.const 1692) "<") - (data $14.1 (i32.const 1704) "\02\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 $15 (i32.const 1756) "\1c") - (data $15.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1788) "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 $17 (i32.const 2188) "\1c\04") - (data $17.1 (i32.const 2200) "\02\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 $18 (i32.const 3244) "\\") - (data $18.1 (i32.const 3256) "\02\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 $19 (i32.const 3340) "<") - (data $19.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3404) ",") - (data $20.1 (i32.const 3416) "\02\00\00\00\12\00\00\00m\00e\00m\00o\00r\00y\00.\00t\00s") - (data $35 (i32.const 3537) "\01\02\03") - (data $36 (i32.const 3542) "\c0?\00\00 @\00\00`@") - (data $38 (i32.const 3568) "\01") - (data $39 (i32.const 3576) "\01") - (data $40 (i32.const 3580) "\01") - (data $41 (i32.const 3582) "\01") - (data $42 (i32.const 3583) "\01") - (data $43 (i32.const 3584) "\01") - (data $44 (i32.const 3600) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $1 (i32.const 1036) ",") + (data $1.1 (i32.const 1048) "\02\00\00\00\12\00\00\00m\00e\00m\00o\00r\00y\00.\00t\00s") + (data $16 (i32.const 1169) "\01\02\03") + (data $17 (i32.const 1174) "\c0?\00\00 @\00\00`@") + (data $19 (i32.const 1200) "\01") + (data $20 (i32.const 1208) "\01") + (data $21 (i32.const 1212) "\01") + (data $22 (i32.const 1214) "\01") + (data $23 (i32.const 1215) "\01") + (data $24 (i32.const 1216) "\01") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$127 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36388 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$127 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3600 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3604 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36400 - i32.const 0 - i32.store - i32.const 37968 - 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 36400 - 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 36400 - 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 36400 - i32.const 37972 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36400 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36388 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36388 - 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 - local.tee $0 - i32.const 36388 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3620 - i32.lt_s - if - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $start:memory (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36388 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace i32.const 1024 i32.const 1024 i32.load @@ -1793,9 +30,8 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 12 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1811,9 +47,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 13 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1829,121 +64,113 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 14 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $memory/ptr i32.const 16 i32.add - i32.const 3472 + i32.const 1104 global.set $memory/ptr - i32.const 3472 + i32.const 1104 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 19 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $memory/ptr i32.const 8 i32.add - i32.const 3480 + i32.const 1112 global.set $memory/ptr - i32.const 3480 + i32.const 1112 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 20 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $memory/ptr i32.const 4 i32.add - i32.const 3484 + i32.const 1116 global.set $memory/ptr - i32.const 3484 + i32.const 1116 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 21 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $memory/ptr i32.const 2 i32.add - i32.const 3486 + i32.const 1118 global.set $memory/ptr - i32.const 3486 + i32.const 1118 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 22 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $memory/ptr i32.const 1 i32.add - i32.const 3487 + i32.const 1119 global.set $memory/ptr - i32.const 3487 + i32.const 1119 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 23 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $memory/ptr - i32.const 3487 + i32.const 1119 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 24 - i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3504 + i32.const 1136 global.set $memory/ptr - i32.const 3520 + i32.const 1152 global.set $memory/ptr - i32.const 3528 + i32.const 1160 global.set $memory/ptr - i32.const 3532 + i32.const 1164 global.set $memory/ptr - i32.const 3534 + i32.const 1166 global.set $memory/ptr - i32.const 3535 + i32.const 1167 global.set $memory/ptr - i32.const 3537 + i32.const 1169 global.set $memory/ptr - i32.const 3537 + i32.const 1169 i32.load8_u i32.const 1 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 44 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1953,9 +180,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 45 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1965,23 +191,21 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 46 - i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3540 + i32.const 1172 global.set $memory/ptr - i32.const 3540 + i32.const 1172 f32.load f32.const 1.5 f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 49 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1991,9 +215,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 50 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2003,250 +226,59 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 51 - i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3552 + i32.const 1184 global.set $memory/ptr - i32.const 3568 + i32.const 1200 global.set $memory/ptr - i32.const 3576 + i32.const 1208 global.set $memory/ptr - i32.const 3580 + i32.const 1212 global.set $memory/ptr - i32.const 3582 + i32.const 1214 global.set $memory/ptr - i32.const 3583 + i32.const 1215 global.set $memory/ptr ) (func $~start call $start:memory ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3620 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3620 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$132 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$132 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3620 + i32.const 1220 i32.lt_s if - i32.const 36416 - i32.const 36464 - i32.const 1 + i32.const 34016 + i32.const 34064 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/memset.debug.wat b/tests/compiler/memset.debug.wat index 03f3684465..7188e9f084 100644 --- a/tests/compiler/memset.debug.wat +++ b/tests/compiler/memset.debug.wat @@ -1,59 +1,15 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $memset/dest (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -319,2638 +275,6 @@ local.get $ret return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:memset global.get $~lib/memory/__heap_base global.set $memset/dest @@ -2959,23 +283,6 @@ i32.const 16 call $memset/memset drop - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $memset/dest i32.load8_u i32.const 1 @@ -2983,7 +290,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 72 i32.const 1 call $~lib/builtins/abort @@ -2998,7 +305,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 73 i32.const 1 call $~lib/builtins/abort @@ -3018,7 +325,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 77 i32.const 1 call $~lib/builtins/abort @@ -3033,7 +340,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 78 i32.const 1 call $~lib/builtins/abort @@ -3048,7 +355,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 79 i32.const 1 call $~lib/builtins/abort @@ -3063,7 +370,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 80 i32.const 1 call $~lib/builtins/abort @@ -3078,92 +385,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3172,322 +403,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + local.set $4 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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/memset.release.wat b/tests/compiler/memset.release.wat index 2683ac68fe..a3858d0bb2 100644 --- a/tests/compiler/memset.release.wat +++ b/tests/compiler/memset.release.wat @@ -1,60 +1,13 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $memset/dest (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/memory/__stack_pointer (mut i32) (i32.const 36244)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\12\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\12\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s") (export "memory" (memory $0)) (start $~start) (func $memset/memset (param $0 i32) (param $1 i32) (param $2 i32) @@ -247,1739 +200,21 @@ end end ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$120 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36244 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$120 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3456 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3460 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36256 - i32.const 0 - i32.store - i32.const 37824 - 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 36256 - 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 36256 - 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 36256 - i32.const 37828 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36256 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36244 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36244 - 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 - local.tee $0 - i32.const 36244 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3476 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start - i32.const 36244 + i32.const 33852 global.set $memset/dest - i32.const 36244 + i32.const 33852 i32.const 1 i32.const 16 call $memset/memset - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $memset/dest i32.load8_u i32.const 1 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 72 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1989,9 +224,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 73 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2007,9 +241,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 77 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2019,9 +252,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 78 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2031,9 +263,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 79 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2043,235 +274,44 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 80 - i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$125 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$125 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3476 + i32.const 1084 i32.lt_s if - i32.const 36272 - i32.const 36320 - i32.const 1 + i32.const 33872 + i32.const 33920 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/mutable-globals.debug.wat b/tests/compiler/mutable-globals.debug.wat index 3b2b9157b2..24080626c1 100644 --- a/tests/compiler/mutable-globals.debug.wat +++ b/tests/compiler/mutable-globals.debug.wat @@ -1,2723 +1,30 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "mutable-globals" "external" (global $mutable-globals/external (mut i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $mutable-globals/internal (mut i32) (i32.const 124)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2468)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35236)) - (global $~lib/memory/__heap_base i32 (i32.const 35236)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 76)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32844)) + (global $~lib/memory/__heap_base i32 (i32.const 32844)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00m\00u\00t\00a\00b\00l\00e\00-\00g\00l\00o\00b\00a\00l\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2448) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00m\00u\00t\00a\00b\00l\00e\00-\00g\00l\00o\00b\00a\00l\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "external" (global $mutable-globals/external)) (export "internal" (global $mutable-globals/internal)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:mutable-globals - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $mutable-globals/external i32.const 123 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -2729,7 +36,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -2749,7 +56,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -2761,7 +68,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -2782,92 +89,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35264 - i32.const 35312 + i32.const 32864 + i32.const 32912 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2876,322 +107,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/mutable-globals.release.wat b/tests/compiler/mutable-globals.release.wat index d4a1927894..64e4fb78a8 100644 --- a/tests/compiler/mutable-globals.release.wat +++ b/tests/compiler/mutable-globals.release.wat @@ -1,1750 +1,19 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32))) (import "mutable-globals" "external" (global $mutable-globals/external (mut i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $mutable-globals/internal (mut i32) (i32.const 124)) - (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/memory/__stack_pointer (mut i32) (i32.const 36260)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33868)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00$\00\00\00m\00u\00t\00a\00b\00l\00e\00-\00g\00l\00o\00b\00a\00l\00s\00.\00t\00s") - (data $20 (i32.const 3472) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00$\00\00\00m\00u\00t\00a\00b\00l\00e\00-\00g\00l\00o\00b\00a\00l\00s\00.\00t\00s") (export "external" (global $mutable-globals/external)) (export "internal" (global $mutable-globals/internal)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$120 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36260 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$120 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3472 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3476 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36272 - i32.const 0 - i32.store - i32.const 37840 - 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 36272 - 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 36272 - 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 36272 - i32.const 37844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36272 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36260 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36260 - 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 - local.tee $0 - i32.const 36260 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3492 - i32.lt_s - if - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start global.get $~started if @@ -1752,46 +21,13 @@ end i32.const 1 global.set $~started - memory.size - i32.const 16 - i32.shl - i32.const 36260 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace global.get $mutable-globals/external i32.const 123 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 5 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1800,9 +36,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 6 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1819,9 +54,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 11 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1830,235 +64,44 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 12 - i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3492 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$125 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$125 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3492 + i32.const 1100 i32.lt_s if - i32.const 36288 - i32.const 36336 - i32.const 1 + i32.const 33888 + i32.const 33936 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index 6d60743747..63c49e3647 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -1,21 +1,16 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $new/ref (mut i32) (i32.const 0)) - (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 $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -24,6 +19,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -32,464 +31,24 @@ (global $new/genext (mut i32) (i32.const 0)) (global $new/genext2 (mut i32) (i32.const 0)) (global $new/genext3 (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2420)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35188)) - (global $~lib/memory/__heap_base i32 (i32.const 35188)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 452)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33220)) + (global $~lib/memory/__heap_base i32 (i32.const 33220)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2384) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -554,7 +113,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -624,7 +183,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -641,7 +200,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -671,9 +230,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -740,7 +299,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -892,7 +451,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -912,7 +471,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -975,7 +534,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1128,7 +687,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1145,7 +704,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1234,7 +793,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1277,7 +836,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1295,7 +854,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1363,7 +922,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1480,7 +1039,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1526,7 +1085,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1558,7 +1117,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1802,7 +1361,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2022,7 +1581,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2133,8 +1692,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2236,7 +1795,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2307,7 +1866,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2464,7 +2023,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2579,7 +2138,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2599,7 +2158,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2647,8 +2206,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2713,20 +2272,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35216 - i32.const 35264 + i32.const 33248 + i32.const 33296 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2735,196 +2290,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $new/Ref#constructor (param $this i32) (result i32) (local $1 i32) @@ -3096,13 +2482,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3164,153 +2550,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3383,16 +2622,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index f953a301e3..a5e7b4d8ab 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -2,11 +2,11 @@ (type $0 (func (result i32))) (type $1 (func (param i32) (result i32))) (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32))) (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $new/ref (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)) @@ -23,240 +23,21 @@ (global $new/genext (mut i32) (i32.const 0)) (global $new/genext2 (mut i32) (i32.const 0)) (global $new/genext3 (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36212)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34244)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3408) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1440) "\08\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 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3444 - i32.lt_s - if - i32.const 36240 - i32.const 36288 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -296,13 +77,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -323,7 +100,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -371,7 +148,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -380,7 +157,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$129 + block $__inlined_func$~lib/rt/itcms/Object#unlink$117 local.get $1 i32.load offset=4 i32.const -4 @@ -392,19 +169,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36212 + i32.const 34244 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$129 + br $__inlined_func$~lib/rt/itcms/Object#unlink$117 end local.get $1 i32.load offset=8 @@ -412,7 +189,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -441,13 +218,13 @@ i32.const 1 else local.get $0 - i32.const 3408 + i32.const 1440 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -455,7 +232,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3412 + i32.const 1444 i32.add i32.load i32.const 32 @@ -507,7 +284,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -521,7 +298,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -567,7 +344,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -650,7 +427,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -664,7 +441,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -725,7 +502,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -758,7 +535,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -773,7 +550,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -824,7 +601,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -896,7 +673,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -921,7 +698,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -948,7 +725,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1020,10 +797,10 @@ if unreachable end - i32.const 36224 + i32.const 34256 i32.const 0 i32.store - i32.const 37792 + i32.const 35824 i32.const 0 i32.store loop $for-loop|0 @@ -1034,7 +811,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36224 + i32.const 34256 i32.add i32.const 0 i32.store offset=4 @@ -1052,7 +829,7 @@ i32.add i32.const 2 i32.shl - i32.const 36224 + i32.const 34256 i32.add i32.const 0 i32.store offset=96 @@ -1070,14 +847,14 @@ br $for-loop|0 end end - i32.const 36224 - i32.const 37796 + i32.const 34256 + i32.const 35828 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36224 + i32.const 34256 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1162,7 +939,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36212 + i32.const 34244 i32.lt_u if local.get $0 @@ -1251,14 +1028,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36212 + i32.const 34244 i32.lt_u if local.get $0 @@ -1281,7 +1058,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36212 + i32.const 34244 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1310,7 +1087,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1340,85 +1117,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1426,11 +1136,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1446,7 +1152,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1468,35 +1174,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1506,9 +1200,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1531,86 +1225,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1626,8 +1265,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1635,136 +1274,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1772,14 +1394,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) @@ -1788,11 +1410,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3444 + i32.const 1476 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1804,34 +1426,34 @@ memory.size i32.const 16 i32.shl - i32.const 36212 + i32.const 34244 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $new/Ref#constructor global.set $new/ref @@ -1880,205 +1502,40 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3444 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$134 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$134 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36240 - i32.const 36288 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3444 + i32.const 1476 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $new/Ref#constructor (result i32) (local $0 i32) @@ -2087,11 +1544,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3444 + i32.const 1476 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2101,7 +1558,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2126,11 +1582,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3444 + i32.const 1476 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2143,7 +1599,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -2170,11 +1625,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3444 + i32.const 1476 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2184,7 +1639,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 @@ -2210,11 +1664,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3444 + i32.const 1476 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2224,7 +1678,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 @@ -2249,11 +1702,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3444 + i32.const 1476 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2267,7 +1720,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store diff --git a/tests/compiler/number.debug.wat b/tests/compiler/number.debug.wat index 112b149ad9..b7c07afbcb 100644 --- a/tests/compiler/number.debug.wat +++ b/tests/compiler/number.debug.wat @@ -1,27 +1,26 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func)) (type $5 (func (param i32 i32 i32))) (type $6 (func (param f64) (result i32))) - (type $7 (func (param f32) (result i32))) - (type $8 (func (param i32 i32 i64) (result i32))) - (type $9 (func (result i32))) - (type $10 (func (param i32 i64 i32))) - (type $11 (func (param i64 i32) (result i32))) - (type $12 (func (param i32 i64 i32 i32))) - (type $13 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $14 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $15 (func (param i32 i32 i32) (result i32))) - (type $16 (func (param i32 f64 i32) (result i32))) - (type $17 (func (param f64 i32) (result i32))) - (type $18 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param f32) (result i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (type $11 (func (param i32 i64 i32))) + (type $12 (func (param i64 i32) (result i32))) + (type $13 (func (param i32 i64 i32 i32))) + (type $14 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $15 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $16 (func (param i32 i32 i32) (result i32))) + (type $17 (func (param i32 f64 i32) (result i32))) + (type $18 (func (param f64 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $number/a (mut 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/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -30,6 +29,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -50,64 +53,101 @@ (global $~lib/builtins/f64.MIN_SAFE_INTEGER f64 (f64.const -9007199254740991)) (global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991)) (global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16)) - (global $~lib/rt/__rtti_base i32 (i32.const 3824)) - (global $~lib/memory/__data_end i32 (i32.const 3844)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36612)) - (global $~lib/memory/__heap_base i32 (i32.const 36612)) + (global $~lib/rt/__rtti_base i32 (i32.const 3632)) + (global $~lib/memory/__data_end i32 (i32.const 3652)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36420)) + (global $~lib/memory/__heap_base i32 (i32.const 36420)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data $22 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data $23 (i32.const 2524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2624) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2680) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\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|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2288 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2288 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) - (local $child i32) - (local $parent i32) - (local $parentColor i32) - local.get $childPtr - i32.eqz - if - return - end - i32.const 1 - drop - local.get $parentPtr - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $childPtr - i32.const 20 - i32.sub - local.set $child - local.get $child - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $parentPtr - i32.const 20 - i32.sub - local.set $parent - local.get $parent - call $~lib/rt/itcms/Object#get:color - local.set $parentColor - local.get $parentColor - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $expectMultiple - if - local.get $parent - call $~lib/rt/itcms/Object#makeGray - else - local.get $child - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $parentColor - 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 $child - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $object-literal/Managed#set:baz (param $this i32) (param $baz i32) - local.get $this - local.get $baz - i32.store offset=4 - local.get $this - local.get $baz - i32.const 0 - call $~lib/rt/itcms/__link - ) (func $object-literal/Managed#get:bar (param $this i32) (result i32) local.get $this i32.load @@ -2791,6 +2352,19 @@ local.get $this i32.load offset=4 ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -3262,20 +2836,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35456 - i32.const 35504 + i32.const 33520 + i32.const 33568 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3284,196 +2854,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 144 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 80 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 112 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 576 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 576 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2384 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $object-literal/Managed#constructor (param $this i32) (result i32) (local $1 i32) @@ -3647,7 +3048,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 9 i32.const 3 call $~lib/builtins/abort @@ -3670,7 +3071,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -3779,7 +3180,7 @@ local.get $size i32.eqz if - i32.const 144 + i32.const 544 local.set $22 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3847,7 +3248,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -3860,12 +3261,12 @@ local.get $1 i32.store local.get $1 - i32.const 2512 + i32.const 576 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 28 i32.const 3 call $~lib/builtins/abort @@ -4050,7 +3451,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -4068,7 +3469,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 58 i32.const 3 call $~lib/builtins/abort @@ -4086,7 +3487,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 59 i32.const 3 call $~lib/builtins/abort @@ -4104,7 +3505,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -4122,7 +3523,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -4140,7 +3541,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 62 i32.const 3 call $~lib/builtins/abort @@ -4159,7 +3560,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 63 i32.const 3 call $~lib/builtins/abort @@ -4179,7 +3580,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -4198,7 +3599,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -4218,7 +3619,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 66 i32.const 3 call $~lib/builtins/abort @@ -4236,7 +3637,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -4254,7 +3655,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -4272,7 +3673,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 69 i32.const 3 call $~lib/builtins/abort @@ -4292,7 +3693,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 70 i32.const 3 call $~lib/builtins/abort @@ -4387,7 +3788,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 82 i32.const 3 call $~lib/builtins/abort @@ -4405,12 +3806,12 @@ local.get $1 i32.store local.get $1 - i32.const 2544 + i32.const 608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -4428,7 +3829,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -4475,7 +3876,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2576 + i32.const 640 call $object-literal/OmittedFoo#set:bar local.get $this local.set $1 @@ -4483,7 +3884,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2608 + i32.const 672 call $object-literal/OmittedFoo#set:baz local.get $this local.set $1 @@ -4579,12 +3980,12 @@ local.get $1 i32.store local.get $1 - i32.const 2576 + i32.const 640 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 107 i32.const 3 call $~lib/builtins/abort @@ -4602,12 +4003,12 @@ local.get $1 i32.store local.get $1 - i32.const 2608 + i32.const 672 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -4630,7 +4031,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 109 i32.const 3 call $~lib/builtins/abort @@ -4653,7 +4054,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 110 i32.const 3 call $~lib/builtins/abort @@ -4676,7 +4077,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -4699,7 +4100,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 112 i32.const 3 call $~lib/builtins/abort @@ -4722,7 +4123,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 113 i32.const 3 call $~lib/builtins/abort @@ -4745,7 +4146,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -4763,7 +4164,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 115 i32.const 3 call $~lib/builtins/abort @@ -4781,7 +4182,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 116 i32.const 3 call $~lib/builtins/abort @@ -4808,6 +4209,9 @@ i32.const 0 i32.const 24 memory.fill + i32.const 128 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace memory.size i32.const 16 i32.shl @@ -4816,13 +4220,10 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 288 + i32.const 336 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 320 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 464 + i32.const 368 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer @@ -4945,7 +4346,7 @@ local.get $5 i32.store offset=8 local.get $5 - i32.const 2544 + i32.const 608 call $object-literal/MixedOmitted#set:complexType local.get $3 f64.const 0 @@ -4998,153 +4399,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 608 - i32.const 736 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 800 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -5175,16 +4429,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 368 - local.get $0 - call $~lib/rt/itcms/__visit i32.const 176 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1232 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2288 + i32.const 288 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index 91189db1e6..990df61c2e 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -1,120 +1,53 @@ (module (type $0 (func (param i32))) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func)) + (type $1 (func)) + (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/rt/itcms/white (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/state (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/memory/__stack_pointer (mut i32) (i32.const 36452)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34516)) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\02\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d") - (data $1 (i32.const 1084) "\1c") - (data $1.1 (i32.const 1096) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1116) "\1c") - (data $2.1 (i32.const 1128) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1148) "\1c") - (data $3.1 (i32.const 1160) "\02") - (data $4 (i32.const 1180) "<") - (data $4.1 (i32.const 1192) "\02\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 $5 (i32.const 1244) "<") - (data $5.1 (i32.const 1256) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1372) "<") - (data $8.1 (i32.const 1384) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1436) ",") - (data $9.1 (i32.const 1448) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1516) "<") - (data $11.1 (i32.const 1528) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1580) "\1c") - (data $12.1 (i32.const 1592) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1612) "|") - (data $13.1 (i32.const 1624) "\02\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 $14 (i32.const 1740) "<") - (data $14.1 (i32.const 1752) "\02\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 $15 (i32.const 1804) "\1c") - (data $15.1 (i32.const 1816) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1836) "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 $17 (i32.const 2236) "\1c\04") - (data $17.1 (i32.const 2248) "\02\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 $18 (i32.const 3292) "\\") - (data $18.1 (i32.const 3304) "\02\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 $19 (i32.const 3388) "<") - (data $19.1 (i32.const 3400) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3452) "<") - (data $20.1 (i32.const 3464) "\02\00\00\00\"\00\00\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") - (data $21 (i32.const 3516) "\1c") - (data $21.1 (i32.const 3528) "\02\00\00\00\n\00\00\00h\00e\00l\00l\00o") - (data $22 (i32.const 3548) "\1c") - (data $22.1 (i32.const 3560) "\02\00\00\00\08\00\00\00t\00e\00s\00t") - (data $23 (i32.const 3580) "\1c") - (data $23.1 (i32.const 3592) "\02\00\00\00\06\00\00\00b\00a\00r") - (data $24 (i32.const 3612) "\1c") - (data $24.1 (i32.const 3624) "\02\00\00\00\06\00\00\00b\00a\00z") - (data $25 (i32.const 3648) "\08\00\00\00 \00\00\00 \00\00\00 ") - (data $25.1 (i32.const 3672) " ") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $4 (i32.const 1244) ",") + (data $4.1 (i32.const 1256) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $5 (i32.const 1292) "<") + (data $5.1 (i32.const 1304) "\02\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 $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1484) "<") + (data $9.1 (i32.const 1496) "\02\00\00\00\"\00\00\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") + (data $10 (i32.const 1548) "\1c") + (data $10.1 (i32.const 1560) "\02") + (data $11 (i32.const 1580) "\1c") + (data $11.1 (i32.const 1592) "\02\00\00\00\n\00\00\00h\00e\00l\00l\00o") + (data $12 (i32.const 1612) "\1c") + (data $12.1 (i32.const 1624) "\02\00\00\00\08\00\00\00t\00e\00s\00t") + (data $13 (i32.const 1644) "\1c") + (data $13.1 (i32.const 1656) "\02\00\00\00\06\00\00\00b\00a\00r") + (data $14 (i32.const 1676) "\1c") + (data $14.1 (i32.const 1688) "\02\00\00\00\06\00\00\00b\00a\00z") + (data $15 (i32.const 1712) "\08\00\00\00 \00\00\00 \00\00\00 ") + (data $15.1 (i32.const 1736) " ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1392 - call $~lib/rt/itcms/__visit - i32.const 1200 - call $~lib/rt/itcms/__visit - i32.const 2256 - call $~lib/rt/itcms/__visit - i32.const 3312 - call $~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 1264 - i32.const 160 - i32.const 16 - call $~lib/builtins/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) @@ -129,7 +62,7 @@ i32.eqz if i32.const 0 - i32.const 1264 + i32.const 1104 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -138,7 +71,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$217 + block $__inlined_func$~lib/rt/itcms/Object#unlink$206 local.get $0 i32.load offset=4 i32.const -4 @@ -150,19 +83,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36452 + i32.const 34516 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1264 + i32.const 1104 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$217 + br $__inlined_func$~lib/rt/itcms/Object#unlink$206 end local.get $0 i32.load offset=8 @@ -170,7 +103,7 @@ i32.eqz if i32.const 0 - i32.const 1264 + i32.const 1104 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -199,13 +132,13 @@ i32.const 1 else local.get $1 - i32.const 3648 + i32.const 1712 i32.load i32.gt_u if - i32.const 1392 - i32.const 1456 - i32.const 21 + i32.const 1200 + i32.const 1264 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -213,7 +146,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3652 + i32.const 1716 i32.add i32.load i32.const 32 @@ -247,6 +180,105 @@ local.get $0 i32.store offset=8 ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1104 + i32.const 295 + i32.const 14 + call $~lib/builtins/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 + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1200 + call $~lib/rt/itcms/__visit + i32.const 1312 + call $~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 1104 + i32.const 160 + i32.const 16 + call $~lib/builtins/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/__visit (param $0 i32) local.get $0 i32.eqz @@ -284,7 +316,7 @@ i32.eqz if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -298,7 +330,7 @@ i32.lt_u if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -344,7 +376,7 @@ i32.eqz if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -427,7 +459,7 @@ i32.eqz if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -441,7 +473,7 @@ i32.eqz if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -502,7 +534,7 @@ i32.eqz if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -535,7 +567,7 @@ i32.lt_u if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -550,7 +582,7 @@ i32.ne if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -601,7 +633,7 @@ i32.eqz if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -673,7 +705,7 @@ i64.lt_u if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -698,7 +730,7 @@ i32.gt_u if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -725,7 +757,7 @@ i32.gt_u if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -797,10 +829,10 @@ if unreachable end - i32.const 36464 + i32.const 34528 i32.const 0 i32.store - i32.const 38032 + i32.const 36096 i32.const 0 i32.store loop $for-loop|0 @@ -811,7 +843,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36464 + i32.const 34528 i32.add i32.const 0 i32.store offset=4 @@ -829,7 +861,7 @@ i32.add i32.const 2 i32.shl - i32.const 36464 + i32.const 34528 i32.add i32.const 0 i32.store offset=96 @@ -847,21 +879,21 @@ br $for-loop|0 end end - i32.const 36464 - i32.const 38036 + i32.const 34528 + i32.const 36100 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36464 + i32.const 34528 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 36452 + i32.const 34516 i32.lt_u if return @@ -892,7 +924,7 @@ end if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -989,7 +1021,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36452 + i32.const 34516 i32.lt_u if local.get $0 @@ -1078,14 +1110,14 @@ i32.ne if i32.const 0 - i32.const 1264 + i32.const 1104 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36452 + i32.const 34516 i32.lt_u if local.get $0 @@ -1177,7 +1209,7 @@ i32.eqz if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1229,7 +1261,7 @@ i32.eqz if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1259,8 +1291,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1200 - i32.const 1536 + i32.const 1312 + i32.const 1440 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1362,7 +1394,7 @@ i32.eqz if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1377,7 +1409,7 @@ i32.gt_u if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1396,7 +1428,7 @@ i32.and if i32.const 0 - i32.const 1536 + i32.const 1440 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1463,8 +1495,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1200 - i32.const 1264 + i32.const 1312 + i32.const 1104 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1474,7 +1506,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$69 + block $__inlined_func$~lib/rt/itcms/interrupt$68 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1491,7 +1523,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + br $__inlined_func$~lib/rt/itcms/interrupt$68 end local.get $2 i32.const 0 @@ -1567,536 +1599,119 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) + (func $~start + call $start:object-literal + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - local.set $1 + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s if - i32.const 36480 - i32.const 36528 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$73 + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 local.get $1 i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1824 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$73 - end + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1836 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1836 - 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 1836 - 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 1836 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - local.get $1 - i32.eqz - if - return - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 295 - i32.const 14 - call $~lib/builtins/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 - ) - (func $~start - call $start:object-literal - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3684 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3684 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$222 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1168 - local.set $0 - br $__inlined_func$~lib/string/String#concat$222 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36480 - i32.const 36528 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3684 - i32.lt_s - if - i32.const 36480 - i32.const 36528 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1104 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1136 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1600 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1600 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3408 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (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) - 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 3684 - i32.lt_s - if - i32.const 36480 - i32.const 36528 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u + i32.store + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u if (result i32) local.get $2 i32.const 7 @@ -2135,7 +1750,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$84 + block $__inlined_func$~lib/util/string/compareImpl$81 loop $while-continue|1 local.get $0 local.tee $3 @@ -2155,7 +1770,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$84 + br_if $__inlined_func$~lib/util/string/compareImpl$81 local.get $2 i32.const 2 i32.add @@ -2190,11 +1805,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s if - i32.const 36480 - i32.const 36528 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2210,7 +1825,7 @@ i32.load if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -2223,7 +1838,7 @@ i32.load offset=4 if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 58 i32.const 3 call $~lib/builtins/abort @@ -2238,7 +1853,7 @@ i64.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 59 i32.const 3 call $~lib/builtins/abort @@ -2253,7 +1868,7 @@ i64.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -2268,7 +1883,7 @@ f32.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -2283,7 +1898,7 @@ f64.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 62 i32.const 3 call $~lib/builtins/abort @@ -2296,7 +1911,7 @@ i32.load8_u offset=40 if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 63 i32.const 3 call $~lib/builtins/abort @@ -2309,7 +1924,7 @@ i32.load8_u offset=41 if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -2322,7 +1937,7 @@ i32.load16_u offset=42 if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -2335,7 +1950,7 @@ i32.load16_u offset=44 if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 66 i32.const 3 call $~lib/builtins/abort @@ -2348,7 +1963,7 @@ i32.load offset=48 if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -2361,7 +1976,7 @@ i32.load offset=52 if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -2376,7 +1991,7 @@ f64.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 69 i32.const 3 call $~lib/builtins/abort @@ -2389,7 +2004,7 @@ i32.load8_u offset=64 if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 70 i32.const 3 call $~lib/builtins/abort @@ -2407,11 +2022,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s if - i32.const 36480 - i32.const 36528 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2429,12 +2044,12 @@ local.tee $1 i32.store local.get $1 - i32.const 3600 + i32.const 1664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 107 i32.const 3 call $~lib/builtins/abort @@ -2449,12 +2064,12 @@ local.tee $1 i32.store local.get $1 - i32.const 3632 + i32.const 1696 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -2474,7 +2089,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 109 i32.const 3 call $~lib/builtins/abort @@ -2494,7 +2109,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 110 i32.const 3 call $~lib/builtins/abort @@ -2514,7 +2129,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -2534,7 +2149,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 112 i32.const 3 call $~lib/builtins/abort @@ -2554,7 +2169,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 113 i32.const 3 call $~lib/builtins/abort @@ -2574,7 +2189,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -2587,7 +2202,7 @@ i32.load offset=32 if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 115 i32.const 3 call $~lib/builtins/abort @@ -2602,7 +2217,7 @@ i32.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 116 i32.const 3 call $~lib/builtins/abort @@ -2625,44 +2240,44 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 24 memory.fill + i32.const 1156 + i32.const 1152 + i32.store + i32.const 1160 + i32.const 1152 + i32.store + i32.const 1152 + global.set $~lib/rt/itcms/toSpace memory.size i32.const 16 i32.shl - i32.const 36452 + i32.const 34516 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1316 - i32.const 1312 + i32.const 1364 + i32.const 1360 i32.store - i32.const 1320 - i32.const 1312 + i32.const 1368 + i32.const 1360 i32.store - i32.const 1312 + i32.const 1360 global.set $~lib/rt/itcms/pinSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 + i32.const 1396 + i32.const 1392 i32.store - i32.const 1344 - global.set $~lib/rt/itcms/toSpace - i32.const 1492 - i32.const 1488 - i32.store - i32.const 1496 - i32.const 1488 + i32.const 1400 + i32.const 1392 i32.store - i32.const 1488 + i32.const 1392 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2670,7 +2285,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2734,7 +2349,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2749,7 +2364,7 @@ i32.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 9 i32.const 3 call $~lib/builtins/abort @@ -2769,7 +2384,7 @@ i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -2803,7 +2418,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2831,7 +2446,7 @@ i32.const 1 i32.shl local.set $3 - block $__inlined_func$~lib/string/String#substring$223 + block $__inlined_func$~lib/string/String#substring$211 local.get $2 i32.const 0 local.get $2 @@ -2850,9 +2465,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1168 + i32.const 1568 local.set $0 - br $__inlined_func$~lib/string/String#substring$223 + br $__inlined_func$~lib/string/String#substring$211 end local.get $3 i32.eqz @@ -2869,7 +2484,7 @@ global.set $~lib/memory/__stack_pointer i32.const 1056 local.set $0 - br $__inlined_func$~lib/string/String#substring$223 + br $__inlined_func$~lib/string/String#substring$211 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -2899,7 +2514,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2911,7 +2526,7 @@ i32.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -2923,12 +2538,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3536 + i32.const 1600 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 28 i32.const 3 call $~lib/builtins/abort @@ -2946,7 +2561,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3109,7 +2724,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3166,10 +2781,10 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 3568 + i32.const 1632 i32.store offset=4 local.get $1 - i32.const 3568 + i32.const 1632 call $~lib/rt/itcms/__link local.get $1 f64.const 0 @@ -3182,7 +2797,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3195,7 +2810,7 @@ i32.load if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 82 i32.const 3 call $~lib/builtins/abort @@ -3210,12 +2825,12 @@ local.tee $0 i32.store local.get $0 - i32.const 3568 + i32.const 1632 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -3230,7 +2845,7 @@ f64.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -3246,7 +2861,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3270,19 +2885,19 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 3600 + i32.const 1664 i32.store local.get $0 - i32.const 3600 + i32.const 1664 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3632 + i32.const 1696 i32.store offset=4 local.get $0 - i32.const 3632 + i32.const 1696 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -3382,7 +2997,7 @@ i32.store local.get $0 call $object-literal/testOmittedFoo - i32.const 36452 + i32.const 34516 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -3423,8 +3038,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36480 - i32.const 36528 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3436,11 +3051,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3684 + i32.const 1748 i32.lt_s if - i32.const 36480 - i32.const 36528 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/operator-overload-non-ambiguity.debug.wat b/tests/compiler/operator-overload-non-ambiguity.debug.wat index 12303743fa..34bb7279ca 100644 --- a/tests/compiler/operator-overload-non-ambiguity.debug.wat +++ b/tests/compiler/operator-overload-non-ambiguity.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,468 +18,32 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2480)) - (global $~lib/memory/__data_end i32 (i32.const 2516)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35284)) - (global $~lib/memory/__heap_base i32 (i32.const 35284)) + (global $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/memory/__data_end i32 (i32.const 548)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33316)) + (global $~lib/memory/__heap_base i32 (i32.const 33316)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00-\00n\00o\00n\00-\00a\00m\00b\00i\00g\00u\00i\00t\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2480) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00-\00n\00o\00n\00-\00a\00m\00b\00i\00g\00u\00i\00t\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 512) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -549,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -619,7 +178,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -636,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -666,9 +225,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -735,7 +294,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -887,7 +446,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -907,7 +466,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -970,7 +529,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1123,7 +682,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1140,7 +699,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1229,7 +788,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1272,7 +831,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1290,7 +849,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1358,7 +917,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1475,7 +1034,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1521,7 +1080,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1553,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1797,7 +1356,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2017,7 +1576,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2128,8 +1687,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2231,7 +1790,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2302,7 +1861,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2459,7 +2018,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2574,7 +2133,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2594,7 +2153,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2642,8 +2201,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2699,7 +2258,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -2716,20 +2275,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35312 - i32.const 35360 + i32.const 33344 + i32.const 33392 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2738,196 +2293,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $operator-overload-non-ambiguity/Base#constructor (param $this i32) (result i32) (local $1 i32) @@ -3099,13 +2485,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3126,7 +2512,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -3144,7 +2530,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -3162,7 +2548,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -3173,153 +2559,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3350,16 +2589,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/operator-overload-non-ambiguity.release.wat b/tests/compiler/operator-overload-non-ambiguity.release.wat index 6c9147695b..a90071aca0 100644 --- a/tests/compiler/operator-overload-non-ambiguity.release.wat +++ b/tests/compiler/operator-overload-non-ambiguity.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,252 +17,29 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36308)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34340)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "\\") - (data $19.1 (i32.const 3416) "\02\00\00\00D\00\00\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00-\00n\00o\00n\00-\00a\00m\00b\00i\00g\00u\00i\00t\00y\00.\00t\00s") - (data $20 (i32.const 3504) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "\\") + (data $8.1 (i32.const 1448) "\02\00\00\00D\00\00\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00-\00n\00o\00n\00-\00a\00m\00b\00i\00g\00u\00i\00t\00y\00.\00t\00s") + (data $9 (i32.const 1536) "\08\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 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3540 - i32.lt_s - if - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -283,7 +60,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -331,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -340,7 +117,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$129 + block $__inlined_func$~lib/rt/itcms/Object#unlink$117 local.get $1 i32.load offset=4 i32.const -4 @@ -352,19 +129,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36308 + i32.const 34340 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$129 + br $__inlined_func$~lib/rt/itcms/Object#unlink$117 end local.get $1 i32.load offset=8 @@ -372,7 +149,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -401,13 +178,13 @@ i32.const 1 else local.get $0 - i32.const 3504 + i32.const 1536 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -415,7 +192,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3508 + i32.const 1540 i32.add i32.load i32.const 32 @@ -467,7 +244,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -481,7 +258,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -527,7 +304,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -610,7 +387,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -624,7 +401,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -685,7 +462,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -718,7 +495,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -733,7 +510,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -784,7 +561,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -856,7 +633,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -881,7 +658,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -908,7 +685,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -980,10 +757,10 @@ if unreachable end - i32.const 36320 + i32.const 34352 i32.const 0 i32.store - i32.const 37888 + i32.const 35920 i32.const 0 i32.store loop $for-loop|0 @@ -994,7 +771,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36320 + i32.const 34352 i32.add i32.const 0 i32.store offset=4 @@ -1012,7 +789,7 @@ i32.add i32.const 2 i32.shl - i32.const 36320 + i32.const 34352 i32.add i32.const 0 i32.store offset=96 @@ -1030,14 +807,14 @@ br $for-loop|0 end end - i32.const 36320 - i32.const 37892 + i32.const 34352 + i32.const 35924 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36320 + i32.const 34352 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1122,7 +899,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36308 + i32.const 34340 i32.lt_u if local.get $0 @@ -1211,14 +988,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36308 + i32.const 34340 i32.lt_u if local.get $0 @@ -1241,7 +1018,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36308 + i32.const 34340 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1270,7 +1047,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1300,85 +1077,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1386,11 +1096,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1406,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1428,35 +1134,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1466,9 +1160,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1491,86 +1185,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1586,8 +1225,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1595,136 +1234,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1732,14 +1354,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) @@ -1749,7 +1371,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3540 + i32.const 1572 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1758,48 +1380,47 @@ memory.size i32.const 16 i32.shl - i32.const 36308 + i32.const 34340 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 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 3540 + i32.const 1572 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -1824,14 +1445,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3540 + i32.const 1572 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 @@ -1867,212 +1487,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36336 - i32.const 36384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$134 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$134 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36336 - i32.const 36384 + i32.const 34368 + i32.const 34416 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3540 + i32.const 1572 i32.lt_s if - i32.const 36336 - i32.const 36384 + i32.const 34368 + i32.const 34416 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $operator-overload-non-ambiguity/Base#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2080,11 +1535,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3540 + i32.const 1572 i32.lt_s if - i32.const 36336 - i32.const 36384 + i32.const 34368 + i32.const 34416 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2097,7 +1552,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -2124,11 +1578,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3540 + i32.const 1572 i32.lt_s if - i32.const 36336 - i32.const 36384 + i32.const 34368 + i32.const 34416 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2138,7 +1592,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 @@ -2163,11 +1616,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3540 + i32.const 1572 i32.lt_s if - i32.const 36336 - i32.const 36384 + i32.const 34368 + i32.const 34416 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2181,7 +1634,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index 8453e396c8..f2aafd7ee5 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -2,21 +2,16 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32) (result i32))) - (type $12 (func (param i32 f64 f64) (result f64))) - (type $13 (func (param i32 i32 i32 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)) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (type $10 (func (param i32 f64 f64) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -25,6 +20,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -32,31 +31,21 @@ (global $optional-typeparameters/tDerived (mut i32) (i32.const 0)) (global $optional-typeparameters/tMethodDerived (mut i32) (i32.const 0)) (global $optional-typeparameters/tMethodDerived2 (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2424)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35192)) - (global $~lib/memory/__heap_base i32 (i32.const 35192)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 456)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33224)) + (global $~lib/memory/__heap_base i32 (i32.const 33224)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2384) "\t\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") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\t\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") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -69,435 +58,6 @@ local.get $a return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -562,7 +122,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -632,7 +192,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -649,7 +209,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -679,9 +239,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -748,7 +308,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -900,7 +460,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -920,7 +480,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -983,7 +543,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1136,7 +696,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1153,7 +713,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1242,7 +802,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1285,7 +845,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1303,7 +863,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1371,7 +931,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1488,7 +1048,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1534,7 +1094,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1566,7 +1126,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1810,7 +1370,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2030,7 +1590,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2141,8 +1701,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2244,7 +1804,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2315,7 +1875,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2472,7 +2032,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2587,7 +2147,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2607,7 +2167,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2655,8 +2215,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2727,20 +2287,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35216 - i32.const 35264 + i32.const 33248 + i32.const 33296 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2749,196 +2305,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $"optional-typeparameters/TestConcrete#constructor" (param $this i32) (result i32) (local $1 i32) @@ -3138,13 +2525,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3204,153 +2591,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3409,16 +2649,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3510,6 +2744,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index fe4a7611a9..6dc6ae0a01 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -21,240 +21,21 @@ (global $optional-typeparameters/tDerived (mut i32) (i32.const 0)) (global $optional-typeparameters/tMethodDerived (mut i32) (i32.const 0)) (global $optional-typeparameters/tMethodDerived2 (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36216)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34248)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3408) "\t\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 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1440) "\t\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 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3448 - i32.lt_s - if - i32.const 36240 - i32.const 36288 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -282,13 +63,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -309,7 +86,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -357,7 +134,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -366,7 +143,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$144 + block $__inlined_func$~lib/rt/itcms/Object#unlink$132 local.get $1 i32.load offset=4 i32.const -4 @@ -378,19 +155,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36216 + i32.const 34248 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$144 + br $__inlined_func$~lib/rt/itcms/Object#unlink$132 end local.get $1 i32.load offset=8 @@ -398,7 +175,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -427,13 +204,13 @@ i32.const 1 else local.get $0 - i32.const 3408 + i32.const 1440 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -441,7 +218,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3412 + i32.const 1444 i32.add i32.load i32.const 32 @@ -493,7 +270,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -507,7 +284,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -553,7 +330,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -636,7 +413,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -650,7 +427,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -711,7 +488,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -744,7 +521,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -759,7 +536,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -810,7 +587,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -882,7 +659,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -907,7 +684,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -934,7 +711,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1006,10 +783,10 @@ if unreachable end - i32.const 36224 + i32.const 34256 i32.const 0 i32.store - i32.const 37792 + i32.const 35824 i32.const 0 i32.store loop $for-loop|0 @@ -1020,7 +797,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36224 + i32.const 34256 i32.add i32.const 0 i32.store offset=4 @@ -1038,7 +815,7 @@ i32.add i32.const 2 i32.shl - i32.const 36224 + i32.const 34256 i32.add i32.const 0 i32.store offset=96 @@ -1056,14 +833,14 @@ br $for-loop|0 end end - i32.const 36224 - i32.const 37796 + i32.const 34256 + i32.const 35828 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36224 + i32.const 34256 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1148,7 +925,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36216 + i32.const 34248 i32.lt_u if local.get $0 @@ -1237,14 +1014,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36216 + i32.const 34248 i32.lt_u if local.get $0 @@ -1267,7 +1044,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36216 + i32.const 34248 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1296,7 +1073,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1326,85 +1103,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1412,11 +1122,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1432,7 +1138,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1454,35 +1160,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1492,9 +1186,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1517,86 +1211,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1612,8 +1251,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1621,136 +1260,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1758,14 +1380,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) @@ -1775,7 +1397,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3448 + i32.const 1480 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1784,48 +1406,47 @@ memory.size i32.const 16 i32.shl - i32.const 36216 + i32.const 34248 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 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 3448 + i32.const 1480 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -1852,14 +1473,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3448 + i32.const 1480 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -1886,14 +1506,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3448 + i32.const 1480 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 @@ -1920,14 +1539,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3448 + i32.const 1480 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 @@ -1958,7 +1576,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3448 + i32.const 1480 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1977,212 +1595,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36240 - i32.const 36288 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3448 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3448 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$149 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$149 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3448 + i32.const 1480 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2190,11 +1643,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3448 + i32.const 1480 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2208,7 +1661,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2261,11 +1713,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3448 + i32.const 1480 i32.lt_s if - i32.const 36240 - i32.const 36288 + i32.const 34272 + i32.const 34320 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/overflow.debug.wat b/tests/compiler/overflow.debug.wat index 22b5f1d701..be3b4d4efb 100644 --- a/tests/compiler/overflow.debug.wat +++ b/tests/compiler/overflow.debug.wat @@ -1,2693 +1,17 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:overflow (local $val i32) (local $ctx i32) @@ -2709,23 +33,6 @@ (local $b5 i32) (local $b6 i32) (local $c i32) - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 127 local.set $val local.get $val @@ -2739,7 +46,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -2756,7 +63,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 3 call $~lib/builtins/abort @@ -2776,7 +83,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -2796,7 +103,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 19 i32.const 3 call $~lib/builtins/abort @@ -2813,7 +120,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -2830,7 +137,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 25 i32.const 3 call $~lib/builtins/abort @@ -2848,7 +155,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 28 i32.const 3 call $~lib/builtins/abort @@ -2866,7 +173,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 31 i32.const 3 call $~lib/builtins/abort @@ -2881,7 +188,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -2900,7 +207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -2917,7 +224,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -2937,7 +244,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 48 i32.const 3 call $~lib/builtins/abort @@ -2957,7 +264,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 51 i32.const 3 call $~lib/builtins/abort @@ -2974,7 +281,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 54 i32.const 3 call $~lib/builtins/abort @@ -2991,7 +298,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -3009,7 +316,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -3027,7 +334,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 63 i32.const 3 call $~lib/builtins/abort @@ -3042,7 +349,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -3062,7 +369,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -3080,7 +387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 77 i32.const 3 call $~lib/builtins/abort @@ -3101,7 +408,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 80 i32.const 3 call $~lib/builtins/abort @@ -3122,7 +429,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -3140,7 +447,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 86 i32.const 3 call $~lib/builtins/abort @@ -3158,7 +465,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 89 i32.const 3 call $~lib/builtins/abort @@ -3177,7 +484,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 92 i32.const 3 call $~lib/builtins/abort @@ -3196,7 +503,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 95 i32.const 3 call $~lib/builtins/abort @@ -3212,7 +519,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -3232,7 +539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 106 i32.const 3 call $~lib/builtins/abort @@ -3250,7 +557,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 109 i32.const 3 call $~lib/builtins/abort @@ -3271,7 +578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 112 i32.const 3 call $~lib/builtins/abort @@ -3292,7 +599,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 115 i32.const 3 call $~lib/builtins/abort @@ -3310,7 +617,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 118 i32.const 3 call $~lib/builtins/abort @@ -3328,7 +635,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 121 i32.const 3 call $~lib/builtins/abort @@ -3347,7 +654,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 124 i32.const 3 call $~lib/builtins/abort @@ -3366,7 +673,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 127 i32.const 3 call $~lib/builtins/abort @@ -3382,7 +689,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 129 i32.const 3 call $~lib/builtins/abort @@ -3410,7 +717,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 144 i32.const 3 call $~lib/builtins/abort @@ -3426,7 +733,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -3440,7 +747,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 150 i32.const 3 call $~lib/builtins/abort @@ -3466,7 +773,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 159 i32.const 3 call $~lib/builtins/abort @@ -3481,92 +788,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3575,322 +806,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + local.set $4 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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/overflow.release.wat b/tests/compiler/overflow.release.wat index e2eaf49653..c01f5ed58b 100644 --- a/tests/compiler/overflow.release.wat +++ b/tests/compiler/overflow.release.wat @@ -1,78 +1,6 @@ (module - (type $0 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\16\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\16\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s") (export "memory" (memory $0)) - (start $~start) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/polyfills.debug.wat b/tests/compiler/polyfills.debug.wat index cf86eb1cbf..c98234ecae 100644 --- a/tests/compiler/polyfills.debug.wat +++ b/tests/compiler/polyfills.debug.wat @@ -1,58 +1,15 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i64) (result i64))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i64) (result i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s\00\00\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -67,2638 +24,6 @@ local.get $value return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/polyfills/bswap (param $value i32) (result i32) i32.const 1 drop @@ -2988,23 +313,6 @@ return ) (func $start:polyfills - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 170 call $~lib/polyfills/bswap i32.const 255 @@ -3014,7 +322,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2 i32.const 1 call $~lib/builtins/abort @@ -3029,7 +337,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3 i32.const 1 call $~lib/builtins/abort @@ -3044,7 +352,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -3059,7 +367,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 7 i32.const 1 call $~lib/builtins/abort @@ -3074,7 +382,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -3087,7 +395,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -3100,7 +408,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -3113,7 +421,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -3126,7 +434,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -3139,7 +447,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -3152,7 +460,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -3165,7 +473,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -3178,7 +486,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -3191,7 +499,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -3206,92 +514,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3300,322 +532,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/polyfills.release.wat b/tests/compiler/polyfills.release.wat index 77cabf6ba9..b46680aba3 100644 --- a/tests/compiler/polyfills.release.wat +++ b/tests/compiler/polyfills.release.wat @@ -1,78 +1,6 @@ (module - (type $0 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\18\00\00\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\18\00\00\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s") (export "memory" (memory $0)) - (start $~start) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/portable-conversions.debug.wat b/tests/compiler/portable-conversions.debug.wat index c8a881cb3a..88ea05a110 100644 --- a/tests/compiler/portable-conversions.debug.wat +++ b/tests/compiler/portable-conversions.debug.wat @@ -1,2721 +1,28 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $portable-conversions/i (mut i32) (i32.const 1)) (global $portable-conversions/I (mut i64) (i64.const 1)) (global $portable-conversions/f (mut f32) (f32.const 1)) (global $portable-conversions/F (mut f64) (f64.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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2464)) - (global $~lib/memory/__data_end i32 (i32.const 2484)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35252)) - (global $~lib/memory/__heap_base i32 (i32.const 35252)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32860)) + (global $~lib/memory/__heap_base i32 (i32.const 32860)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2464) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s\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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:portable-conversions - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $portable-conversions/i i32.extend8_s i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -2727,7 +34,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 7 i32.const 1 call $~lib/builtins/abort @@ -2739,7 +46,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -2751,7 +58,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -2762,7 +69,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -2774,7 +81,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -2786,7 +93,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -2798,7 +105,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -2808,7 +115,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -2819,7 +126,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -2830,7 +137,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -2841,7 +148,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -2852,7 +159,7 @@ i64.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -2862,7 +169,7 @@ i64.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -2873,7 +180,7 @@ i64.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -2884,7 +191,7 @@ i64.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -2894,7 +201,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -2905,7 +212,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -2916,7 +223,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -2927,7 +234,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -2939,7 +246,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -2952,7 +259,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 32 i32.const 1 call $~lib/builtins/abort @@ -2965,7 +272,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -2978,7 +285,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -2990,7 +297,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -3003,7 +310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 37 i32.const 1 call $~lib/builtins/abort @@ -3016,7 +323,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -3029,7 +336,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 39 i32.const 1 call $~lib/builtins/abort @@ -3039,7 +346,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -3050,7 +357,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -3061,7 +368,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -3072,7 +379,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -3083,7 +390,7 @@ i64.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 46 i32.const 1 call $~lib/builtins/abort @@ -3093,7 +400,7 @@ i64.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 47 i32.const 1 call $~lib/builtins/abort @@ -3104,7 +411,7 @@ i64.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 48 i32.const 1 call $~lib/builtins/abort @@ -3115,7 +422,7 @@ i64.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 49 i32.const 1 call $~lib/builtins/abort @@ -3125,7 +432,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -3136,7 +443,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 52 i32.const 1 call $~lib/builtins/abort @@ -3147,7 +454,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 53 i32.const 1 call $~lib/builtins/abort @@ -3158,7 +465,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -3170,7 +477,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 56 i32.const 1 call $~lib/builtins/abort @@ -3182,7 +489,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 57 i32.const 1 call $~lib/builtins/abort @@ -3199,7 +506,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 58 i32.const 1 call $~lib/builtins/abort @@ -3216,7 +523,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 59 i32.const 1 call $~lib/builtins/abort @@ -3228,7 +535,7 @@ f32.eq if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 61 i32.const 1 call $~lib/builtins/abort @@ -3240,7 +547,7 @@ f32.eq if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -3251,7 +558,7 @@ f32.eq if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 63 i32.const 1 call $~lib/builtins/abort @@ -3263,7 +570,7 @@ f32.eq if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 64 i32.const 1 call $~lib/builtins/abort @@ -3275,7 +582,7 @@ f64.eq if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 66 i32.const 1 call $~lib/builtins/abort @@ -3287,7 +594,7 @@ f64.eq if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 67 i32.const 1 call $~lib/builtins/abort @@ -3299,7 +606,7 @@ f64.eq if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 68 i32.const 1 call $~lib/builtins/abort @@ -3310,7 +617,7 @@ f64.eq if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 69 i32.const 1 call $~lib/builtins/abort @@ -3325,92 +632,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35280 - i32.const 35328 + i32.const 32880 + i32.const 32928 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3419,322 +650,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/portable-conversions.release.wat b/tests/compiler/portable-conversions.release.wat index dd59cfb444..671881b0f2 100644 --- a/tests/compiler/portable-conversions.release.wat +++ b/tests/compiler/portable-conversions.release.wat @@ -1,78 +1,6 @@ (module - (type $0 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "L") - (data $19.1 (i32.const 3416) "\02\00\00\00.\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s") - (data $20 (i32.const 3488) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "L") + (data $0.1 (i32.const 1048) "\02\00\00\00.\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s") (export "memory" (memory $0)) - (start $~start) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36276 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/possibly-null.debug.wat b/tests/compiler/possibly-null.debug.wat index 5a41e0d7ab..54e407d01c 100644 --- a/tests/compiler/possibly-null.debug.wat +++ b/tests/compiler/possibly-null.debug.wat @@ -1,35 +1,14 @@ (module (type $0 (func (param i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32) (result i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32) (result i32))) + (type $4 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__data_end i32 (i32.const 8)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32776)) (global $~lib/memory/__heap_base i32 (i32.const 32776)) - (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/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/__rtti_base (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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (memory $0 0) (table $0 1 1 funcref) (elem $0 (i32.const 1)) @@ -291,3061 +270,18 @@ drop end ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 33136 - i32.const 33200 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 33008 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 33008 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 32944 - i32.const 33280 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 32944 - i32.const 33008 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 33580 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 33580 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33580 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33580 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 34000 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 34000 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 32800 - i32.const 35216 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $possibly-null/testLogicalAnd (param $a 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 $a - if (result i32) - local.get $a - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $possibly-null/requireNonNull - else - i32.const 0 - end - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $possibly-null/testLogicalOr (param $a 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 $a - i32.eqz - if (result i32) - i32.const 1 - else - local.get $a - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $possibly-null/requireNonNull - i32.const 0 - i32.ne - end - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 + (func $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq + global.get $~lib/memory/__data_end + i32.lt_s if - i32.const 32912 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else + i32.const 32800 i32.const 32848 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 32880 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 35152 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 33376 - i32.const 33504 - i32.const 350 - i32.const 5 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $value - i32.eqz - if - i32.const 33568 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return ) (func $export:possibly-null/testTrue (param $0 i32) global.get $~lib/memory/__stack_pointer @@ -3655,59 +591,95 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_globals (param $0 i32) + (func $possibly-null/testLogicalAnd (param $a i32) (local $1 i32) - i32.const 33136 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32944 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 34000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 35056 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $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 $a + if (result i32) + local.get $a + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $possibly-null/requireNonNull + else + i32.const 0 + end + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $possibly-null/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $possibly-null/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - return + (func $possibly-null/testLogicalOr (param $a 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 $a + i32.eqz + if (result i32) + i32.const 1 + else + local.get $a + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $possibly-null/requireNonNull + i32.const 0 + i32.ne end - unreachable + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber 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 + i32.const 0 + drop + local.get $message + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/possibly-null.release.wat b/tests/compiler/possibly-null.release.wat index f4b64888df..7ae1fe8516 100644 --- a/tests/compiler/possibly-null.release.wat +++ b/tests/compiler/possibly-null.release.wat @@ -1,20 +1,10 @@ (module (type $0 (func (param i32))) (type $1 (func (param i32 i32))) - (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33792)) - (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/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (memory $0 0) (export "memory" (memory $0)) (export "testTrue" (func $export:possibly-null/testTrue)) @@ -35,1863 +25,6 @@ (export "testLogicalOrMulti" (func $export:possibly-null/testLogicalAndMulti)) (export "testAssign" (func $export:possibly-null/testAssign)) (export "testNeverNull" (func $export:possibly-null/testTrue)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - i32.const 34160 - call $~lib/rt/itcms/__visit - i32.const 33968 - call $~lib/rt/itcms/__visit - i32.const 35024 - call $~lib/rt/itcms/__visit - i32.const 36080 - call $~lib/rt/itcms/__visit - i32.const 4 - i32.load - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 34032 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - 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 - 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 34032 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$157 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 33792 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$157 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.load - i32.gt_u - if - i32.const 34160 - i32.const 34224 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.load offset=4 - i32.const 32 - i32.and - end - local.set $1 - i32.const 8 - i32.load - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $1 - select - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - i32.const 8 - local.get $0 - i32.store - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 34304 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 34304 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 34304 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 34304 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 34304 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 33792 - i32.const 0 - i32.store - i32.const 35360 - 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 33792 - 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 33792 - 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 33792 - i32.const 35364 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 33792 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - i32.const 0 - 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 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 33792 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 - local.get $1 - global.set $~lib/rt/itcms/white - i32.const 4 - i32.load - 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 - 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 34032 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 33792 - 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 - local.tee $0 - i32.const 33792 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 34304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - i32.const 4 - i32.const 0 - i32.store - i32.const 8 - i32.const 0 - i32.store - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 34304 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 33968 - i32.const 34032 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 33968 - i32.const 34304 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 34304 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - i32.const 8 - i32.load - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.store offset=4 - 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 - i32.const 8 - local.get $1 - i32.store - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 1024 - i32.lt_s - if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$75 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 34592 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$75 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 34604 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 34604 - 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 34604 - 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 34604 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$162 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 33936 - local.set $0 - br $__inlined_func$~lib/string/String#concat$162 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1024 - i32.lt_s - if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 33872 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 33904 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 36176 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) (func $export:possibly-null/testTrue (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1901,10 +34,6 @@ i32.const 1024 i32.lt_s if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1925,20 +54,16 @@ i32.const 1024 i32.lt_s if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$possibly-null/testFalseContinuation$88 + block $__inlined_func$possibly-null/testFalseContinuation$8 local.get $0 i32.eqz - br_if $__inlined_func$possibly-null/testFalseContinuation$88 + br_if $__inlined_func$possibly-null/testFalseContinuation$8 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1954,10 +79,6 @@ i32.const 1024 i32.lt_s if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2024,10 +145,6 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable ) @@ -2082,10 +199,6 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable ) @@ -2129,10 +242,6 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable ) @@ -2145,10 +254,6 @@ i32.const 1024 i32.lt_s if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2203,39 +308,38 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $possibly-null/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $possibly-null/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return + (func $~lib/builtins/abort + 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 1024 + i32.lt_s + if + call $~lib/builtins/abort + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 33824 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 33872 + i32.store offset=4 + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index 7aa8637113..89dc56252b 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -4,13 +4,11 @@ (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) (global $export/c i32 (i32.const 3)) @@ -21,9 +19,7 @@ (global $exports/Car.TIRES i32 (i32.const 4)) (global $exports/vehicles.Car.TIRES i32 (i32.const 4)) (global $exports/outer.inner.a i32 (i32.const 42)) - (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_FEATURE_EXCEPTION_HANDLING 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)) @@ -32,37 +28,29 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) (global $reexport/car (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2456)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35224)) - (global $~lib/memory/__heap_base i32 (i32.const 35224)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 488)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33256)) + (global $~lib/memory/__heap_base i32 (i32.const 33256)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00\00\00\00\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 464) "\05\00\00\00 \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 "add" (func $export/add)) @@ -97,18 +85,10 @@ i32.add return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $exports/Car#set:doors (param $this i32) (param $doors i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + local.get $doors + i32.store ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -174,7 +154,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -244,7 +224,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -261,7 +241,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -291,9 +271,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 272 + i32.const 336 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -360,7 +340,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 144 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -512,7 +492,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -532,7 +512,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -595,7 +575,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -748,7 +728,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -765,7 +745,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -854,7 +834,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -897,7 +877,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -915,7 +895,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -983,7 +963,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1100,7 +1080,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1146,7 +1126,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1178,7 +1158,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1422,7 +1402,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1642,7 +1622,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1753,8 +1733,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 80 + i32.const 416 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1856,7 +1836,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1927,7 +1907,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2084,7 +2064,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2199,7 +2179,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2219,7 +2199,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2267,8 +2247,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 80 + i32.const 144 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2313,427 +2293,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $exports/Car#set:doors (param $this i32) (param $doors i32) - local.get $this - local.get $doors - i32.store - ) (func $exports/Car#get:doors (param $this i32) (result i32) local.get $this i32.load @@ -2754,20 +2313,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 33280 + i32.const 33328 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2776,196 +2331,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $exports/Car#constructor (param $this i32) (param $doors i32) (result i32) (local $2 i32) @@ -3054,23 +2440,6 @@ call $export/mul i32.add drop - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 2 i32.const 2 call $exports/add @@ -3079,7 +2448,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 37 i32.const 1 call $~lib/builtins/abort @@ -3093,12 +2462,29 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 38 i32.const 1 call $~lib/builtins/abort unreachable end + 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 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace i32.const 0 i32.const 2 call $exports/Car#constructor @@ -3115,7 +2501,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -3126,153 +2512,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $reexport/car @@ -3282,16 +2521,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 272 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 80 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index 29272f0866..3d18fa1b6b 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -1,12 +1,13 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32 i64))) + (type $0 (func)) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) (type $5 (func (result i32))) - (type $6 (func (param i32) (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) (global $export/c i32 (i32.const 3)) @@ -21,42 +22,21 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $reexport/car (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36248)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34280)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") - (data $20 (i32.const 3456) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1276) "<") + (data $5.1 (i32.const 1288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1340) ",") + (data $6.1 (i32.const 1352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1488) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "add" (func $export/add)) (export "renamed_sub" (func $export/sub)) (export "renamed_mul" (func $export/mul)) @@ -90,13 +70,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1344 + i32.const 1296 call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1104 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -117,7 +93,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -165,7 +141,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -174,7 +150,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + block $__inlined_func$~lib/rt/itcms/Object#unlink$120 local.get $1 i32.load offset=4 i32.const -4 @@ -186,19 +162,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36248 + i32.const 34280 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$132 + br $__inlined_func$~lib/rt/itcms/Object#unlink$120 end local.get $1 i32.load offset=8 @@ -206,7 +182,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -235,13 +211,13 @@ i32.const 1 else local.get $0 - i32.const 3456 + i32.const 1488 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1296 + i32.const 1360 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -249,7 +225,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3460 + i32.const 1492 i32.add i32.load i32.const 32 @@ -301,7 +277,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -315,7 +291,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -361,7 +337,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -444,7 +420,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -458,7 +434,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -519,7 +495,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -552,7 +528,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -567,7 +543,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -618,7 +594,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -690,7 +666,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -715,7 +691,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -742,7 +718,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -814,10 +790,10 @@ if unreachable end - i32.const 36256 + i32.const 34288 i32.const 0 i32.store - i32.const 37824 + i32.const 35856 i32.const 0 i32.store loop $for-loop|0 @@ -828,7 +804,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36256 + i32.const 34288 i32.add i32.const 0 i32.store offset=4 @@ -846,7 +822,7 @@ i32.add i32.const 2 i32.shl - i32.const 36256 + i32.const 34288 i32.add i32.const 0 i32.store offset=96 @@ -864,14 +840,14 @@ br $for-loop|0 end end - i32.const 36256 - i32.const 37828 + i32.const 34288 + i32.const 35860 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36256 + i32.const 34288 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -956,7 +932,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36248 + i32.const 34280 i32.lt_u if local.get $0 @@ -1045,14 +1021,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36248 + i32.const 34280 i32.lt_u if local.get $0 @@ -1075,7 +1051,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36248 + i32.const 34280 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1104,7 +1080,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1134,85 +1110,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1220,11 +1129,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1240,7 +1145,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1262,35 +1167,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $0 loop $do-loop|0 - local.get $2 + local.get $0 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $0 global.get $~lib/rt/itcms/state i32.eqz if @@ -1300,9 +1193,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $0 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1325,94 +1218,39 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $0 i32.const 4 - local.get $4 + local.get $1 i32.load offset=1568 - local.get $2 + local.get $0 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $0 local.get $2 - local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1420,8 +1258,8 @@ unreachable end end - local.get $4 - local.get $2 + local.get $1 + local.get $0 i32.const 16 i32.shl memory.size @@ -1429,136 +1267,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $0 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 + local.get $0 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $0 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $2 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub local.tee $3 i32.const 16 i32.ge_u if + local.get $0 local.get $2 - local.get $5 - local.get $6 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $0 + i32.const 32 i32.add - local.tee $5 + local.tee $2 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $0 local.get $2 - local.get $6 i32.const -2 i32.and i32.store - local.get $2 + local.get $0 i32.const 4 i32.add - local.get $2 + local.get $0 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and i32.store end - local.get $2 - local.get $1 + local.get $0 + i32.const 4 i32.store offset=12 - local.get $2 local.get $0 + i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + local.get $0 local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $0 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.load i32.const -4 i32.and @@ -1566,211 +1387,12 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.const 20 i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3480 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end + i32.store align=1 local.get $0 ) (func $export/sub (param $0 i32) (param $1 i32) (result i32) @@ -1788,7 +1410,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1797,49 +1419,47 @@ memory.size i32.const 16 i32.shl - i32.const 36248 + i32.const 34280 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1220 + i32.const 1216 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1224 + i32.const 1216 i32.store - i32.const 1264 + i32.const 1216 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1252 + i32.const 1248 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1256 + i32.const 1248 i32.store - i32.const 1296 + i32.const 1248 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1396 + i32.const 1392 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1400 + i32.const 1392 i32.store - i32.const 1440 + i32.const 1392 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 3480 + i32.const 1512 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1870,7 +1490,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1889,7 +1509,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -1901,212 +1521,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$137 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$137 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s if - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index d9f6536d8e..e8d39d4615 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -4,22 +4,18 @@ (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) (global $export/c i32 (i32.const 3)) (global $exports/Car.TIRES i32 (i32.const 4)) (global $exports/vehicles.Car.TIRES i32 (i32.const 4)) (global $exports/outer.inner.a i32 (i32.const 42)) - (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_FEATURE_EXCEPTION_HANDLING 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)) @@ -28,40 +24,32 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) (global $reexport/car (mut i32) (i32.const 0)) (global $rereexport/car (mut i32) (i32.const 0)) (global $rereexport/exportsNamespaceCar (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2480)) - (global $~lib/memory/__data_end i32 (i32.const 2504)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35272)) - (global $~lib/memory/__heap_base i32 (i32.const 35272)) + (global $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/memory/__data_end i32 (i32.const 536)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33304)) + (global $~lib/memory/__heap_base i32 (i32.const 33304)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00") - (data $21 (i32.const 2480) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00\00\00\00\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s\00\00\00") + (data $10 (i32.const 512) "\05\00\00\00 \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 "a" (global $export/a)) @@ -90,18 +78,10 @@ i32.add return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $exports/Car#set:doors (param $this i32) (param $doors i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + local.get $doors + i32.store ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -167,7 +147,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -237,7 +217,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -254,7 +234,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -284,9 +264,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 272 + i32.const 336 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -353,7 +333,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 144 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -505,7 +485,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -525,7 +505,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -588,7 +568,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -741,7 +721,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -758,7 +738,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -847,7 +827,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -890,7 +870,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -908,7 +888,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -976,7 +956,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1093,7 +1073,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1139,7 +1119,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1171,7 +1151,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1415,7 +1395,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1635,7 +1615,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 144 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1746,8 +1726,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 80 + i32.const 416 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1849,7 +1829,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1920,7 +1900,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2077,7 +2057,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2192,7 +2172,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2212,7 +2192,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 416 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2260,8 +2240,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 80 + i32.const 144 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2306,427 +2286,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $exports/Car#set:doors (param $this i32) (param $doors i32) - local.get $this - local.get $doors - i32.store - ) (func $exports/Car#get:doors (param $this i32) (result i32) local.get $this i32.load @@ -2741,20 +2300,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 33328 + i32.const 33376 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2763,196 +2318,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $exports/Car#constructor (param $this i32) (param $doors i32) (result i32) (local $2 i32) @@ -3041,23 +2427,6 @@ call $export/mul i32.add drop - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 2 i32.const 2 call $exports/add @@ -3066,7 +2435,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 37 i32.const 1 call $~lib/builtins/abort @@ -3080,12 +2449,29 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 38 i32.const 1 call $~lib/builtins/abort unreachable end + 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 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace i32.const 0 i32.const 2 call $exports/Car#constructor @@ -3102,7 +2488,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -3132,7 +2518,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -3146,7 +2532,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -3168,7 +2554,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -3182,7 +2568,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -3196,7 +2582,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -3218,7 +2604,7 @@ i32.eqz if i32.const 0 - i32.const 2448 + i32.const 480 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -3229,153 +2615,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $rereexport/car @@ -3392,16 +2631,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 272 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 80 local.get $0 call $~lib/rt/itcms/__visit global.get $reexport/car diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index e270f11ef6..f44ada14ba 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (result i32))) + (type $1 (func (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -22,44 +22,23 @@ (global $reexport/car (mut i32) (i32.const 0)) (global $rereexport/car (mut i32) (i32.const 0)) (global $rereexport/exportsNamespaceCar (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36296)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34328)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") - (data $20 (i32.const 3452) ",") - (data $20.1 (i32.const 3464) "\02\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") - (data $21 (i32.const 3504) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\16\00\00\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1276) "<") + (data $5.1 (i32.const 1288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1340) ",") + (data $6.1 (i32.const 1352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1484) ",") + (data $9.1 (i32.const 1496) "\02\00\00\00\1a\00\00\00r\00e\00r\00e\00e\00x\00p\00o\00r\00t\00.\00t\00s") + (data $10 (i32.const 1536) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "a" (global $export/a)) (export "renamed_a" (global $export/a)) (export "renamed_b" (global $export/b)) @@ -83,13 +62,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1344 + i32.const 1296 call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1104 call $~lib/rt/itcms/__visit global.get $reexport/car local.tee $0 @@ -116,7 +91,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -164,7 +139,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -173,7 +148,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$133 + block $__inlined_func$~lib/rt/itcms/Object#unlink$121 local.get $1 i32.load offset=4 i32.const -4 @@ -185,19 +160,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36296 + i32.const 34328 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$133 + br $__inlined_func$~lib/rt/itcms/Object#unlink$121 end local.get $1 i32.load offset=8 @@ -205,7 +180,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -234,13 +209,13 @@ i32.const 1 else local.get $0 - i32.const 3504 + i32.const 1536 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1296 + i32.const 1360 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -248,7 +223,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3508 + i32.const 1540 i32.add i32.load i32.const 32 @@ -300,7 +275,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -314,7 +289,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -360,7 +335,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -443,7 +418,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -457,7 +432,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -518,7 +493,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -551,7 +526,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -566,7 +541,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -617,7 +592,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -689,7 +664,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -714,7 +689,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -741,7 +716,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -813,10 +788,10 @@ if unreachable end - i32.const 36304 + i32.const 34336 i32.const 0 i32.store - i32.const 37872 + i32.const 35904 i32.const 0 i32.store loop $for-loop|0 @@ -827,7 +802,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=4 @@ -845,7 +820,7 @@ i32.add i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=96 @@ -863,14 +838,14 @@ br $for-loop|0 end end - i32.const 36304 - i32.const 37876 + i32.const 34336 + i32.const 35908 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36304 + i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -955,7 +930,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36296 + i32.const 34328 i32.lt_u if local.get $0 @@ -1044,14 +1019,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36296 + i32.const 34328 i32.lt_u if local.get $0 @@ -1074,7 +1049,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36296 + i32.const 34328 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1103,7 +1078,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1133,85 +1108,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1219,11 +1127,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1239,7 +1143,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1261,35 +1165,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $0 loop $do-loop|0 - local.get $2 + local.get $0 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $0 global.get $~lib/rt/itcms/state i32.eqz if @@ -1299,9 +1191,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $0 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1324,94 +1216,39 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $0 i32.const 4 - local.get $4 + local.get $1 i32.load offset=1568 - local.get $2 + local.get $0 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $0 local.get $2 - local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1419,8 +1256,8 @@ unreachable end end - local.get $4 - local.get $2 + local.get $1 + local.get $0 i32.const 16 i32.shl memory.size @@ -1428,136 +1265,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $0 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 + local.get $0 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $0 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $2 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub local.tee $3 i32.const 16 i32.ge_u if + local.get $0 local.get $2 - local.get $5 - local.get $6 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $0 + i32.const 32 i32.add - local.tee $5 + local.tee $2 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $0 local.get $2 - local.get $6 i32.const -2 i32.and i32.store - local.get $2 + local.get $0 i32.const 4 i32.add - local.get $2 + local.get $0 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and i32.store end - local.get $2 - local.get $1 + local.get $0 + i32.const 4 i32.store offset=12 - local.get $2 local.get $0 + i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + local.get $0 local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $0 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.load i32.const -4 i32.and @@ -1565,211 +1385,12 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.const 20 i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3528 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end + i32.store align=1 local.get $0 ) (func $export-default/theDefault @@ -1782,7 +1403,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1793,7 +1414,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1802,34 +1423,34 @@ memory.size i32.const 16 i32.shl - i32.const 36296 + i32.const 34328 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1220 + i32.const 1216 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1224 + i32.const 1216 i32.store - i32.const 1264 + i32.const 1216 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1252 + i32.const 1248 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1256 + i32.const 1248 i32.store - i32.const 1296 + i32.const 1248 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1396 + i32.const 1392 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1400 + i32.const 1392 i32.store - i32.const 1440 + i32.const 1392 global.set $~lib/rt/itcms/fromSpace call $exports/Car#constructor global.set $reexport/car @@ -1843,7 +1464,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -1865,7 +1486,7 @@ i32.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -1883,7 +1504,7 @@ i32.ne if i32.const 0 - i32.const 3472 + i32.const 1504 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -1895,212 +1516,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$141 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$141 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $exports/Car#constructor (result i32) (local $0 i32) @@ -2109,11 +1565,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2123,8 +1579,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2152,11 +1606,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index ff3f5caf4e..f08e544e1a 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -1,501 +1,71 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32 i32 i32))) (type $5 (func)) (type $6 (func (result i32))) (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i32 i64 i32 i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i64 i32))) (type $10 (func (param i32 i32 i64) (result i32))) (type $11 (func (param i32 i32 i32) (result i32))) (type $12 (func (param i64) (result i32))) - (type $13 (func (param i32 i64))) - (type $14 (func (param i32) (result i64))) - (type $15 (func (param i32 i32 i32 i32))) + (type $13 (func (param i32 i64 i32 i32))) + (type $14 (func (param i32 i64))) + (type $15 (func (param i32) (result i64))) (type $16 (func (param i32 i32) (result i64))) (type $17 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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 $~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/builtins/u32.MAX_VALUE i32 (i32.const -1)) - (global $~lib/rt/__rtti_base i32 (i32.const 2464)) - (global $~lib/memory/__data_end i32 (i32.const 2496)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35264)) - (global $~lib/memory/__heap_base i32 (i32.const 35264)) - (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 172) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 396) "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 $9 (i32.const 796) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1852) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 1948) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 2012) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2076) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 2204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $21 (i32.const 2464) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\02\00\00\02\t\00\00 \00\00\00") - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "arrayAccess" (func $resolve-access/arrayAccess)) - (export "fieldAccess" (func $resolve-access/fieldAccess)) - (export "propertyAccess" (func $resolve-access/propertyAccess)) - (export "memory" (memory $0)) - (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 396 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 396 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 396 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 396 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 816 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 816 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1872 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1872 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) + (global $~lib/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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 $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 2272)) + (global $~lib/memory/__data_end i32 (i32.const 2304)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35072)) + (global $~lib/memory/__heap_base i32 (i32.const 35072)) + (memory $0 1) + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 444) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $10 (i32.const 492) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 620) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 716) "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 $14 (i32.const 1116) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 2172) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2272) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\02\00\00\02\t\00\00 \00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "arrayAccess" (func $resolve-access/arrayAccess)) + (export "fieldAccess" (func $resolve-access/fieldAccess)) + (export "propertyAccess" (func $resolve-access/propertyAccess)) + (export "memory" (memory $0)) + (start $~start) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -560,7 +130,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -630,7 +200,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -647,7 +217,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -677,9 +247,9 @@ i32.load i32.gt_u if - i32.const 2224 - i32.const 2288 - i32.const 21 + i32.const 256 + i32.const 320 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -746,7 +316,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2096 + i32.const 128 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -898,7 +468,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -918,7 +488,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -981,7 +551,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1134,7 +704,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1151,7 +721,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1240,7 +810,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1283,7 +853,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1301,7 +871,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1369,7 +939,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1486,7 +1056,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1532,7 +1102,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1564,7 +1134,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1808,7 +1378,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2028,7 +1598,7 @@ i32.eqz if i32.const 0 - i32.const 2096 + i32.const 128 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2139,8 +1709,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2032 - i32.const 2368 + i32.const 64 + i32.const 400 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2242,7 +1812,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2313,7 +1883,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2470,7 +2040,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2585,7 +2155,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2605,7 +2175,7 @@ i32.eqz if i32.const 0 - i32.const 2368 + i32.const 400 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2653,8 +2223,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2032 - i32.const 2096 + i32.const 64 + i32.const 128 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2724,73 +2294,268 @@ if return end - i32.const 1 - drop - local.get $parentPtr - i32.eqz + i32.const 1 + drop + local.get $parentPtr + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $childPtr + i32.const 20 + i32.sub + local.set $child + local.get $child + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $parentPtr + i32.const 20 + i32.sub + local.set $parent + local.get $parent + call $~lib/rt/itcms/Object#get:color + local.set $parentColor + local.get $parentColor + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $expectMultiple + if + local.get $parent + call $~lib/rt/itcms/Object#makeGray + else + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $parentColor + 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 $child + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) + local.get $value + i32.const 100000 + i32.lt_u + if + local.get $value + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $value + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $value + i32.const 10000 + i32.ge_u + i32.add + local.get $value + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $value + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $value + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $value + i32.const 1000000000 + i32.ge_u + i32.add + local.get $value + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) + (local $t i32) + (local $r i32) + (local $d1 i32) + (local $d2 i32) + (local $digits1 i64) + (local $digits2 i64) + (local $t|9 i32) + (local $d1|10 i32) + (local $digits i32) + (local $digits|12 i32) + (local $digit i32) + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 716 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 716 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $num + i32.const 100 + i32.ge_u if - i32.const 0 - i32.const 2096 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $num + i32.const 100 + i32.div_u + local.set $t|9 + local.get $num + i32.const 100 + i32.rem_u + local.set $d1|10 + local.get $t|9 + local.set $num + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 716 + local.get $d1|10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits + i32.store end - local.get $childPtr - i32.const 20 - i32.sub - local.set $child - local.get $child - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq + local.get $num + i32.const 10 + i32.ge_u if - local.get $parentPtr - i32.const 20 + local.get $offset + i32.const 2 i32.sub - local.set $parent - local.get $parent - call $~lib/rt/itcms/Object#get:color - local.set $parentColor - local.get $parentColor - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $expectMultiple - if - local.get $parent - call $~lib/rt/itcms/Object#makeGray - else - local.get $child - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $parentColor - 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 $child - call $~lib/rt/itcms/Object#makeGray - end - end + local.set $offset + i32.const 716 + local.get $num + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits|12 + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits|12 + i32.store + else + local.get $offset + i32.const 1 + i32.sub + local.set $offset + i32.const 48 + local.get $num + i32.add + local.set $digit + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digit + i32.store16 end ) - (func $~lib/array/Array#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) (func $~lib/util/number/decimalCount64High (param $value i64) (result i32) local.get $value i64.const 1000000000000000 @@ -2903,22 +2668,226 @@ i32.const 100 i32.rem_u local.set $c2 - i32.const 396 + i32.const 716 local.get $c1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 396 + i32.const 716 local.get $c2 i32.const 2 i32.shl i32.add - i64.load32_u - local.set $digits2 + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 716 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 716 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $buffer + local.get $num + i32.wrap_i64 + local.get $offset + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1136 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end + end + local.get $offset + i32.const 1 + i32.and + if + local.get $buffer + i32.const 1136 + local.get $num + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) + (local $value i32) + (local $b64 i64) + (local $b i64) + (local $e i32) + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end + if + i32.const 63 + local.get $num + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $base + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $base + i64.extend_i32_s + local.set $b64 + local.get $b64 + local.set $b + i32.const 1 + local.set $e + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end + end + local.get $e + i32.const 1 + i32.sub + return + ) + (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) + (local $base i64) + (local $shift i64) + (local $mask i64) + (local $q i64) + local.get $radix + i64.extend_i32_s + local.set $base + local.get $radix + local.get $radix + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $radix + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $shift + local.get $base + i64.const 1 + i64.sub + local.set $mask + loop $do-loop|0 local.get $offset - i32.const 4 + i32.const 1 i32.sub local.set $offset local.get $buffer @@ -2926,49 +2895,60 @@ i32.const 1 i32.shl i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 396 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 396 - local.get $b2 - i32.const 2 + i32.const 2192 + local.get $num + local.get $mask + i64.and + i32.wrap_i64 + i32.const 1 i32.shl i32.add - i64.load32_u - local.set $digits2 + i32.load16_u + i32.store16 + local.get $num + local.get $shift + i64.shr_u + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 local.get $offset - i32.const 4 + i32.const 1 i32.sub local.set $offset + local.get $num + local.get $base + i64.div_u + local.set $q local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.const 2192 + local.get $num + local.get $q + local.get $base + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $q + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|1 end end - local.get $buffer - local.get $num - i32.wrap_i64 - local.get $offset - call $~lib/util/number/utoa32_dec_lut ) (func $~lib/number/U64#toString (param $this i64) (param $radix i32) (result i32) local.get $this @@ -2985,6 +2965,12 @@ local.get $this i64.load ) + (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) + local.get $this + local.get $radix + call $~lib/util/number/utoa32 + return + ) (func $~start memory.size i32.const 16 @@ -2994,13 +2980,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2176 + i32.const 208 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2320 + i32.const 352 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace ) @@ -3009,92 +2995,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 35104 + i32.const 35152 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3103,124 +3013,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 160 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 160 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1968 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i64) (local $value i64) @@ -3244,9 +3057,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2224 - i32.const 2432 - i32.const 114 + i32.const 256 + i32.const 464 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3361,257 +3174,110 @@ ) (func $resolve-access/fieldAccess (result i32) (local $container i32) - (local $1 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $resolve-access/Container#constructor - local.tee $container - i32.store - local.get $container - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i64.const 1 - call $resolve-access/Container#set:foo - local.get $container - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $resolve-access/Container#get:foo - i32.const 10 - call $~lib/number/U64#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $resolve-access/Container#toU32 (param $this 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 $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $resolve-access/Container#get:foo - i32.wrap_i64 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $resolve-access/propertyAccess (result i32) - (local $container i32) - (local $1 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $resolve-access/Container#constructor - local.tee $container - i32.store - local.get $container - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i64.const 1 - call $resolve-access/Container#set:foo - local.get $container - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $resolve-access/Container#toU32 - i32.const 10 - call $~lib/number/U32#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 192 - i32.const 320 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 384 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $resolve-access/Container#constructor + local.tee $container + i32.store + local.get $container + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 1 + call $resolve-access/Container#set:foo + local.get $container + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $resolve-access/Container#get:foo + i32.const 10 + call $~lib/number/U64#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $resolve-access/Container#toU32 (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $resolve-access/Container#get:foo + i32.wrap_i64 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $1 + return + ) + (func $resolve-access/propertyAccess (result i32) + (local $container i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $resolve-access/Container#constructor + local.tee $container + i32.store + local.get $container + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 1 + call $resolve-access/Container#set:foo + local.get $container + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $resolve-access/Container#toU32 + i32.const 10 + call $~lib/number/U32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 return ) (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) @@ -3645,6 +3311,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -3703,8 +3373,8 @@ i32.gt_s end if - i32.const 192 - i32.const 320 + i32.const 512 + i32.const 640 i32.const 401 i32.const 5 call $~lib/builtins/abort @@ -3715,7 +3385,7 @@ i64.ne i32.eqz if - i32.const 384 + i32.const 704 local.set $17 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3882,18 +3552,165 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) + (local $out i32) + (local $decimals i32) + (local $buffer i32) + (local $num i32) + (local $offset i32) + (local $decimals|7 i32) + (local $buffer|8 i32) + (local $num|9 i32) + (local $offset|10 i32) + (local $decimals|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 $radix + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $radix + i32.const 36 + i32.gt_s + end + if + i32.const 512 + i32.const 640 + i32.const 350 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $value + i32.eqz + if + i32.const 704 + 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 $radix + i32.const 10 + i32.eq + if + local.get $value + call $~lib/util/number/decimalCount32 + local.set $decimals + global.get $~lib/memory/__stack_pointer + local.get $decimals + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + else + local.get $radix + i32.const 16 + i32.eq + if + i32.const 31 + local.get $value + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $decimals|7 + global.get $~lib/memory/__stack_pointer + local.get $decimals|7 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut + else + local.get $value + i64.extend_i32_u + local.get $radix + call $~lib/util/number/ulog_base + local.set $decimals|11 + global.get $~lib/memory/__stack_pointer + local.get $decimals|11 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.get $value + i64.extend_i32_u + local.get $decimals|11 + local.get $radix + call $~lib/util/number/utoa64_any_core + end + end + local.get $out + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2224 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2032 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit - i32.const 816 + i32.const 1136 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1872 + i32.const 2192 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3983,6 +3800,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -4009,6 +3830,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index 05ee33a661..8e24f5ea5e 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -2,13 +2,13 @@ (type $0 (func (result i32))) (type $1 (func (param i32))) (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32) (result i32))) - (type $7 (func (param i32 i32 i64))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (param i32 i32 i32))) (type $8 (func (param i64) (result i32))) - (type $9 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -19,261 +19,49 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36288)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36096)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\01\00\00\00\08\00\00\00\01") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "\1c") - (data $4.1 (i32.const 1176) "\02\00\00\00\02\00\00\00:") - (data $5 (i32.const 1196) "|") - (data $5.1 (i32.const 1208) "\02\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 $6 (i32.const 1324) "<") - (data $6.1 (i32.const 1336) "\02\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 $7 (i32.const 1388) "\1c") - (data $7.1 (i32.const 1400) "\02\00\00\00\02\00\00\000") - (data $8 (i32.const 1420) "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 $9 (i32.const 1820) "\1c\04") - (data $9.1 (i32.const 1832) "\02\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 $10 (i32.const 2876) "\\") - (data $10.1 (i32.const 2888) "\02\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 $11 (i32.const 2972) "<") - (data $11.1 (i32.const 2984) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $12 (i32.const 3036) "<") - (data $12.1 (i32.const 3048) "\02\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 $13 (i32.const 3100) "<") - (data $13.1 (i32.const 3112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $16 (i32.const 3228) "<") - (data $16.1 (i32.const 3240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $17 (i32.const 3292) ",") - (data $17.1 (i32.const 3304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $20 (i32.const 3436) ",") - (data $20.1 (i32.const 3448) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $21 (i32.const 3488) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\02\00\00\02\t\00\00 ") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\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 $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1324) ",") + (data $6.1 (i32.const 1336) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1468) ",") + (data $9.1 (i32.const 1480) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $10 (i32.const 1516) "|") + (data $10.1 (i32.const 1528) "\02\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 $11 (i32.const 1644) "<") + (data $11.1 (i32.const 1656) "\02\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 $12 (i32.const 1708) "\1c") + (data $12.1 (i32.const 1720) "\02\00\00\00\02\00\00\000") + (data $13 (i32.const 1740) "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 $14 (i32.const 2140) "\1c\04") + (data $14.1 (i32.const 2152) "\02\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 $15 (i32.const 3196) "\\") + (data $15.1 (i32.const 3208) "\02\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 $16 (i32.const 3296) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\02\00\00\02\t\00\00 ") (export "arrayAccess" (func $resolve-access/arrayAccess)) (export "fieldAccess" (func $resolve-access/fieldAccess)) (export "propertyAccess" (func $resolve-access/propertyAccess)) (export "memory" (memory $0)) (start $~start) - (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 1420 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1420 - 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 1420 - 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 1420 - 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/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 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 3520 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1408 - local.set $1 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $1 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3248 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 3056 + i32.const 1088 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 2160 call $~lib/rt/itcms/__visit - i32.const 2896 + i32.const 3216 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -294,7 +82,7 @@ i32.ne if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -327,7 +115,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -336,7 +124,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$149 + block $__inlined_func$~lib/rt/itcms/Object#unlink$144 local.get $0 i32.load offset=4 i32.const -4 @@ -348,19 +136,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36288 + i32.const 36096 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$149 + br $__inlined_func$~lib/rt/itcms/Object#unlink$144 end local.get $0 i32.load offset=8 @@ -368,7 +156,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -397,13 +185,13 @@ i32.const 1 else local.get $1 - i32.const 3488 + i32.const 3296 i32.load i32.gt_u if - i32.const 3248 - i32.const 3312 - i32.const 21 + i32.const 1280 + i32.const 1344 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -411,7 +199,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3492 + i32.const 3300 i32.add i32.load i32.const 32 @@ -482,7 +270,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -496,7 +284,7 @@ i32.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -542,7 +330,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -625,7 +413,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -639,7 +427,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -700,7 +488,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -733,7 +521,7 @@ i32.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -748,7 +536,7 @@ i32.ne if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -799,7 +587,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -871,7 +659,7 @@ i64.lt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -896,7 +684,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -923,7 +711,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -995,10 +783,10 @@ if unreachable end - i32.const 36288 + i32.const 36096 i32.const 0 i32.store - i32.const 37856 + i32.const 37664 i32.const 0 i32.store loop $for-loop|0 @@ -1009,7 +797,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36288 + i32.const 36096 i32.add i32.const 0 i32.store offset=4 @@ -1027,7 +815,7 @@ i32.add i32.const 2 i32.shl - i32.const 36288 + i32.const 36096 i32.add i32.const 0 i32.store offset=96 @@ -1045,14 +833,14 @@ br $for-loop|0 end end - i32.const 36288 - i32.const 37860 + i32.const 36096 + i32.const 37668 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36288 + i32.const 36096 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1137,7 +925,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36288 + i32.const 36096 i32.lt_u if local.get $0 @@ -1226,14 +1014,14 @@ i32.ne if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36288 + i32.const 36096 i32.lt_u if local.get $0 @@ -1256,7 +1044,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36288 + i32.const 36096 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1285,7 +1073,7 @@ end if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1369,7 +1157,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1421,7 +1209,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1453,8 +1241,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3056 - i32.const 3120 + i32.const 1088 + i32.const 1152 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1464,7 +1252,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1481,7 +1269,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1514,8 +1302,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3056 - i32.const 3392 + i32.const 1088 + i32.const 1424 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1617,7 +1405,7 @@ i32.eqz if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1632,7 +1420,7 @@ i32.gt_u if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1651,7 +1439,7 @@ i32.and if i32.const 0 - i32.const 3392 + i32.const 1424 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1756,47 +1544,151 @@ memory.fill local.get $1 ) - (func $~lib/number/U64#toString (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $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 3520 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64$75 - local.get $0 - i64.eqz + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u if - global.get $~lib/memory/__stack_pointer + 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 - global.set $~lib/memory/__stack_pointer - i32.const 1408 - local.set $2 - br $__inlined_func$~lib/util/number/utoa64$75 + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1740 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1740 + 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 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - 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 1740 + 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 1740 + 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 3328 + i32.lt_s + if + i32.const 36128 + i32.const 36176 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64$73 + 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 1728 + local.set $2 + br $__inlined_func$~lib/util/number/utoa64$73 + 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 @@ -1944,7 +1836,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 1420 + i32.const 1740 i32.add i64.load32_u local.get $4 @@ -1952,7 +1844,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 1420 + i32.const 1740 i32.add i64.load32_u i64.const 32 @@ -1975,7 +1867,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 1420 + i32.const 1740 i32.add i64.load32_u local.get $3 @@ -1983,7 +1875,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 1420 + i32.const 1740 i32.add i64.load32_u i64.const 32 @@ -2010,235 +1902,70 @@ memory.size i32.const 16 i32.shl - i32.const 36288 + i32.const 36096 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/pinSpace - i32.const 3204 - i32.const 3200 + i32.const 1236 + i32.const 1232 i32.store - i32.const 3208 - i32.const 3200 + i32.const 1240 + i32.const 1232 i32.store - i32.const 3200 + i32.const 1232 global.set $~lib/rt/itcms/toSpace - i32.const 3348 - i32.const 3344 + i32.const 1380 + i32.const 1376 i32.store - i32.const 3352 - i32.const 3344 + i32.const 1384 + i32.const 1376 i32.store - i32.const 3344 + i32.const 1376 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3520 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3520 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$154 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$154 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 36128 + i32.const 36176 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1184 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1184 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2992 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $resolve-access/arrayAccess (result i32) (local $0 i32) @@ -2253,7 +1980,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2265,7 +1992,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2293,7 +2020,7 @@ i32.eqz if i32.const 0 - i32.const 3120 + i32.const 1152 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2360,7 +2087,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2373,9 +2100,9 @@ i32.load offset=12 i32.eqz if - i32.const 3248 - i32.const 3456 - i32.const 114 + i32.const 1280 + i32.const 1488 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2397,8 +2124,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36320 - i32.const 36368 + i32.const 36128 + i32.const 36176 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2413,7 +2140,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2434,7 +2161,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2469,8 +2196,8 @@ local.get $0 return end - i32.const 36320 - i32.const 36368 + i32.const 36128 + i32.const 36176 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2483,11 +2210,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 36128 + i32.const 36176 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2519,15 +2246,17 @@ ) (func $resolve-access/propertyAccess (result i32) (local $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 - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -2549,9 +2278,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -2561,19 +2290,106 @@ local.get $0 i64.load i32.wrap_i64 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - call $~lib/number/U32#toString + 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 3328 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa32$74 + 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 1728 + local.set $0 + br $__inlined_func$~lib/util/number/utoa32$74 + 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 2 + 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 + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end - i32.const 36320 - i32.const 36368 + i32.const 36128 + i32.const 36176 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2585,11 +2401,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3520 + i32.const 3328 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 36128 + i32.const 36176 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index d9c982747c..ebf9ae5775 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -1,27 +1,32 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (param i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) (type $2 (func (param i32 i32))) (type $3 (func (param i32))) (type $4 (func)) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param f64 f64) (result f64))) - (type $13 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $14 (func (param i32 i32 i32) (result i32))) - (type $15 (func (param i32 f64 i32) (result i32))) - (type $16 (func (param f64 i32) (result i32))) - (type $17 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 i64 i32))) + (type $11 (func (param i64 i32) (result i32))) + (type $12 (func (param i32 i64 i32 i32))) + (type $13 (func (param f64 f64) (result f64))) + (type $14 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $15 (func (param i32 i32 i32) (result i32))) + (type $16 (func (param i32 f64 i32) (result i32))) + (type $17 (func (param f64 i32) (result i32))) (type $18 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $resolve-binary/a (mut i32) (i32.const 0)) + (global $resolve-binary/f (mut f64) (f64.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)) @@ -33,8 +38,6 @@ (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 $resolve-binary/a (mut i32) (i32.const 0)) - (global $resolve-binary/f (mut f64) (f64.const 0)) (global $~lib/util/math/log_tail (mut f64) (f64.const 0)) (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) @@ -46,62 +49,57 @@ (global $resolve-binary/bar (mut i32) (i32.const 0)) (global $resolve-binary/bar2 (mut i32) (i32.const 0)) (global $resolve-binary/baz (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 10384)) - (global $~lib/memory/__data_end i32 (i32.const 10416)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 43184)) - (global $~lib/memory/__heap_base i32 (i32.const 43184)) + (global $~lib/rt/__rtti_base i32 (i32.const 10192)) + (global $~lib/memory/__data_end i32 (i32.const 10224)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 42992)) + (global $~lib/memory/__heap_base i32 (i32.const 42992)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $4 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 428) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 604) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 732) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 828) "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 $18 (i32.const 1228) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2284) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00b\00i\00n\00a\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2576) "\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\r=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\rV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\rG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") - (data $26 (i32.const 8732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data $27 (i32.const 8764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data $28 (i32.const 8796) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 8844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 8896) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 8952) "\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_\rXf\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)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\r=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\rV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\rG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") + (data $21 (i32.const 8540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data $22 (i32.const 8572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data $23 (i32.const 8604) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 8652) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 8704) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 8760) "\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_\rXf\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)\93i\1b\04\bd\00\00\00\00\00\00\f6?") - (data $24.6 (i32.const 3777) "`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?") - (data $24.7 (i32.const 3809) "\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?") - (data $24.8 (i32.const 3841) "HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?") - (data $24.9 (i32.const 3873) "\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?") - (data $24.10 (i32.const 3905) " \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?") - (data $24.11 (i32.const 3937) "\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?") - (data $24.12 (i32.const 3969) "\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?") - (data $24.13 (i32.const 4001) "x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?") - (data $24.14 (i32.const 4033) "\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?") - (data $24.15 (i32.const 4065) "\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?") - (data $24.16 (i32.const 4097) "H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?") - (data $24.17 (i32.const 4129) "\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?") - (data $24.18 (i32.const 4161) "\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?") - (data $24.19 (i32.const 4193) "\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?") - (data $24.20 (i32.const 4225) "@^m\18\b9\cf\bf\87<\99\ab*W\r=\00\00\00\00\00`\f4?") - (data $24.21 (i32.const 4257) "`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?") - (data $24.22 (i32.const 4289) "\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?") - (data $24.23 (i32.const 4321) "\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?") - (data $24.24 (i32.const 4353) "\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?") - (data $24.25 (i32.const 4385) "\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?") - (data $24.26 (i32.const 4417) "\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?") - (data $24.27 (i32.const 4449) "\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?") - (data $24.28 (i32.const 4481) "\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?") - (data $24.29 (i32.const 4513) "\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?") - (data $24.30 (i32.const 4545) "P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?") - (data $24.31 (i32.const 4577) "\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?") - (data $24.32 (i32.const 4609) "\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?") - (data $24.33 (i32.const 4641) "\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?") - (data $24.34 (i32.const 4673) "\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?") - (data $24.35 (i32.const 4705) "\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?") - (data $24.36 (i32.const 4737) "\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?") - (data $24.37 (i32.const 4769) "\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?") - (data $24.38 (i32.const 4801) "\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?") - (data $24.85 (i32.const 6305) "`F\d1;\97\b1?\9b\9e\rV]2%\bd\00\00\00\00\00\a0\ed?") - (data $24.86 (i32.const 6337) "\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?") - (data $24.87 (i32.const 6369) "\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?") - (data $24.88 (i32.const 6401) "\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?") - (data $24.89 (i32.const 6433) "@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?") - (data $24.90 (i32.const 6465) "`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?") - (data $24.91 (i32.const 6497) "@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?") - (data $24.92 (i32.const 6529) " \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?") - (data $24.93 (i32.const 6561) "\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?") - (data $24.94 (i32.const 6593) "\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?") - (data $24.95 (i32.const 6625) "\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?") - (data $24.96 (i32.const 6657) "\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?") - (data $24.97 (i32.const 6689) "\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?") - (data $24.98 (i32.const 6721) "\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?") - (data $24.99 (i32.const 6753) "\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?") - (data $24.100 (i32.const 6785) "\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?") - (data $24.101 (i32.const 6817) "pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?") - (data $24.102 (i32.const 6849) "PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?") - (data $24.103 (i32.const 6882) "9\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?") - (data $24.104 (i32.const 6914) "\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?") - (data $24.105 (i32.const 6945) "\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?") - (data $24.106 (i32.const 6977) "\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?") - (data $24.107 (i32.const 7009) "\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?") - (data $24.108 (i32.const 7041) "\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?") - (data $24.109 (i32.const 7073) "\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?") - (data $24.110 (i32.const 7105) "\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?") - (data $24.111 (i32.const 7138) "\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?") - (data $24.112 (i32.const 7169) "\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?") - (data $24.113 (i32.const 7201) "XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?") - (data $24.114 (i32.const 7233) "`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?") - (data $24.115 (i32.const 7265) "\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?") - (data $24.116 (i32.const 7297) "\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?") - (data $24.117 (i32.const 7329) "hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?") - (data $24.118 (i32.const 7361) "\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?") - (data $24.119 (i32.const 7393) "\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?") - (data $24.120 (i32.const 7425) "`\d3\e1\f1\14\d3?\b8\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\rG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") - (data $26 (i32.const 9756) "\1c") - (data $26.1 (i32.const 9768) "\02\00\00\00\06\00\00\000\00.\000") - (data $27 (i32.const 9788) "\1c") - (data $27.1 (i32.const 9800) "\02\00\00\00\06\00\00\00N\00a\00N") - (data $28 (i32.const 9820) ",") - (data $28.1 (i32.const 9832) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data $29 (i32.const 9868) ",") - (data $29.1 (i32.const 9880) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data $31 (i32.const 9976) "\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_\rXf\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)\93i\1b\04\bd\00\00\00\00\00\00\f6?") + (data $19.6 (i32.const 3585) "`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?") + (data $19.7 (i32.const 3617) "\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?") + (data $19.8 (i32.const 3649) "HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?") + (data $19.9 (i32.const 3681) "\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?") + (data $19.10 (i32.const 3713) " \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?") + (data $19.11 (i32.const 3745) "\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?") + (data $19.12 (i32.const 3777) "\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?") + (data $19.13 (i32.const 3809) "x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?") + (data $19.14 (i32.const 3841) "\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?") + (data $19.15 (i32.const 3873) "\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?") + (data $19.16 (i32.const 3905) "H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?") + (data $19.17 (i32.const 3937) "\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?") + (data $19.18 (i32.const 3969) "\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?") + (data $19.19 (i32.const 4001) "\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?") + (data $19.20 (i32.const 4033) "@^m\18\b9\cf\bf\87<\99\ab*W\r=\00\00\00\00\00`\f4?") + (data $19.21 (i32.const 4065) "`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?") + (data $19.22 (i32.const 4097) "\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?") + (data $19.23 (i32.const 4129) "\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?") + (data $19.24 (i32.const 4161) "\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?") + (data $19.25 (i32.const 4193) "\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?") + (data $19.26 (i32.const 4225) "\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?") + (data $19.27 (i32.const 4257) "\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?") + (data $19.28 (i32.const 4289) "\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?") + (data $19.29 (i32.const 4321) "\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?") + (data $19.30 (i32.const 4353) "P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?") + (data $19.31 (i32.const 4385) "\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?") + (data $19.32 (i32.const 4417) "\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?") + (data $19.33 (i32.const 4449) "\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?") + (data $19.34 (i32.const 4481) "\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?") + (data $19.35 (i32.const 4513) "\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?") + (data $19.36 (i32.const 4545) "\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?") + (data $19.37 (i32.const 4577) "\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?") + (data $19.38 (i32.const 4609) "\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?") + (data $19.85 (i32.const 6113) "`F\d1;\97\b1?\9b\9e\rV]2%\bd\00\00\00\00\00\a0\ed?") + (data $19.86 (i32.const 6145) "\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?") + (data $19.87 (i32.const 6177) "\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?") + (data $19.88 (i32.const 6209) "\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?") + (data $19.89 (i32.const 6241) "@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?") + (data $19.90 (i32.const 6273) "`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?") + (data $19.91 (i32.const 6305) "@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?") + (data $19.92 (i32.const 6337) " \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?") + (data $19.93 (i32.const 6369) "\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?") + (data $19.94 (i32.const 6401) "\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?") + (data $19.95 (i32.const 6433) "\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?") + (data $19.96 (i32.const 6465) "\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?") + (data $19.97 (i32.const 6497) "\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?") + (data $19.98 (i32.const 6529) "\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?") + (data $19.99 (i32.const 6561) "\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?") + (data $19.100 (i32.const 6593) "\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?") + (data $19.101 (i32.const 6625) "pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?") + (data $19.102 (i32.const 6657) "PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?") + (data $19.103 (i32.const 6690) "9\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?") + (data $19.104 (i32.const 6722) "\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?") + (data $19.105 (i32.const 6753) "\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?") + (data $19.106 (i32.const 6785) "\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?") + (data $19.107 (i32.const 6817) "\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?") + (data $19.108 (i32.const 6849) "\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?") + (data $19.109 (i32.const 6881) "\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?") + (data $19.110 (i32.const 6913) "\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?") + (data $19.111 (i32.const 6946) "\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?") + (data $19.112 (i32.const 6977) "\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?") + (data $19.113 (i32.const 7009) "XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?") + (data $19.114 (i32.const 7041) "`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?") + (data $19.115 (i32.const 7073) "\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?") + (data $19.116 (i32.const 7105) "\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?") + (data $19.117 (i32.const 7137) "hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?") + (data $19.118 (i32.const 7169) "\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?") + (data $19.119 (i32.const 7201) "\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?") + (data $19.120 (i32.const 7233) "`\d3\e1\f1\14\d3?\b8\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\rG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") + (data $21 (i32.const 9564) "\1c") + (data $21.1 (i32.const 9576) "\02\00\00\00\06\00\00\000\00.\000") + (data $22 (i32.const 9596) "\1c") + (data $22.1 (i32.const 9608) "\02\00\00\00\06\00\00\00N\00a\00N") + (data $23 (i32.const 9628) ",") + (data $23.1 (i32.const 9640) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data $24 (i32.const 9676) ",") + (data $24.1 (i32.const 9688) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data $26 (i32.const 9784) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\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|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) - (local $child i32) - (local $parent i32) - (local $parentColor i32) - local.get $childPtr - i32.eqz - if - return - end - i32.const 1 - drop - local.get $parentPtr - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $childPtr - i32.const 20 - i32.sub - local.set $child - local.get $child - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $parentPtr - i32.const 20 - i32.sub - local.set $parent - local.get $parent - call $~lib/rt/itcms/Object#get:color - local.set $parentColor - local.get $parentColor - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $expectMultiple - if - local.get $parent - call $~lib/rt/itcms/Object#makeGray - else - local.get $child - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $parentColor - 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 $child - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $this i32) (param $buffer i32) - local.get $this - local.get $buffer - i32.store - local.get $this - local.get $buffer - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (param $this i32) (param $dataStart i32) - local.get $this - local.get $dataStart - i32.store offset=4 - ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (param $this i32) (param $byteLength i32) - local.get $this - local.get $byteLength - i32.store offset=8 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/util/number/genDigits (param $buffer i32) (param $w_frc i64) (param $w_exp i32) (param $mp_frc i64) (param $mp_exp i32) (param $delta i64) (param $sign i32) (result i32) - (local $one_exp i32) - (local $one_frc i64) - (local $mask i64) - (local $wp_w_frc i64) - (local $p1 i32) - (local $p2 i64) - (local $kappa i32) - (local $len i32) - (local $d i32) - (local $16 i32) - (local $17 i32) - (local $tmp i64) - (local $buffer|19 i32) - (local $len|20 i32) - (local $delta|21 i64) - (local $rest i64) - (local $ten_kappa i64) - (local $wp_w i64) - (local $lastp i32) - (local $digit i32) - (local $d|27 i64) - (local $28 i32) - (local $buffer|29 i32) - (local $len|30 i32) - (local $delta|31 i64) - (local $rest|32 i64) - (local $ten_kappa|33 i64) - (local $wp_w|34 i64) - (local $lastp|35 i32) - (local $digit|36 i32) - i32.const 0 - local.get $mp_exp - i32.sub - local.set $one_exp - i64.const 1 - local.get $one_exp - i64.extend_i32_s - i64.shl - local.set $one_frc - local.get $one_frc - i64.const 1 - i64.sub - local.set $mask - local.get $mp_frc - local.get $w_frc - i64.sub - local.set $wp_w_frc - local.get $mp_frc - local.get $one_exp - i64.extend_i32_s - i64.shr_u - i32.wrap_i64 - local.set $p1 - local.get $mp_frc - local.get $mask - i64.and - local.set $p2 - local.get $p1 - call $~lib/util/number/decimalCount32 - local.set $kappa - local.get $sign - local.set $len - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s + local.get $kappa + i32.const 0 + i32.gt_s if block $break|1 block $case10|1 @@ -3090,7 +2714,7 @@ local.set $delta|21 local.get $tmp local.set $rest - i32.const 3648 + i32.const 1680 local.get $kappa i32.const 2 i32.shl @@ -3227,7 +2851,7 @@ i32.add global.set $~lib/util/number/_K local.get $wp_w_frc - i32.const 3648 + i32.const 1680 i32.const 0 local.get $kappa i32.sub @@ -3316,7 +2940,147 @@ br $while-continue|4 end end - unreachable + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) + (local $t i32) + (local $r i32) + (local $d1 i32) + (local $d2 i32) + (local $digits1 i64) + (local $digits2 i64) + (local $t|9 i32) + (local $d1|10 i32) + (local $digits i32) + (local $digits|12 i32) + (local $digit i32) + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 1720 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 1720 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $num + i32.const 100 + i32.ge_u + if + local.get $num + i32.const 100 + i32.div_u + local.set $t|9 + local.get $num + i32.const 100 + i32.rem_u + local.set $d1|10 + local.get $t|9 + local.set $num + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 1720 + local.get $d1|10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits + i32.store + end + local.get $num + i32.const 10 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 1720 + local.get $num + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits|12 + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits|12 + i32.store + else + local.get $offset + i32.const 1 + i32.sub + local.set $offset + i32.const 48 + local.get $num + i32.add + local.set $digit + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digit + i32.store16 + end ) (func $~lib/util/number/prettify (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) @@ -3906,14 +3670,14 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 2776 + i32.const 808 local.get $index i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow - i32.const 3472 + i32.const 1504 local.get $index i32.const 1 i32.shl @@ -4192,6 +3956,19 @@ call $~lib/util/number/dtoa return ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -4296,108 +4073,247 @@ i32.const 0 return ) - (func $~lib/number/U8#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - i32.const 255 + (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 2544 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end + end + local.get $offset + i32.const 1 i32.and - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~start - call $start:resolve-elementaccess - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s if - i32.const 36800 - i32.const 36848 + local.get $buffer + i32.const 2544 + local.get $num + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) + (local $value i32) + (local $b64 i64) + (local $b i64) + (local $e i32) + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end + if + i32.const 63 + local.get $num + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $base + i32.clz + i32.sub + i32.div_u i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length + local.get $base + i64.extend_i32_s + local.set $b64 + local.get $b64 + local.set $b i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length + local.set $e + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end + end + local.get $e i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize + i32.sub + return + ) + (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) + (local $base i64) + (local $shift i64) + (local $mask i64) + (local $q i64) + local.get $radix + i64.extend_i32_s + local.set $base + local.get $radix + local.get $radix + i32.const 1 + i32.sub + i32.and i32.const 0 i32.eq if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.get $radix + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $shift + local.get $base + i64.const 1 + i64.sub + local.set $mask + loop $do-loop|0 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 3600 + local.get $num + local.get $mask + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $num + local.get $shift + i64.shr_u + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $num + local.get $base + i64.div_u + local.set $q + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 3600 + local.get $num + local.get $q + local.get $base + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $q + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|1 + end end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out + ) + (func $~lib/number/U8#toString (param $this i32) (param $radix i32) (result i32) local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const 255 + i32.and + local.get $radix + call $~lib/util/number/utoa32 return ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~start + call $start:resolve-elementaccess + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 36608 + i32.const 36656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4406,124 +4322,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 + i32.const 0 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) @@ -4579,8 +4398,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 19 i32.const 57 call $~lib/builtins/abort @@ -4698,9 +4517,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2512 - i32.const 1315 + i32.const 336 + i32.const 544 + i32.const 1316 i32.const 64 call $~lib/builtins/abort unreachable @@ -4746,9 +4565,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2512 - i32.const 1304 + i32.const 336 + i32.const 544 + i32.const 1305 i32.const 64 call $~lib/builtins/abort unreachable @@ -4968,9 +4787,9 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2512 - i32.const 178 + i32.const 336 + i32.const 544 + i32.const 179 i32.const 45 call $~lib/builtins/abort unreachable @@ -5011,9 +4830,9 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2512 - i32.const 167 + i32.const 336 + i32.const 544 + i32.const 168 i32.const 45 call $~lib/builtins/abort unreachable @@ -5059,13 +4878,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 240 + i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 272 + i32.const 288 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 416 + i32.const 432 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -5105,12 +4924,12 @@ local.get $4 i32.store local.get $4 - i32.const 3712 + i32.const 2144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3744 + i32.const 2176 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -5131,12 +4950,12 @@ local.get $4 i32.store local.get $4 - i32.const 3824 + i32.const 2256 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3744 + i32.const 2176 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -5180,12 +4999,12 @@ local.get $4 i32.store local.get $4 - i32.const 3856 + i32.const 2288 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3744 + i32.const 2176 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -5222,7 +5041,7 @@ i32.eqz if i32.const 0 - i32.const 3744 + i32.const 2176 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -5265,12 +5084,12 @@ local.get $4 i32.store local.get $4 - i32.const 3888 + i32.const 3696 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3744 + i32.const 2176 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -5291,12 +5110,12 @@ local.get $4 i32.store local.get $4 - i32.const 3920 + i32.const 3728 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3744 + i32.const 2176 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -5340,12 +5159,12 @@ local.get $4 i32.store local.get $4 - i32.const 3952 + i32.const 3760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3744 + i32.const 2176 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -5382,7 +5201,7 @@ i32.eqz if i32.const 0 - i32.const 3744 + i32.const 2176 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -5393,6 +5212,83 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/util/number/dtoa (param $value f32) (result i32) + (local $value|1 f64) + (local $isSingle i32) + (local $size i32) + (local $result i32) + (local $5 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 + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) + local.get $value + f64.promote_f32 + local.set $value|1 + i32.const 1 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 608 + br $~lib/util/number/dtoa_impl|inlined.0 + end + local.get $value|1 + local.get $value|1 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 640 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 672 + i32.const 720 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 752 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size + global.get $~lib/memory/__stack_pointer + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 752 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 + end + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) (local $out i32) (local $decimals i32) @@ -5424,8 +5320,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 2320 + i32.const 2448 i32.const 350 i32.const 5 call $~lib/builtins/abort @@ -5434,7 +5330,7 @@ local.get $value i32.eqz if - i32.const 752 + i32.const 2512 local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5540,83 +5436,6 @@ local.get $12 return ) - (func $~lib/util/number/dtoa (param $value f32) (result i32) - (local $value|1 f64) - (local $isSingle i32) - (local $size i32) - (local $result i32) - (local $5 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 - block $~lib/util/number/dtoa_impl|inlined.0 (result i32) - local.get $value - f64.promote_f32 - local.set $value|1 - i32.const 1 - local.set $isSingle - local.get $value|1 - f64.const 0 - f64.eq - if - i32.const 2576 - br $~lib/util/number/dtoa_impl|inlined.0 - end - local.get $value|1 - local.get $value|1 - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $value|1 - local.get $value|1 - f64.ne - if - i32.const 2608 - br $~lib/util/number/dtoa_impl|inlined.0 - end - i32.const 2640 - i32.const 2688 - local.get $value|1 - f64.const 0 - f64.lt - select - br $~lib/util/number/dtoa_impl|inlined.0 - end - i32.const 2720 - local.get $value|1 - local.get $isSingle - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size - global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result - i32.store - local.get $result - i32.const 2720 - local.get $size - memory.copy - local.get $result - br $~lib/util/number/dtoa_impl|inlined.0 - end - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $resolve-elementaccess/arr @@ -5633,19 +5452,19 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 320 + i32.const 336 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 128 + i32.const 144 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 2544 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 3600 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index dcfdbd343f..fe4c53e8d0 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -3,17 +3,18 @@ (type $1 (func)) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i64 i64 i32 i64 i32) (result i32))) - (type $8 (func (param i32 i32 i32) (result i32))) - (type $9 (func (param f64) (result i32))) - (type $10 (func (param f32) (result i32))) - (type $11 (func (param i32 i32 i32 i32))) - (type $12 (func (param i32 i32 f32))) - (type $13 (func (param i32 i32) (result f32))) - (type $14 (func (param i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) + (type $8 (func (param i64 i64 i32 i64 i32) (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (type $10 (func (param f64) (result i32))) + (type $11 (func (param f32) (result i32))) + (type $12 (func (param i32) (result i32))) + (type $13 (func (param i32 i32 f32))) + (type $14 (func (param i32 i32) (result f32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -32,71 +33,61 @@ (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) (global $resolve-elementaccess/buf (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37792)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37600)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) "<") - (data $20.1 (i32.const 3464) "\02\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 $21 (i32.const 3516) "<") - (data $21.1 (i32.const 3528) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") - (data $22 (i32.const 3580) "\1c") - (data $22.1 (i32.const 3592) "\02\00\00\00\06\00\00\000\00.\000") - (data $23 (i32.const 3612) "\1c") - (data $23.1 (i32.const 3624) "\02\00\00\00\06\00\00\00N\00a\00N") - (data $24 (i32.const 3644) ",") - (data $24.1 (i32.const 3656) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data $25 (i32.const 3692) ",") - (data $25.1 (i32.const 3704) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data $27 (i32.const 3800) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\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|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~stack_check global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if i32.const 32800 - i32.const 35216 + i32.const 32848 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $resolve-localortype/test (param $string i32) (result i32) + (func $export:resolve-localortype/test (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2692,101 +37,44 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $string - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $resolve-localortype/foo<~lib/string/String> + local.get $0 + call $resolve-localortype/test local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $resolve-localortype/test (param $string i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 0 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 + local.get $string + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 32912 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 + local.get $1 + call $resolve-localortype/foo<~lib/string/String> + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $1 return ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2795,341 +83,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32848 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 32880 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 35152 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $4 i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 33376 - i32.const 33504 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 33568 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $export:resolve-localortype/test (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 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $resolve-localortype/test - local.set $1 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 33136 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32944 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 34000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 35056 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/resolve-localortype.release.wat b/tests/compiler/resolve-localortype.release.wat index bb13746ede..5a2fd2a7cb 100644 --- a/tests/compiler/resolve-localortype.release.wat +++ b/tests/compiler/resolve-localortype.release.wat @@ -1,1948 +1,71 @@ (module - (type $0 (func (param i32) (result i32))) + (type $0 (func (param i32 i32 i32 i32))) (type $1 (func)) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33792)) - (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/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (memory $0 0) (export "memory" (memory $0)) (export "test" (func $export:resolve-localortype/test)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - i32.const 34160 - call $~lib/rt/itcms/__visit - i32.const 33968 - call $~lib/rt/itcms/__visit - i32.const 35024 - call $~lib/rt/itcms/__visit - i32.const 36080 - call $~lib/rt/itcms/__visit - i32.const 4 - i32.load - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 34032 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - 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 - 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 34032 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$118 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 33792 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$118 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.load - i32.gt_u - if - i32.const 34160 - i32.const 34224 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.load offset=4 - i32.const 32 - i32.and - end - local.set $1 - i32.const 8 - i32.load - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $1 - select - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - i32.const 8 - local.get $0 - i32.store - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 34304 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 34304 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 34304 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 34304 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 34304 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 33792 - i32.const 0 - i32.store - i32.const 35360 - 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 33792 - 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 33792 - 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 33792 - i32.const 35364 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 33792 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - i32.const 0 - 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 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 33792 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 - local.get $1 - global.set $~lib/rt/itcms/white - i32.const 4 - i32.load - 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 - 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 34032 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 33792 - 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 - local.tee $0 - i32.const 33792 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 34304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - i32.const 4 - i32.const 0 - i32.store - i32.const 8 - i32.const 0 - i32.store - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 34304 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 33968 - i32.const 34032 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$68 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$68 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 33968 - i32.const 34304 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 34304 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - i32.const 8 - i32.load - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.store offset=4 - 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 - i32.const 8 - local.get $1 - i32.store - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + (func $~stack_check global.get $~lib/memory/__stack_pointer i32.const 1024 i32.lt_s if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$72 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 34592 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$72 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 34604 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 34604 - 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 34604 - 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 34604 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 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 1024 - i32.lt_s - br_if $folding-inner0 + call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 + i32.const 33824 i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$123 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 33936 - local.set $0 - br $__inlined_func$~lib/string/String#concat$123 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end + i32.const 33872 + i32.store offset=4 + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - return + unreachable end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) + (func $export:resolve-localortype/test (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 1024 - i32.lt_s - if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store + 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.const 40 - memory.fill + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 33872 - local.get $0 - select - local.tee $0 i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 33904 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 36176 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $export:resolve-localortype/test (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) ) diff --git a/tests/compiler/resolve-nested.debug.wat b/tests/compiler/resolve-nested.debug.wat index 0f5a593f40..716f4f3a49 100644 --- a/tests/compiler/resolve-nested.debug.wat +++ b/tests/compiler/resolve-nested.debug.wat @@ -1,16 +1,8 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $resolve-nested/Outer.Inner.a (mut i32) (i32.const 0)) (global $resolve-nested/Outer.Inner.b (mut i32) (i32.const 0)) (global $resolve-nested/Outer.Inner.c (mut i32) (i32.const 0)) @@ -28,22 +20,7 @@ (global $~lib/memory/__data_end i32 (i32.const 8)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32776)) (global $~lib/memory/__heap_base i32 (i32.const 32776)) - (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/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/__rtti_base (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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (memory $0 0) (table $0 1 1 funcref) (elem $0 (i32.const 1)) @@ -51,2645 +28,13 @@ (export "outer" (func $export:resolve-nested/outer)) (func $resolve-nested/outer (param $a i32) (param $b i32) (param $c i32) ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 33136 - i32.const 33200 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 33008 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 33008 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 32944 - i32.const 33280 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 32944 - i32.const 33008 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 33580 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 33580 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33580 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33580 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 34000 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 34000 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~stack_check global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if i32.const 32800 - i32.const 35216 + i32.const 32848 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2720,243 +65,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $resolve-nested/Outer.Inner.a - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.Inner.b - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.Inner.c - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.Inner.d - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.Inner.e - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.Inner.f - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.a - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.b - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.c - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.d - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/Outer.e - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/a - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/b - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-nested/c - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 33136 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32944 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 34000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 35056 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $resolve-nested/Outer.Inner.EvenInnerClass - block $resolve-nested/Outer.InnerClass - block $resolve-nested/OuterClass - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-nested/OuterClass $resolve-nested/Outer.InnerClass $resolve-nested/Outer.Inner.EvenInnerClass $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - return - end - return - end - return - end - unreachable - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 32912 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2965,270 +75,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32848 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 32880 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 35152 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + local.set $4 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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 33376 - i32.const 33504 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 33568 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return ) ) diff --git a/tests/compiler/resolve-nested.release.wat b/tests/compiler/resolve-nested.release.wat index b7ecf12bc0..ada056bd30 100644 --- a/tests/compiler/resolve-nested.release.wat +++ b/tests/compiler/resolve-nested.release.wat @@ -1,1698 +1,49 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33792)) - (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/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (memory $0 0) (export "memory" (memory $0)) (export "outer" (func $export:resolve-nested/outer)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - i32.const 34160 - call $~lib/rt/itcms/__visit - i32.const 33968 - call $~lib/rt/itcms/__visit - i32.const 35024 - call $~lib/rt/itcms/__visit - i32.const 36080 - call $~lib/rt/itcms/__visit - i32.const 4 - i32.load - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 34032 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - 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 + (func $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 1024 + i32.lt_s if - 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 34032 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$116 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 33792 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$116 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.load - i32.gt_u - if - i32.const 34160 - i32.const 34224 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.load offset=4 - i32.const 32 - i32.and - end - local.set $1 - i32.const 8 - i32.load - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $1 - select - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $0 - i32.store - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 34304 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 34304 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 + 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 33824 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 34304 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 34304 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 + global.get $~lib/memory/__stack_pointer + i32.const 33872 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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 34304 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 33792 - i32.const 0 - i32.store - i32.const 35360 - 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 33792 - 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 33792 - 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 33792 - i32.const 35364 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 33792 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - i32.const 0 - 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 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 33792 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 - local.get $1 - global.set $~lib/rt/itcms/white - i32.const 4 - i32.load - 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 - 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 34032 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 33792 - 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 - local.tee $0 - i32.const 33792 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 34304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - i32.const 4 - i32.const 0 - i32.store - i32.const 8 - i32.const 0 - i32.store - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 34304 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 33968 - i32.const 34032 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$68 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$68 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 33968 - i32.const 34304 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 34304 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - i32.const 8 - i32.load - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.store offset=4 - 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 - i32.const 8 - local.get $1 - i32.store - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 1024 - i32.lt_s - if i32.const 33824 - i32.const 36240 - i32.const 1 + i32.const 33872 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$72 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 34592 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$72 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 34604 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 34604 - 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 34604 - 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 34604 - 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 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + unreachable end - local.get $0 ) (func $export:resolve-nested/outer (param $0 i32) (param $1 i32) (param $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 1024 - i32.lt_s - if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -1707,237 +58,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $resolve-nested/Outer.Inner.EvenInnerClass - block $resolve-nested/Outer.InnerClass - block $resolve-nested/OuterClass - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-nested/OuterClass $resolve-nested/Outer.InnerClass $resolve-nested/Outer.Inner.EvenInnerClass $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - return - end - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 1024 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$121 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 33936 - local.set $0 - br $__inlined_func$~lib/string/String#concat$121 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1024 - i32.lt_s - if - i32.const 33824 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 33872 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 33904 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 36176 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 33264453a9..d534332700 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -2,19 +2,14 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,468 +18,32 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $resolve-new/foo (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2408)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35176)) - (global $~lib/memory/__heap_base i32 (i32.const 35176)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 440)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33208)) + (global $~lib/memory/__heap_base i32 (i32.const 33208)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2384) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\05\00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -549,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -619,7 +178,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -636,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -666,9 +225,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -735,7 +294,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -887,7 +446,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -907,7 +466,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -970,7 +529,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1123,7 +682,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1140,7 +699,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1229,7 +788,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1272,7 +831,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1290,7 +849,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1358,7 +917,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1475,7 +1034,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1521,7 +1080,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1553,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1797,7 +1356,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2017,7 +1576,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2128,8 +1687,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2231,7 +1790,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2302,7 +1861,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2459,7 +2018,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2574,7 +2133,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2594,7 +2153,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2642,8 +2201,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2698,20 +2257,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35200 - i32.const 35248 + i32.const 33232 + i32.const 33280 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2720,196 +2275,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $resolve-new/Foo#constructor (param $this i32) (result i32) (local $1 i32) @@ -2967,13 +2353,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -2992,153 +2378,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3176,16 +2415,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index 1520b0a607..c257bebcd5 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (result i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,240 +18,21 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $resolve-new/foo (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36200)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34232)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3408) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1440) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3432 - i32.lt_s - if - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -261,13 +42,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -288,7 +65,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -336,7 +113,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -345,7 +122,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$125 + block $__inlined_func$~lib/rt/itcms/Object#unlink$113 local.get $1 i32.load offset=4 i32.const -4 @@ -357,19 +134,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36200 + i32.const 34232 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + br $__inlined_func$~lib/rt/itcms/Object#unlink$113 end local.get $1 i32.load offset=8 @@ -377,7 +154,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -406,13 +183,13 @@ i32.const 1 else local.get $0 - i32.const 3408 + i32.const 1440 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -420,7 +197,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3412 + i32.const 1444 i32.add i32.load i32.const 32 @@ -472,7 +249,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -486,7 +263,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -532,7 +309,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -615,7 +392,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -629,7 +406,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -690,7 +467,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -723,7 +500,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -738,7 +515,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -789,7 +566,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -861,7 +638,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -886,7 +663,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -913,7 +690,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -985,10 +762,10 @@ if unreachable end - i32.const 36208 + i32.const 34240 i32.const 0 i32.store - i32.const 37776 + i32.const 35808 i32.const 0 i32.store loop $for-loop|0 @@ -999,7 +776,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=4 @@ -1017,7 +794,7 @@ i32.add i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=96 @@ -1035,14 +812,14 @@ br $for-loop|0 end end - i32.const 36208 - i32.const 37780 + i32.const 34240 + i32.const 35812 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36208 + i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1127,7 +904,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36200 + i32.const 34232 i32.lt_u if local.get $0 @@ -1216,14 +993,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36200 + i32.const 34232 i32.lt_u if local.get $0 @@ -1246,7 +1023,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36200 + i32.const 34232 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1275,7 +1052,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1305,85 +1082,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1391,11 +1101,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1411,7 +1117,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1433,35 +1139,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1471,9 +1165,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1496,86 +1190,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1591,8 +1230,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1600,136 +1239,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1737,14 +1359,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) @@ -1753,11 +1375,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3432 + i32.const 1464 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1769,34 +1391,34 @@ memory.size i32.const 16 i32.shl - i32.const 36200 + i32.const 34232 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $resolve-new/Foo#constructor global.set $resolve-new/foo @@ -1810,205 +1432,40 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3432 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3432 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$130 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$130 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3432 + i32.const 1464 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $resolve-new/Foo#constructor (result i32) (local $0 i32) @@ -2019,14 +1476,13 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3432 + i32.const 1464 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2040,7 +1496,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3432 + i32.const 1464 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2051,7 +1507,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2069,8 +1524,8 @@ local.get $0 return end - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index 5ede407883..1e22fb2b47 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -1,21 +1,20 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func)) (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (result i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (param i32 i64 i32))) + (type $10 (func (param i64 i32) (result i32))) + (type $11 (func (param i32 i64 i32 i32))) + (type $12 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $resolve-propertyaccess/Namespace.member 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/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -24,6 +23,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -36,60 +39,97 @@ (global $resolve-propertyaccess/Enum.VALUE i32 (i32.const 4)) (global $resolve-propertyaccess/Class.staticField (mut i32) (i32.const 5)) (global $resolve-propertyaccess/Class.lazyStaticField (mut i32) (i32.const 55)) - (global $~lib/rt/__rtti_base i32 (i32.const 2848)) - (global $~lib/memory/__data_end i32 (i32.const 2872)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35640)) - (global $~lib/memory/__heap_base i32 (i32.const 35640)) + (global $~lib/rt/__rtti_base i32 (i32.const 2656)) + (global $~lib/memory/__data_end i32 (i32.const 2680)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35448)) + (global $~lib/memory/__heap_base i32 (i32.const 35448)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00p\00r\00o\00p\00e\00r\00t\00y\00a\00c\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\001\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\002\002\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\003\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\003\003\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\005\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\005\005\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\007\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\006\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\008\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2848) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 636) "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 $12 (i32.const 1036) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2092) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 2220) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00p\00r\00o\00p\00e\00r\00t\00y\00a\00c\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\001\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 2332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 2364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\002\002\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 2396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\003\003\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\005\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\005\005\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\007\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\006\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 2656) "\05\00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) + local.get $value + i32.const 100000 + i32.lt_u + if + local.get $value + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $value + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $value + i32.const 10000 + i32.ge_u + i32.add + local.get $value + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $value + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $value + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $value + i32.const 1000000000 + i32.ge_u + i32.add + local.get $value + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -155,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 320 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -225,7 +265,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 320 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -242,7 +282,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 320 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -272,9 +312,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 448 + i32.const 512 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -341,7 +381,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 320 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -493,7 +533,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -513,7 +553,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -576,7 +616,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -729,7 +769,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -746,7 +786,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -835,7 +875,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -878,7 +918,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -896,7 +936,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -964,7 +1004,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1081,7 +1121,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1127,7 +1167,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1159,7 +1199,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1403,7 +1443,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1623,7 +1663,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 320 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1734,8 +1774,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 256 + i32.const 592 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1837,7 +1877,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1908,7 +1948,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2065,7 +2105,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2180,7 +2220,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2200,7 +2240,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 592 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2248,8 +2288,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 256 + i32.const 320 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2294,61 +2334,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) (local $t i32) (local $r i32) @@ -2384,14 +2369,14 @@ i32.const 100 i32.rem_u local.set $d2 - i32.const 764 + i32.const 636 local.get $d1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 764 + i32.const 636 local.get $d2 i32.const 2 i32.shl @@ -2434,7 +2419,7 @@ i32.const 2 i32.sub local.set $offset - i32.const 764 + i32.const 636 local.get $d1|10 i32.const 2 i32.shl @@ -2457,7 +2442,7 @@ i32.const 2 i32.sub local.set $offset - i32.const 764 + i32.const 636 local.get $num i32.const 2 i32.shl @@ -2504,7 +2489,7 @@ i32.const 1 i32.shl i32.add - i32.const 1184 + i32.const 1056 local.get $num i32.wrap_i64 i32.const 255 @@ -2526,7 +2511,7 @@ i32.and if local.get $buffer - i32.const 1184 + i32.const 1056 local.get $num i32.wrap_i64 i32.const 6 @@ -2649,7 +2634,7 @@ i32.const 1 i32.shl i32.add - i32.const 2240 + i32.const 2112 local.get $num local.get $mask i64.and @@ -2683,7 +2668,7 @@ i32.const 1 i32.shl i32.add - i32.const 2240 + i32.const 2112 local.get $num local.get $q local.get $base @@ -2704,16 +2689,23 @@ end end ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) + (func $~lib/number/I32#toString (param $this i32) (param $radix i32) (result i32) local.get $this local.get $radix - call $~lib/util/number/utoa32 + call $~lib/util/number/itoa32 return ) - (func $~lib/number/I32#toString (param $this i32) (param $radix i32) (result i32) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) local.get $this - local.get $radix - call $~lib/util/number/itoa32 + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u return ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) @@ -2845,20 +2837,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35664 - i32.const 35712 + i32.const 35472 + i32.const 35520 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2867,196 +2855,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -3222,13 +3041,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 240 + i32.const 368 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 272 + i32.const 400 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 416 + i32.const 544 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $resolve-propertyaccess/Namespace.member @@ -3239,12 +3058,12 @@ local.get $1 i32.store local.get $1 - i32.const 2400 + i32.const 2208 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -3258,12 +3077,12 @@ local.get $1 i32.store local.get $1 - i32.const 2512 + i32.const 2320 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -3277,12 +3096,12 @@ local.get $1 i32.store local.get $1 - i32.const 2544 + i32.const 2352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -3296,12 +3115,12 @@ local.get $1 i32.store local.get $1 - i32.const 2576 + i32.const 2384 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -3315,12 +3134,12 @@ local.get $1 i32.store local.get $1 - i32.const 2608 + i32.const 2416 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -3334,12 +3153,12 @@ local.get $1 i32.store local.get $1 - i32.const 2640 + i32.const 2448 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 48 i32.const 1 call $~lib/builtins/abort @@ -3353,12 +3172,12 @@ local.get $1 i32.store local.get $1 - i32.const 2672 + i32.const 2480 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 58 i32.const 1 call $~lib/builtins/abort @@ -3372,12 +3191,12 @@ local.get $1 i32.store local.get $1 - i32.const 2704 + i32.const 2512 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 72 i32.const 1 call $~lib/builtins/abort @@ -3391,12 +3210,12 @@ local.get $1 i32.store local.get $1 - i32.const 2736 + i32.const 2544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 78 i32.const 1 call $~lib/builtins/abort @@ -3410,12 +3229,12 @@ local.get $1 i32.store local.get $1 - i32.const 2768 + i32.const 2576 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 84 i32.const 1 call $~lib/builtins/abort @@ -3440,12 +3259,12 @@ local.get $1 i32.store local.get $1 - i32.const 2800 + i32.const 2608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 92 i32.const 3 call $~lib/builtins/abort @@ -3465,12 +3284,12 @@ local.get $1 i32.store local.get $1 - i32.const 2832 + i32.const 2640 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 2240 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -3481,153 +3300,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/util/number/itoa32 (param $value i32) (param $radix i32) (result i32) (local $sign i32) (local $out i32) @@ -3661,8 +3333,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 32 + i32.const 160 i32.const 373 i32.const 5 call $~lib/builtins/abort @@ -3671,7 +3343,7 @@ local.get $value i32.eqz if - i32.const 752 + i32.const 224 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3840,16 +3512,16 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 + i32.const 448 local.get $0 call $~lib/rt/itcms/__visit - i32.const 128 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 1056 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 2112 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index dcf90308b4..485d5e07a3 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -1,13 +1,13 @@ (module (type $0 (func)) (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,78 +18,68 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36664)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36472)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\02\00\00\001") - (data $20 (i32.const 3436) "L") - (data $20.1 (i32.const 3448) "\02\00\00\002\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00p\00r\00o\00p\00e\00r\00t\00y\00a\00c\00c\00e\00s\00s\00.\00t\00s") - (data $21 (i32.const 3516) "\1c") - (data $21.1 (i32.const 3528) "\02\00\00\00\04\00\00\001\001") - (data $22 (i32.const 3548) "\1c") - (data $22.1 (i32.const 3560) "\02\00\00\00\02\00\00\002") - (data $23 (i32.const 3580) "\1c") - (data $23.1 (i32.const 3592) "\02\00\00\00\04\00\00\002\002") - (data $24 (i32.const 3612) "\1c") - (data $24.1 (i32.const 3624) "\02\00\00\00\02\00\00\003") - (data $25 (i32.const 3644) "\1c") - (data $25.1 (i32.const 3656) "\02\00\00\00\04\00\00\003\003") - (data $26 (i32.const 3676) "\1c") - (data $26.1 (i32.const 3688) "\02\00\00\00\02\00\00\004") - (data $27 (i32.const 3708) "\1c") - (data $27.1 (i32.const 3720) "\02\00\00\00\02\00\00\005") - (data $28 (i32.const 3740) "\1c") - (data $28.1 (i32.const 3752) "\02\00\00\00\04\00\00\005\005") - (data $29 (i32.const 3772) "\1c") - (data $29.1 (i32.const 3784) "\02\00\00\00\02\00\00\007") - (data $30 (i32.const 3804) "\1c") - (data $30.1 (i32.const 3816) "\02\00\00\00\02\00\00\006") - (data $31 (i32.const 3836) "\1c") - (data $31.1 (i32.const 3848) "\02\00\00\00\02\00\00\008") - (data $32 (i32.const 3872) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "|") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1164) "<") + (data $1.1 (i32.const 1176) "\02\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 $2 (i32.const 1228) "\1c") + (data $2.1 (i32.const 1240) "\02\00\00\00\02\00\00\000") + (data $3 (i32.const 1260) "<") + (data $3.1 (i32.const 1272) "\02\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 $4 (i32.const 1324) "<") + (data $4.1 (i32.const 1336) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $7 (i32.const 1452) "<") + (data $7.1 (i32.const 1464) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $8 (i32.const 1516) ",") + (data $8.1 (i32.const 1528) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $10 (i32.const 1596) "<") + (data $10.1 (i32.const 1608) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $11 (i32.const 1660) "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 $12 (i32.const 2060) "\1c\04") + (data $12.1 (i32.const 2072) "\02\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 $13 (i32.const 3116) "\\") + (data $13.1 (i32.const 3128) "\02\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 $14 (i32.const 3212) "\1c") + (data $14.1 (i32.const 3224) "\02\00\00\00\02\00\00\001") + (data $15 (i32.const 3244) "L") + (data $15.1 (i32.const 3256) "\02\00\00\002\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00p\00r\00o\00p\00e\00r\00t\00y\00a\00c\00c\00e\00s\00s\00.\00t\00s") + (data $16 (i32.const 3324) "\1c") + (data $16.1 (i32.const 3336) "\02\00\00\00\04\00\00\001\001") + (data $17 (i32.const 3356) "\1c") + (data $17.1 (i32.const 3368) "\02\00\00\00\02\00\00\002") + (data $18 (i32.const 3388) "\1c") + (data $18.1 (i32.const 3400) "\02\00\00\00\04\00\00\002\002") + (data $19 (i32.const 3420) "\1c") + (data $19.1 (i32.const 3432) "\02\00\00\00\02\00\00\003") + (data $20 (i32.const 3452) "\1c") + (data $20.1 (i32.const 3464) "\02\00\00\00\04\00\00\003\003") + (data $21 (i32.const 3484) "\1c") + (data $21.1 (i32.const 3496) "\02\00\00\00\02\00\00\004") + (data $22 (i32.const 3516) "\1c") + (data $22.1 (i32.const 3528) "\02\00\00\00\02\00\00\005") + (data $23 (i32.const 3548) "\1c") + (data $23.1 (i32.const 3560) "\02\00\00\00\04\00\00\005\005") + (data $24 (i32.const 3580) "\1c") + (data $24.1 (i32.const 3592) "\02\00\00\00\02\00\00\007") + (data $25 (i32.const 3612) "\1c") + (data $25.1 (i32.const 3624) "\02\00\00\00\02\00\00\006") + (data $26 (i32.const 3644) "\1c") + (data $26.1 (i32.const 3656) "\02\00\00\00\02\00\00\008") + (data $27 (i32.const 3680) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 + i32.const 1472 call $~lib/rt/itcms/__visit - i32.const 1152 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 2080 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 3136 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -110,7 +100,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -158,7 +148,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -167,7 +157,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$134 + block $__inlined_func$~lib/rt/itcms/Object#unlink$127 local.get $1 i32.load offset=4 i32.const -4 @@ -179,19 +169,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36664 + i32.const 36472 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$134 + br $__inlined_func$~lib/rt/itcms/Object#unlink$127 end local.get $1 i32.load offset=8 @@ -199,7 +189,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -228,13 +218,13 @@ i32.const 1 else local.get $0 - i32.const 3872 + i32.const 3680 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1472 + i32.const 1536 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -242,7 +232,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3876 + i32.const 3684 i32.add i32.load i32.const 32 @@ -294,7 +284,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -308,7 +298,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -354,7 +344,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -437,7 +427,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -451,7 +441,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -512,7 +502,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -545,7 +535,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -560,7 +550,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -611,7 +601,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -683,7 +673,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -708,7 +698,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -735,7 +725,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -807,10 +797,10 @@ if unreachable end - i32.const 36672 + i32.const 36480 i32.const 0 i32.store - i32.const 38240 + i32.const 38048 i32.const 0 i32.store loop $for-loop|0 @@ -821,7 +811,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36672 + i32.const 36480 i32.add i32.const 0 i32.store offset=4 @@ -839,7 +829,7 @@ i32.add i32.const 2 i32.shl - i32.const 36672 + i32.const 36480 i32.add i32.const 0 i32.store offset=96 @@ -857,14 +847,14 @@ br $for-loop|0 end end - i32.const 36672 - i32.const 38244 + i32.const 36480 + i32.const 38052 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36672 + i32.const 36480 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -949,7 +939,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36664 + i32.const 36472 i32.lt_u if local.get $0 @@ -1038,14 +1028,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36664 + i32.const 36472 i32.lt_u if local.get $0 @@ -1068,7 +1058,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36664 + i32.const 36472 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1097,7 +1087,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1181,7 +1171,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1233,7 +1223,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1265,8 +1255,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1280 + i32.const 1344 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1276,7 +1266,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1293,7 +1283,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1326,8 +1316,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1280 + i32.const 1616 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1429,7 +1419,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1444,7 +1434,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1463,7 +1453,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1568,123 +1558,22 @@ memory.fill local.get $1 ) - (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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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/U32#toString (param $0 i32) (result i32) + (func $~lib/number/I32#toString (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 global.get $~lib/memory/__stack_pointer - i32.const 3896 + i32.const 3704 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 36496 + i32.const 36544 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1693,7 +1582,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/utoa32$74 + block $__inlined_func$~lib/util/number/itoa32$73 local.get $0 i32.eqz if @@ -1701,12 +1590,23 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $1 - br $__inlined_func$~lib/util/number/utoa32$74 + i32.const 1248 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 end global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + select + local.tee $0 i32.const 100000 i32.lt_u if (result i32) @@ -1752,346 +1652,170 @@ i32.add end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl + local.get $3 + i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - local.get $0 local.get $2 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $1 - ) - (func $~lib/number/I32#toString (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 3896 - i32.lt_s - if - i32.const 36688 - i32.const 36736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$75 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/itoa32$75 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $1 - select - 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 + local.set $5 + loop $while-continue|0 + local.get $0 + i32.const 10000 + i32.ge_u + if + local.get $0 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.rem_u + local.set $4 + local.get $0 + i32.const 10000 + i32.div_u + local.set $0 + local.get $5 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1660 i32.add - local.get $3 - i32.const 100000000 - i32.ge_u + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - local.tee $2 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store local.get $0 - local.get $1 - i32.add - local.get $3 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $1 + i32.const 100 + i32.ge_u if + local.get $5 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add local.get $0 - i32.const 45 - i32.store16 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~start - call $start:resolve-propertyaccess - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$139 + i32.const 10 + i32.ge_u + if + local.get $5 local.get $1 - i32.const 20 + i32.const 2 i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 + i32.const 1 + i32.shl i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$139 - end - global.get $~lib/memory/__stack_pointer local.get $0 i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 + i32.shl + i32.const 1660 i32.add + i32.load + i32.store + else + local.get $5 local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 + i32.sub + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 48 + i32.add + i32.store16 + end + local.get $3 + if + local.get $2 + i32.const 45 + i32.store16 end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 36688 - i32.const 36736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $2 + ) + (func $~start + call $start:resolve-propertyaccess ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3896 + i32.const 3704 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 36496 + i32.const 36544 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2103,11 +1827,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3896 + i32.const 3704 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 36496 + i32.const 36544 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2206,7 +1930,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$80 + block $__inlined_func$~lib/util/string/compareImpl$77 loop $while-continue|1 local.get $0 local.tee $3 @@ -2226,7 +1950,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$80 + br_if $__inlined_func$~lib/util/string/compareImpl$77 local.get $2 i32.const 2 i32.add @@ -2265,7 +1989,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3896 + i32.const 3704 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2277,34 +2001,34 @@ memory.size i32.const 16 i32.shl - i32.const 36664 + i32.const 36472 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1396 + i32.const 1392 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1400 + i32.const 1392 i32.store - i32.const 1264 + i32.const 1392 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1428 + i32.const 1424 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1432 + i32.const 1424 i32.store - i32.const 1296 + i32.const 1424 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1572 + i32.const 1568 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1576 + i32.const 1568 i32.store - i32.const 1440 + i32.const 1568 global.set $~lib/rt/itcms/fromSpace i32.const 1 call $~lib/number/I32#toString @@ -2313,12 +2037,12 @@ local.get $0 i32.store local.get $0 - i32.const 3424 + i32.const 3232 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -2331,12 +2055,12 @@ local.get $0 i32.store local.get $0 - i32.const 3536 + i32.const 3344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -2349,12 +2073,12 @@ local.get $0 i32.store local.get $0 - i32.const 3568 + i32.const 3376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -2367,12 +2091,12 @@ local.get $0 i32.store local.get $0 - i32.const 3600 + i32.const 3408 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -2385,12 +2109,12 @@ local.get $0 i32.store local.get $0 - i32.const 3632 + i32.const 3440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -2403,12 +2127,12 @@ local.get $0 i32.store local.get $0 - i32.const 3664 + i32.const 3472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 48 i32.const 1 call $~lib/builtins/abort @@ -2421,12 +2145,12 @@ local.get $0 i32.store local.get $0 - i32.const 3696 + i32.const 3504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 58 i32.const 1 call $~lib/builtins/abort @@ -2439,12 +2163,12 @@ local.get $0 i32.store local.get $0 - i32.const 3728 + i32.const 3536 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 72 i32.const 1 call $~lib/builtins/abort @@ -2457,12 +2181,12 @@ local.get $0 i32.store local.get $0 - i32.const 3760 + i32.const 3568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 78 i32.const 1 call $~lib/builtins/abort @@ -2475,12 +2199,12 @@ local.get $0 i32.store local.get $0 - i32.const 3792 + i32.const 3600 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 84 i32.const 1 call $~lib/builtins/abort @@ -2492,7 +2216,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3896 + i32.const 3704 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2513,7 +2237,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3896 + i32.const 3704 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2558,12 +2282,12 @@ local.get $1 i32.store local.get $1 - i32.const 3824 + i32.const 3632 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 92 i32.const 3 call $~lib/builtins/abort @@ -2579,12 +2303,12 @@ local.get $0 i32.store local.get $0 - i32.const 3856 + i32.const 3664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -2596,8 +2320,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36688 - i32.const 36736 + i32.const 36496 + i32.const 36544 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index ee28ac5875..eebc1ae72a 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -1,26 +1,25 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func)) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $12 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $13 (func (param i32 i32 i32) (result i32))) - (type $14 (func (param i32 f64 i32) (result i32))) - (type $15 (func (param f64 i32) (result i32))) - (type $16 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i64 i32))) + (type $10 (func (param i64 i32) (result i32))) + (type $11 (func (param i32 i64 i32 i32))) + (type $12 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $13 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $14 (func (param i32 i32 i32) (result i32))) + (type $15 (func (param i32 f64 i32) (result i32))) + (type $16 (func (param f64 i32) (result i32))) (type $17 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $resolve-ternary/b (mut 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/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -29,6 +28,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -39,65 +42,103 @@ (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 $resolve-ternary/f1 i32 (i32.const 3664)) - (global $resolve-ternary/f2 i32 (i32.const 3696)) + (global $resolve-ternary/f1 i32 (i32.const 3472)) + (global $resolve-ternary/f2 i32 (i32.const 3504)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3776)) - (global $~lib/memory/__data_end i32 (i32.const 3800)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36568)) - (global $~lib/memory/__heap_base i32 (i32.const 36568)) + (global $~lib/rt/__rtti_base i32 (i32.const 3584)) + (global $~lib/memory/__data_end i32 (i32.const 3608)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36376)) + (global $~lib/memory/__heap_base i32 (i32.const 36376)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00r\00e\00s\00o\00l\00v\00e\00-\00t\00e\00r\00n\00a\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2588) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2640) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2696) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\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 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/util/number/itoa32 (param $value i32) (param $radix i32) (result i32) (local $sign i32) (local $out i32) @@ -4054,8 +3727,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 32 + i32.const 160 i32.const 373 i32.const 5 call $~lib/builtins/abort @@ -4064,7 +3737,7 @@ local.get $value i32.eqz if - i32.const 752 + i32.const 224 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4247,16 +3920,16 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 320 + i32.const 448 local.get $0 call $~lib/rt/itcms/__visit - i32.const 128 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 1056 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 2112 local.get $0 call $~lib/rt/itcms/__visit ) @@ -4331,6 +4004,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index 551d6a4e9c..27dd4043af 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -1,13 +1,13 @@ (module (type $0 (func)) (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -22,76 +22,66 @@ (global $resolve-unary/b (mut i32) (i32.const 1)) (global $resolve-unary/foo (mut i32) (i32.const 0)) (global $resolve-unary/bar (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36832)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36640)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") + (data $0 (i32.const 1036) "|") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1164) "<") + (data $1.1 (i32.const 1176) "\02\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 $2 (i32.const 1228) "\1c") + (data $2.1 (i32.const 1240) "\02\00\00\00\02\00\00\000") + (data $3 (i32.const 1260) "<") + (data $3.1 (i32.const 1272) "\02\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 $4 (i32.const 1324) "<") + (data $4.1 (i32.const 1336) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $7 (i32.const 1452) "<") + (data $7.1 (i32.const 1464) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $8 (i32.const 1516) ",") + (data $8.1 (i32.const 1528) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $10 (i32.const 1596) "<") + (data $10.1 (i32.const 1608) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $11 (i32.const 1660) "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 $12 (i32.const 2060) "\1c\04") + (data $12.1 (i32.const 2072) "\02\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 $13 (i32.const 3116) "\\") + (data $13.1 (i32.const 3128) "\02\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 $14 (i32.const 3212) "\1c") + (data $14.1 (i32.const 3224) "\02\00\00\00\04\00\00\00-\001") + (data $15 (i32.const 3244) "<") + (data $15.1 (i32.const 3256) "\02\00\00\00 \00\00\00r\00e\00s\00o\00l\00v\00e\00-\00u\00n\00a\00r\00y\00.\00t\00s") + (data $16 (i32.const 3308) "\1c") + (data $16.1 (i32.const 3320) "\02\00\00\00\02\00\00\001") + (data $17 (i32.const 3340) "\1c") + (data $17.1 (i32.const 3352) "\02\00\00\00\02\00\00\002") + (data $18 (i32.const 3372) "\1c") + (data $18.1 (i32.const 3384) "\02\00\00\00\08\00\00\00t\00r\00u\00e") (data $19 (i32.const 3404) "\1c") - (data $19.1 (i32.const 3416) "\02\00\00\00\04\00\00\00-\001") - (data $20 (i32.const 3436) "<") - (data $20.1 (i32.const 3448) "\02\00\00\00 \00\00\00r\00e\00s\00o\00l\00v\00e\00-\00u\00n\00a\00r\00y\00.\00t\00s") - (data $21 (i32.const 3500) "\1c") - (data $21.1 (i32.const 3512) "\02\00\00\00\02\00\00\001") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\02\00\00\00\02\00\00\002") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\02\00\00\00\08\00\00\00t\00r\00u\00e") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\02\00\00\00\n\00\00\00f\00a\00l\00s\00e") - (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\02\00\00\00\04\00\00\00-\002") - (data $26 (i32.const 3660) "\1c") - (data $26.1 (i32.const 3672) "\02\00\00\00\02\00\00\00+") - (data $27 (i32.const 3692) "\1c") - (data $27.1 (i32.const 3704) "\02\00\00\00\02\00\00\00-") - (data $28 (i32.const 3724) "\1c") - (data $28.1 (i32.const 3736) "\02\00\00\00\02\00\00\00!") - (data $29 (i32.const 3756) "\1c") - (data $29.1 (i32.const 3768) "\02\00\00\00\02\00\00\00~") - (data $30 (i32.const 3788) "\1c") - (data $30.1 (i32.const 3800) "\02\00\00\00\06\00\00\00+\00+\00i") - (data $31 (i32.const 3820) "\1c") - (data $31.1 (i32.const 3832) "\02\00\00\00\06\00\00\00-\00-\00i") - (data $32 (i32.const 3852) "\1c") - (data $32.1 (i32.const 3864) "\02\00\00\00\06\00\00\00i\00+\00+") - (data $33 (i32.const 3884) "\1c") - (data $33.1 (i32.const 3896) "\02\00\00\00\06\00\00\00i\00-\00-") - (data $34 (i32.const 3916) "\1c") - (data $34.1 (i32.const 3928) "\02\00\00\00\0c\00\00\00n\00u\00m\00b\00e\00r") - (data $35 (i32.const 3948) "\1c") - (data $35.1 (i32.const 3960) "\06\00\00\00\08\00\00\00\01") - (data $36 (i32.const 3980) ",") - (data $36.1 (i32.const 3992) "\02\00\00\00\10\00\00\00f\00u\00n\00c\00t\00i\00o\00n") - (data $37 (i32.const 4032) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data $19.1 (i32.const 3416) "\02\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data $20 (i32.const 3436) "\1c") + (data $20.1 (i32.const 3448) "\02\00\00\00\04\00\00\00-\002") + (data $21 (i32.const 3468) "\1c") + (data $21.1 (i32.const 3480) "\02\00\00\00\02\00\00\00+") + (data $22 (i32.const 3500) "\1c") + (data $22.1 (i32.const 3512) "\02\00\00\00\02\00\00\00-") + (data $23 (i32.const 3532) "\1c") + (data $23.1 (i32.const 3544) "\02\00\00\00\02\00\00\00!") + (data $24 (i32.const 3564) "\1c") + (data $24.1 (i32.const 3576) "\02\00\00\00\02\00\00\00~") + (data $25 (i32.const 3596) "\1c") + (data $25.1 (i32.const 3608) "\02\00\00\00\06\00\00\00+\00+\00i") + (data $26 (i32.const 3628) "\1c") + (data $26.1 (i32.const 3640) "\02\00\00\00\06\00\00\00-\00-\00i") + (data $27 (i32.const 3660) "\1c") + (data $27.1 (i32.const 3672) "\02\00\00\00\06\00\00\00i\00+\00+") + (data $28 (i32.const 3692) "\1c") + (data $28.1 (i32.const 3704) "\02\00\00\00\06\00\00\00i\00-\00-") + (data $29 (i32.const 3724) "\1c") + (data $29.1 (i32.const 3736) "\02\00\00\00\0c\00\00\00n\00u\00m\00b\00e\00r") + (data $30 (i32.const 3756) "\1c") + (data $30.1 (i32.const 3768) "\06\00\00\00\08\00\00\00\01") + (data $31 (i32.const 3788) ",") + (data $31.1 (i32.const 3800) "\02\00\00\00\10\00\00\00f\00u\00n\00c\00t\00i\00o\00n") + (data $32 (i32.const 3840) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots @@ -109,13 +99,13 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1344 + i32.const 1472 call $~lib/rt/itcms/__visit - i32.const 1152 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 2080 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 3136 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -136,7 +126,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -184,7 +174,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -193,7 +183,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$164 + block $__inlined_func$~lib/rt/itcms/Object#unlink$157 local.get $1 i32.load offset=4 i32.const -4 @@ -205,19 +195,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36832 + i32.const 36640 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$164 + br $__inlined_func$~lib/rt/itcms/Object#unlink$157 end local.get $1 i32.load offset=8 @@ -225,7 +215,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -254,13 +244,13 @@ i32.const 1 else local.get $0 - i32.const 4032 + i32.const 3840 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1472 + i32.const 1536 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -268,7 +258,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 4036 + i32.const 3844 i32.add i32.load i32.const 32 @@ -320,7 +310,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -334,7 +324,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -380,7 +370,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -463,7 +453,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -477,7 +467,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -538,7 +528,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -571,7 +561,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -586,7 +576,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -637,7 +627,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -709,7 +699,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -734,7 +724,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -761,7 +751,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -833,10 +823,10 @@ if unreachable end - i32.const 36832 + i32.const 36640 i32.const 0 i32.store - i32.const 38400 + i32.const 38208 i32.const 0 i32.store loop $for-loop|0 @@ -847,7 +837,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36832 + i32.const 36640 i32.add i32.const 0 i32.store offset=4 @@ -865,7 +855,7 @@ i32.add i32.const 2 i32.shl - i32.const 36832 + i32.const 36640 i32.add i32.const 0 i32.store offset=96 @@ -883,14 +873,14 @@ br $for-loop|0 end end - i32.const 36832 - i32.const 38404 + i32.const 36640 + i32.const 38212 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36832 + i32.const 36640 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -975,7 +965,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36832 + i32.const 36640 i32.lt_u if local.get $0 @@ -1064,14 +1054,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1344 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36832 + i32.const 36640 i32.lt_u if local.get $0 @@ -1094,7 +1084,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36832 + i32.const 36640 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1123,7 +1113,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1207,7 +1197,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1259,7 +1249,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1291,8 +1281,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1280 + i32.const 1344 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1302,7 +1292,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1319,7 +1309,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1352,8 +1342,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1280 + i32.const 1616 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1455,7 +1445,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1470,7 +1460,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1489,7 +1479,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1616 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1594,123 +1584,22 @@ memory.fill local.get $1 ) - (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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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/U32#toString (param $0 i32) (result i32) + (func $~lib/number/I32#toString (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 global.get $~lib/memory/__stack_pointer - i32.const 4064 + i32.const 3872 i32.lt_s if - i32.const 36864 - i32.const 36912 + i32.const 36672 + i32.const 36720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1719,7 +1608,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/utoa32$74 + block $__inlined_func$~lib/util/number/itoa32$73 local.get $0 i32.eqz if @@ -1727,12 +1616,23 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $1 - br $__inlined_func$~lib/util/number/utoa32$74 + i32.const 1248 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 end global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + select + local.tee $0 i32.const 100000 i32.lt_u if (result i32) @@ -1778,346 +1678,170 @@ i32.add end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl + local.get $3 + i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - local.get $0 local.get $2 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $1 - ) - (func $~lib/number/I32#toString (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 4064 - i32.lt_s - if - i32.const 36864 - i32.const 36912 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$75 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/itoa32$75 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $1 - select - 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 + local.set $5 + loop $while-continue|0 + local.get $0 + i32.const 10000 + i32.ge_u + if + local.get $0 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.rem_u + local.set $4 + local.get $0 + i32.const 10000 + i32.div_u + local.set $0 + local.get $5 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1660 i32.add - local.get $3 - i32.const 100000000 - i32.ge_u + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - local.tee $2 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store local.get $0 - local.get $1 - i32.add - local.get $3 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $1 + i32.const 100 + i32.ge_u if + local.get $5 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add local.get $0 - i32.const 45 - i32.store16 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~start - call $start:resolve-unary - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 4064 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4064 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$169 + i32.const 10 + i32.ge_u + if + local.get $5 local.get $1 - i32.const 20 + i32.const 2 i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 + i32.const 1 + i32.shl i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$169 - end - global.get $~lib/memory/__stack_pointer local.get $0 i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 + i32.shl + i32.const 1660 i32.add + i32.load + i32.store + else + local.get $5 local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 + i32.sub + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 48 + i32.add + i32.store16 + end + local.get $3 + if + local.get $2 + i32.const 45 + i32.store16 end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 36864 - i32.const 36912 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $2 + ) + (func $~start + call $start:resolve-unary ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4064 + i32.const 3872 i32.lt_s if - i32.const 36864 - i32.const 36912 + i32.const 36672 + i32.const 36720 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2129,11 +1853,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4064 + i32.const 3872 i32.lt_s if - i32.const 36864 - i32.const 36912 + i32.const 36672 + i32.const 36720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2232,7 +1956,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$80 + block $__inlined_func$~lib/util/string/compareImpl$77 loop $while-continue|1 local.get $0 local.tee $3 @@ -2252,7 +1976,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$80 + br_if $__inlined_func$~lib/util/string/compareImpl$77 local.get $2 i32.const 2 i32.add @@ -2289,7 +2013,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4064 + i32.const 3872 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2299,34 +2023,34 @@ memory.size i32.const 16 i32.shl - i32.const 36832 + i32.const 36640 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1396 + i32.const 1392 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1400 + i32.const 1392 i32.store - i32.const 1264 + i32.const 1392 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1428 + i32.const 1424 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1432 + i32.const 1424 i32.store - i32.const 1296 + i32.const 1424 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1572 + i32.const 1568 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1576 + i32.const 1568 i32.store - i32.const 1440 + i32.const 1568 global.set $~lib/rt/itcms/fromSpace i32.const -1 call $~lib/number/I32#toString @@ -2335,12 +2059,12 @@ local.get $0 i32.store local.get $0 - i32.const 3424 + i32.const 3232 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 2 i32.const 1 call $~lib/builtins/abort @@ -2353,12 +2077,12 @@ local.get $0 i32.store local.get $0 - i32.const 3520 + i32.const 3328 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 7 i32.const 1 call $~lib/builtins/abort @@ -2375,12 +2099,12 @@ local.get $0 i32.store local.get $0 - i32.const 3552 + i32.const 3360 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -2397,50 +2121,50 @@ local.get $0 i32.store local.get $0 - i32.const 3520 + i32.const 3328 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 18 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.const 3584 + i32.const 3424 + i32.const 3392 global.get $resolve-unary/a select local.tee $0 i32.store local.get $0 - i32.const 3616 + i32.const 3424 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 23 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3584 - i32.const 3616 + i32.const 3392 + i32.const 3424 global.get $resolve-unary/a select local.tee $0 i32.store local.get $0 - i32.const 3584 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -2455,12 +2179,12 @@ local.get $0 i32.store local.get $0 - i32.const 3648 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -2478,12 +2202,12 @@ local.get $0 i32.store local.get $0 - i32.const 3520 + i32.const 3328 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -2501,12 +2225,12 @@ local.get $0 i32.store local.get $0 - i32.const 3552 + i32.const 3360 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 46 i32.const 1 call $~lib/builtins/abort @@ -2517,7 +2241,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4064 + i32.const 3872 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2547,18 +2271,18 @@ global.get $resolve-unary/foo i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3680 + i32.const 3488 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3680 + i32.const 3488 i32.store - i32.const 3680 - i32.const 3680 + i32.const 3488 + i32.const 3488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 91 i32.const 1 call $~lib/builtins/abort @@ -2568,18 +2292,18 @@ global.get $resolve-unary/foo i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3712 + i32.const 3520 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3712 + i32.const 3520 i32.store - i32.const 3712 - i32.const 3712 + i32.const 3520 + i32.const 3520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 96 i32.const 1 call $~lib/builtins/abort @@ -2600,7 +2324,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 101 i32.const 1 call $~lib/builtins/abort @@ -2621,7 +2345,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 106 i32.const 1 call $~lib/builtins/abort @@ -2631,18 +2355,18 @@ global.get $resolve-unary/foo i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3744 + i32.const 3552 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3744 + i32.const 3552 i32.store - i32.const 3744 - i32.const 3744 + i32.const 3552 + i32.const 3552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -2652,18 +2376,18 @@ global.get $resolve-unary/foo i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3776 + i32.const 3584 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3776 + i32.const 3584 i32.store - i32.const 3776 - i32.const 3776 + i32.const 3584 + i32.const 3584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 116 i32.const 1 call $~lib/builtins/abort @@ -2686,7 +2410,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 121 i32.const 1 call $~lib/builtins/abort @@ -2709,7 +2433,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 126 i32.const 1 call $~lib/builtins/abort @@ -2720,7 +2444,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4064 + i32.const 3872 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2750,18 +2474,18 @@ global.get $resolve-unary/bar i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3808 + i32.const 3616 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3808 + i32.const 3616 i32.store - i32.const 3808 - i32.const 3808 + i32.const 3616 + i32.const 3616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -2771,18 +2495,18 @@ global.get $resolve-unary/bar i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3840 + i32.const 3648 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3840 + i32.const 3648 i32.store - i32.const 3840 - i32.const 3840 + i32.const 3648 + i32.const 3648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 156 i32.const 1 call $~lib/builtins/abort @@ -2792,18 +2516,18 @@ global.get $resolve-unary/bar i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3872 + i32.const 3680 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3872 + i32.const 3680 i32.store - i32.const 3872 - i32.const 3872 + i32.const 3680 + i32.const 3680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -2813,24 +2537,24 @@ global.get $resolve-unary/bar i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 3712 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 3712 i32.store - i32.const 3904 - i32.const 3904 + i32.const 3712 + i32.const 3712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 3264 i32.const 166 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3932 + i32.const 3740 i32.load drop global.get $~lib/memory/__stack_pointer @@ -2839,8 +2563,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36864 - i32.const 36912 + i32.const 36672 + i32.const 36720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2852,11 +2576,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4064 + i32.const 3872 i32.lt_s if - i32.const 36864 - i32.const 36912 + i32.const 36672 + i32.const 36720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2916,11 +2640,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4064 + i32.const 3872 i32.lt_s if - i32.const 36864 - i32.const 36912 + i32.const 36672 + i32.const 36720 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/retain-i32.debug.wat b/tests/compiler/retain-i32.debug.wat index 69d5020383..e67768d16c 100644 --- a/tests/compiler/retain-i32.debug.wat +++ b/tests/compiler/retain-i32.debug.wat @@ -1,32 +1,10 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128)) (global $~lib/builtins/u8.MAX_VALUE i32 (i32.const 255)) (global $~lib/builtins/i16.MIN_VALUE i32 (i32.const -32768)) @@ -38,2668 +16,15 @@ (global $retain-i32/si (mut i32) (i32.const 0)) (global $retain-i32/ui (mut i32) (i32.const 0)) (global $retain-i32/ri (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $retain-i32/test (param $a i32) (param $b i32) local.get $a local.get $b @@ -2713,7 +38,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4 i32.const 3 call $~lib/builtins/abort @@ -2731,7 +56,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 5 i32.const 3 call $~lib/builtins/abort @@ -2749,7 +74,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -2767,7 +92,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 7 i32.const 3 call $~lib/builtins/abort @@ -2785,7 +110,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -2803,7 +128,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 9 i32.const 3 call $~lib/builtins/abort @@ -2825,7 +150,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -2845,7 +170,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 3 call $~lib/builtins/abort @@ -2865,7 +190,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 14 i32.const 3 call $~lib/builtins/abort @@ -2885,7 +210,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 15 i32.const 3 call $~lib/builtins/abort @@ -2905,7 +230,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -2925,7 +250,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 17 i32.const 3 call $~lib/builtins/abort @@ -2945,7 +270,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -2969,7 +294,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 19 i32.const 3 call $~lib/builtins/abort @@ -2986,23 +311,6 @@ ) (func $start:retain-i32 (local $i i32) - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 0 global.get $~lib/builtins/i8.MAX_VALUE call $retain-i32/test @@ -3135,7 +443,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 78 i32.const 1 call $~lib/builtins/abort @@ -3154,7 +462,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 81 i32.const 1 call $~lib/builtins/abort @@ -3171,7 +479,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 84 i32.const 1 call $~lib/builtins/abort @@ -3188,7 +496,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 87 i32.const 1 call $~lib/builtins/abort @@ -3205,7 +513,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 90 i32.const 1 call $~lib/builtins/abort @@ -3222,7 +530,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 93 i32.const 1 call $~lib/builtins/abort @@ -3239,7 +547,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 96 i32.const 1 call $~lib/builtins/abort @@ -3255,7 +563,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 99 i32.const 1 call $~lib/builtins/abort @@ -3271,7 +579,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 102 i32.const 1 call $~lib/builtins/abort @@ -3287,7 +595,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 105 i32.const 1 call $~lib/builtins/abort @@ -3303,7 +611,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 108 i32.const 1 call $~lib/builtins/abort @@ -3323,7 +631,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 113 i32.const 1 call $~lib/builtins/abort @@ -3343,7 +651,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 116 i32.const 1 call $~lib/builtins/abort @@ -3361,7 +669,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 119 i32.const 1 call $~lib/builtins/abort @@ -3379,7 +687,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 122 i32.const 1 call $~lib/builtins/abort @@ -3395,7 +703,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 125 i32.const 1 call $~lib/builtins/abort @@ -3411,7 +719,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 128 i32.const 1 call $~lib/builtins/abort @@ -3427,7 +735,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 131 i32.const 1 call $~lib/builtins/abort @@ -3448,92 +756,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3542,322 +774,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/retain-i32.release.wat b/tests/compiler/retain-i32.release.wat index cebd4cbf09..66ffaef6f3 100644 --- a/tests/compiler/retain-i32.release.wat +++ b/tests/compiler/retain-i32.release.wat @@ -1,80 +1,12 @@ (module (type $0 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1a\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1a\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s") (export "memory" (memory $0)) (start $~start) (func $~start (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace i32.const -128 local.set $0 loop $for-loop|0 diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index 94ab92c539..53eb818cf8 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -1,19 +1,19 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func)) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -25,53 +25,28 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 2480)) - (global $~lib/memory/__data_end i32 (i32.const 2504)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35272)) - (global $~lib/memory/__heap_base i32 (i32.const 35272)) + (global $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/memory/__data_end i32 (i32.const 536)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33304)) + (global $~lib/memory/__heap_base i32 (i32.const 33304)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $21 (i32.const 2480) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $1 (i32.const 60) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 512) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "test" (func $return-unreachable/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -255,7 +230,7 @@ if i32.const 320 i32.const 384 - i32.const 21 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -2275,422 +2250,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2825,20 +2384,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35296 - i32.const 35344 + i32.const 33328 + i32.const 33376 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2847,196 +2402,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -3103,9 +2489,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 - i32.const 70 + i32.const 32 + i32.const 80 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -3176,170 +2562,17 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) i32.const 320 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit i32.const 128 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - local.get $0 - call $~lib/rt/itcms/__visit ) (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -3406,6 +2639,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index d2890c5973..ba53254693 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -2,11 +2,12 @@ (type $0 (func)) (type $1 (func (param i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,44 +18,23 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36296)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34328)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) ",") - (data $20.1 (i32.const 3464) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $21 (i32.const 3504) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $1 (i32.const 1084) ",") + (data $1.1 (i32.const 1096) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\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 $3 (i32.const 1196) "<") + (data $3.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1324) "<") + (data $6.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1388) ",") + (data $7.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1468) "<") + (data $9.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1536) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t") (export "test" (func $return-unreachable/test)) (export "memory" (memory $0)) (start $~start) @@ -63,14 +43,10 @@ (local $1 i32) i32.const 1344 call $~lib/rt/itcms/__visit - i32.const 3424 + i32.const 1056 call $~lib/rt/itcms/__visit i32.const 1152 call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 i32.load offset=4 @@ -132,7 +108,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$134 + block $__inlined_func$~lib/rt/itcms/Object#unlink$122 local.get $0 i32.load offset=4 i32.const -4 @@ -144,7 +120,7 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36296 + i32.const 34328 i32.lt_u i32.and i32.eqz @@ -156,7 +132,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$134 + br $__inlined_func$~lib/rt/itcms/Object#unlink$122 end local.get $0 i32.load offset=8 @@ -193,13 +169,13 @@ i32.const 1 else local.get $1 - i32.const 3504 + i32.const 1536 i32.load i32.gt_u if i32.const 1344 i32.const 1408 - i32.const 21 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -207,7 +183,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3508 + i32.const 1540 i32.add i32.load i32.const 32 @@ -791,10 +767,10 @@ if unreachable end - i32.const 36304 + i32.const 34336 i32.const 0 i32.store - i32.const 37872 + i32.const 35904 i32.const 0 i32.store loop $for-loop|0 @@ -805,7 +781,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=4 @@ -823,7 +799,7 @@ i32.add i32.const 2 i32.shl - i32.const 36304 + i32.const 34336 i32.add i32.const 0 i32.store offset=96 @@ -841,14 +817,14 @@ br $for-loop|0 end end - i32.const 36304 - i32.const 37876 + i32.const 34336 + i32.const 35908 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36304 + i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -933,7 +909,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36296 + i32.const 34328 i32.lt_u if local.get $0 @@ -1029,7 +1005,7 @@ unreachable end local.get $0 - i32.const 36296 + i32.const 34328 i32.lt_u if local.get $0 @@ -1052,7 +1028,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36296 + i32.const 34328 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1260,7 +1236,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1277,7 +1253,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1552,204 +1528,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3528 - i32.lt_s - if - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -1814,7 +1592,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1826,7 +1604,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1906,8 +1684,8 @@ i32.store unreachable end - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1917,7 +1695,7 @@ memory.size i32.const 16 i32.shl - i32.const 36296 + i32.const 34328 i32.sub i32.const 1 i32.shr_u @@ -1947,205 +1725,40 @@ i32.const 1440 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$139 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$139 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36320 - i32.const 36368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -2176,11 +1789,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3528 + i32.const 1560 i32.lt_s if - i32.const 36320 - i32.const 36368 + i32.const 34352 + i32.const 34400 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/return.debug.wat b/tests/compiler/return.debug.wat index 3ede726c9a..f65db09b22 100644 --- a/tests/compiler/return.debug.wat +++ b/tests/compiler/return.debug.wat @@ -1,36 +1,14 @@ (module - (type $0 (func (param i32) (result i32))) + (type $0 (func)) (type $1 (func (param i32 i32))) - (type $2 (func)) + (type $2 (func (param i32 i32 i32 i32))) (type $3 (func (param i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/memory/__data_end i32 (i32.const 44)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32812)) (global $~lib/memory/__heap_base i32 (i32.const 32812)) - (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/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/__rtti_base (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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (table $0 2 2 funcref) @@ -51,14 +29,14 @@ global.set $~argumentsLength local.get $fn i32.load - call_indirect (type $2) + call_indirect (type $0) return end i32.const 0 global.set $~argumentsLength local.get $fn i32.load - call_indirect (type $2) + call_indirect (type $0) return ) (func $return/testVoidReturn (param $cond i32) @@ -73,2752 +51,61 @@ (func $~start call $start:return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33040 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33040 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 33040 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 33168 - i32.const 33232 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 33040 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 33040 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 32976 - i32.const 33312 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 32976 - i32.const 33040 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 33612 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 33612 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33612 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33612 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 34032 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 34032 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35088 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35088 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~stack_check global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if i32.const 32832 - i32.const 35248 + i32.const 32880 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $start:return - (local $0 i32) + (func $export:return/testVoidReturnFunction (param $0 i32) (param $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 - i32.const 1 - i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store local.get $0 + local.get $1 call $return/testVoidReturnFunction global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $start:return + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 0 i32.store - local.get $6 - call $~lib/string/String#get:length i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 + i32.const 32 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 32944 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 + local.get $0 + call $return/testVoidReturnFunction global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - return ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2827,380 +114,25 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32880 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 32912 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 33376 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 33376 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 35184 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 33408 - i32.const 33536 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 33600 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $export:return/testVoidReturnFunction (param $0 i32) (param $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 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $return/testVoidReturnFunction - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 33168 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32976 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 34032 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 35088 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28%29=>void>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/function/Function<%28%29=>void> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $invalid - end - return - 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/function/Function<%28%29=>void>~visit - return - end - unreachable - ) - (func $~lib/function/Function<%28%29=>void>#__visit (param $this i32) (param $cookie i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $4 i32.store - local.get $this - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28%29=>void>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/return.release.wat b/tests/compiler/return.release.wat index 9b3de97380..8211fdb606 100644 --- a/tests/compiler/return.release.wat +++ b/tests/compiler/return.release.wat @@ -1,20 +1,10 @@ (module (type $0 (func)) (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33836)) - (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/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") @@ -33,17 +23,7 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1068 - i32.lt_s - if - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -58,1879 +38,43 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - i32.const 34192 - call $~lib/rt/itcms/__visit - i32.const 34000 - call $~lib/rt/itcms/__visit - i32.const 35056 - call $~lib/rt/itcms/__visit - i32.const 36112 - call $~lib/rt/itcms/__visit - i32.const 4 - i32.load - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 34064 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - 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 - 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 34064 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$126 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 33836 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 34064 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$126 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 34064 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.load - i32.gt_u - if - i32.const 34192 - i32.const 34256 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.load offset=4 - i32.const 32 - i32.and - end - local.set $1 - i32.const 8 - i32.load - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $1 - select - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - i32.const 8 - local.get $0 - i32.store - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34336 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 34336 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 34336 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 34336 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34336 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 34336 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 34336 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 34336 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 34336 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 34336 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 34336 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 34336 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 33840 - i32.const 0 - i32.store - i32.const 35408 - 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 33840 - 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 33840 - 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 33840 - i32.const 35412 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 33840 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - i32.const 0 - 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 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 33836 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 - local.get $1 - global.set $~lib/rt/itcms/white - i32.const 4 - i32.load - 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 - 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 34064 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 33836 - 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 - local.tee $0 - i32.const 33836 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 34336 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - i32.const 4 - i32.const 0 - i32.store - i32.const 8 - i32.const 0 - i32.store - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 34336 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 34336 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 34000 - i32.const 34064 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$72 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$72 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 34000 - i32.const 34336 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 34336 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 34336 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 34336 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - i32.const 8 - i32.load - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.store offset=4 - 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 - i32.const 8 - local.get $1 - i32.store - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + (func $~stack_check global.get $~lib/memory/__stack_pointer i32.const 1068 i32.lt_s if - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$76 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 34624 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$76 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 34636 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 34636 - 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 34636 - 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 34636 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 1068 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 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 1068 - i32.lt_s - br_if $folding-inner0 + call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 + i32.const 33856 i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$131 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 33968 - local.set $0 - br $__inlined_func$~lib/string/String#concat$131 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end + i32.const 33904 + i32.store offset=4 + i32.const 33856 + i32.const 33904 + i32.const 1 + i32.const 1 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1068 - i32.lt_s - if - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 33904 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 33936 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 34400 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 34400 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 36208 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $export:return/testVoidReturnFunction (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 1068 - i32.lt_s - if - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -1942,60 +86,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/function/Function<%28%29=>void> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 1068 - i32.lt_s - if - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable - ) ) diff --git a/tests/compiler/rt/alloc-large-memory.debug.wat b/tests/compiler/rt/alloc-large-memory.debug.wat index 468dd26981..e79a1e2cbb 100644 --- a/tests/compiler/rt/alloc-large-memory.debug.wat +++ b/tests/compiler/rt/alloc-large-memory.debug.wat @@ -1,56 +1,21 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i64) (result i32))) + (type $6 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2404)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35172)) - (global $~lib/memory/__heap_base i32 (i32.const 35172)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 140)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32908)) + (global $~lib/memory/__heap_base i32 (i32.const 32908)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2384) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -60,415 +25,32 @@ local.get $flMap i32.store ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) local.get $this local.get $mmInfo i32.store ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) local.get $this - i32.load offset=8 + local.get $prev + i32.store offset=4 ) (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) local.get $this local.get $next i32.store offset=8 ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) local.get $this - local.get $prev - i32.store offset=4 + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 ) (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) local.get $this @@ -508,7 +90,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -528,7 +110,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -591,7 +173,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -744,7 +326,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -761,7 +343,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -850,7 +432,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -893,7 +475,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -911,7 +493,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -979,7 +561,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1031,823 +613,48 @@ i32.shl local.get $sl|22 i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 i32.shl i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1871,7 +678,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1917,7 +724,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1949,7 +756,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -2190,8 +997,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 96 + i32.const 32 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2293,7 +1100,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2364,7 +1171,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2521,7 +1328,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2636,7 +1443,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2656,7 +1463,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 32 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2694,23 +1501,6 @@ ) (func $start:rt/alloc-large-memory (local $i i32) - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace loop $while-continue|0 memory.size i32.const 128 @@ -2752,92 +1542,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35200 - i32.const 35248 + i32.const 32928 + i32.const 32976 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2846,322 +1560,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/rt/alloc-large-memory.release.wat b/tests/compiler/rt/alloc-large-memory.release.wat index 8f6f96f7fc..d2a2a7e578 100644 --- a/tests/compiler/rt/alloc-large-memory.release.wat +++ b/tests/compiler/rt/alloc-large-memory.release.wat @@ -1,259 +1,20 @@ (module - (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32 i32 i64))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32))) + (type $5 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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/memory/__stack_pointer (mut i32) (i32.const 36196)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33932)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3408) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\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") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$121 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36196 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$121 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3408 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3412 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -267,7 +28,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -281,7 +42,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -327,7 +88,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -410,7 +171,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -424,7 +185,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -485,7 +246,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -518,7 +279,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -533,7 +294,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -584,7 +345,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -646,602 +407,33 @@ i32.or i32.store offset=4 ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36196 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36196 - 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 - local.tee $0 - i32.const 36196 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1056 + i32.const 382 + i32.const 14 call $~lib/builtins/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$51 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$51 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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 - i32.const 2 - 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/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3428 - i32.lt_s - if - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$55 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$55 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 + 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 $3 if local.get $3 i32.const 4 @@ -1250,7 +442,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1277,7 +469,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1329,86 +521,6 @@ 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 36208 - i32.const 0 - i32.store - i32.const 37776 - 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 36208 - 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 36208 - 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 36208 - i32.const 37780 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36208 - global.set $~lib/rt/tlsf/ROOT - ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 @@ -1463,7 +575,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1515,7 +627,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1537,29 +649,112 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/memory/heap.alloc (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + memory.size + local.tee $2 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $2 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 33936 + i32.const 0 + i32.store + i32.const 35504 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $1 + i32.const 23 + i32.lt_u + if + local.get $1 + i32.const 2 + i32.shl + i32.const 33936 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + i32.const 16 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.const 33936 + i32.add + i32.const 0 + i32.store offset=96 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + i32.const 33936 + i32.const 35508 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 33936 + global.set $~lib/rt/tlsf/ROOT + end + global.get $~lib/rt/tlsf/ROOT + local.set $3 + local.get $0 i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1120 + i32.const 1056 i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable end + local.get $3 local.get $0 - local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1567,25 +762,25 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $0 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size local.tee $1 - local.get $3 + local.get $0 i32.const 256 i32.ge_u if (result i32) - local.get $3 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $0 i32.const 1 i32.const 27 - local.get $3 + local.get $0 i32.clz i32.sub i32.shl @@ -1593,13 +788,13 @@ i32.const 1 i32.sub else - local.get $3 + local.get $0 end else - local.get $3 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $1 i32.const 16 @@ -1632,7 +827,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $1 i32.const 16 i32.shl @@ -1641,21 +836,21 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $0 local.get $3 + local.get $0 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $3 + local.get $0 local.get $1 i32.load i32.const -4 @@ -1663,43 +858,43 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.set $4 - local.get $3 + local.set $2 + local.get $0 i32.const 4 i32.add i32.const 15 i32.and if i32.const 0 - i32.const 1488 + i32.const 1056 i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and - local.get $3 + local.get $0 i32.sub - local.tee $2 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $3 - local.get $4 + local.get $0 + local.get $2 i32.const 2 i32.and i32.or @@ -1707,21 +902,21 @@ local.get $1 i32.const 4 i32.add - local.get $3 + local.get $0 i32.add - local.tee $3 - local.get $2 + local.tee $0 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $0 local.get $3 + local.get $0 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store @@ -1740,56 +935,16 @@ i32.and i32.store end - local.get $1 ) (func $~start (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36196 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace loop $while-continue|0 memory.size i32.const 128 i32.ne if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 32768 - call $~lib/rt/tlsf/allocateBlock - drop + call $~lib/memory/heap.alloc br $while-continue|0 end end @@ -1798,15 +953,8 @@ i32.const 32763 i32.lt_s if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 65536 - call $~lib/rt/tlsf/allocateBlock - drop + call $~lib/memory/heap.alloc local.get $0 i32.const 1 i32.add @@ -1815,228 +963,39 @@ end end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3428 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3428 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$126 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$126 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3428 + i32.const 1164 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 33952 + i32.const 34000 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index 89095f0a19..da7604446c 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -2,21 +2,16 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $rt/finalize/expect (mut i32) (i32.const 0)) (global $rt/finalize/ran (mut i32) (i32.const 0)) - (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 $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -25,469 +20,33 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2456)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35224)) - (global $~lib/memory/__heap_base i32 (i32.const 35224)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 488)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33256)) + (global $~lib/memory/__heap_base i32 (i32.const 33256)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00r\00t\00/\00f\00i\00n\00a\00l\00i\00z\00e\00.\00t\00s\00") - (data $19 (i32.const 2364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2432) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00r\00t\00/\00f\00i\00n\00a\00l\00i\00z\00e\00.\00t\00s\00") + (data $8 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 464) "\05\00\00\00 \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 "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -552,7 +111,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -622,7 +181,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -639,7 +198,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -669,9 +228,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -738,7 +297,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -831,7 +390,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -906,7 +465,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -926,7 +485,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -989,7 +548,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1142,7 +701,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1159,7 +718,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1248,7 +807,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1291,7 +850,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1309,7 +868,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1377,7 +936,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1494,7 +1053,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1540,7 +1099,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1572,7 +1131,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1816,7 +1375,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2040,7 +1599,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2151,8 +1710,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2384 + i32.const 32 + i32.const 416 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2254,7 +1813,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2325,7 +1884,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2482,7 +2041,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2597,7 +2156,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2617,7 +2176,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2665,8 +2224,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2766,13 +2325,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -2783,7 +2342,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -2804,20 +2363,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 33280 + i32.const 33328 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2826,196 +2381,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $rt/finalize/Ref#constructor (param $this i32) (result i32) (local $1 i32) @@ -3055,153 +2441,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3232,16 +2471,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index c5ecc08187..fc89593116 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $rt/finalize/expect (mut i32) (i32.const 0)) (global $rt/finalize/ran (mut i32) (i32.const 0)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -19,253 +19,30 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36248)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34280)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) ",") - (data $18.1 (i32.const 3352) "\02\00\00\00\1c\00\00\00r\00t\00/\00f\00i\00n\00a\00l\00i\00z\00e\00.\00t\00s") - (data $19 (i32.const 3388) "<") - (data $19.1 (i32.const 3400) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $20 (i32.const 3456) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) ",") + (data $7.1 (i32.const 1384) "\02\00\00\00\1c\00\00\00r\00t\00/\00f\00i\00n\00a\00l\00i\00z\00e\00.\00t\00s") + (data $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1488) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3480 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -286,7 +63,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -334,7 +111,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -343,7 +120,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$125 + block $__inlined_func$~lib/rt/itcms/Object#unlink$113 local.get $1 i32.load offset=4 i32.const -4 @@ -355,19 +132,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36248 + i32.const 34280 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + br $__inlined_func$~lib/rt/itcms/Object#unlink$113 end local.get $1 i32.load offset=8 @@ -375,7 +152,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -404,13 +181,13 @@ i32.const 1 else local.get $0 - i32.const 3456 + i32.const 1488 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -418,7 +195,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3460 + i32.const 1492 i32.add i32.load i32.const 32 @@ -470,7 +247,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -484,7 +261,7 @@ i32.lt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -530,7 +307,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -613,7 +390,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -627,7 +404,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -688,7 +465,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -721,7 +498,7 @@ i32.lt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -736,7 +513,7 @@ i32.ne if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -787,7 +564,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -859,7 +636,7 @@ i64.lt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -884,7 +661,7 @@ i32.gt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -911,7 +688,7 @@ i32.gt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -983,10 +760,10 @@ if unreachable end - i32.const 36256 + i32.const 34288 i32.const 0 i32.store - i32.const 37824 + i32.const 35856 i32.const 0 i32.store loop $for-loop|0 @@ -997,7 +774,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36256 + i32.const 34288 i32.add i32.const 0 i32.store offset=4 @@ -1015,7 +792,7 @@ i32.add i32.const 2 i32.shl - i32.const 36256 + i32.const 34288 i32.add i32.const 0 i32.store offset=96 @@ -1033,14 +810,14 @@ br $for-loop|0 end end - i32.const 36256 - i32.const 37828 + i32.const 34288 + i32.const 35860 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36256 + i32.const 34288 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1125,7 +902,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36248 + i32.const 34280 i32.lt_u if local.get $0 @@ -1214,14 +991,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36248 + i32.const 34280 i32.lt_u if local.get $0 @@ -1247,7 +1024,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -1259,7 +1036,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36248 + i32.const 34280 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1288,7 +1065,7 @@ end if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1318,85 +1095,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3408 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1404,11 +1114,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1424,7 +1130,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1446,35 +1152,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$72 + block $__inlined_func$~lib/rt/itcms/interrupt$70 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1484,9 +1178,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$72 + br $__inlined_func$~lib/rt/itcms/interrupt$70 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1509,86 +1203,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3408 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1604,8 +1243,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1613,136 +1252,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3408 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1750,14 +1372,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) @@ -1771,50 +1393,49 @@ memory.size i32.const 16 i32.shl - i32.const 36248 + i32.const 34280 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $__inlined_func$start:rt/finalize + block $__inlined_func$start:rt/finalize$1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -1828,7 +1449,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1839,7 +1460,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1893,221 +1513,56 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 13 i32.const 1 call $~lib/builtins/abort unreachable end - br $__inlined_func$start:rt/finalize + br $__inlined_func$start:rt/finalize$1 end - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$130 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$130 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s if - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/rt/flags.debug.wat b/tests/compiler/rt/flags.debug.wat index 996570d0f3..4221de636e 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -1,6918 +1,1150 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $rt/flags/VALUE_ALIGN_REF i32 (i32.const 256)) (global $rt/flags/KEY_ALIGN_REF i32 (i32.const 131072)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2648)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35416)) - (global $~lib/memory/__heap_base i32 (i32.const 35416)) + (global $~lib/rt/__rtti_base i32 (i32.const 176)) + (global $~lib/memory/__data_end i32 (i32.const 392)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33160)) + (global $~lib/memory/__heap_base i32 (i32.const 33160)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 428) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 556) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 652) "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 $14 (i32.const 1052) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 2108) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 2268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "5\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00B\08\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\t\00\00\02\01\00\00\02\n\00\00\02\02\00\00\02\19\00\00\02\1a\00\00\02\04\00\00 \00\00\00\02A\00\00\02a\00\00H\08\00\00H\00\00\00\88\08\00\00\88\00\00\00\08\t\00\00\08\01\00\00\08\n\00\00\08\02\00\00\08\19\00\00\08\1a\00\00\08\04\00\00\08A\00\00\08a\00\00P\08\08\00\90\08\14\00\10\t\12\00\10\n\11\00\10\84\10\00P\08\82\00P\08\c2\00\10\c1\10\00\10\e1\10\00\10a\c2\00\10\t2\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "5\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00B\08\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\t\00\00\02\01\00\00\02\n\00\00\02\02\00\00\02\19\00\00\02\1a\00\00\02\04\00\00 \00\00\00\02A\00\00\02a\00\00H\08\00\00H\00\00\00\88\08\00\00\88\00\00\00\08\t\00\00\08\01\00\00\08\n\00\00\08\02\00\00\08\19\00\00\08\1a\00\00\08\04\00\00\08A\00\00\08a\00\00P\08\08\00\90\08\14\00\10\t\12\00\10\n\11\00\10\84\10\00P\08\82\00P\08\c2\00\10\c1\10\00\10\e1\10\00\10a\c2\00\10\t2\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor + i32.load ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 + i32.const 32 + i32.const 96 + i32.const 22 + i32.const 28 call $~lib/builtins/abort unreachable end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags return ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and + (func $rt/flags/test<~lib/typedarray/Int8Array> (param $flags i32) + i32.const 4 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 268 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u + ) + (func $rt/flags/test<~lib/typedarray/Uint8Array> (param $flags i32) + i32.const 5 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 270 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end + ) + (func $rt/flags/test<~lib/typedarray/Uint8ClampedArray> (param $flags i32) + i32.const 6 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 284 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end + ) + (func $rt/flags/test<~lib/typedarray/Int16Array> (param $flags i32) + i32.const 7 + call $~lib/rt/__typeinfo + local.get $flags i32.eq + i32.eqz if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap - end - end + i32.const 0 + i32.const 144 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable end ) - (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block + (func $rt/flags/test<~lib/typedarray/Uint16Array> (param $flags i32) + i32.const 8 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 201 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and + ) + (func $rt/flags/test<~lib/typedarray/Int32Array> (param $flags i32) + i32.const 9 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 203 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and + ) + (func $rt/flags/test<~lib/typedarray/Uint32Array> (param $flags i32) + i32.const 10 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq + i32.eqz if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo + i32.const 0 + i32.const 144 + i32.const 6 i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo + call $~lib/builtins/abort + unreachable end - local.get $blockInfo - i32.const 2 - i32.and + ) + (func $rt/flags/test<~lib/typedarray/Int64Array> (param $flags i32) + i32.const 11 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq + i32.eqz if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 352 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo + i32.const 0 + i32.const 144 + i32.const 6 i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo + call $~lib/builtins/abort + unreachable end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size + ) + (func $rt/flags/test<~lib/typedarray/Uint64Array> (param $flags i32) i32.const 12 - i32.ge_u + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 233 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right + ) + (func $rt/flags/test<~lib/typedarray/Float32Array> (param $flags i32) + i32.const 13 + call $~lib/rt/__typeinfo + local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 234 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end + ) + (func $rt/flags/test<~lib/typedarray/Float64Array> (param $flags i32) + i32.const 14 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 251 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 15 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 382 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 352 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 352 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - i32.const 1572 - i32.add - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and + (func $rt/flags/test<~lib/array/Array> (param $flags i32) i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + call $~lib/rt/__typeinfo + local.get $flags + i32.eq + i32.eqz if + i32.const 0 + i32.const 144 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort unreachable end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 17 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 562 + i32.const 144 + i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - return - end - global.get $~lib/rt/tlsf/ROOT + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 18 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free + i32.const 144 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable end ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 19 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq + i32.eqz + if i32.const 0 - global.set $~lib/rt/itcms/state - br $break|0 + i32.const 144 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 0 - return ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 20 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq + i32.eqz + if 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 + i32.const 144 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable end - return ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 21 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq + i32.eqz if - i32.const 128 - i32.const 352 - i32.const 461 - i32.const 29 + i32.const 0 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 22 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq + i32.eqz if i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl + i32.const 144 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 1 - drop - local.get $fl + ) + (func $rt/flags/test<~lib/array/Array> (param $flags i32) i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 334 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap + ) + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 24 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 352 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head + i32.const 144 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $head - return ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 25 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 361 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 352 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 27 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if i32.const 0 - i32.const 352 - i32.const 501 - i32.const 14 + i32.const 144 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return ) - (func $~lib/rt/tlsf/__alloc (param $size i32) (result i32) - global.get $~lib/rt/tlsf/ROOT + (func $rt/flags/test<~lib/array/Array> (param $flags i32) + i32.const 28 + call $~lib/rt/__typeinfo + local.get $flags + i32.eq i32.eqz if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 652 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 652 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 652 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 652 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1072 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1072 - local.get $num - i32.wrap_i64 + i32.const 0 + i32.const 144 i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2128 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2128 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 2288 - i32.const 2352 - i32.const 21 - i32.const 28 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return ) - (func $rt/flags/test<~lib/typedarray/Int8Array> (param $flags i32) - i32.const 4 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 29 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Uint8Array> (param $flags i32) - i32.const 5 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 30 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Uint8ClampedArray> (param $flags i32) - i32.const 6 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 31 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Int16Array> (param $flags i32) - i32.const 7 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 32 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Uint16Array> (param $flags i32) - i32.const 8 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 33 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Int32Array> (param $flags i32) - i32.const 9 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 34 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Uint32Array> (param $flags i32) - i32.const 10 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 35 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Int64Array> (param $flags i32) - i32.const 11 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 36 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Uint64Array> (param $flags i32) - i32.const 12 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 37 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Float32Array> (param $flags i32) - i32.const 13 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 38 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/typedarray/Float64Array> (param $flags i32) - i32.const 14 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 39 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 15 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 40 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 16 + (func $rt/flags/test<~lib/set/Set> (param $flags i32) + i32.const 41 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 17 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 42 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 18 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 43 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 19 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 44 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 20 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 45 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 21 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 46 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 22 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 47 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 23 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 48 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 24 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 49 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 25 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 50 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 27 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 51 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/array/Array> (param $flags i32) - i32.const 28 + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) + i32.const 52 call $~lib/rt/__typeinfo local.get $flags i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 144 i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 29 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 30 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 31 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 32 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 33 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 34 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 35 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 36 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 37 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 38 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 39 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 40 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (param $flags i32) - i32.const 41 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 42 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 43 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 44 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 45 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 46 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 47 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 48 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 49 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 50 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 51 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) - i32.const 52 - call $~lib/rt/__typeinfo - local.get $flags - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $start:rt/flags - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 1 - i32.const 64 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/typedarray/Int8Array> - i32.const 1 - i32.const 64 - i32.or - call $rt/flags/test<~lib/typedarray/Uint8Array> - i32.const 1 - i32.const 64 - i32.or - call $rt/flags/test<~lib/typedarray/Uint8ClampedArray> - i32.const 1 - i32.const 128 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/typedarray/Int16Array> - i32.const 1 - i32.const 128 - i32.or - call $rt/flags/test<~lib/typedarray/Uint16Array> - i32.const 1 - i32.const 256 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/typedarray/Int32Array> - i32.const 1 - i32.const 256 - i32.or - call $rt/flags/test<~lib/typedarray/Uint32Array> - i32.const 1 - i32.const 512 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/typedarray/Int64Array> - i32.const 1 - i32.const 512 - i32.or - call $rt/flags/test<~lib/typedarray/Uint64Array> - i32.const 1 - i32.const 256 - i32.or - i32.const 2048 - i32.or - i32.const 4096 - i32.or - call $rt/flags/test<~lib/typedarray/Float32Array> - i32.const 1 - i32.const 512 - i32.or - i32.const 2048 - i32.or - i32.const 4096 - i32.or - call $rt/flags/test<~lib/typedarray/Float64Array> - i32.const 2 - i32.const 64 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 64 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 128 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 128 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 256 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 256 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 512 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 512 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 256 - i32.or - i32.const 2048 - i32.or - i32.const 4096 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 512 - i32.or - i32.const 2048 - i32.or - i32.const 4096 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 1024 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - i32.const 16384 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 2 - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - i32.const 8192 - i32.or - i32.const 16384 - i32.or - call $rt/flags/test<~lib/array/Array> - i32.const 8 - i32.const 64 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 64 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 128 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 128 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 256 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 256 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 512 - i32.or - i32.const 2048 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 512 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 256 - i32.or - i32.const 2048 - i32.or - i32.const 4096 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 512 - i32.or - i32.const 2048 - i32.or - i32.const 4096 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - i32.const 1024 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - i32.const 16384 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 8 - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - i32.const 8192 - i32.or - i32.const 16384 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 16 - i32.const 524288 - i32.or - i32.const 64 - i32.or - i32.const 2048 - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - i32.const 262144 - i32.or - i32.const 1048576 - i32.or - i32.const 128 - i32.or - i32.const 2048 - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - i32.const 131072 - i32.or - i32.const 1048576 - i32.or - i32.const 256 - i32.or - i32.const 2048 - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - i32.const 65536 - i32.or - i32.const 1048576 - i32.or - i32.const 512 - i32.or - i32.const 2048 - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - i32.const 32768 - i32.or - i32.const 1048576 - i32.or - i32.const 1024 - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - global.get $rt/flags/KEY_ALIGN_REF - i32.or - i32.const 8388608 - i32.or - i32.const 64 - i32.or - i32.const 2048 - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - global.get $rt/flags/KEY_ALIGN_REF - i32.or - i32.const 4194304 - i32.or - i32.const 8388608 - i32.or - i32.const 64 - i32.or - i32.const 2048 - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - i32.const 32768 - i32.or - i32.const 1048576 - i32.or - i32.const 16384 - i32.or - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - i32.const 32768 - i32.or - i32.const 1048576 - i32.or - i32.const 8192 - i32.or - i32.const 16384 - i32.or - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - i32.const 4194304 - i32.or - i32.const 8388608 - i32.or - global.get $rt/flags/KEY_ALIGN_REF - i32.or - i32.const 8192 - i32.or - i32.const 16384 - i32.or - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - call $"rt/flags/test<~lib/map/Map>" - i32.const 16 - i32.const 131072 - i32.or - i32.const 1048576 - i32.or - i32.const 2097152 - i32.or - i32.const 256 - i32.or - i32.const 2048 - i32.or - call $"rt/flags/test<~lib/map/Map>" - ) - (func $~start - call $start:rt/flags - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 35440 - i32.const 35488 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 416 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 416 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2224 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 448 - i32.const 576 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 640 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 2288 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1072 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2128 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/typedarray/Int8Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Uint8ClampedArray~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Int16Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Uint16Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Int32Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Uint32Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Int64Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Uint64Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Float32Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/typedarray/Float64Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/array/Array#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/array/Array#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set#get:entriesOffset (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/set/SetEntry#get:taggedNext (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/set/SetEntry#get:key (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/set/Set#get:buckets (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set#get:entries (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/set/Set#get:entriesOffset (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/set/SetEntry#get:taggedNext (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/set/SetEntry#get:key (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $"~lib/map/Map#__visit" - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/array/Array - block $~lib/array/Array - block $rt/flags/Ref - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/typedarray/Float64Array - block $~lib/typedarray/Float32Array - block $~lib/typedarray/Uint64Array - block $~lib/typedarray/Int64Array - block $~lib/typedarray/Uint32Array - block $~lib/typedarray/Int32Array - block $~lib/typedarray/Uint16Array - block $~lib/typedarray/Int16Array - block $~lib/typedarray/Uint8ClampedArray - block $~lib/typedarray/Uint8Array - block $~lib/typedarray/Int8Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Int8Array $~lib/typedarray/Uint8Array $~lib/typedarray/Uint8ClampedArray $~lib/typedarray/Int16Array $~lib/typedarray/Uint16Array $~lib/typedarray/Int32Array $~lib/typedarray/Uint32Array $~lib/typedarray/Int64Array $~lib/typedarray/Uint64Array $~lib/typedarray/Float32Array $~lib/typedarray/Float64Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $rt/flags/Ref $~lib/array/Array $~lib/array/Array $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $invalid - end - return - 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/Int8Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Int16Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint16Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Int32Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint32Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Int64Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint64Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Float32Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Float64Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - local.get $0 - local.get $1 - call $"~lib/map/Map~visit" - return - end - unreachable - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $cur i32) - (local $end i32) - (local $val i32) - (local $5 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 $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:dataStart - local.set $cur - local.get $cur - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length_ - i32.const 2 - i32.shl - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - i32.load - local.set $val - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $cur i32) - (local $end i32) - (local $val i32) - (local $5 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 $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:dataStart - local.set $cur - local.get $cur - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length_ - i32.const 2 - i32.shl - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - i32.load - local.set $val - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries i32) - (local $cur i32) - (local $end i32) - (local $entry i32) - (local $val 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 $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 1 - drop - local.get $entries - local.set $cur - local.get $cur - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/set/Set#get:entriesOffset - block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.0 - end - i32.mul - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - local.set $entry - local.get $entry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz - if - local.get $entry - call $~lib/set/SetEntry#get:key - local.set $val - i32.const 0 - drop - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.1 - end - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#__visit (param $this i32) (param $cookie i32) - (local $entries i32) - (local $cur i32) - (local $end i32) - (local $entry i32) - (local $val 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 $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/set/Set#get:buckets - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/set/Set#get:entries - local.set $entries - i32.const 1 - drop - local.get $entries - local.set $cur - local.get $cur - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/set/Set#get:entriesOffset - block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.0 - end - i32.mul - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - local.set $entry - local.get $entry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz - if - local.get $entry - call $~lib/set/SetEntry#get:key - local.set $val - i32.const 1 - drop - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - end - local.get $cur - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.1 - end - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $cur i32) - (local $end i32) - (local $entry i32) - (local $val 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 $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:entries" - local.set $entries + (func $start:rt/flags i32.const 1 - drop - local.get $entries - local.set $cur - local.get $cur - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - i32.const 1 - drop - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.set $val - i32.const 0 - drop - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - i32.const 0 - drop - end - local.get $cur - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" - end - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $cur i32) - (local $end i32) - (local $entry i32) - (local $val 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 $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:entries" - local.set $entries + i32.const 64 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/typedarray/Int8Array> i32.const 1 - drop - local.get $entries - local.set $cur - local.get $cur - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - i32.const 1 - drop - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.set $val - i32.const 1 - drop - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - i32.const 0 - drop - end - local.get $cur - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" - end - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 64 + i32.or + call $rt/flags/test<~lib/typedarray/Uint8Array> + i32.const 1 + i32.const 64 + i32.or + call $rt/flags/test<~lib/typedarray/Uint8ClampedArray> + i32.const 1 + i32.const 128 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/typedarray/Int16Array> + i32.const 1 + i32.const 128 + i32.or + call $rt/flags/test<~lib/typedarray/Uint16Array> + i32.const 1 + i32.const 256 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/typedarray/Int32Array> + i32.const 1 + i32.const 256 + i32.or + call $rt/flags/test<~lib/typedarray/Uint32Array> + i32.const 1 + i32.const 512 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/typedarray/Int64Array> + i32.const 1 + i32.const 512 + i32.or + call $rt/flags/test<~lib/typedarray/Uint64Array> + i32.const 1 + i32.const 256 + i32.or + i32.const 2048 + i32.or + i32.const 4096 + i32.or + call $rt/flags/test<~lib/typedarray/Float32Array> + i32.const 1 + i32.const 512 + i32.or + i32.const 2048 + i32.or + i32.const 4096 + i32.or + call $rt/flags/test<~lib/typedarray/Float64Array> + i32.const 2 + i32.const 64 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 64 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 128 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 128 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 256 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 256 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 512 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 512 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 256 + i32.or + i32.const 2048 + i32.or + i32.const 4096 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 512 + i32.or + i32.const 2048 + i32.or + i32.const 4096 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + i32.const 1024 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + i32.const 16384 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 2 + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + i32.const 8192 + i32.or + i32.const 16384 + i32.or + call $rt/flags/test<~lib/array/Array> + i32.const 8 + i32.const 64 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 64 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 128 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 128 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 256 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 256 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 512 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 512 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 256 + i32.or + i32.const 2048 + i32.or + i32.const 4096 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 512 + i32.or + i32.const 2048 + i32.or + i32.const 4096 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 1024 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + i32.const 16384 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + i32.const 8192 + i32.or + i32.const 16384 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 16 + i32.const 524288 + i32.or + i32.const 64 + i32.or + i32.const 2048 + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + i32.const 262144 + i32.or + i32.const 1048576 + i32.or + i32.const 128 + i32.or + i32.const 2048 + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + i32.const 131072 + i32.or + i32.const 1048576 + i32.or + i32.const 256 + i32.or + i32.const 2048 + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + i32.const 65536 + i32.or + i32.const 1048576 + i32.or + i32.const 512 + i32.or + i32.const 2048 + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + i32.const 32768 + i32.or + i32.const 1048576 + i32.or + i32.const 1024 + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + global.get $rt/flags/KEY_ALIGN_REF + i32.or + i32.const 8388608 + i32.or + i32.const 64 + i32.or + i32.const 2048 + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + global.get $rt/flags/KEY_ALIGN_REF + i32.or + i32.const 4194304 + i32.or + i32.const 8388608 + i32.or + i32.const 64 + i32.or + i32.const 2048 + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + i32.const 32768 + i32.or + i32.const 1048576 + i32.or + i32.const 16384 + i32.or + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + i32.const 32768 + i32.or + i32.const 1048576 + i32.or + i32.const 8192 + i32.or + i32.const 16384 + i32.or + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + i32.const 4194304 + i32.or + i32.const 8388608 + i32.or + global.get $rt/flags/KEY_ALIGN_REF + i32.or + i32.const 8192 + i32.or + i32.const 16384 + i32.or + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + call $"rt/flags/test<~lib/map/Map>" + i32.const 16 + i32.const 131072 + i32.or + i32.const 1048576 + i32.or + i32.const 2097152 + i32.or + i32.const 256 + i32.or + i32.const 2048 + i32.or + call $"rt/flags/test<~lib/map/Map>" ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $cur i32) - (local $end i32) - (local $entry i32) - (local $val 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 $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 1 - drop - local.get $entries - local.set $cur - local.get $cur - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - drop - i32.const 1 - drop - local.get $entry - call $"~lib/map/MapEntry#get:value" - local.set $val - i32.const 0 - drop - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" - end - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + (func $~start + call $start:rt/flags ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $cur i32) - (local $end i32) - (local $entry i32) - (local $val 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 $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 1 - drop - local.get $entries - local.set $cur - local.get $cur - local.get $this - local.set $7 + (func $~stack_check global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - drop - i32.const 1 - drop - local.get $entry - call $"~lib/map/MapEntry#get:value" - local.set $val - i32.const 1 - drop - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - end - local.get $cur - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" - end - i32.add - local.set $cur - br $while-continue|0 - end + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33184 + i32.const 33232 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries i32) - (local $cur i32) - (local $end i32) - (local $entry i32) - (local $val i32) - (local $val|7 i32) - (local $8 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + 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.store - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 1 drop - local.get $entries - local.set $cur - local.get $cur - local.get $this - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $"~lib/map/Map#get:entriesOffset" - block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.0" - end - i32.mul - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - i32.const 1 - drop - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.set $val - i32.const 1 - drop - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - i32.const 1 - drop - local.get $entry - call $"~lib/map/MapEntry#get:value" - local.set $val|7 - i32.const 1 - drop - local.get $val|7 - if - local.get $val|7 - local.get $cookie - call $~lib/rt/itcms/__visit - end - end - local.get $cur - block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.1" - end - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) - (local $entries 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 $this - local.set $3 + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 - call $"~lib/map/Map#get:buckets" - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $this - local.set $3 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $"~lib/map/Map#get:entries" - local.set $entries - i32.const 0 - drop - local.get $entries - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/rt/flags.release.wat b/tests/compiler/rt/flags.release.wat index a066a4205e..e0bf5d19e2 100644 --- a/tests/compiler/rt/flags.release.wat +++ b/tests/compiler/rt/flags.release.wat @@ -1,1738 +1,28 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) (type $2 (func (param i32) (result i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36440)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34184)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $9 (i32.const 1420) "\1c") - (data $9.1 (i32.const 1432) "\02\00\00\00\02\00\00\00:") - (data $10 (i32.const 1452) "|") - (data $10.1 (i32.const 1464) "\02\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 $11 (i32.const 1580) "<") - (data $11.1 (i32.const 1592) "\02\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 $12 (i32.const 1644) "\1c") - (data $12.1 (i32.const 1656) "\02\00\00\00\02\00\00\000") - (data $13 (i32.const 1676) "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 $14 (i32.const 2076) "\1c\04") - (data $14.1 (i32.const 2088) "\02\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 $15 (i32.const 3132) "\\") - (data $15.1 (i32.const 3144) "\02\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 $16 (i32.const 3228) "<") - (data $16.1 (i32.const 3240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $17 (i32.const 3292) "<") - (data $17.1 (i32.const 3304) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $18 (i32.const 3356) ",") - (data $18.1 (i32.const 3368) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s") - (data $20 (i32.const 3456) "5\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00B\08\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\t\00\00\02\01\00\00\02\n\00\00\02\02\00\00\02\19\00\00\02\1a\00\00\02\04\00\00 \00\00\00\02A\00\00\02a\00\00H\08\00\00H\00\00\00\88\08\00\00\88\00\00\00\08\t\00\00\08\01\00\00\08\n\00\00\08\02\00\00\08\19\00\00\08\1a\00\00\08\04\00\00\08A\00\00\08a\00\00P\08\08\00\90\08\14\00\10\t\12\00\10\n\11\00\10\84\10\00P\08\82\00P\08\c2\00\10\c1\10\00\10\e1\10\00\10a\c2\00\10\t2") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $1 (i32.const 1100) ",") + (data $1.1 (i32.const 1112) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $2 (i32.const 1148) ",") + (data $2.1 (i32.const 1160) "\02\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s") + (data $3 (i32.const 1200) "5\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00B\08\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\t\00\00\02\01\00\00\02\n\00\00\02\02\00\00\02\19\00\00\02\1a\00\00\02\04\00\00 \00\00\00\02A\00\00\02a\00\00H\08\00\00H\00\00\00\88\08\00\00\88\00\00\00\08\t\00\00\08\01\00\00\08\n\00\00\08\02\00\00\08\19\00\00\08\1a\00\00\08\04\00\00\08A\00\00\08a\00\00P\08\08\00\90\08\14\00\10\t\12\00\10\n\11\00\10\84\10\00P\08\82\00P\08\c2\00\10\c1\10\00\10\e1\10\00\10a\c2\00\10\t2") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 3312 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2096 - call $~lib/rt/itcms/__visit - i32.const 3152 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - 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 - 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 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$260 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 36440 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$260 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - call $~lib/rt/__typeinfo - 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 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1376 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1376 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1376 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1376 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1376 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1376 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1376 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1376 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1376 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1376 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1376 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1376 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36448 - i32.const 0 - i32.store - i32.const 38016 - 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 36448 - 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 36448 - 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 36448 - i32.const 38020 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36448 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36440 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36440 - 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 - local.tee $0 - i32.const 36440 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1376 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1376 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1376 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$69 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1376 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1376 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1376 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1376 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3672 - i32.lt_s - if - i32.const 36464 - i32.const 36512 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$73 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1664 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$73 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1676 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1676 - 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 1676 - 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 1676 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/__typeinfo (param $0 i32) (result i32) local.get $0 - i32.const 3456 + i32.const 1200 i32.load i32.gt_u if - i32.const 3312 - i32.const 3376 - i32.const 21 + i32.const 1056 + i32.const 1120 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -1740,43 +30,11 @@ local.get $0 i32.const 2 i32.shl - i32.const 3460 + i32.const 1204 i32.add i32.load ) (func $start:rt/flags - memory.size - i32.const 16 - i32.shl - i32.const 36440 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/fromSpace block $folding-inner0 i32.const 4 call $~lib/rt/__typeinfo @@ -2021,7 +279,7 @@ return end i32.const 0 - i32.const 3424 + i32.const 1168 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -2030,820 +288,39 @@ (func $~start call $start:rt/flags ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$264 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$264 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36464 - i32.const 36512 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3672 - i32.lt_s - if - i32.const 36464 - i32.const 36512 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1440 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1440 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3248 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array~visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3672 + i32.const 1416 i32.lt_s if - i32.const 36464 - i32.const 36512 + i32.const 34208 + i32.const 34256 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 + i32.store offset=4 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 $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner5 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $invalid - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $"~lib/map/Map" - block $~lib/set/Set - block $~lib/set/Set - block $~lib/array/Array - block $~lib/array/Array - block $rt/flags/Ref - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $rt/flags/Ref $~lib/array/Array $~lib/array/Array $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $~lib/set/Set $~lib/set/Set $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $folding-inner3 $invalid - end - return - end - return - end - return - end - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - 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 3672 - i32.lt_s - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $1 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|0 - end - end - br $folding-inner4 - end - 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 3672 - i32.lt_s - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $0 - loop $while-continue|01 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $1 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - end - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|01 - end - end - br $folding-inner4 - end - 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 3672 - i32.lt_s - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $0 - loop $while-continue|03 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $1 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 12 - i32.add - local.set $1 - br $while-continue|03 - end - end - br $folding-inner4 - end - 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 3672 - i32.lt_s - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $0 - loop $while-continue|05 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $1 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - end - local.get $1 - i32.const 12 - i32.add - local.set $1 - br $while-continue|05 - end - end - br $folding-inner4 - end - 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 3672 - i32.lt_s - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $0 - loop $while-continue|07 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $1 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load offset=4 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 12 - i32.add - local.set $1 - br $while-continue|07 - end - end - br $folding-inner4 - end - 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 3672 - i32.lt_s - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $0 - loop $while-continue|09 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $1 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load offset=4 - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - end - local.get $1 - i32.const 12 - i32.add - local.set $1 - br $while-continue|09 - end - end - br $folding-inner4 - end - 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 3672 - i32.lt_s - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.tee $2 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $1 - loop $while-continue|011 - local.get $0 - local.get $1 - 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 $~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=4 - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - end - local.get $0 - i32.const 12 - i32.add - local.set $0 - br $while-continue|011 - end - end - br $folding-inner4 - end - unreachable - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 3672 - i32.lt_s - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - 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 3672 - i32.lt_s - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 36464 - i32.const 36512 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/rt/ids.debug.wat b/tests/compiler/rt/ids.debug.wat index b663e8fa45..369759e11b 100644 --- a/tests/compiler/rt/ids.debug.wat +++ b/tests/compiler/rt/ids.debug.wat @@ -3,6 +3,7 @@ (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/memory/__data_end i32 (i32.const 8)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32776)) (global $~lib/memory/__heap_base i32 (i32.const 32776)) diff --git a/tests/compiler/rt/issue-2719.debug.wat b/tests/compiler/rt/issue-2719.debug.wat index 7ed8572092..9337a6a343 100644 --- a/tests/compiler/rt/issue-2719.debug.wat +++ b/tests/compiler/rt/issue-2719.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,468 +18,32 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/memory/__data_end i32 (i32.const 2472)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35240)) - (global $~lib/memory/__heap_base i32 (i32.const 35240)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 504)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33272)) + (global $~lib/memory/__heap_base i32 (i32.const 33272)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00r\00t\00/\00i\00s\00s\00u\00e\00-\002\007\001\009\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2448) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00r\00t\00/\00i\00s\00s\00u\00e\00-\002\007\001\009\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 480) "\05\00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -549,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -619,7 +178,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -636,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -666,9 +225,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -735,7 +294,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -887,7 +446,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -907,7 +466,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -970,7 +529,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1123,7 +682,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1140,7 +699,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1229,7 +788,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1272,7 +831,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1290,7 +849,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1358,7 +917,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1475,7 +1034,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1521,7 +1080,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1553,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1797,7 +1356,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2017,7 +1576,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2128,8 +1687,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2231,7 +1790,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2302,7 +1861,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2459,7 +2018,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2574,7 +2133,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2594,7 +2153,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2642,8 +2201,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2751,20 +2310,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35264 - i32.const 35312 + i32.const 33296 + i32.const 33344 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2773,196 +2328,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $rt/issue-2719/issue2719_T#constructor (param $this i32) (result i32) (local $1 i32) @@ -3066,7 +2452,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -3095,13 +2481,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 1 @@ -3126,153 +2512,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3303,16 +2542,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index f6c24b0b64..bf34f3c3a5 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (result i32))) - (type $5 (func (param i32) (result i32))) + (type $5 (func (param i32 i32) (result i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,252 +17,29 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36264)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34296)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00 \00\00\00r\00t\00/\00i\00s\00s\00u\00e\00-\002\007\001\009\00.\00t\00s") - (data $20 (i32.const 3472) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00 \00\00\00r\00t\00/\00i\00s\00s\00u\00e\00-\002\007\001\009\00.\00t\00s") + (data $9 (i32.const 1504) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3496 - i32.lt_s - if - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -283,7 +60,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -331,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -340,7 +117,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + block $__inlined_func$~lib/rt/itcms/Object#unlink$120 local.get $1 i32.load offset=4 i32.const -4 @@ -352,19 +129,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36264 + i32.const 34296 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$132 + br $__inlined_func$~lib/rt/itcms/Object#unlink$120 end local.get $1 i32.load offset=8 @@ -372,7 +149,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -401,13 +178,13 @@ i32.const 1 else local.get $0 - i32.const 3472 + i32.const 1504 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -415,7 +192,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3476 + i32.const 1508 i32.add i32.load i32.const 32 @@ -467,7 +244,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -481,7 +258,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -527,7 +304,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -610,7 +387,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -624,7 +401,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -685,7 +462,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -718,7 +495,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -733,7 +510,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -784,7 +561,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -856,7 +633,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -881,7 +658,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -908,7 +685,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -980,10 +757,10 @@ if unreachable end - i32.const 36272 + i32.const 34304 i32.const 0 i32.store - i32.const 37840 + i32.const 35872 i32.const 0 i32.store loop $for-loop|0 @@ -994,7 +771,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36272 + i32.const 34304 i32.add i32.const 0 i32.store offset=4 @@ -1012,7 +789,7 @@ i32.add i32.const 2 i32.shl - i32.const 36272 + i32.const 34304 i32.add i32.const 0 i32.store offset=96 @@ -1030,14 +807,14 @@ br $for-loop|0 end end - i32.const 36272 - i32.const 37844 + i32.const 34304 + i32.const 35876 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36272 + i32.const 34304 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1122,7 +899,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36264 + i32.const 34296 i32.lt_u if local.get $0 @@ -1211,14 +988,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36264 + i32.const 34296 i32.lt_u if local.get $0 @@ -1241,7 +1018,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36264 + i32.const 34296 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1270,7 +1047,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1354,7 +1131,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1406,7 +1183,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1438,8 +1215,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1449,7 +1226,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1466,7 +1243,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1499,8 +1276,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1602,7 +1379,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1617,7 +1394,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1636,7 +1413,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1750,7 +1527,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3496 + i32.const 1528 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1759,34 +1536,34 @@ memory.size i32.const 16 i32.shl - i32.const 36264 + i32.const 34296 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $rt/issue-2719/issue2719_T#constructor local.set $0 @@ -1803,7 +1580,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3496 + i32.const 1528 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1861,7 +1638,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3496 + i32.const 1528 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1874,7 +1651,7 @@ i32.load if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -1890,212 +1667,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36288 - i32.const 36336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$137 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$137 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3496 + i32.const 1528 i32.lt_s if - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $rt/issue-2719/issue2719_T#constructor (result i32) (local $0 i32) @@ -2106,7 +1718,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3496 + i32.const 1528 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2127,7 +1739,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3496 + i32.const 1528 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2162,8 +1774,8 @@ local.get $0 return end - i32.const 36288 - i32.const 36336 + i32.const 34320 + i32.const 34368 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index 227ce2704f..e65750efae 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -2,19 +2,14 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,36 +18,29 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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/rt/__rtti_base i32 (i32.const 2512)) - (global $~lib/memory/__data_end i32 (i32.const 2532)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35300)) - (global $~lib/memory/__heap_base i32 (i32.const 35300)) + (global $~lib/rt/__rtti_base i32 (i32.const 544)) + (global $~lib/memory/__data_end i32 (i32.const 564)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33332)) + (global $~lib/memory/__heap_base i32 (i32.const 33332)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") - (data $20 (i32.const 2444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") - (data $21 (i32.const 2512) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") + (data $9 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") + (data $10 (i32.const 544) "\04\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 "__new" (func $~lib/rt/itcms/__new)) @@ -62,435 +50,6 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -555,7 +114,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -625,7 +184,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -642,7 +201,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -672,9 +231,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -741,7 +300,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -893,7 +452,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -913,7 +472,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -976,7 +535,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1129,7 +688,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1146,7 +705,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1235,7 +794,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1278,7 +837,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1296,7 +855,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1364,7 +923,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1481,7 +1040,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1527,7 +1086,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1559,7 +1118,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1803,7 +1362,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2023,7 +1582,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2134,8 +1693,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2237,7 +1796,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2308,7 +1867,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2465,7 +2024,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2580,7 +2139,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2600,7 +2159,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2648,8 +2207,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2707,8 +2266,8 @@ i32.const 3 i32.eq if - i32.const 2400 - i32.const 2064 + i32.const 432 + i32.const 96 i32.const 338 i32.const 7 call $~lib/builtins/abort @@ -2740,8 +2299,8 @@ i32.const 3 i32.ne if - i32.const 2464 - i32.const 2064 + i32.const 496 + i32.const 96 i32.const 352 i32.const 5 call $~lib/builtins/abort @@ -2817,13 +2376,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace ) @@ -2832,20 +2391,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35328 - i32.const 35376 + i32.const 33360 + i32.const 33408 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2854,362 +2409,40 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + local.set $4 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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2464 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 432 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 496 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/rt/runtime-incremental-export.release.wat b/tests/compiler/rt/runtime-incremental-export.release.wat index d30722746c..835318eea8 100644 --- a/tests/compiler/rt/runtime-incremental-export.release.wat +++ b/tests/compiler/rt/runtime-incremental-export.release.wat @@ -1,12 +1,13 @@ (module (type $0 (func (param i32))) (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32 i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,45 +18,24 @@ (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/rt/__rtti_base i32 (i32.const 3536)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36324)) + (global $~lib/rt/__rtti_base i32 (i32.const 1568)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34356)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") - (data $20 (i32.const 3468) "<") - (data $20.1 (i32.const 3480) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") - (data $21 (i32.const 3536) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") + (data $9 (i32.const 1500) "<") + (data $9.1 (i32.const 1512) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") + (data $10 (i32.const 1568) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "__new" (func $~lib/rt/itcms/__new)) (export "__pin" (func $~lib/rt/itcms/__pin)) (export "__unpin" (func $~lib/rt/itcms/__unpin)) @@ -63,218 +43,16 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3556 - i32.lt_s - if - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3424 - call $~lib/rt/itcms/__visit - i32.const 3488 + i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1456 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1520 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -295,7 +73,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -327,13 +105,13 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36324 + i32.const 34356 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -347,7 +125,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -379,7 +157,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -401,13 +179,13 @@ i32.const 1 else local.get $2 - i32.const 3536 + i32.const 1568 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -415,7 +193,7 @@ local.get $2 i32.const 2 i32.shl - i32.const 3540 + i32.const 1572 i32.add i32.load i32.const 32 @@ -486,7 +264,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -500,7 +278,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -546,7 +324,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -629,7 +407,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -643,7 +421,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -704,7 +482,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -737,7 +515,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -752,7 +530,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -803,7 +581,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -875,7 +653,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -900,7 +678,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -927,7 +705,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -999,10 +777,10 @@ if unreachable end - i32.const 36336 + i32.const 34368 i32.const 0 i32.store - i32.const 37904 + i32.const 35936 i32.const 0 i32.store loop $for-loop|0 @@ -1013,7 +791,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36336 + i32.const 34368 i32.add i32.const 0 i32.store offset=4 @@ -1031,7 +809,7 @@ i32.add i32.const 2 i32.shl - i32.const 36336 + i32.const 34368 i32.add i32.const 0 i32.store offset=96 @@ -1049,14 +827,14 @@ br $for-loop|0 end end - i32.const 36336 - i32.const 37908 + i32.const 34368 + i32.const 35940 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36336 + i32.const 34368 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1141,7 +919,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36324 + i32.const 34356 i32.lt_u if local.get $0 @@ -1230,14 +1008,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36324 + i32.const 34356 i32.lt_u if local.get $0 @@ -1260,7 +1038,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36324 + i32.const 34356 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1289,7 +1067,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1373,7 +1151,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1425,7 +1203,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1457,8 +1235,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1468,7 +1246,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1485,7 +1263,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1518,8 +1296,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1621,7 +1399,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1636,7 +1414,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1655,7 +1433,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1776,8 +1554,8 @@ i32.const 3 i32.eq if - i32.const 3424 - i32.const 3088 + i32.const 1456 + i32.const 1120 i32.const 338 i32.const 7 call $~lib/builtins/abort @@ -1829,8 +1607,8 @@ i32.const 3 i32.ne if - i32.const 3488 - i32.const 3088 + i32.const 1520 + i32.const 1120 i32.const 352 i32.const 5 call $~lib/builtins/abort @@ -1909,235 +1687,70 @@ memory.size i32.const 16 i32.shl - i32.const 36324 + i32.const 34356 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3556 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3556 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$126 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$126 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36352 - i32.const 36400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3556 + i32.const 1588 i32.lt_s if - i32.const 36352 - i32.const 36400 + i32.const 34384 + i32.const 34432 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index c2f8b2cd7d..9b99a40648 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -1,19 +1,14 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func)) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i32 i32))) - (type $10 (func (param i32 i32 i64) (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)) + (type $0 (func (param i32 i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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/rt/tcms/fromSpace (mut i32) (i32.const 0)) @@ -21,29 +16,18 @@ (global $~lib/rt/tcms/total (mut i32) (i32.const 0)) (global $~lib/rt/tcms/pinSpace (mut i32) (i32.const 0)) (global $~lib/rt/tcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2400)) - (global $~lib/memory/__heap_base i32 (i32.const 2420)) + (global $~lib/rt/__rtti_base i32 (i32.const 432)) + (global $~lib/memory/__heap_base i32 (i32.const 452)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 2108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") - (data $16 (i32.const 2272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 2300) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") - (data $18 (i32.const 2368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2400) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") + (data $5 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00\00\00") + (data $7 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 432) "\04\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 "__new" (func $~lib/rt/tcms/__new)) @@ -53,642 +37,14 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - local.get $this - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - return - end - local.get $outSize - i32.const 2 - call $~lib/rt/tcms/__new - local.set $out - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - local.get $left - local.get $right - call $~lib/string/String#concat - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - return - end - local.get $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/tcms/__new - local.set $out - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/tcms/__new - local.set $out - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/tcms/__new - local.set $out - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - return - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - i32.const 1 + i32.const 0 drop local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.set $fullMessage local.get $fileName - if - local.get $fullMessage - i32.const 64 - local.get $fileName - call $~lib/string/String.__concat - i32.const 128 - call $~lib/string/String.__concat - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - call $~lib/string/String.__concat - i32.const 128 - call $~lib/string/String.__concat - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - call $~lib/string/String.__concat - call $~lib/string/String.__concat - local.set $fullMessage - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl ) (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) local.get $this @@ -760,7 +116,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -780,7 +136,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -843,7 +199,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -996,7 +352,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1013,7 +369,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1102,7 +458,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1145,7 +501,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1163,7 +519,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1231,7 +587,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1348,7 +704,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1394,7 +750,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1426,7 +782,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1667,8 +1023,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2128 + i32.const 32 + i32.const 160 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1770,7 +1126,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1841,7 +1197,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1998,7 +1354,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2113,7 +1469,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2133,7 +1489,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2249,8 +1605,8 @@ i32.const 1073741804 i32.gt_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 125 i32.const 30 call $~lib/builtins/abort @@ -2325,7 +1681,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 101 i32.const 18 call $~lib/builtins/abort @@ -2342,7 +1698,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 105 i32.const 16 call $~lib/builtins/abort @@ -2368,8 +1724,8 @@ i32.const 3 i32.eq if - i32.const 2224 - i32.const 2064 + i32.const 256 + i32.const 96 i32.const 181 i32.const 7 call $~lib/builtins/abort @@ -2401,8 +1757,8 @@ i32.const 3 i32.ne if - i32.const 2320 - i32.const 2064 + i32.const 352 + i32.const 96 i32.const 195 i32.const 5 call $~lib/builtins/abort @@ -2444,7 +1800,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 160 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2513,7 +1869,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 213 i32.const 16 call $~lib/builtins/abort @@ -2552,7 +1908,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 223 i32.const 16 call $~lib/builtins/abort @@ -2588,7 +1944,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 232 i32.const 16 call $~lib/builtins/abort @@ -2643,13 +1999,13 @@ drop ) (func $~start - i32.const 2176 + i32.const 208 call $~lib/rt/tcms/initLazy global.set $~lib/rt/tcms/fromSpace - i32.const 2272 + i32.const 304 call $~lib/rt/tcms/initLazy global.set $~lib/rt/tcms/pinSpace - i32.const 2368 + i32.const 400 call $~lib/rt/tcms/initLazy global.set $~lib/rt/tcms/toSpace ) @@ -2682,19 +2038,13 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2000 - local.get $0 - call $~lib/rt/tcms/__visit - i32.const 2224 - local.get $0 - call $~lib/rt/tcms/__visit - i32.const 2320 + i32.const 32 local.get $0 call $~lib/rt/tcms/__visit - i32.const 784 + i32.const 256 local.get $0 call $~lib/rt/tcms/__visit - i32.const 1840 + i32.const 352 local.get $0 call $~lib/rt/tcms/__visit ) diff --git a/tests/compiler/rt/runtime-minimal-export.release.wat b/tests/compiler/rt/runtime-minimal-export.release.wat index e41b5e1a7a..5fa9c43c62 100644 --- a/tests/compiler/rt/runtime-minimal-export.release.wat +++ b/tests/compiler/rt/runtime-minimal-export.release.wat @@ -1,51 +1,31 @@ (module (type $0 (func (param i32))) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) + (type $1 (func)) + (type $2 (func (param i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tcms/white (mut i32) (i32.const 0)) (global $~lib/rt/tcms/total (mut i32) (i32.const 0)) (global $~lib/rt/tcms/pinSpace (mut i32) (i32.const 0)) (global $~lib/rt/tcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3424)) + (global $~lib/rt/__rtti_base i32 (i32.const 1456)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00c\00m\00s\00.\00t\00s") - (data $13 (i32.const 3132) "<") - (data $13.1 (i32.const 3144) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $15 (i32.const 3228) "<") - (data $15.1 (i32.const 3240) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") - (data $17 (i32.const 3324) "<") - (data $17.1 (i32.const 3336) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") - (data $19 (i32.const 3424) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00c\00m\00s\00.\00t\00s") + (data $2 (i32.const 1164) "<") + (data $2.1 (i32.const 1176) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $4 (i32.const 1260) "<") + (data $4.1 (i32.const 1272) "\02\00\00\00*\00\00\00O\00b\00j\00e\00c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d") + (data $6 (i32.const 1356) "<") + (data $6.1 (i32.const 1368) "\02\00\00\00(\00\00\00O\00b\00j\00e\00c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d") + (data $8 (i32.const 1456) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "__new" (func $~lib/rt/tcms/__new)) (export "__pin" (func $~lib/rt/tcms/__pin)) (export "__unpin" (func $~lib/rt/tcms/__unpin)) @@ -53,244 +33,6 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (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) - i32.const 1120 - local.set $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - i32.add - local.tee $5 - if - local.get $5 - i32.const 2 - call $~lib/rt/tcms/__new - local.tee $2 - local.get $0 - local.get $3 - memory.copy - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - end - local.get $2 - ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - i32.const 1376 - return - end - local.get $0 - 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 $0 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/tcms/__new - local.set $2 - 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 $2 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 $2 - local.get $0 - i32.const 2 - i32.sub - local.tee $0 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 $2 - local.get $0 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 1388 - i32.add - i32.load - i32.store - else - local.get $2 - local.get $0 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end - local.get $2 - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - local.get $0 - i32.const 1056 - local.get $0 - select - local.set $0 - local.get $1 - if (result i32) - local.get $0 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - i32.const 1152 - call $~lib/string/String.__concat - local.get $2 - call $~lib/util/number/utoa32 - call $~lib/string/String.__concat - i32.const 1152 - call $~lib/string/String.__concat - local.get $3 - call $~lib/util/number/utoa32 - call $~lib/string/String.__concat - call $~lib/string/String.__concat - else - local.get $0 - end - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -304,10 +46,10 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 268 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $3 @@ -318,10 +60,10 @@ i32.lt_u if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 270 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $3 @@ -364,10 +106,10 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 284 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $1 @@ -447,10 +189,10 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 201 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $1 @@ -461,10 +203,10 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 203 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $1 @@ -522,10 +264,10 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 221 i32.const 16 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $0 @@ -555,10 +297,10 @@ i32.lt_u if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 233 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $4 @@ -570,10 +312,10 @@ i32.ne if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 234 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $4 @@ -621,10 +363,10 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 251 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $0 @@ -693,10 +435,10 @@ i64.lt_u if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 382 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $1 @@ -718,10 +460,10 @@ i32.gt_u if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 389 i32.const 16 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $3 @@ -745,10 +487,10 @@ i32.gt_u if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 402 i32.const 5 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end end @@ -817,10 +559,10 @@ if unreachable end - i32.const 3456 + i32.const 1488 i32.const 0 i32.store - i32.const 5024 + i32.const 3056 i32.const 0 i32.store loop $for-loop|0 @@ -831,7 +573,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3456 + i32.const 1488 i32.add i32.const 0 i32.store offset=4 @@ -849,7 +591,7 @@ i32.add i32.const 2 i32.shl - i32.const 3456 + i32.const 1488 i32.add i32.const 0 i32.store offset=96 @@ -867,14 +609,14 @@ br $for-loop|0 end end - i32.const 3456 - i32.const 5028 + i32.const 1488 + i32.const 3060 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 3456 + i32.const 1488 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) @@ -931,10 +673,10 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 334 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $0 @@ -983,10 +725,10 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 347 i32.const 18 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $0 @@ -1015,11 +757,11 @@ i32.const 1073741804 i32.gt_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 125 i32.const 30 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end global.get $~lib/rt/tlsf/ROOT @@ -1036,11 +778,11 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3152 + i32.const 1056 + i32.const 1184 i32.const 461 i32.const 29 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $4 @@ -1139,10 +881,10 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 499 i32.const 16 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end end @@ -1154,10 +896,10 @@ i32.gt_u if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 501 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $4 @@ -1173,10 +915,10 @@ i32.and if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 361 i32.const 14 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $6 @@ -1286,16 +1028,16 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 3444 + i32.const 1476 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 101 i32.const 18 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end return @@ -1306,10 +1048,10 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 105 i32.const 16 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $1 @@ -1340,11 +1082,11 @@ i32.const 3 i32.eq if - i32.const 3248 - i32.const 3088 + i32.const 1280 + i32.const 1120 i32.const 181 i32.const 7 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $1 @@ -1393,11 +1135,11 @@ i32.const 3 i32.ne if - i32.const 3344 - i32.const 3088 + i32.const 1376 + i32.const 1120 i32.const 195 i32.const 5 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $1 @@ -1434,15 +1176,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) - i32.const 3024 - call $~lib/rt/tcms/__visit - i32.const 3248 - call $~lib/rt/tcms/__visit - i32.const 3344 + i32.const 1056 call $~lib/rt/tcms/__visit - i32.const 1808 + i32.const 1280 call $~lib/rt/tcms/__visit - i32.const 2864 + i32.const 1376 call $~lib/rt/tcms/__visit global.get $~lib/rt/tcms/pinSpace local.tee $1 @@ -1463,10 +1201,10 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 213 i32.const 16 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $0 @@ -1503,10 +1241,10 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 223 i32.const 16 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $0 @@ -1540,10 +1278,10 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 232 i32.const 16 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $0 @@ -1551,7 +1289,7 @@ i32.const -4 i32.and local.get $0 - i32.const 3444 + i32.const 1476 i32.lt_u if local.get $0 @@ -1574,7 +1312,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 3444 + i32.const 1476 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1603,10 +1341,10 @@ end if i32.const 0 - i32.const 3152 + i32.const 1184 i32.const 562 i32.const 3 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $4 @@ -1637,29 +1375,29 @@ global.set $~lib/rt/tcms/white ) (func $~start - i32.const 3204 - i32.const 3200 + i32.const 1236 + i32.const 1232 i32.store - i32.const 3208 - i32.const 3200 + i32.const 1240 + i32.const 1232 i32.store - i32.const 3200 + i32.const 1232 global.set $~lib/rt/tcms/fromSpace - i32.const 3300 - i32.const 3296 + i32.const 1332 + i32.const 1328 i32.store - i32.const 3304 - i32.const 3296 + i32.const 1336 + i32.const 1328 i32.store - i32.const 3296 + i32.const 1328 global.set $~lib/rt/tcms/pinSpace - i32.const 3396 - i32.const 3392 + i32.const 1428 + i32.const 1424 i32.store - i32.const 3400 - i32.const 3392 + i32.const 1432 + i32.const 1424 i32.store - i32.const 3392 + i32.const 1424 global.set $~lib/rt/tcms/toSpace ) (func $~lib/rt/tcms/__visit (param $0 i32) diff --git a/tests/compiler/rt/runtime-stub-export.debug.wat b/tests/compiler/rt/runtime-stub-export.debug.wat index d60af4a6e5..368ef414ca 100644 --- a/tests/compiler/rt/runtime-stub-export.debug.wat +++ b/tests/compiler/rt/runtime-stub-export.debug.wat @@ -1,37 +1,20 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32))) + (type $0 (func (param i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32) (result i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i32 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)) + (type $5 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $~lib/rt/stub/startOffset (mut i32) (i32.const 0)) (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2112)) - (global $~lib/memory/__heap_base i32 (i32.const 2132)) + (global $~lib/rt/__rtti_base i32 (i32.const 144)) + (global $~lib/memory/__heap_base i32 (i32.const 164)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 2112) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 144) "\04\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 "__new" (func $~lib/rt/stub/__new)) @@ -41,642 +24,14 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - local.get $this - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - return - end - local.get $outSize - i32.const 2 - call $~lib/rt/stub/__new - local.set $out - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - local.get $left - local.get $right - call $~lib/string/String#concat - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - return - end - local.get $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/stub/__new - local.set $out - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/stub/__new - local.set $out - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/stub/__new - local.set $out - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - return - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - i32.const 1 + i32.const 0 drop local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.set $fullMessage local.get $fileName - if - local.get $fullMessage - i32.const 64 - local.get $fileName - call $~lib/string/String.__concat - i32.const 128 - call $~lib/string/String.__concat - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - call $~lib/string/String.__concat - i32.const 128 - call $~lib/string/String.__concat - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - call $~lib/string/String.__concat - call $~lib/string/String.__concat - local.set $fullMessage - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl ) (func $~lib/rt/stub/maybeGrowMemory (param $newOffset i32) (local $pagesBefore i32) @@ -753,8 +108,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 33 i32.const 29 call $~lib/builtins/abort @@ -820,8 +175,8 @@ i32.const 1073741804 i32.gt_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 86 i32.const 30 call $~lib/builtins/abort diff --git a/tests/compiler/rt/runtime-stub-export.release.wat b/tests/compiler/rt/runtime-stub-export.release.wat index 1dd771c334..7e9bfa5e34 100644 --- a/tests/compiler/rt/runtime-stub-export.release.wat +++ b/tests/compiler/rt/runtime-stub-export.release.wat @@ -1,38 +1,18 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (param i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32) (result i32))) (type $4 (func (param i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3136)) + (global $~lib/rt/__rtti_base i32 (i32.const 1168)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s") - (data $13 (i32.const 3136) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s") + (data $2 (i32.const 1168) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "__new" (func $~lib/rt/stub/__new)) (export "__pin" (func $~lib/rt/stub/__pin)) (export "__unpin" (func $~lib/rt/stub/__unpin)) @@ -40,244 +20,6 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (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) - i32.const 1120 - local.set $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - i32.add - local.tee $5 - if - local.get $5 - i32.const 2 - call $~lib/rt/stub/__new - local.tee $2 - local.get $0 - local.get $3 - memory.copy - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - end - local.get $2 - ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - i32.const 1376 - return - end - local.get $0 - 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 $0 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/stub/__new - local.set $2 - 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 $2 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 $2 - local.get $0 - i32.const 2 - i32.sub - local.tee $0 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 $2 - local.get $0 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 1388 - i32.add - i32.load - i32.store - else - local.get $2 - local.get $0 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end - local.get $2 - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - local.get $0 - i32.const 1056 - local.get $0 - select - local.set $0 - local.get $1 - if (result i32) - local.get $0 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - i32.const 1152 - call $~lib/string/String.__concat - local.get $2 - call $~lib/util/number/utoa32 - call $~lib/string/String.__concat - i32.const 1152 - call $~lib/string/String.__concat - local.get $3 - call $~lib/util/number/utoa32 - call $~lib/string/String.__concat - call $~lib/string/String.__concat - else - local.get $0 - end - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) (func $~lib/rt/stub/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -289,11 +31,11 @@ i32.const 1073741804 i32.gt_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 86 i32.const 30 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end local.get $0 @@ -303,11 +45,11 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 33 i32.const 29 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end global.get $~lib/rt/stub/offset @@ -395,7 +137,7 @@ (func $~lib/rt/stub/__collect ) (func $~start - i32.const 3164 + i32.const 1196 global.set $~lib/rt/stub/offset ) ) diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index 1d65f644e6..fd6c6ffb85 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -2,34 +2,33 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32))) - (type $5 (func (param i32 i32 i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32) (result i32))) (type $6 (func (param i32 i32 i32) (result v128))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (result i32))) - (type $12 (func (param i32 i32 i32) (result i32))) - (type $13 (func (result v128))) - (type $14 (func (param v128) (result v128))) - (type $15 (func (param i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) - (type $16 (func (param i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) - (type $17 (func (param i32 i32 i32 i32) (result v128))) - (type $18 (func (param i64) (result v128))) - (type $19 (func (param i64 i64) (result v128))) - (type $20 (func (param f32 f32 f32) (result v128))) - (type $21 (func (param f32 f32 f32 f32) (result v128))) - (type $22 (func (param f64) (result v128))) - (type $23 (func (param f64 f64) (result v128))) - (type $24 (func (param i32 i32 i32 i32))) - (type $25 (func (param i32 i32) (result v128))) - (type $26 (func (param i32 i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 i32 i32) (result i32))) + (type $11 (func (result v128))) + (type $12 (func (param v128) (result v128))) + (type $13 (func (param i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) + (type $14 (func (param i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) + (type $15 (func (param i32 i32 i32 i32) (result v128))) + (type $16 (func (param i64) (result v128))) + (type $17 (func (param i64 i64) (result v128))) + (type $18 (func (param f32 f32 f32) (result v128))) + (type $19 (func (param f32 f32 f32 f32) (result v128))) + (type $20 (func (param f64) (result v128))) + (type $21 (func (param f64 f64) (result v128))) + (type $22 (func (param i32 i32) (result v128))) + (type $23 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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 $~lib/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -41,6 +40,7 @@ (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 $simd/vec (mut v128) (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)) (global $~lib/builtins/u8.MAX_VALUE i32 (i32.const 255)) (global $~lib/builtins/u16.MAX_VALUE i32 (i32.const 65535)) @@ -49,34 +49,23 @@ (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/builtins/u64.MAX_VALUE i64 (i64.const -1)) - (global $~lib/rt/__rtti_base i32 (i32.const 2528)) - (global $~lib/memory/__data_end i32 (i32.const 2556)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35324)) - (global $~lib/memory/__heap_base i32 (i32.const 35324)) + (global $~lib/rt/__rtti_base i32 (i32.const 560)) + (global $~lib/memory/__data_end i32 (i32.const 588)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33356)) + (global $~lib/memory/__heap_base i32 (i32.const 33356)) (memory $0 1) (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 188) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 412) "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 $9 (i32.const 812) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1868) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 1964) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 2028) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2092) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2160) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 2220) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2284) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $21 (i32.const 2476) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00i\00m\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2528) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\04\00\00\02\t\00\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $10 (i32.const 508) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00i\00m\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 560) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\04\00\00\02\t\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "reexport" (func $simd/reexport)) @@ -95,435 +84,6 @@ (export "vec" (global $simd/vec)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 412 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 412 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 412 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 412 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 832 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 832 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1888 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1888 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -588,7 +148,7 @@ i32.eqz if i32.const 0 - i32.const 2112 + i32.const 144 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -658,7 +218,7 @@ i32.eqz if i32.const 0 - i32.const 2112 + i32.const 144 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -675,7 +235,7 @@ i32.eqz if i32.const 0 - i32.const 2112 + i32.const 144 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -705,9 +265,9 @@ i32.load i32.gt_u if - i32.const 2240 - i32.const 2304 - i32.const 21 + i32.const 272 + i32.const 336 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -774,7 +334,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2112 + i32.const 144 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -926,7 +486,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -946,7 +506,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1009,7 +569,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1162,7 +722,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1179,7 +739,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1268,7 +828,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1311,7 +871,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1329,7 +889,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1397,7 +957,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1514,7 +1074,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1560,7 +1120,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1592,7 +1152,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1836,7 +1396,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2056,7 +1616,7 @@ i32.eqz if i32.const 0 - i32.const 2112 + i32.const 144 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2167,8 +1727,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2048 - i32.const 2384 + i32.const 80 + i32.const 416 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2270,7 +1830,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2341,7 +1901,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2498,7 +2058,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2613,7 +2173,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2633,7 +2193,7 @@ i32.eqz if i32.const 0 - i32.const 2384 + i32.const 416 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2681,8 +2241,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2048 - i32.const 2112 + i32.const 80 + i32.const 144 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2758,7 +2318,7 @@ i32.eqz if i32.const 0 - i32.const 2112 + i32.const 144 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2942,7 +2502,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 71 i32.const 5 call $~lib/builtins/abort @@ -2966,7 +2526,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 81 i32.const 5 call $~lib/builtins/abort @@ -2990,7 +2550,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 91 i32.const 5 call $~lib/builtins/abort @@ -3014,7 +2574,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 101 i32.const 5 call $~lib/builtins/abort @@ -3038,7 +2598,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 111 i32.const 5 call $~lib/builtins/abort @@ -3062,7 +2622,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 121 i32.const 5 call $~lib/builtins/abort @@ -3143,7 +2703,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 177 i32.const 5 call $~lib/builtins/abort @@ -3161,7 +2721,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 179 i32.const 5 call $~lib/builtins/abort @@ -3179,7 +2739,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 183 i32.const 5 call $~lib/builtins/abort @@ -3197,7 +2757,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 185 i32.const 5 call $~lib/builtins/abort @@ -3224,7 +2784,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 192 i32.const 5 call $~lib/builtins/abort @@ -3253,7 +2813,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 200 i32.const 5 call $~lib/builtins/abort @@ -3272,7 +2832,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 202 i32.const 5 call $~lib/builtins/abort @@ -3291,7 +2851,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 204 i32.const 5 call $~lib/builtins/abort @@ -3310,7 +2870,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 206 i32.const 5 call $~lib/builtins/abort @@ -3329,7 +2889,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 208 i32.const 5 call $~lib/builtins/abort @@ -3352,7 +2912,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 215 i32.const 5 call $~lib/builtins/abort @@ -3368,7 +2928,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 217 i32.const 5 call $~lib/builtins/abort @@ -3384,7 +2944,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 219 i32.const 5 call $~lib/builtins/abort @@ -3400,7 +2960,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 221 i32.const 5 call $~lib/builtins/abort @@ -3416,7 +2976,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 223 i32.const 5 call $~lib/builtins/abort @@ -3436,7 +2996,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 228 i32.const 5 call $~lib/builtins/abort @@ -3454,7 +3014,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 232 i32.const 5 call $~lib/builtins/abort @@ -3528,7 +3088,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 302 i32.const 3 call $~lib/builtins/abort @@ -3546,7 +3106,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 304 i32.const 3 call $~lib/builtins/abort @@ -3565,7 +3125,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 306 i32.const 3 call $~lib/builtins/abort @@ -3582,7 +3142,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 307 i32.const 3 call $~lib/builtins/abort @@ -3643,7 +3203,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 348 i32.const 3 call $~lib/builtins/abort @@ -3657,7 +3217,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 353 i32.const 3 call $~lib/builtins/abort @@ -3671,7 +3231,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 354 i32.const 3 call $~lib/builtins/abort @@ -3686,7 +3246,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 355 i32.const 3 call $~lib/builtins/abort @@ -3703,7 +3263,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 356 i32.const 3 call $~lib/builtins/abort @@ -3720,7 +3280,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 361 i32.const 3 call $~lib/builtins/abort @@ -3844,7 +3404,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 399 i32.const 3 call $~lib/builtins/abort @@ -3861,7 +3421,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 400 i32.const 3 call $~lib/builtins/abort @@ -3878,7 +3438,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 401 i32.const 3 call $~lib/builtins/abort @@ -3895,7 +3455,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 402 i32.const 3 call $~lib/builtins/abort @@ -3912,7 +3472,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 403 i32.const 3 call $~lib/builtins/abort @@ -3929,7 +3489,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 404 i32.const 3 call $~lib/builtins/abort @@ -3946,7 +3506,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 405 i32.const 3 call $~lib/builtins/abort @@ -3963,7 +3523,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 406 i32.const 3 call $~lib/builtins/abort @@ -3980,7 +3540,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 407 i32.const 3 call $~lib/builtins/abort @@ -3997,7 +3557,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 408 i32.const 3 call $~lib/builtins/abort @@ -4042,7 +3602,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 414 i32.const 5 call $~lib/builtins/abort @@ -4061,7 +3621,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 420 i32.const 5 call $~lib/builtins/abort @@ -4077,7 +3637,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 425 i32.const 5 call $~lib/builtins/abort @@ -4146,7 +3706,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 480 i32.const 3 call $~lib/builtins/abort @@ -4164,7 +3724,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 482 i32.const 3 call $~lib/builtins/abort @@ -4183,7 +3743,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -4200,7 +3760,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 485 i32.const 3 call $~lib/builtins/abort @@ -4217,7 +3777,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -4278,7 +3838,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 527 i32.const 3 call $~lib/builtins/abort @@ -4292,7 +3852,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 532 i32.const 3 call $~lib/builtins/abort @@ -4306,7 +3866,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 533 i32.const 3 call $~lib/builtins/abort @@ -4321,7 +3881,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 534 i32.const 3 call $~lib/builtins/abort @@ -4338,7 +3898,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 535 i32.const 3 call $~lib/builtins/abort @@ -4355,7 +3915,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 540 i32.const 3 call $~lib/builtins/abort @@ -4479,7 +4039,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -4496,7 +4056,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 579 i32.const 3 call $~lib/builtins/abort @@ -4513,7 +4073,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 580 i32.const 3 call $~lib/builtins/abort @@ -4530,7 +4090,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 581 i32.const 3 call $~lib/builtins/abort @@ -4547,7 +4107,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 582 i32.const 3 call $~lib/builtins/abort @@ -4564,7 +4124,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 583 i32.const 3 call $~lib/builtins/abort @@ -4581,7 +4141,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 584 i32.const 3 call $~lib/builtins/abort @@ -4598,7 +4158,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 585 i32.const 3 call $~lib/builtins/abort @@ -4615,7 +4175,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 586 i32.const 3 call $~lib/builtins/abort @@ -4632,7 +4192,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 587 i32.const 3 call $~lib/builtins/abort @@ -4723,7 +4283,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 594 i32.const 3 call $~lib/builtins/abort @@ -4766,7 +4326,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 609 i32.const 5 call $~lib/builtins/abort @@ -4782,7 +4342,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 614 i32.const 5 call $~lib/builtins/abort @@ -4884,7 +4444,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 682 i32.const 3 call $~lib/builtins/abort @@ -4902,7 +4462,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 684 i32.const 3 call $~lib/builtins/abort @@ -4921,7 +4481,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 686 i32.const 3 call $~lib/builtins/abort @@ -4938,7 +4498,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 687 i32.const 3 call $~lib/builtins/abort @@ -4955,7 +4515,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 688 i32.const 3 call $~lib/builtins/abort @@ -5016,7 +4576,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 729 i32.const 3 call $~lib/builtins/abort @@ -5029,7 +4589,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 734 i32.const 3 call $~lib/builtins/abort @@ -5042,7 +4602,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 735 i32.const 3 call $~lib/builtins/abort @@ -5059,7 +4619,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 736 i32.const 3 call $~lib/builtins/abort @@ -5076,7 +4636,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 741 i32.const 3 call $~lib/builtins/abort @@ -5156,7 +4716,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 755 i32.const 3 call $~lib/builtins/abort @@ -5173,7 +4733,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 756 i32.const 3 call $~lib/builtins/abort @@ -5190,7 +4750,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 757 i32.const 3 call $~lib/builtins/abort @@ -5207,7 +4767,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -5224,7 +4784,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 759 i32.const 3 call $~lib/builtins/abort @@ -5241,7 +4801,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 760 i32.const 3 call $~lib/builtins/abort @@ -5258,7 +4818,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 761 i32.const 3 call $~lib/builtins/abort @@ -5275,7 +4835,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 762 i32.const 3 call $~lib/builtins/abort @@ -5292,7 +4852,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 763 i32.const 3 call $~lib/builtins/abort @@ -5309,7 +4869,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 764 i32.const 3 call $~lib/builtins/abort @@ -5396,7 +4956,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 779 i32.const 3 call $~lib/builtins/abort @@ -5427,7 +4987,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 790 i32.const 5 call $~lib/builtins/abort @@ -5443,7 +5003,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 795 i32.const 5 call $~lib/builtins/abort @@ -5543,7 +5103,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 829 i32.const 3 call $~lib/builtins/abort @@ -5561,7 +5121,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 831 i32.const 3 call $~lib/builtins/abort @@ -5580,7 +5140,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 833 i32.const 3 call $~lib/builtins/abort @@ -5597,7 +5157,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 834 i32.const 3 call $~lib/builtins/abort @@ -5614,7 +5174,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 835 i32.const 3 call $~lib/builtins/abort @@ -5630,7 +5190,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 836 i32.const 3 call $~lib/builtins/abort @@ -5643,7 +5203,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 841 i32.const 3 call $~lib/builtins/abort @@ -5656,7 +5216,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 842 i32.const 3 call $~lib/builtins/abort @@ -5673,7 +5233,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 843 i32.const 3 call $~lib/builtins/abort @@ -5690,7 +5250,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 848 i32.const 3 call $~lib/builtins/abort @@ -5763,7 +5323,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 862 i32.const 5 call $~lib/builtins/abort @@ -5779,7 +5339,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 867 i32.const 5 call $~lib/builtins/abort @@ -6160,7 +5720,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 940 i32.const 3 call $~lib/builtins/abort @@ -6178,7 +5738,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 942 i32.const 3 call $~lib/builtins/abort @@ -6197,7 +5757,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 944 i32.const 3 call $~lib/builtins/abort @@ -6214,7 +5774,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 945 i32.const 3 call $~lib/builtins/abort @@ -6231,7 +5791,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 946 i32.const 3 call $~lib/builtins/abort @@ -6252,7 +5812,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 948 i32.const 3 call $~lib/builtins/abort @@ -6269,7 +5829,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 949 i32.const 3 call $~lib/builtins/abort @@ -6285,7 +5845,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 950 i32.const 3 call $~lib/builtins/abort @@ -6298,7 +5858,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 951 i32.const 3 call $~lib/builtins/abort @@ -6311,7 +5871,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 952 i32.const 3 call $~lib/builtins/abort @@ -6328,7 +5888,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 953 i32.const 3 call $~lib/builtins/abort @@ -6345,7 +5905,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 958 i32.const 3 call $~lib/builtins/abort @@ -6376,7 +5936,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 967 i32.const 3 call $~lib/builtins/abort @@ -6393,7 +5953,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 968 i32.const 3 call $~lib/builtins/abort @@ -6410,7 +5970,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 969 i32.const 3 call $~lib/builtins/abort @@ -6427,7 +5987,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 970 i32.const 3 call $~lib/builtins/abort @@ -6444,7 +6004,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 971 i32.const 3 call $~lib/builtins/abort @@ -6461,7 +6021,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 972 i32.const 3 call $~lib/builtins/abort @@ -6478,7 +6038,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 973 i32.const 3 call $~lib/builtins/abort @@ -6495,7 +6055,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 974 i32.const 3 call $~lib/builtins/abort @@ -6511,7 +6071,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 975 i32.const 3 call $~lib/builtins/abort @@ -6578,7 +6138,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1002 i32.const 5 call $~lib/builtins/abort @@ -6596,7 +6156,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1006 i32.const 5 call $~lib/builtins/abort @@ -6641,7 +6201,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1022 i32.const 3 call $~lib/builtins/abort @@ -6659,7 +6219,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1024 i32.const 3 call $~lib/builtins/abort @@ -6678,7 +6238,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1026 i32.const 3 call $~lib/builtins/abort @@ -6695,7 +6255,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1027 i32.const 3 call $~lib/builtins/abort @@ -6712,7 +6272,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1028 i32.const 3 call $~lib/builtins/abort @@ -6733,7 +6293,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1030 i32.const 3 call $~lib/builtins/abort @@ -6750,7 +6310,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1031 i32.const 3 call $~lib/builtins/abort @@ -6766,7 +6326,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1032 i32.const 3 call $~lib/builtins/abort @@ -6779,7 +6339,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1033 i32.const 3 call $~lib/builtins/abort @@ -6792,7 +6352,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1034 i32.const 3 call $~lib/builtins/abort @@ -6809,7 +6369,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1035 i32.const 3 call $~lib/builtins/abort @@ -6826,7 +6386,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1040 i32.const 3 call $~lib/builtins/abort @@ -6857,7 +6417,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1049 i32.const 3 call $~lib/builtins/abort @@ -6874,7 +6434,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1050 i32.const 3 call $~lib/builtins/abort @@ -6891,7 +6451,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1051 i32.const 3 call $~lib/builtins/abort @@ -6908,7 +6468,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1052 i32.const 3 call $~lib/builtins/abort @@ -6925,7 +6485,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1053 i32.const 3 call $~lib/builtins/abort @@ -6942,7 +6502,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1054 i32.const 3 call $~lib/builtins/abort @@ -6959,7 +6519,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1055 i32.const 3 call $~lib/builtins/abort @@ -6976,7 +6536,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1056 i32.const 3 call $~lib/builtins/abort @@ -6992,7 +6552,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1057 i32.const 3 call $~lib/builtins/abort @@ -7045,7 +6605,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1076 i32.const 5 call $~lib/builtins/abort @@ -7063,7 +6623,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1080 i32.const 5 call $~lib/builtins/abort @@ -7249,20 +6809,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35344 - i32.const 35392 + i32.const 33376 + i32.const 33424 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -7271,196 +6827,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 144 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 80 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 112 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 176 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 176 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1984 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result v128) (local $value v128) @@ -7484,9 +6871,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2240 - i32.const 2448 - i32.const 114 + i32.const 272 + i32.const 480 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -7535,13 +6922,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2160 + i32.const 192 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2192 + i32.const 224 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2336 + i32.const 368 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer @@ -7566,7 +6953,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 5 i32.const 3 call $~lib/builtins/abort @@ -7599,153 +6986,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 208 - i32.const 336 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 400 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) (local $buffer i32) @@ -7777,6 +7017,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -7801,16 +7045,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2240 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2048 + i32.const 272 local.get $0 call $~lib/rt/itcms/__visit - i32.const 832 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1888 + i32.const 80 local.get $0 call $~lib/rt/itcms/__visit ) @@ -7897,6 +7135,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -7923,6 +7165,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/simd.release.wat b/tests/compiler/simd.release.wat index 23ef3221ed..4001b58533 100644 --- a/tests/compiler/simd.release.wat +++ b/tests/compiler/simd.release.wat @@ -1,23 +1,24 @@ (module (type $0 (func (param i32))) (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32 i32 i32) (result v128))) + (type $2 (func (param i32 i32 i32) (result v128))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32 i32))) - (type $5 (func (param i32) (result i32))) + (type $5 (func (param i32 i32) (result i32))) (type $6 (func (param i32 i32 i64))) (type $7 (func (result i32))) - (type $8 (func (param v128) (result v128))) - (type $9 (func (param i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) - (type $10 (func (param i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) - (type $11 (func (param i32 i32 i32 i32) (result v128))) - (type $12 (func (param i64) (result v128))) - (type $13 (func (param i64 i64) (result v128))) - (type $14 (func (param f32 f32 f32) (result v128))) - (type $15 (func (param f32 f32 f32 f32) (result v128))) - (type $16 (func (param f64) (result v128))) - (type $17 (func (param f64 f64) (result v128))) - (type $18 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32) (result i32))) + (type $9 (func (param v128) (result v128))) + (type $10 (func (param i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) + (type $11 (func (param i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) + (type $12 (func (param i32 i32 i32 i32) (result v128))) + (type $13 (func (param i64) (result v128))) + (type $14 (func (param i64 i64) (result v128))) + (type $15 (func (param f32 f32 f32) (result v128))) + (type $16 (func (param f32 f32 f32 f32) (result v128))) + (type $17 (func (param f64) (result v128))) + (type $18 (func (param f64 f64) (result v128))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -29,46 +30,25 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $simd/vec (mut v128) (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36348)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34380)) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04") - (data $1 (i32.const 1084) "\1c") - (data $1.1 (i32.const 1096) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1116) "\1c") - (data $2.1 (i32.const 1128) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1148) "\1c") - (data $3.1 (i32.const 1160) "\02") - (data $4 (i32.const 1180) "\1c") - (data $4.1 (i32.const 1192) "\02\00\00\00\02\00\00\00:") - (data $5 (i32.const 1212) "|") - (data $5.1 (i32.const 1224) "\02\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 $6 (i32.const 1340) "<") - (data $6.1 (i32.const 1352) "\02\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 $7 (i32.const 1404) "\1c") - (data $7.1 (i32.const 1416) "\02\00\00\00\02\00\00\000") - (data $8 (i32.const 1436) "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 $9 (i32.const 1836) "\1c\04") - (data $9.1 (i32.const 1848) "\02\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 $10 (i32.const 2892) "\\") - (data $10.1 (i32.const 2904) "\02\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 $11 (i32.const 2988) "<") - (data $11.1 (i32.const 3000) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $12 (i32.const 3052) "<") - (data $12.1 (i32.const 3064) "\02\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 $13 (i32.const 3116) "<") - (data $13.1 (i32.const 3128) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $16 (i32.const 3244) "<") - (data $16.1 (i32.const 3256) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $17 (i32.const 3308) ",") - (data $17.1 (i32.const 3320) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $19 (i32.const 3388) "<") - (data $19.1 (i32.const 3400) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $20 (i32.const 3452) ",") - (data $20.1 (i32.const 3464) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $21 (i32.const 3500) ",") - (data $21.1 (i32.const 3512) "\02\00\00\00\0e\00\00\00s\00i\00m\00d\00.\00t\00s") - (data $22 (i32.const 3552) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\04\00\00\02\t") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1276) "<") + (data $5.1 (i32.const 1288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1340) ",") + (data $6.1 (i32.const 1352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1484) ",") + (data $9.1 (i32.const 1496) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $10 (i32.const 1532) ",") + (data $10.1 (i32.const 1544) "\02\00\00\00\0e\00\00\00s\00i\00m\00d\00.\00t\00s") + (data $11 (i32.const 1584) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\04\00\00\02\t") (export "reexport" (func $simd/reexport)) (export "test_vars_i8x16_partial" (func $simd/test_vars_i8x16_partial)) (export "test_vars_i8x16_full" (func $simd/test_vars_i8x16_full)) @@ -85,214 +65,12 @@ (export "vec" (global $simd/vec)) (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3580 - i32.lt_s - if - i32.const 36368 - i32.const 36416 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1424 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1436 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1436 - 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 1436 - 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 1436 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3264 - call $~lib/rt/itcms/__visit - i32.const 3072 - call $~lib/rt/itcms/__visit - i32.const 1856 + i32.const 1296 call $~lib/rt/itcms/__visit - i32.const 2912 + i32.const 1104 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -313,7 +91,7 @@ i32.ne if i32.const 0 - i32.const 3136 + i32.const 1168 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -346,7 +124,7 @@ i32.eqz if i32.const 0 - i32.const 3136 + i32.const 1168 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -355,7 +133,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$145 + block $__inlined_func$~lib/rt/itcms/Object#unlink$133 local.get $0 i32.load offset=4 i32.const -4 @@ -367,19 +145,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36348 + i32.const 34380 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3136 + i32.const 1168 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$145 + br $__inlined_func$~lib/rt/itcms/Object#unlink$133 end local.get $0 i32.load offset=8 @@ -387,7 +165,7 @@ i32.eqz if i32.const 0 - i32.const 3136 + i32.const 1168 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -416,13 +194,13 @@ i32.const 1 else local.get $1 - i32.const 3552 + i32.const 1584 i32.load i32.gt_u if - i32.const 3264 - i32.const 3328 - i32.const 21 + i32.const 1296 + i32.const 1360 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -430,7 +208,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3556 + i32.const 1588 i32.add i32.load i32.const 32 @@ -501,7 +279,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -515,7 +293,7 @@ i32.lt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -561,7 +339,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -644,7 +422,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -658,7 +436,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -719,7 +497,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -752,7 +530,7 @@ i32.lt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -767,7 +545,7 @@ i32.ne if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -818,7 +596,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -890,7 +668,7 @@ i64.lt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -915,7 +693,7 @@ i32.gt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -942,7 +720,7 @@ i32.gt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1014,10 +792,10 @@ if unreachable end - i32.const 36352 + i32.const 34384 i32.const 0 i32.store - i32.const 37920 + i32.const 35952 i32.const 0 i32.store loop $for-loop|0 @@ -1028,7 +806,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36352 + i32.const 34384 i32.add i32.const 0 i32.store offset=4 @@ -1046,7 +824,7 @@ i32.add i32.const 2 i32.shl - i32.const 36352 + i32.const 34384 i32.add i32.const 0 i32.store offset=96 @@ -1064,21 +842,21 @@ br $for-loop|0 end end - i32.const 36352 - i32.const 37924 + i32.const 34384 + i32.const 35956 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36352 + i32.const 34384 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 36348 + i32.const 34380 i32.lt_u if return @@ -1109,7 +887,7 @@ end if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1206,7 +984,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36348 + i32.const 34380 i32.lt_u if local.get $0 @@ -1295,14 +1073,14 @@ i32.ne if i32.const 0 - i32.const 3136 + i32.const 1168 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36348 + i32.const 34380 i32.lt_u if local.get $0 @@ -1394,7 +1172,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1446,7 +1224,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1476,8 +1254,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3072 - i32.const 3408 + i32.const 1104 + i32.const 1440 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1579,7 +1357,7 @@ i32.eqz if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1594,7 +1372,7 @@ i32.gt_u if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1613,7 +1391,7 @@ i32.and if i32.const 0 - i32.const 3408 + i32.const 1440 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1673,32 +1451,21 @@ end local.get $1 ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 3072 - i32.const 3136 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$68 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1708,9 +1475,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$68 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1733,41 +1500,39 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 16 - i32.add + i32.const 32 call $~lib/rt/tlsf/allocateBlock - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 + local.tee $1 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 16 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $3 - local.get $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $2 - local.get $3 + local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $0 + local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1775,14 +1540,13 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 - i32.const 0 + local.tee $0 + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + v128.store align=1 local.get $0 - memory.fill - local.get $1 ) (func $simd/test_v128 (local $0 i32) @@ -1824,7 +1588,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 71 i32.const 5 call $~lib/builtins/abort @@ -1853,7 +1617,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 81 i32.const 5 call $~lib/builtins/abort @@ -1882,7 +1646,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 91 i32.const 5 call $~lib/builtins/abort @@ -1911,7 +1675,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 101 i32.const 5 call $~lib/builtins/abort @@ -1940,7 +1704,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 111 i32.const 5 call $~lib/builtins/abort @@ -1969,7 +1733,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 121 i32.const 5 call $~lib/builtins/abort @@ -1999,7 +1763,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 192 i32.const 5 call $~lib/builtins/abort @@ -2030,7 +1794,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 200 i32.const 5 call $~lib/builtins/abort @@ -2046,7 +1810,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 202 i32.const 5 call $~lib/builtins/abort @@ -2062,7 +1826,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 204 i32.const 5 call $~lib/builtins/abort @@ -2078,7 +1842,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 206 i32.const 5 call $~lib/builtins/abort @@ -2093,7 +1857,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 208 i32.const 5 call $~lib/builtins/abort @@ -2120,7 +1884,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 215 i32.const 5 call $~lib/builtins/abort @@ -2135,7 +1899,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 217 i32.const 5 call $~lib/builtins/abort @@ -2150,7 +1914,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 219 i32.const 5 call $~lib/builtins/abort @@ -2165,7 +1929,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 221 i32.const 5 call $~lib/builtins/abort @@ -2180,7 +1944,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 223 i32.const 5 call $~lib/builtins/abort @@ -2337,7 +2101,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3580 + i32.const 1612 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2346,34 +2110,34 @@ memory.size i32.const 16 i32.shl - i32.const 36348 + i32.const 34380 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3188 - i32.const 3184 + i32.const 1220 + i32.const 1216 i32.store - i32.const 3192 - i32.const 3184 + i32.const 1224 + i32.const 1216 i32.store - i32.const 3184 + i32.const 1216 global.set $~lib/rt/itcms/pinSpace - i32.const 3220 - i32.const 3216 + i32.const 1252 + i32.const 1248 i32.store - i32.const 3224 - i32.const 3216 + i32.const 1256 + i32.const 1248 i32.store - i32.const 3216 + i32.const 1248 global.set $~lib/rt/itcms/toSpace - i32.const 3364 - i32.const 3360 + i32.const 1396 + i32.const 1392 i32.store - i32.const 3368 - i32.const 3360 + i32.const 1400 + i32.const 1392 i32.store - i32.const 3360 + i32.const 1392 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2381,14 +2145,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3580 + i32.const 1612 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 16 i32.const 1 call $~lib/rt/itcms/__new local.tee $3 @@ -2397,7 +2160,6 @@ v128.store align=1 local.get $3 i32.store - i32.const 16 i32.const 4 call $~lib/rt/itcms/__new local.tee $4 @@ -2409,7 +2171,7 @@ i32.eqz if i32.const 0 - i32.const 3136 + i32.const 1168 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2476,7 +2238,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3580 + i32.const 1612 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2489,9 +2251,9 @@ i32.load offset=12 i32.eqz if - i32.const 3264 - i32.const 3472 - i32.const 114 + i32.const 1296 + i32.const 1504 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2511,7 +2273,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 5 i32.const 3 call $~lib/builtins/abort @@ -2562,7 +2324,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 609 i32.const 5 call $~lib/builtins/abort @@ -2576,7 +2338,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 614 i32.const 5 call $~lib/builtins/abort @@ -2614,7 +2376,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 790 i32.const 5 call $~lib/builtins/abort @@ -2628,7 +2390,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 795 i32.const 5 call $~lib/builtins/abort @@ -2660,7 +2422,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 862 i32.const 5 call $~lib/builtins/abort @@ -2674,7 +2436,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 867 i32.const 5 call $~lib/builtins/abort @@ -2688,212 +2450,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36368 - i32.const 36416 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3580 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3580 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$152 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1168 - local.set $0 - br $__inlined_func$~lib/string/String#concat$152 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36368 - i32.const 36416 + i32.const 34400 + i32.const 34448 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3580 + i32.const 1612 i32.lt_s if - i32.const 36368 - i32.const 36416 + i32.const 34400 + i32.const 34448 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1104 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1136 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1200 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1200 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3008 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array~visit (param $0 i32) global.get $~lib/memory/__stack_pointer @@ -2901,11 +2498,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3580 + i32.const 1612 i32.lt_s if - i32.const 36368 - i32.const 36416 + i32.const 34400 + i32.const 34448 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/static-this.debug.wat b/tests/compiler/static-this.debug.wat index 1b7c811126..0fdcd1a223 100644 --- a/tests/compiler/static-this.debug.wat +++ b/tests/compiler/static-this.debug.wat @@ -1,58 +1,15 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $static-this/Foo.bar (mut i32) (i32.const 42)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -61,2663 +18,14 @@ global.get $static-this/Foo.bar return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $start:static-this - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $static-this/Foo.getBar i32.const 42 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -2732,92 +40,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2826,322 +58,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/static-this.release.wat b/tests/compiler/static-this.release.wat index 6d1c8b8f04..0f18b92259 100644 --- a/tests/compiler/static-this.release.wat +++ b/tests/compiler/static-this.release.wat @@ -1,78 +1,6 @@ (module - (type $0 (func)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s") (export "memory" (memory $0)) - (start $~start) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/std/array-access.debug.wat b/tests/compiler/std/array-access.debug.wat index 27b1c002b2..da51225e9e 100644 --- a/tests/compiler/std/array-access.debug.wat +++ b/tests/compiler/std/array-access.debug.wat @@ -1,61 +1,26 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32 i32 i32) (result i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $12 (func (param i32 i32 i32 i32))) - (type $13 (func (param i32 i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2560)) - (global $~lib/memory/__data_end i32 (i32.const 2600)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35368)) - (global $~lib/memory/__heap_base i32 (i32.const 35368)) + (global $~lib/memory/__data_end i32 (i32.const 284)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33052)) + (global $~lib/memory/__heap_base i32 (i32.const 33052)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $20 (i32.const 2428) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2560) "\t\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A\00\00\02A\00\00\02A\00\00\02A\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $2 (i32.const 124) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\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 "memory" (memory $0)) @@ -65,2643 +30,10 @@ (export "stringArrayArrayPropertyAccess" (func $export:std/array-access/stringArrayArrayPropertyAccess)) (export "stringArrayArrayMethodCall" (func $export:std/array-access/stringArrayArrayMethodCall)) (export "functionArrayElementCall" (func $export:std/array-access/functionArrayElementCall)) - (start $~start) (func $~lib/array/Array<~lib/array/Array>#get:length_ (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/array/Array<~lib/array/Array>#get:dataStart (param $this i32) (result i32) local.get $this i32.load offset=4 @@ -2722,6 +54,19 @@ local.get $this i32.load offset=4 ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -2835,592 +180,142 @@ i32.load offset=4 ) (func $~lib/array/Array<%28i32%29=>i32>#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/array/Array<%28i32%29=>i32>#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~start - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 35392 - i32.const 35440 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array<~lib/array/Array>#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) - (local $3 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 $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array<~lib/array/Array>#get:length_ - i32.ge_u - if - i32.const 320 - i32.const 2400 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array<~lib/array/Array>#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $value - i32.store offset=4 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $value - i32.eqz + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array<%28i32%29=>i32>#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s if - i32.const 2448 - i32.const 2400 - i32.const 118 - i32.const 40 + i32.const 33072 + i32.const 33120 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $value - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) - (local $3 i32) + (func $export:std/array-access/i32ArrayArrayElementAccess (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 $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length_ - i32.ge_u - if - i32.const 320 - i32.const 2400 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store - local.get $3 - call $~lib/array/Array#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - local.get $value - local.set $3 + local.get $0 + call $std/array-access/i32ArrayArrayElementAccess + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $1 ) - (func $std/array-access/i32ArrayArrayElementAccess (param $a i32) (result i32) + (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $a - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - i32.const 1 - call $~lib/array/Array#__get + local.get $0 + call $std/array-access/stringArrayPropertyAccess local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - return ) - (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) - (local $3 i32) + (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array<~lib/string/String>#get:length_ - i32.ge_u - if - i32.const 320 - i32.const 2400 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store - local.get $3 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $value - i32.store offset=4 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $value - i32.eqz - if - i32.const 2448 - i32.const 2400 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - local.get $value - local.set $3 + local.get $0 + call $std/array-access/stringArrayMethodCall + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $1 ) - (func $std/array-access/stringArrayPropertyAccess (param $a i32) (result i32) + (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $a - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/string/String#get:length + local.get $0 + call $std/array-access/stringArrayArrayPropertyAccess local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - return ) - (func $~lib/string/String#startsWith (param $this i32) (param $search i32) (param $start i32) (result i32) - (local $len i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $searchStart i32) - (local $searchLength i32) - (local $10 i32) + (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $0 i32.store - local.get $10 - call $~lib/string/String#get:length - local.set $len - local.get $start - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $6 - local.get $len - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - local.set $searchStart - local.get $search - local.set $10 + local.get $0 + call $std/array-access/stringArrayArrayMethodCall + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - call $~lib/string/String#get:length - local.set $searchLength - local.get $searchLength - local.get $searchStart + i32.const 4 i32.add - local.get $len - i32.gt_s - if - i32.const 0 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return - end - local.get $this - local.set $10 + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $export:std/array-access/functionArrayElementCall (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - local.get $searchStart - local.get $search - local.set $10 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - i32.const 0 - local.get $searchLength - call $~lib/util/string/compareImpl - i32.eqz - local.set $10 + local.get $0 + i32.store + local.get $0 + call $std/array-access/functionArrayElementCall + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - return + local.get $1 ) - (func $std/array-access/stringArrayMethodCall (param $a i32) (result i32) - (local $1 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3429,31 +324,29 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $a - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $1 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store - local.get $1 - i32.const 96 - i32.const 0 - call $~lib/string/String#startsWith - local.set $1 + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - return ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get (param $this i32) (param $index i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (param $this i32) (param $index i32) (result i32) (local $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -3471,12 +364,12 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:length_ + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.ge_u if - i32.const 320 - i32.const 2400 - i32.const 114 + i32.const 32 + i32.const 96 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3488,7 +381,7 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:dataStart + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl @@ -3504,9 +397,9 @@ local.get $value i32.eqz if - i32.const 2448 - i32.const 2400 - i32.const 118 + i32.const 144 + i32.const 96 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -3520,93 +413,92 @@ local.get $3 return ) - (func $std/array-access/stringArrayArrayPropertyAccess (param $a i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 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 $a - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 i32.const 0 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get - local.set $1 + i32.store + local.get $index + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $1 + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 116 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 - call $~lib/string/String#get:length - local.set $1 + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 return ) - (func $std/array-access/stringArrayArrayMethodCall (param $a i32) (result i32) + (func $std/array-access/i32ArrayArrayElementAccess (param $a i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $a local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - i32.const 0 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#__get local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - i32.const 96 - i32.const 0 - call $~lib/string/String#startsWith + i32.const 1 + call $~lib/array/Array#__get local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 return ) - (func $~lib/array/Array<%28i32%29=>i32>#__get (param $this i32) (param $index i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) (local $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -3624,12 +516,12 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<%28i32%29=>i32>#get:length_ + call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if - i32.const 320 - i32.const 2400 - i32.const 114 + i32.const 32 + i32.const 96 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3641,7 +533,7 @@ local.get $3 i32.store local.get $3 - call $~lib/array/Array<%28i32%29=>i32>#get:dataStart + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $index i32.const 2 i32.shl @@ -3657,700 +549,399 @@ local.get $value i32.eqz if - i32.const 2448 - i32.const 2400 - i32.const 118 + i32.const 144 + i32.const 96 + i32.const 120 i32.const 40 - call $~lib/builtins/abort - unreachable - end - local.get $value - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - ) - (func $std/array-access/functionArrayElementCall (param $a 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 - i32.const 123 - i32.const 1 - global.set $~argumentsLength - local.get $a - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 0 - call $~lib/array/Array<%28i32%29=>i32>#__get - i32.load - call_indirect (type $0) - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $export:std/array-access/i32ArrayArrayElementAccess (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 - local.get $0 - i32.store - local.get $0 - call $std/array-access/i32ArrayArrayElementAccess - local.set $1 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + return ) - (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) + (func $std/array-access/stringArrayPropertyAccess (param $a i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $std/array-access/stringArrayPropertyAccess + i64.const 0 + i64.store + local.get $a local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - ) - (func $export:std/array-access/stringArrayMethodCall (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 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 - call $std/array-access/stringArrayMethodCall + local.get $1 + call $~lib/string/String#get:length local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) - (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/string/String#startsWith (param $this i32) (param $search i32) (param $start i32) (result i32) + (local $len i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $searchStart i32) + (local $searchLength i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store + local.get $this + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 i32.store - local.get $0 - call $std/array-access/stringArrayArrayPropertyAccess - local.set $1 + local.get $10 + call $~lib/string/String#get:length + local.set $len + local.get $start + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $6 + local.get $len + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $searchStart + local.get $search + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $10 + i32.store + local.get $10 + call $~lib/string/String#get:length + local.set $searchLength + local.get $searchLength + local.get $searchStart i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $export:std/array-access/stringArrayArrayMethodCall (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 + local.get $len + i32.gt_s + if + i32.const 0 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $this + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $10 i32.store - local.get $0 - call $std/array-access/stringArrayArrayMethodCall - local.set $1 + local.get $10 + local.get $searchStart + local.get $search + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $10 + i32.store offset=4 + local.get $10 + i32.const 0 + local.get $searchLength + call $~lib/util/string/compareImpl + i32.eqz + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $10 + return ) - (func $export:std/array-access/functionArrayElementCall (param $0 i32) (result i32) + (func $std/array-access/stringArrayMethodCall (param $a i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $std/array-access/functionArrayElementCall + i64.const 0 + i64.store + local.get $a 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/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2448 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array<~lib/array/Array>#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit - ) - (func $~lib/array/Array<~lib/string/String>#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit - ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>~visit (param $0 i32) (param $1 i32) - local.get $0 + i32.store offset=4 local.get $1 - call $~lib/object/Object~visit - local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__visit - ) - (func $~lib/array/Array<%28i32%29=>i32>#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array<%28i32%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 + i32.store local.get $1 - call $~lib/object/Object~visit - local.get $0 + i32.const 272 + i32.const 0 + call $~lib/string/String#startsWith + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - call $~lib/array/Array<%28i32%29=>i32>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/array/Array<%28i32%29=>i32> - block $~lib/array/Array<~lib/array/Array<~lib/string/String>> - block $~lib/array/Array<~lib/string/String> - block $~lib/array/Array<~lib/array/Array> - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/string/String> $~lib/array/Array<~lib/array/Array<~lib/string/String>> $~lib/array/Array<%28i32%29=>i32> $invalid - end - return - 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~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>~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/array/Array<~lib/array/Array<~lib/string/String>>~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<%28i32%29=>i32>~visit - return - end - unreachable + return ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $2 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:length_ + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 116 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store + local.get $3 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop i32.const 0 + i32.eqz drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $value + i32.eqz + if + i32.const 144 + i32.const 96 + i32.const 120 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + return ) - (func $~lib/array/Array<~lib/array/Array>#__visit (param $this i32) (param $cookie i32) - (local $cur i32) - (local $end i32) - (local $val i32) - (local $5 i32) + (func $std/array-access/stringArrayArrayPropertyAccess (param $a i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 - i32.const 1 - drop - local.get $this - local.set $5 + i32.store offset=8 + local.get $a + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/array/Array>#get:dataStart - local.set $cur - local.get $cur - local.get $this - local.set $5 + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/array/Array>#get:length_ - i32.const 2 - i32.shl - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - i32.load - local.set $val - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $this - local.set $5 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store - local.get $5 - call $~lib/array/Array<~lib/array/Array>#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $1 + call $~lib/string/String#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + return ) - (func $~lib/array/Array<~lib/string/String>#__visit (param $this i32) (param $cookie i32) - (local $cur i32) - (local $end i32) - (local $val i32) - (local $5 i32) + (func $std/array-access/stringArrayArrayMethodCall (param $a i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 - i32.const 1 - drop - local.get $this - local.set $5 + i32.store offset=8 + local.get $a + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.set $cur - local.get $cur - local.get $this - local.set $5 + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/string/String>#get:length_ - i32.const 2 - i32.shl - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - i32.load - local.set $val - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $this - local.set $5 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store - local.get $5 - call $~lib/array/Array<~lib/string/String>#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $1 + i32.const 272 + i32.const 0 + call $~lib/string/String#startsWith + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + return ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__visit (param $this i32) (param $cookie i32) - (local $cur i32) - (local $end i32) - (local $val i32) - (local $5 i32) + (func $~lib/array/Array<%28i32%29=>i32>#__get (param $this i32) (param $index i32) (result i32) + (local $value i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 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 + i64.const 0 + i64.store + local.get $index local.get $this - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store - local.get $5 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:dataStart - local.set $cur - local.get $cur + local.get $3 + call $~lib/array/Array<%28i32%29=>i32>#get:length_ + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 116 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $this - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store - local.get $5 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:length_ + local.get $3 + call $~lib/array/Array<%28i32%29=>i32>#get:dataStart + local.get $index i32.const 2 i32.shl i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - i32.load - local.set $val - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 - end + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 144 + i32.const 96 + i32.const 120 + i32.const 40 + call $~lib/builtins/abort + unreachable end - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $value + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + return ) - (func $~lib/array/Array<%28i32%29=>i32>#__visit (param $this i32) (param $cookie i32) - (local $cur i32) - (local $end i32) - (local $val i32) - (local $5 i32) + (func $std/array-access/functionArrayElementCall (param $a i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4359,61 +950,25 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 123 i32.const 1 - drop - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<%28i32%29=>i32>#get:dataStart - local.set $cur - local.get $cur - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<%28i32%29=>i32>#get:length_ - i32.const 2 - i32.shl - i32.add - local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if - local.get $cur - i32.load - local.set $val - local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 - end - end - local.get $this - local.set $5 + global.set $~argumentsLength + local.get $a + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store - local.get $5 - call $~lib/array/Array<%28i32%29=>i32>#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $1 + i32.const 0 + call $~lib/array/Array<%28i32%29=>i32>#__get + i32.load + call_indirect (type $0) + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + return ) ) diff --git a/tests/compiler/std/array-access.release.wat b/tests/compiler/std/array-access.release.wat index 8a7e0cf83f..7903c25b64 100644 --- a/tests/compiler/std/array-access.release.wat +++ b/tests/compiler/std/array-access.release.wat @@ -1,60 +1,18 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36392)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34076)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $20 (i32.const 3452) "|") - (data $20.1 (i32.const 3464) "\02\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 $21 (i32.const 3584) "\t\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A\00\00\02A\00\00\02A\00\00\02A") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $1 (i32.const 1100) ",") + (data $1.1 (i32.const 1112) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $2 (i32.const 1148) "|") + (data $2.1 (i32.const 1160) "\02\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 $3 (i32.const 1276) "\1c") + (data $3.1 (i32.const 1288) "\02") (table $0 1 1 funcref) (export "memory" (memory $0)) (export "i32ArrayArrayElementAccess" (func $export:std/array-access/i32ArrayArrayElementAccess)) @@ -63,2127 +21,6 @@ (export "stringArrayArrayPropertyAccess" (func $export:std/array-access/stringArrayArrayPropertyAccess)) (export "stringArrayArrayMethodCall" (func $export:std/array-access/stringArrayArrayMethodCall)) (export "functionArrayElementCall" (func $export:std/array-access/functionArrayElementCall)) - (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 3472 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$157 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36392 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$157 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3584 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3588 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36400 - i32.const 0 - i32.store - i32.const 37968 - 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 36400 - 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 36400 - 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 36400 - i32.const 37972 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36400 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36392 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36392 - 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 - local.tee $0 - i32.const 36392 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3624 - i32.lt_s - if - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36392 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3624 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3624 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$162 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$162 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3624 - i32.lt_s - if - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result 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 3624 - i32.lt_s - if - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 3424 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 offset=4 - local.get $0 - i32.eqz - if - i32.const 3472 - i32.const 3424 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String#startsWith (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3624 - i32.lt_s - if - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 1120 - i32.store - i32.const 1116 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 1120 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 1120 - i32.store offset=4 - i32.const 1 - local.get $0 - local.tee $1 - i32.const 7 - i32.and - local.get $2 - local.tee $0 - i32.const 4 - i32.lt_u - select - i32.eqz - if - loop $do-loop|0 - local.get $1 - i64.load - local.get $3 - i64.load - i64.eq - if - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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$87 - loop $while-continue|1 - local.get $0 - local.tee $2 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - if - local.get $1 - i32.load16_u - local.tee $4 - local.get $3 - i32.load16_u - local.tee $5 - i32.sub - local.set $2 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$87 - local.get $1 - i32.const 2 - i32.add - local.set $1 - local.get $3 - i32.const 2 - i32.add - local.set $3 - br $while-continue|1 - end - end - i32.const 0 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.eqz - ) (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2191,7 +28,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2202,7 +39,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2223,7 +60,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2237,9 +74,9 @@ i32.const 1 i32.le_u if - i32.const 1344 - i32.const 3424 - i32.const 114 + i32.const 1056 + i32.const 1120 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2264,8 +101,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36416 - i32.const 36464 + i32.const 34096 + i32.const 34144 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2278,7 +115,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2289,7 +126,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2321,8 +158,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36416 - i32.const 36464 + i32.const 34096 + i32.const 34144 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2335,7 +172,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2346,7 +183,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2374,8 +211,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36416 - i32.const 36464 + i32.const 34096 + i32.const 34144 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2388,7 +225,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2399,7 +236,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2441,8 +278,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36416 - i32.const 36464 + i32.const 34096 + i32.const 34144 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2455,7 +292,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2466,7 +303,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2504,8 +341,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36416 - i32.const 36464 + i32.const 34096 + i32.const 34144 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2518,7 +355,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2529,7 +366,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3624 + i32.const 1308 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2546,130 +383,246 @@ call_indirect (type $0) unreachable end - i32.const 36416 - i32.const 36464 + i32.const 34096 + i32.const 34144 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 1308 + i32.lt_s + if + i32.const 34096 + i32.const 34144 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result 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 1308 + i32.lt_s + if + i32.const 34096 + i32.const 34144 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1056 + i32.const 1120 + i32.const 116 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 offset=4 + local.get $0 + i32.eqz + if + i32.const 1168 + i32.const 1120 + i32.const 120 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/string/String#startsWith (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - global.get $~lib/memory/__stack_pointer + (local $4 i32) + (local $5 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 1308 + i32.lt_s + if + i32.const 34096 + i32.const 34144 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 1296 + i32.store + i32.const 1292 + i32.load + i32.const 1 + i32.shr_u + local.tee $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1296 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 1296 + i32.store offset=4 + i32.const 1 + local.get $0 + local.tee $1 + i32.const 7 + i32.and + local.get $2 + local.tee $0 + i32.const 4 + i32.lt_u + select + i32.eqz + if + loop $do-loop|0 + local.get $1 + i64.load + local.get $3 + i64.load + i64.eq + if + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $0 i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3624 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.ge_u + br_if $do-loop|0 end - unreachable end - 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 3624 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $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 + end + block $__inlined_func$~lib/util/string/compareImpl$21 + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 local.get $2 - i32.lt_u if local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end + i32.load16_u + local.tee $4 + local.get $3 + i32.load16_u + local.tee $5 + i32.sub + local.set $2 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$21 local.get $1 - i32.const 4 + i32.const 2 i32.add local.set $1 - br $while-continue|0 + local.get $3 + i32.const 2 + i32.add + local.set $3 + br $while-continue|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 0 + local.set $2 end - i32.const 36416 - i32.const 36464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.eqz ) ) diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index e6d70faeba..314c1d5b8d 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -1,22 +1,25 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func)) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32 i32))) + (type $4 (func)) + (type $5 (func (param i32 i32) (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64) (result i32))) (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32) (result i32))) - (type $13 (func (param i32 i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (type $10 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/array-literal/staticArrayI8 i32 (i32.const 64)) (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $std/array-literal/staticArrayI32 i32 (i32.const 320)) + (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 400)) + (global $std/array-literal/i (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)) @@ -28,49 +31,34 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $std/array-literal/staticArrayI32 i32 (i32.const 2624)) - (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 2704)) - (global $std/array-literal/i (mut i32) (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $std/array-literal/dynamicArrayI8 (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayI32 (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayRef (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayRefWithCtor (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2784)) - (global $~lib/memory/__data_end i32 (i32.const 2828)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35596)) - (global $~lib/memory/__heap_base i32 (i32.const 35596)) + (global $~lib/rt/__rtti_base i32 (i32.const 816)) + (global $~lib/memory/__data_end i32 (i32.const 860)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33628)) + (global $~lib/memory/__heap_base i32 (i32.const 33628)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\00\01\02\00\00\00\00\00\00\00\00\00") (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00 \00\00\00 \00\00\00\03\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $3 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $4 (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 444) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 496) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 620) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 748) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 844) "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 $18 (i32.const 1244) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2300) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2396) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2460) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00\00\00\00\00") - (data $22 (i32.const 2524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $23 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00") - (data $24 (i32.const 2604) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\10\00\00\00 \n\00\00 \n\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2652) "\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 $26 (i32.const 2684) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\10\00\00\00p\n\00\00p\n\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2732) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $28 (i32.const 2784) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00B\08\00\00\02\t\00\00 \00\00\00\02A\00\00 \00\00\00\02A\00\00") + (data $2 (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00\00\00\00\00") + (data $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 220) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $5 (i32.const 268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00") + (data $6 (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\10\00\00\00 \01\00\00 \01\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "\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 $8 (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\10\00\00\00p\01\00\00p\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 492) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 560) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 592) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 620) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 672) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 764) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $17 (i32.const 816) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00B\08\00\00\02\t\00\00 \00\00\00\02A\00\00 \00\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -79,18 +67,17 @@ local.get $this i32.load offset=12 ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) local.get $this - i32.load offset=16 + i32.load offset=4 ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -156,7 +143,7 @@ i32.eqz if i32.const 0 - i32.const 272 + i32.const 512 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -226,7 +213,7 @@ i32.eqz if i32.const 0 - i32.const 272 + i32.const 512 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -243,7 +230,7 @@ i32.eqz if i32.const 0 - i32.const 272 + i32.const 512 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -273,9 +260,9 @@ i32.load i32.gt_u if - i32.const 400 - i32.const 464 - i32.const 21 + i32.const 176 + i32.const 640 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -342,7 +329,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 272 + i32.const 512 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -494,7 +481,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -514,7 +501,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -577,7 +564,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -730,7 +717,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -747,7 +734,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -836,7 +823,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -879,7 +866,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -897,7 +884,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -965,7 +952,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1082,7 +1069,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1128,7 +1115,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1160,7 +1147,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1404,7 +1391,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1624,7 +1611,7 @@ i32.eqz if i32.const 0 - i32.const 272 + i32.const 512 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1735,8 +1722,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 208 - i32.const 544 + i32.const 448 + i32.const 720 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1838,7 +1825,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1909,7 +1896,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2066,7 +2053,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2181,7 +2168,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2201,7 +2188,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 720 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2249,8 +2236,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 208 - i32.const 272 + i32.const 448 + i32.const 512 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2295,434 +2282,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 844 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 844 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 844 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 844 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1264 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1264 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2320 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2320 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/array/Array#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) (func $~lib/rt/__newBuffer (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) local.get $size @@ -2754,7 +2313,7 @@ i32.eqz if i32.const 0 - i32.const 272 + i32.const 512 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2957,8 +2516,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35616 - i32.const 35664 + i32.const 33648 + i32.const 33696 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2990,12 +2549,8 @@ local.get $1 return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3004,196 +2559,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 176 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 112 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 144 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 608 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 608 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2416 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3216,9 +2602,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 400 - i32.const 2544 - i32.const 114 + i32.const 176 + i32.const 240 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3293,9 +2679,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 400 - i32.const 2544 - i32.const 114 + i32.const 176 + i32.const 240 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3364,8 +2750,8 @@ i32.shr_u i32.gt_u if - i32.const 2752 - i32.const 2544 + i32.const 784 + i32.const 240 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -3429,6 +2815,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -3467,9 +2857,9 @@ i32.const 0 i32.lt_s if - i32.const 400 - i32.const 2544 - i32.const 130 + i32.const 176 + i32.const 240 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3536,9 +2926,9 @@ i32.const 0 i32.lt_s if - i32.const 400 - i32.const 2544 - i32.const 130 + i32.const 176 + i32.const 240 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3643,9 +3033,9 @@ i32.const 0 i32.lt_s if - i32.const 400 - i32.const 2544 - i32.const 130 + i32.const 176 + i32.const 240 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3683,6 +3073,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -3741,9 +3135,9 @@ i32.const 0 i32.lt_s if - i32.const 400 - i32.const 2544 - i32.const 130 + i32.const 176 + i32.const 240 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3781,6 +3175,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -3834,23 +3232,6 @@ i32.const 0 i32.const 24 memory.fill - 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 320 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 352 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 496 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $std/array-literal/staticArrayI8 local.set $8 global.get $~lib/memory/__stack_pointer @@ -3863,7 +3244,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 2 i32.const 1 call $~lib/builtins/abort @@ -3882,7 +3263,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 3 i32.const 1 call $~lib/builtins/abort @@ -3901,7 +3282,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 4 i32.const 1 call $~lib/builtins/abort @@ -3920,7 +3301,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -3938,7 +3319,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -3957,7 +3338,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -3976,7 +3357,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -3995,7 +3376,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -4013,12 +3394,29 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end + 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 560 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 592 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 672 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 0 @@ -4061,7 +3459,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -4080,7 +3478,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -4099,7 +3497,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -4118,7 +3516,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -4168,7 +3566,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -4187,7 +3585,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -4206,7 +3604,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -4225,7 +3623,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -4268,7 +3666,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -4311,7 +3709,7 @@ i32.eqz if i32.const 0 - i32.const 2480 + i32.const 112 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -4355,153 +3753,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 640 - i32.const 768 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 832 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) (local $buffer i32) @@ -4533,6 +3784,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -4662,19 +3917,13 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 400 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2752 + i32.const 176 local.get $0 call $~lib/rt/itcms/__visit - i32.const 208 + i32.const 784 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1264 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2320 + i32.const 448 local.get $0 call $~lib/rt/itcms/__visit ) @@ -4803,6 +4052,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -4829,6 +4082,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -4858,6 +4115,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -4928,6 +4189,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index 80443edd13..e764ccf032 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1,14 +1,17 @@ (module (type $0 (func (param i32))) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32 i32 i32))) - (type $3 (func)) + (type $1 (func (param i32 i32 i32))) + (type $2 (func)) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func (result i32))) - (type $5 (func (param i32 i32))) - (type $6 (func (param i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32))) (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32) (result i32))) (type $9 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 1424)) + (global $std/array-literal/i (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)) @@ -19,64 +22,41 @@ (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/array-literal/emptyArrayI32 (mut i32) (i32.const 3728)) - (global $std/array-literal/i (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayI8 (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayI32 (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayRef (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayRefWithCtor (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36620)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34652)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\01\00\00\00\03\00\00\00\00\01\02") (data $1 (i32.const 1068) ",") (data $1.1 (i32.const 1080) "\04\00\00\00\10\00\00\00 \04\00\00 \04\00\00\03\00\00\00\03") - (data $2 (i32.const 1116) "\1c") - (data $2.1 (i32.const 1128) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $3 (i32.const 1148) "\1c") - (data $3.1 (i32.const 1160) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $4 (i32.const 1180) "\1c") - (data $4.1 (i32.const 1192) "\02") - (data $5 (i32.const 1212) "<") - (data $5.1 (i32.const 1224) "\02\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 $6 (i32.const 1276) "<") - (data $6.1 (i32.const 1288) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $9 (i32.const 1404) "<") - (data $9.1 (i32.const 1416) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $10 (i32.const 1468) ",") - (data $10.1 (i32.const 1480) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $12 (i32.const 1548) "<") - (data $12.1 (i32.const 1560) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $13 (i32.const 1612) "\1c") - (data $13.1 (i32.const 1624) "\02\00\00\00\02\00\00\00:") - (data $14 (i32.const 1644) "|") - (data $14.1 (i32.const 1656) "\02\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 $15 (i32.const 1772) "<") - (data $15.1 (i32.const 1784) "\02\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 $16 (i32.const 1836) "\1c") - (data $16.1 (i32.const 1848) "\02\00\00\00\02\00\00\000") - (data $17 (i32.const 1868) "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 $18 (i32.const 2268) "\1c\04") - (data $18.1 (i32.const 2280) "\02\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 $19 (i32.const 3324) "\\") - (data $19.1 (i32.const 3336) "\02\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 $20 (i32.const 3420) "<") - (data $20.1 (i32.const 3432) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $21 (i32.const 3484) "<") - (data $21.1 (i32.const 3496) "\02\00\00\00(\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") - (data $22 (i32.const 3548) ",") - (data $22.1 (i32.const 3560) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $23 (i32.const 3596) "\1c") - (data $23.1 (i32.const 3608) "\01\00\00\00\0c\00\00\00\00\00\00\00\01\00\00\00\02") - (data $24 (i32.const 3628) ",") - (data $24.1 (i32.const 3640) "\05\00\00\00\10\00\00\00 \0e\00\00 \0e\00\00\0c\00\00\00\03") - (data $25 (i32.const 3676) "\1c") - (data $25.1 (i32.const 3688) "\01") - (data $26 (i32.const 3708) ",") - (data $26.1 (i32.const 3720) "\05\00\00\00\10\00\00\00p\0e\00\00p\0e") - (data $27 (i32.const 3756) ",") - (data $27.1 (i32.const 3768) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $28 (i32.const 3808) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00B\08\00\00\02\t\00\00 \00\00\00\02A\00\00 \00\00\00\02A") + (data $2 (i32.const 1116) "<") + (data $2.1 (i32.const 1128) "\02\00\00\00(\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") + (data $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $4 (i32.const 1244) ",") + (data $4.1 (i32.const 1256) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $5 (i32.const 1292) "\1c") + (data $5.1 (i32.const 1304) "\01\00\00\00\0c\00\00\00\00\00\00\00\01\00\00\00\02") + (data $6 (i32.const 1324) ",") + (data $6.1 (i32.const 1336) "\05\00\00\00\10\00\00\00 \05\00\00 \05\00\00\0c\00\00\00\03") + (data $7 (i32.const 1372) "\1c") + (data $7.1 (i32.const 1384) "\01") + (data $8 (i32.const 1404) ",") + (data $8.1 (i32.const 1416) "\05\00\00\00\10\00\00\00p\05\00\00p\05") + (data $9 (i32.const 1452) "<") + (data $9.1 (i32.const 1464) "\02\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 $10 (i32.const 1516) "<") + (data $10.1 (i32.const 1528) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $13 (i32.const 1644) ",") + (data $13.1 (i32.const 1656) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $15 (i32.const 1724) "<") + (data $15.1 (i32.const 1736) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $16 (i32.const 1788) ",") + (data $16.1 (i32.const 1800) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $17 (i32.const 1840) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00B\08\00\00\02\t\00\00 \00\00\00\02A\00\00 \00\00\00\02A") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots @@ -84,7 +64,7 @@ (local $1 i32) i32.const 1088 call $~lib/rt/itcms/__visit - i32.const 3648 + i32.const 1344 call $~lib/rt/itcms/__visit global.get $std/array-literal/emptyArrayI32 local.tee $0 @@ -116,15 +96,11 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1424 + i32.const 1200 call $~lib/rt/itcms/__visit - i32.const 3776 + i32.const 1808 call $~lib/rt/itcms/__visit - i32.const 1232 - call $~lib/rt/itcms/__visit - i32.const 2288 - call $~lib/rt/itcms/__visit - i32.const 3344 + i32.const 1472 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -145,7 +121,7 @@ i32.ne if i32.const 0 - i32.const 1296 + i32.const 1536 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -178,7 +154,7 @@ i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1536 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -187,7 +163,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$167 + block $__inlined_func$~lib/rt/itcms/Object#unlink$155 local.get $0 i32.load offset=4 i32.const -4 @@ -199,19 +175,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36620 + i32.const 34652 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1536 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$167 + br $__inlined_func$~lib/rt/itcms/Object#unlink$155 end local.get $0 i32.load offset=8 @@ -219,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1536 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -248,13 +224,13 @@ i32.const 1 else local.get $1 - i32.const 3808 + i32.const 1840 i32.load i32.gt_u if - i32.const 1424 - i32.const 1488 - i32.const 21 + i32.const 1200 + i32.const 1664 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -262,7 +238,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3812 + i32.const 1844 i32.add i32.load i32.const 32 @@ -333,7 +309,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -347,7 +323,7 @@ i32.lt_u if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -393,7 +369,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -476,7 +452,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -490,7 +466,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -551,7 +527,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -584,7 +560,7 @@ i32.lt_u if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -599,7 +575,7 @@ i32.ne if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -650,7 +626,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -722,7 +698,7 @@ i64.lt_u if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -747,7 +723,7 @@ i32.gt_u if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -774,7 +750,7 @@ i32.gt_u if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -846,10 +822,10 @@ if unreachable end - i32.const 36624 + i32.const 34656 i32.const 0 i32.store - i32.const 38192 + i32.const 36224 i32.const 0 i32.store loop $for-loop|0 @@ -860,7 +836,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36624 + i32.const 34656 i32.add i32.const 0 i32.store offset=4 @@ -878,7 +854,7 @@ i32.add i32.const 2 i32.shl - i32.const 36624 + i32.const 34656 i32.add i32.const 0 i32.store offset=96 @@ -896,14 +872,14 @@ br $for-loop|0 end end - i32.const 36624 - i32.const 38196 + i32.const 34656 + i32.const 36228 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36624 + i32.const 34656 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -988,7 +964,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36620 + i32.const 34652 i32.lt_u if local.get $0 @@ -1077,14 +1053,14 @@ i32.ne if i32.const 0 - i32.const 1296 + i32.const 1536 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36620 + i32.const 34652 i32.lt_u if local.get $0 @@ -1107,7 +1083,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36620 + i32.const 34652 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1136,7 +1112,7 @@ end if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1220,7 +1196,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1272,7 +1248,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1304,8 +1280,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1232 - i32.const 1296 + i32.const 1472 + i32.const 1536 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1315,7 +1291,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1332,7 +1308,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1365,8 +1341,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1232 - i32.const 1568 + i32.const 1472 + i32.const 1744 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1468,7 +1444,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1483,7 +1459,7 @@ i32.gt_u if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1502,7 +1478,7 @@ i32.and if i32.const 0 - i32.const 1568 + i32.const 1744 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1607,204 +1583,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3852 - i32.lt_s - if - i32.const 36640 - i32.const 36688 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1856 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1868 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1868 - 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 1868 - 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 1868 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -1816,7 +1594,7 @@ i32.eqz if i32.const 0 - i32.const 1296 + i32.const 1536 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1873,11 +1651,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1896,205 +1674,40 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3852 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3852 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$172 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1200 - local.set $0 - br $__inlined_func$~lib/string/String#concat$172 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36640 - i32.const 36688 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1136 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1168 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1632 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1632 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3440 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2102,11 +1715,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2123,9 +1736,9 @@ i32.load offset=12 i32.ge_u if - i32.const 1424 - i32.const 3568 - i32.const 114 + i32.const 1200 + i32.const 1264 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2149,11 +1762,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2170,9 +1783,9 @@ i32.load offset=12 i32.ge_u if - i32.const 1424 - i32.const 3568 - i32.const 114 + i32.const 1200 + i32.const 1264 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2200,11 +1813,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2230,8 +1843,8 @@ i32.shr_u i32.gt_u if - i32.const 3776 - i32.const 3568 + i32.const 1808 + i32.const 1264 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -2240,7 +1853,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$155 + block $__inlined_func$~lib/rt/itcms/__renew$143 i32.const 1073741820 local.get $3 i32.const 1 @@ -2283,7 +1896,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$155 + br $__inlined_func$~lib/rt/itcms/__renew$143 end local.get $3 local.get $4 @@ -2332,11 +1945,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2357,9 +1970,9 @@ i32.const 0 i32.lt_s if - i32.const 1424 - i32.const 3568 - i32.const 130 + i32.const 1200 + i32.const 1264 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -2399,11 +2012,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2424,9 +2037,9 @@ i32.const 0 i32.lt_s if - i32.const 1424 - i32.const 3568 - i32.const 130 + i32.const 1200 + i32.const 1264 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -2470,7 +2083,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2491,7 +2104,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2520,8 +2133,8 @@ local.get $0 return end - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2534,11 +2147,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2559,9 +2172,9 @@ i32.const 0 i32.lt_s if - i32.const 1424 - i32.const 3568 - i32.const 130 + i32.const 1200 + i32.const 1264 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -2607,11 +2220,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2621,38 +2234,6 @@ i32.const 0 i32.const 24 memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 36620 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/pinSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/toSpace - i32.const 1524 - i32.const 1520 - i32.store - i32.const 1528 - i32.const 1520 - i32.store - i32.const 1520 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store @@ -2662,7 +2243,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 2 i32.const 1 call $~lib/builtins/abort @@ -2676,7 +2257,7 @@ call $~lib/array/Array#__get if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 3 i32.const 1 call $~lib/builtins/abort @@ -2692,7 +2273,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 4 i32.const 1 call $~lib/builtins/abort @@ -2708,68 +2289,68 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 5 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3648 + i32.const 1344 i32.store - i32.const 3648 + i32.const 1344 call $~lib/array/Array#get:length i32.const 3 i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 8 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3648 + i32.const 1344 i32.store - i32.const 3648 + i32.const 1344 i32.const 0 call $~lib/array/Array#__get if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 9 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3648 + i32.const 1344 i32.store - i32.const 3648 + i32.const 1344 i32.const 1 call $~lib/array/Array#__get i32.const 1 i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 10 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3648 + i32.const 1344 i32.store - i32.const 3648 + i32.const 1344 i32.const 2 call $~lib/array/Array#__get i32.const 2 i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -2783,12 +2364,44 @@ call $~lib/array/Array#get:length if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end + memory.size + i32.const 16 + i32.shl + i32.const 34652 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1588 + i32.const 1584 + i32.store + i32.const 1592 + i32.const 1584 + i32.store + i32.const 1584 + global.set $~lib/rt/itcms/pinSpace + i32.const 1620 + i32.const 1616 + i32.store + i32.const 1624 + i32.const 1616 + i32.store + i32.const 1616 + global.set $~lib/rt/itcms/toSpace + i32.const 1700 + i32.const 1696 + i32.store + i32.const 1704 + i32.const 1696 + i32.store + i32.const 1696 + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 0 @@ -2828,7 +2441,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -2843,7 +2456,7 @@ call $~lib/array/Array#__get if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -2860,7 +2473,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -2877,7 +2490,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -2924,7 +2537,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -2939,7 +2552,7 @@ call $~lib/array/Array#__get if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -2956,7 +2569,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -2973,7 +2586,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -3010,7 +2623,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -3047,7 +2660,7 @@ i32.ne if i32.const 0 - i32.const 3504 + i32.const 1136 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -3077,7 +2690,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 36620 + i32.const 34652 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -3124,11 +2737,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3178,11 +2791,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3209,11 +2822,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3242,11 +2855,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3852 + i32.const 1884 i32.lt_s if - i32.const 36640 - i32.const 36688 + i32.const 34672 + i32.const 34720 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index e671fc70f0..5aa2d94323 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -11,21 +11,21 @@ (type $9 (func (param i32 i32 i32 i32 i32 i32))) (type $10 (func (param i32))) (type $11 (func)) - (type $12 (func (param i64 i32) (result i32))) - (type $13 (func (result f64))) - (type $14 (func (param i32 f64 i32) (result i32))) - (type $15 (func (param i32 i64 i32))) + (type $12 (func (param i32 i32 i32 i32))) + (type $13 (func (param i64 i32) (result i32))) + (type $14 (func (result f64))) + (type $15 (func (param i32 f64 i32) (result i32))) (type $16 (func (param i64) (result i64))) - (type $17 (func (param i32 i32 i32) (result f32))) - (type $18 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $19 (func (param i32 i64) (result i32))) - (type $20 (func (param i32 i32 i32 i32))) + (type $17 (func (param i32 i64 i32))) + (type $18 (func (param i32 i32 i32) (result f32))) + (type $19 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $20 (func (param i32 i64) (result i32))) (type $21 (func (param i32 f32 i32 i32) (result i32))) (type $22 (func (param i32 f32 i32) (result i32))) (type $23 (func (param i32 i32 i64) (result i32))) (type $24 (func (result i32))) - (type $25 (func (param i32 i64 i32 i32))) - (type $26 (func (param i32 i32 f32 i32 i32))) + (type $25 (func (param i32 i32 f32 i32 i32))) + (type $26 (func (param i32 i64 i32 i32))) (type $27 (func (param i64))) (type $28 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $29 (func (param i32 f64) (result i32))) @@ -33,11 +33,14 @@ (type $31 (func (param i32 i32) (result f32))) (type $32 (func (param i32 i32) (result f64))) (type $33 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "env" "Math.random" (func $~lib/bindings/dom/Math.random (result f64))) (import "env" "seed" (func $~lib/builtins/seed (result f64))) (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -49,18 +52,18 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $std/array/arr (mut i32) (i32.const 0)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $std/array/i (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) - (global $std/array/charset i32 (i32.const 9200)) + (global $std/array/charset i32 (i32.const 9008)) (global $std/array/inputStabArr (mut i32) (i32.const 0)) (global $std/array/outputStabArr (mut i32) (i32.const 0)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) @@ -73,335 +76,318 @@ (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) (global $~lib/builtins/i64.MIN_VALUE i64 (i64.const -9223372036854775808)) (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) - (global $~lib/rt/__rtti_base i32 (i32.const 15136)) - (global $~lib/memory/__data_end i32 (i32.const 15328)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 48096)) - (global $~lib/memory/__heap_base i32 (i32.const 48096)) + (global $~lib/rt/__rtti_base i32 (i32.const 14976)) + (global $~lib/memory/__data_end i32 (i32.const 15168)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 47936)) + (global $~lib/memory/__heap_base i32 (i32.const 47936)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $21 (i32.const 2476) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00") - (data $22 (i32.const 2524) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $23 (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00c\00\00\00\00\00\00\00") - (data $24 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\02\03\04\05\00\00\00\00\00\00\00") - (data $25 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\01\04\05\00\00\00\00\00\00\00") - (data $26 (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") - (data $29 (i32.const 2780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") - (data $30 (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\ff\ff\ff\ff\ff\00\00\00\00\00\00\00") - (data $31 (i32.const 2844) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2892) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2940) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 2988) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 3036) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 3084) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 3132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") - (data $38 (i32.const 3180) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00?\00\00\80?\00\00\c0?\00\00 @\00\00@@\00\00\00\00\00\00\00\00") - (data $39 (i32.const 3228) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00?\00\00\80?\00\00\80?\00\00 @\00\00@@\00\00\00\00\00\00\00\00") - (data $40 (i32.const 3276) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $41 (i32.const 3324) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 3372) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00@\00\00\00@\00\00\00\00\00\00\00\00") - (data $43 (i32.const 3420) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00@\00\00\00@\00\00\00\00\00\00\00\00") - (data $44 (i32.const 3468) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\00\00\00\00\00\00") - (data $45 (i32.const 3516) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\00\00\00\00\00") - (data $46 (i32.const 3564) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y\00") - (data $47 (i32.const 3612) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $48 (i32.const 3660) "\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 $49 (i32.const 3692) "\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 $50 (i32.const 3724) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $51 (i32.const 3772) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $52 (i32.const 3820) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $53 (i32.const 3868) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $54 (i32.const 3916) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $55 (i32.const 3964) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $56 (i32.const 4012) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $57 (i32.const 4060) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $58 (i32.const 4108) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $59 (i32.const 4156) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $60 (i32.const 4204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $61 (i32.const 4252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $62 (i32.const 4300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $63 (i32.const 4348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $64 (i32.const 4396) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $65 (i32.const 4444) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $66 (i32.const 4492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $67 (i32.const 4540) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $68 (i32.const 4588) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $69 (i32.const 4636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $70 (i32.const 4684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $71 (i32.const 4732) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $72 (i32.const 4780) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $73 (i32.const 4828) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $74 (i32.const 4876) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\03\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $75 (i32.const 4924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\07\00\00\00\t\00\00\00\0b\00\00\00") - (data $76 (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\07\00\00\00\t\00\00\00\00\00\00\00") - (data $77 (i32.const 4988) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $78 (i32.const 5036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\t\00\00\00\0b\00\00\00\00\00\00\00") - (data $79 (i32.const 5068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\07\00\00\00\t\00\00\00\00\00\00\00") - (data $80 (i32.const 5100) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\07\00\00\00\t\00\00\00\00\00\00\00") - (data $81 (i32.const 5132) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\01\02\03\00\00\00\00\00\00\00\00") - (data $82 (i32.const 5164) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\01\02\03\04\05\06\07\00\00\00\00") - (data $83 (i32.const 5196) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\11\00\00\00\00\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\00\00\00\00\00\00\00\00\00\00\00") - (data $84 (i32.const 5244) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $85 (i32.const 5292) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $86 (i32.const 5340) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $87 (i32.const 5388) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\00\c0\7f\00\00\00\00\00\00\00\00") - (data $88 (i32.const 5420) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00") - (data $89 (i32.const 5452) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $90 (i32.const 5500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\00\c0\7f\00\00\00\00\00\00\00\00") - (data $91 (i32.const 5532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00") - (data $92 (i32.const 5564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $93 (i32.const 5612) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $94 (i32.const 5660) "\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 $95 (i32.const 5692) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $96 (i32.const 5740) "\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 $97 (i32.const 5772) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $98 (i32.const 5820) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $99 (i32.const 5868) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data $100 (i32.const 5900) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data $101 (i32.const 5932) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $102 (i32.const 5980) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") - (data $103 (i32.const 6012) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\05\00\00\00") - (data $104 (i32.const 6044) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $105 (i32.const 6092) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $106 (i32.const 6124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $107 (i32.const 6172) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $108 (i32.const 6220) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $109 (i32.const 6252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $110 (i32.const 6300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $111 (i32.const 6348) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00") - (data $112 (i32.const 6380) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data $113 (i32.const 6412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $114 (i32.const 6460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $115 (i32.const 6492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $116 (i32.const 6540) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $117 (i32.const 6588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $118 (i32.const 6620) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $119 (i32.const 6668) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $120 (i32.const 6716) "\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 $121 (i32.const 6748) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $122 (i32.const 6796) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $123 (i32.const 6844) "\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 $124 (i32.const 6876) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $125 (i32.const 6924) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $126 (i32.const 6972) "\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 $127 (i32.const 7004) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $128 (i32.const 7052) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $129 (i32.const 7100) "\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 $130 (i32.const 7132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $131 (i32.const 7180) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $132 (i32.const 7228) "\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 $133 (i32.const 7260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $134 (i32.const 7308) "\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 $135 (i32.const 7340) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $136 (i32.const 7468) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $137 (i32.const 7596) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $138 (i32.const 7628) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $139 (i32.const 7660) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $140 (i32.const 7692) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $141 (i32.const 7724) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $142 (i32.const 7756) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data $143 (i32.const 7788) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $144 (i32.const 7836) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data $145 (i32.const 7868) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $146 (i32.const 7900) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $147 (i32.const 7932) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data $148 (i32.const 7964) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $149 (i32.const 7996) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data $150 (i32.const 8028) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") - (data $151 (i32.const 8060) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") - (data $152 (i32.const 8092) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") - (data $153 (i32.const 8124) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") - (data $154 (i32.const 8156) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") - (data $155 (i32.const 8188) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") - (data $156 (i32.const 8220) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") - (data $157 (i32.const 8252) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") - (data $158 (i32.const 8284) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") - (data $159 (i32.const 8316) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") - (data $160 (i32.const 8348) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") - (data $161 (i32.const 8380) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") - (data $162 (i32.const 8412) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") - (data $163 (i32.const 8444) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") - (data $164 (i32.const 8476) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") - (data $165 (i32.const 8508) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") - (data $166 (i32.const 8540) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") - (data $167 (i32.const 8572) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") - (data $168 (i32.const 8604) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") - (data $169 (i32.const 8636) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $170 (i32.const 8668) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") - (data $171 (i32.const 8700) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") - (data $172 (i32.const 8732) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") - (data $173 (i32.const 8764) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") - (data $174 (i32.const 8796) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") - (data $175 (i32.const 8828) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") - (data $176 (i32.const 8860) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") - (data $177 (i32.const 8892) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") - (data $178 (i32.const 8924) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data $179 (i32.const 8956) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") - (data $180 (i32.const 8988) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") - (data $181 (i32.const 9020) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data $182 (i32.const 9052) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data $183 (i32.const 9084) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") - (data $184 (i32.const 9116) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") - (data $185 (i32.const 9148) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $186 (i32.const 9180) "\bc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") - (data $187 (i32.const 9372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf\00\00\00\00") - (data $188 (i32.const 9404) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $189 (i32.const 9436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") - (data $190 (i32.const 9468) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data $191 (i32.const 9532) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data $192 (i32.const 9596) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data $193 (i32.const 9692) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data $194 (i32.const 9724) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data $195 (i32.const 9820) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $196 (i32.const 9868) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") - (data $197 (i32.const 9900) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $198 (i32.const 9948) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $199 (i32.const 9996) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data $200 (i32.const 10028) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") - (data $201 (i32.const 10076) "\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 $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $1 (i32.const 60) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 508) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00") + (data $11 (i32.const 556) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00c\00\00\00\00\00\00\00") + (data $13 (i32.const 652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\02\03\04\05\00\00\00\00\00\00\00") + (data $14 (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\01\04\05\00\00\00\00\00\00\00") + (data $15 (i32.const 716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") + (data $18 (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") + (data $19 (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\ff\ff\ff\ff\ff\00\00\00\00\00\00\00") + (data $20 (i32.const 876) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 924) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 972) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 1020) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 1068) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 1116) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1164) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") + (data $27 (i32.const 1212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00?\00\00\80?\00\00\c0?\00\00 @\00\00@@\00\00\00\00\00\00\00\00") + (data $28 (i32.const 1260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00?\00\00\80?\00\00\80?\00\00 @\00\00@@\00\00\00\00\00\00\00\00") + (data $29 (i32.const 1308) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1356) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1404) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00@\00\00\00@\00\00\00\00\00\00\00\00") + (data $32 (i32.const 1452) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00@\00\00\00@\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1500) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\00\00\00\00\00\00") + (data $34 (i32.const 1548) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\00\00\00\00\00") + (data $35 (i32.const 1596) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y\00") + (data $36 (i32.const 1644) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $37 (i32.const 1692) "\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 $38 (i32.const 1724) "\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 $39 (i32.const 1756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $40 (i32.const 1804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $41 (i32.const 1852) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $42 (i32.const 1900) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $43 (i32.const 1948) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $44 (i32.const 1996) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $45 (i32.const 2044) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $46 (i32.const 2092) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $47 (i32.const 2140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $48 (i32.const 2188) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $49 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $50 (i32.const 2284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $51 (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $52 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $53 (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $54 (i32.const 2476) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $55 (i32.const 2524) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $57 (i32.const 2620) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 2668) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $59 (i32.const 2716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $60 (i32.const 2764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $61 (i32.const 2812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $62 (i32.const 2860) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $63 (i32.const 2908) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\03\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data $64 (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\07\00\00\00\t\00\00\00\0b\00\00\00") + (data $65 (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\07\00\00\00\t\00\00\00\00\00\00\00") + (data $66 (i32.const 3020) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $67 (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\t\00\00\00\0b\00\00\00\00\00\00\00") + (data $68 (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\07\00\00\00\t\00\00\00\00\00\00\00") + (data $69 (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\07\00\00\00\t\00\00\00\00\00\00\00") + (data $70 (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\01\02\03\00\00\00\00\00\00\00\00") + (data $71 (i32.const 3196) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\01\02\03\04\05\06\07\00\00\00\00") + (data $72 (i32.const 3228) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\11\00\00\00\00\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\00\00\00\00\00\00\00\00\00\00\00") + (data $73 (i32.const 3276) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $74 (i32.const 3324) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $75 (i32.const 3372) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $76 (i32.const 3420) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\00\c0\7f\00\00\00\00\00\00\00\00") + (data $77 (i32.const 3452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00") + (data $78 (i32.const 3484) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $79 (i32.const 3532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\00\c0\7f\00\00\00\00\00\00\00\00") + (data $80 (i32.const 3564) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00") + (data $81 (i32.const 3596) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $82 (i32.const 3644) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $83 (i32.const 3692) "\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 $84 (i32.const 3724) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $85 (i32.const 3772) "\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 $86 (i32.const 3804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $87 (i32.const 3852) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $88 (i32.const 3900) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data $89 (i32.const 3932) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data $90 (i32.const 3964) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $91 (i32.const 4012) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") + (data $92 (i32.const 4044) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\05\00\00\00") + (data $93 (i32.const 4076) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $94 (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $95 (i32.const 4156) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $96 (i32.const 4204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $97 (i32.const 4252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $98 (i32.const 4284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $99 (i32.const 4332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $100 (i32.const 4380) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00") + (data $101 (i32.const 4412) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data $102 (i32.const 4444) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $103 (i32.const 4492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $104 (i32.const 4524) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $105 (i32.const 4572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $106 (i32.const 4620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $107 (i32.const 4652) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $108 (i32.const 4700) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $109 (i32.const 4748) "\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 $110 (i32.const 4780) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $111 (i32.const 4828) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $112 (i32.const 4876) "\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 $113 (i32.const 4908) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $114 (i32.const 4956) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $115 (i32.const 5004) "\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 $116 (i32.const 5036) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $117 (i32.const 5084) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $118 (i32.const 5132) "\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 $119 (i32.const 5164) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $120 (i32.const 5212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $121 (i32.const 5260) "\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 $122 (i32.const 5292) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $123 (i32.const 5340) "\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 $124 (i32.const 5372) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $125 (i32.const 5500) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $126 (i32.const 5628) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $127 (i32.const 5660) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $128 (i32.const 5692) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $129 (i32.const 5724) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $130 (i32.const 5756) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $131 (i32.const 5788) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data $132 (i32.const 5820) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $133 (i32.const 5868) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data $134 (i32.const 5900) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $135 (i32.const 5932) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $136 (i32.const 5964) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data $137 (i32.const 5996) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data $138 (i32.const 6028) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data $139 (i32.const 6060) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") + (data $140 (i32.const 6092) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data $141 (i32.const 6124) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data $142 (i32.const 6156) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data $143 (i32.const 6188) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data $144 (i32.const 6220) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data $145 (i32.const 6252) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data $146 (i32.const 6284) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") + (data $147 (i32.const 6316) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") + (data $148 (i32.const 6348) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") + (data $149 (i32.const 6380) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") + (data $150 (i32.const 6412) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") + (data $151 (i32.const 6444) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") + (data $152 (i32.const 6476) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $153 (i32.const 6604) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $154 (i32.const 6668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $155 (i32.const 6700) "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 $156 (i32.const 7100) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $157 (i32.const 8156) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $158 (i32.const 8252) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") + (data $159 (i32.const 8284) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") + (data $160 (i32.const 8316) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") + (data $161 (i32.const 8348) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") + (data $162 (i32.const 8380) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") + (data $163 (i32.const 8412) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") + (data $164 (i32.const 8444) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $165 (i32.const 8476) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") + (data $166 (i32.const 8508) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") + (data $167 (i32.const 8540) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") + (data $168 (i32.const 8572) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") + (data $169 (i32.const 8604) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") + (data $170 (i32.const 8636) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") + (data $171 (i32.const 8668) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") + (data $172 (i32.const 8700) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") + (data $173 (i32.const 8732) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data $174 (i32.const 8764) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") + (data $175 (i32.const 8796) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data $176 (i32.const 8828) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data $177 (i32.const 8860) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data $178 (i32.const 8892) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data $179 (i32.const 8924) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") + (data $180 (i32.const 8956) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $181 (i32.const 8988) "\bc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") + (data $182 (i32.const 9180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf\00\00\00\00") + (data $183 (i32.const 9212) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data $184 (i32.const 9244) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") + (data $185 (i32.const 9276) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data $186 (i32.const 9340) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data $187 (i32.const 9404) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data $188 (i32.const 9500) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data $189 (i32.const 9532) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data $190 (i32.const 9628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $191 (i32.const 9676) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data $192 (i32.const 9708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $193 (i32.const 9756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $194 (i32.const 9804) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data $195 (i32.const 9836) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") + (data $196 (i32.const 9884) "\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 $197 (i32.const 9916) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $198 (i32.const 9948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") + (data $199 (i32.const 9980) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $200 (i32.const 10028) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $201 (i32.const 10076) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") (data $202 (i32.const 10108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $203 (i32.const 10140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") - (data $204 (i32.const 10172) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $205 (i32.const 10220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $206 (i32.const 10268) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") - (data $207 (i32.const 10300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $208 (i32.const 10332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data $209 (i32.const 10364) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") - (data $210 (i32.const 10396) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") - (data $211 (i32.const 10428) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") - (data $212 (i32.const 10460) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") - (data $213 (i32.const 10492) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $214 (i32.const 10524) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") - (data $215 (i32.const 10556) "\1c\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") - (data $216 (i32.const 10588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data $217 (i32.const 10620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") - (data $218 (i32.const 10652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") - (data $219 (i32.const 10684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00b\00a\00\00\00\00\00\00\00\00\00") - (data $220 (i32.const 10716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00p)\00\00\90)\00\00p)\00\00\b0)\00\00\d0)\00\00`\00\00\00\00\00\00\00") - (data $221 (i32.const 10764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00`\00\00\00p)\00\00p)\00\00\b0)\00\00\90)\00\00\d0)\00\00\00\00\00\00") - (data $222 (i32.const 10812) "\1c\00\00\00\00\00\00\00\00\00\00\00#\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") - (data $223 (i32.const 10844) "\1c\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") - (data $224 (i32.const 10876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $225 (i32.const 10908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") - (data $226 (i32.const 10940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") - (data $227 (i32.const 10972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data $228 (i32.const 11004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00\00\00\00\00\00\00\00\00") - (data $229 (i32.const 11052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") - (data $230 (i32.const 11084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00-\002\00-\003\00\00\00") - (data $231 (i32.const 11116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data $232 (i32.const 11148) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data $233 (i32.const 11180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80\00\00\00\00") - (data $234 (i32.const 11212) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00_\00_\00\00\00\00\00\00\00\00\00") - (data $235 (i32.const 11244) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $236 (i32.const 11324) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data $237 (i32.const 11404) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00,\00 \00\00\00\00\00\00\00\00\00") - (data $238 (i32.const 11436) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data $239 (i32.const 11468) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data $240 (i32.const 11500) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $241 (i32.const 11548) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $242 (i32.const 11600) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $243 (i32.const 11656) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $252 (i32.const 13004) "\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 $253 (i32.const 13036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $254 (i32.const 13068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data $255 (i32.const 13100) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $256 (i32.const 13148) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00,\002\00\00\00\00\00\00\00") - (data $257 (i32.const 13180) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $258 (i32.const 13228) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\01\ff\00\00\00\00\00\00\00\00\00\00") - (data $259 (i32.const 13260) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") - (data $260 (i32.const 13292) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\80\81\80\00\00\00\00\00\00\00\00\00") - (data $261 (i32.const 13324) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00-\001\002\008\00,\00-\001\002\007\00,\00-\001\002\008\00") - (data $262 (i32.const 13372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\01\00\ff\ff\00\00\00\00\00\00\00\00") - (data $263 (i32.const 13404) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00\00\00\00\00\00\00\00\00\00\00") - (data $264 (i32.const 13452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\80\01\ff\00\00\00\00\00\00\00\00") - (data $265 (i32.const 13484) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00-\003\002\007\006\008\00,\00-\002\005\005\00\00\00\00\00\00\00") - (data $266 (i32.const 13532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\80\80\ff\ff\ff\00\00\00\00") - (data $267 (i32.const 13564) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00-\002\001\004\007\004\008\003\006\004\008\00,\00-\001\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $268 (i32.const 13628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") - (data $269 (i32.const 13676) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $270 (i32.const 13756) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f\00\00\00\00") - (data $271 (i32.const 13820) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00~\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $272 (i32.const 13980) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00`\00\00\00p)\00\00p)\00\00\b0)\00\00\90)\00\00\d0)\00\00\00\00\00\00") - (data $273 (i32.const 14028) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00\00\00") - (data $274 (i32.const 14076) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data $275 (i32.const 14108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data $276 (i32.const 14140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\a01\00\00\107\00\00\00\00\00\0007\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $277 (i32.const 14188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") - (data $278 (i32.const 14220) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data $279 (i32.const 14252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") - (data $280 (i32.const 14284) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $281 (i32.const 14332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\01\02\00\00\00\00\00\00\00\00\00\00") - (data $282 (i32.const 14364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\04\00\00\00\00\00\00\00\00\00\00") - (data $283 (i32.const 14396) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $284 (i32.const 14428) "\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\00\00") - (data $285 (i32.const 14460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data $286 (i32.const 14492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") - (data $287 (i32.const 14524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") - (data $288 (i32.const 14556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") - (data $289 (i32.const 14588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\f08\00\00\00\00\00\00\00\00\00\00") - (data $290 (i32.const 14620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") - (data $291 (i32.const 14652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") - (data $292 (i32.const 14684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\0009\00\00\00\00\00\00P9\00\00") - (data $293 (i32.const 14716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") - (data $294 (i32.const 14748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00i\00v\00e\00\00\00\00\00") - (data $295 (i32.const 14780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00s\00i\00x\00\00\00\00\00\00\00") - (data $296 (i32.const 14812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\909\00\00\b09\00\00\d09\00\00") - (data $297 (i32.const 14844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00e\00v\00e\00n\00\00\00") - (data $298 (i32.const 14876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\10:\00\00\00\00\00\00\00\00\00\00") - (data $299 (i32.const 14908) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\f08\00\0009\00\00\00\00\00\00P9\00\00\909\00\00\b09\00\00\d09\00\00\10:\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $300 (i32.const 14972) "\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 $301 (i32.const 15004) "\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 $302 (i32.const 15036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $303 (i32.const 15068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $304 (i32.const 15100) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") - (data $305 (i32.const 15136) "/\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00 \00\00\00A\00\00\00B\00\00\00\02\01\00\00\02\19\00\00\02A\00\00\82\00\00\00\02\1a\00\00\02a\00\00\00\00\00\00\00\00\00\00\02A\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\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00B\00\00\00B\08\00\00\82\08\00\00\02\02\00\00\02\n\00\00\02A\00\00\02A\00\00\02A\00\00\02A\00\00\00\00\00\00") + (data $203 (i32.const 10140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data $204 (i32.const 10172) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") + (data $205 (i32.const 10204) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") + (data $206 (i32.const 10236) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data $207 (i32.const 10268) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") + (data $208 (i32.const 10300) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") + (data $209 (i32.const 10332) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") + (data $210 (i32.const 10364) "\1c\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") + (data $211 (i32.const 10396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data $212 (i32.const 10428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data $213 (i32.const 10460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") + (data $214 (i32.const 10492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00b\00a\00\00\00\00\00\00\00\00\00") + (data $215 (i32.const 10524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $216 (i32.const 10556) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00\b0(\00\00\d0(\00\00\b0(\00\00\f0(\00\00\10)\00\000)\00\00\00\00\00\00") + (data $217 (i32.const 10604) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\000)\00\00\b0(\00\00\b0(\00\00\f0(\00\00\d0(\00\00\10)\00\00\00\00\00\00") + (data $218 (i32.const 10652) "\1c\00\00\00\00\00\00\00\00\00\00\00#\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") + (data $219 (i32.const 10684) "\1c\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") + (data $220 (i32.const 10716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $221 (i32.const 10748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") + (data $222 (i32.const 10780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") + (data $223 (i32.const 10812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data $224 (i32.const 10844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00\00\00\00\00\00\00\00\00") + (data $225 (i32.const 10892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data $226 (i32.const 10924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00-\002\00-\003\00\00\00") + (data $227 (i32.const 10956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data $228 (i32.const 10988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data $229 (i32.const 11020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80\00\00\00\00") + (data $230 (i32.const 11052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00_\00_\00\00\00\00\00\00\00\00\00") + (data $231 (i32.const 11084) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $232 (i32.const 11164) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data $233 (i32.const 11244) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00,\00 \00\00\00\00\00\00\00\00\00") + (data $234 (i32.const 11276) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data $235 (i32.const 11308) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data $236 (i32.const 11340) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data $237 (i32.const 11388) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $238 (i32.const 11440) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $239 (i32.const 11496) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $248 (i32.const 12844) "\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 $249 (i32.const 12876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $250 (i32.const 12908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data $251 (i32.const 12940) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $252 (i32.const 12988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00,\002\00\00\00\00\00\00\00") + (data $253 (i32.const 13020) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $254 (i32.const 13068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\01\ff\00\00\00\00\00\00\00\00\00\00") + (data $255 (i32.const 13100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") + (data $256 (i32.const 13132) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\80\81\80\00\00\00\00\00\00\00\00\00") + (data $257 (i32.const 13164) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00-\001\002\008\00,\00-\001\002\007\00,\00-\001\002\008\00") + (data $258 (i32.const 13212) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\01\00\ff\ff\00\00\00\00\00\00\00\00") + (data $259 (i32.const 13244) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00\00\00\00\00\00\00\00\00\00\00") + (data $260 (i32.const 13292) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\80\01\ff\00\00\00\00\00\00\00\00") + (data $261 (i32.const 13324) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00-\003\002\007\006\008\00,\00-\002\005\005\00\00\00\00\00\00\00") + (data $262 (i32.const 13372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\80\80\ff\ff\ff\00\00\00\00") + (data $263 (i32.const 13404) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00-\002\001\004\007\004\008\003\006\004\008\00,\00-\001\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $264 (i32.const 13468) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data $265 (i32.const 13516) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $266 (i32.const 13596) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f\00\00\00\00") + (data $267 (i32.const 13660) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00~\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $268 (i32.const 13820) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\000)\00\00\b0(\00\00\b0(\00\00\f0(\00\00\d0(\00\00\10)\00\00\00\00\00\00") + (data $269 (i32.const 13868) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00\00\00") + (data $270 (i32.const 13916) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data $271 (i32.const 13948) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data $272 (i32.const 13980) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\001\00\00p6\00\00\00\00\00\00\906\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $273 (i32.const 14028) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") + (data $274 (i32.const 14060) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data $275 (i32.const 14092) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") + (data $276 (i32.const 14124) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $277 (i32.const 14172) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\01\02\00\00\00\00\00\00\00\00\00\00") + (data $278 (i32.const 14204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\04\00\00\00\00\00\00\00\00\00\00") + (data $279 (i32.const 14236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $280 (i32.const 14268) "\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\00\00") + (data $281 (i32.const 14300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data $282 (i32.const 14332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") + (data $283 (i32.const 14364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") + (data $284 (i32.const 14396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") + (data $285 (i32.const 14428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00P8\00\00\00\00\00\00\00\00\00\00") + (data $286 (i32.const 14460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") + (data $287 (i32.const 14492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") + (data $288 (i32.const 14524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\908\00\00\00\00\00\00\b08\00\00") + (data $289 (i32.const 14556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") + (data $290 (i32.const 14588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00i\00v\00e\00\00\00\00\00") + (data $291 (i32.const 14620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00s\00i\00x\00\00\00\00\00\00\00") + (data $292 (i32.const 14652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\f08\00\00\109\00\0009\00\00") + (data $293 (i32.const 14684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00e\00v\00e\00n\00\00\00") + (data $294 (i32.const 14716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00p9\00\00\00\00\00\00\00\00\00\00") + (data $295 (i32.const 14748) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00P8\00\00\908\00\00\00\00\00\00\b08\00\00\f08\00\00\109\00\0009\00\00p9\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $296 (i32.const 14812) "\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 $297 (i32.const 14844) "\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 $298 (i32.const 14876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $299 (i32.const 14908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $300 (i32.const 14940) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") + (data $301 (i32.const 14976) "/\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00 \00\00\00A\00\00\00B\00\00\00\02\01\00\00\02\19\00\00\02A\00\00\82\00\00\00\02\1a\00\00\02a\00\00\00\00\00\00\00\00\00\00\02A\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\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00B\00\00\00B\08\00\00\82\08\00\00\02\02\00\00\02\n\00\00\02A\00\00\02A\00\00\02A\00\00\02A\00\00\00\00\00\00") (table $0 64 64 funcref) (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/array/assertStableSortedForComplexObjects~anonymous|0 $start:std/array~anonymous|48 $start:std/array~anonymous|49 $start:std/array~anonymous|50 $start:std/array~anonymous|51 $start:std/array~anonymous|52 $start:std/array~anonymous|53 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $start:std/array~anonymous|54) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -585,7 +571,7 @@ if i32.const 320 i32.const 384 - i32.const 21 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -2605,422 +2591,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -3559,6 +3129,10 @@ local.get $this i32.load ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $this i32) (result i32) local.get $this i32.const 20 @@ -4113,6 +3687,416 @@ i32.add global.set $std/array/i ) + (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) + local.get $value + i32.const 100000 + i32.lt_u + if + local.get $value + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $value + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $value + i32.const 10000 + i32.ge_u + i32.add + local.get $value + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $value + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $value + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $value + i32.const 1000000000 + i32.ge_u + i32.add + local.get $value + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) + (local $t i32) + (local $r i32) + (local $d1 i32) + (local $d2 i32) + (local $digits1 i64) + (local $digits2 i64) + (local $t|9 i32) + (local $d1|10 i32) + (local $digits i32) + (local $digits|12 i32) + (local $digit i32) + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 6700 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6700 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $num + i32.const 100 + i32.ge_u + if + local.get $num + i32.const 100 + i32.div_u + local.set $t|9 + local.get $num + i32.const 100 + i32.rem_u + local.set $d1|10 + local.get $t|9 + local.set $num + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 6700 + local.get $d1|10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits + i32.store + end + local.get $num + i32.const 10 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 6700 + local.get $num + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits|12 + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits|12 + i32.store + else + local.get $offset + i32.const 1 + i32.sub + local.set $offset + i32.const 48 + local.get $num + i32.add + local.set $digit + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digit + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 7120 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end + end + local.get $offset + i32.const 1 + i32.and + if + local.get $buffer + i32.const 7120 + local.get $num + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) + (local $value i32) + (local $b64 i64) + (local $b i64) + (local $e i32) + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end + if + i32.const 63 + local.get $num + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $base + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $base + i64.extend_i32_s + local.set $b64 + local.get $b64 + local.set $b + i32.const 1 + local.set $e + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end + end + local.get $e + i32.const 1 + i32.sub + return + ) + (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) + (local $base i64) + (local $shift i64) + (local $mask i64) + (local $q i64) + local.get $radix + i64.extend_i32_s + local.set $base + local.get $radix + local.get $radix + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $radix + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $shift + local.get $base + i64.const 1 + i64.sub + local.set $mask + loop $do-loop|0 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 8176 + local.get $num + local.get $mask + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $num + local.get $shift + i64.shr_u + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $num + local.get $base + i64.div_u + local.set $q + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 8176 + local.get $num + local.get $q + local.get $base + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $q + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) (func $~lib/number/I32#toString (param $this i32) (param $radix i32) (result i32) local.get $this local.get $radix @@ -6536,6 +6520,15 @@ local.get $this i32.load offset=12 ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -7109,7 +7102,7 @@ local.set $delta|21 local.get $tmp local.set $rest - i32.const 12528 + i32.const 12368 local.get $kappa i32.const 2 i32.shl @@ -7246,7 +7239,7 @@ i32.add global.set $~lib/util/number/_K local.get $wp_w_frc - i32.const 12528 + i32.const 12368 i32.const 0 local.get $kappa i32.sub @@ -7925,14 +7918,14 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 11656 + i32.const 11496 local.get $index i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow - i32.const 12352 + i32.const 12192 local.get $index i32.const 1 i32.shl @@ -8293,7 +8286,7 @@ return ) (func $std/array/Ref#toString (param $this i32) (result i32) - i32.const 12768 + i32.const 12608 return ) (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) @@ -8781,14 +8774,14 @@ i32.const 100 i32.rem_u local.set $c2 - i32.const 764 + i32.const 6700 local.get $c1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 764 + i32.const 6700 local.get $c2 i32.const 2 i32.shl @@ -8810,14 +8803,14 @@ i64.shl i64.or i64.store - i32.const 764 + i32.const 6700 local.get $b1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 764 + i32.const 6700 local.get $b2 i32.const 2 i32.shl @@ -9264,20 +9257,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 48128 - i32.const 48176 + i32.const 47968 + i32.const 48016 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9286,196 +9275,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -9542,9 +9362,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 - i32.const 70 + i32.const 32 + i32.const 80 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -9705,8 +9525,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2544 + i32.const 32 + i32.const 576 i32.const 19 i32.const 57 call $~lib/builtins/abort @@ -9888,8 +9708,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -10155,8 +9975,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -10423,8 +10243,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -10795,8 +10615,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -10860,6 +10680,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -10957,8 +10781,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -11011,9 +10835,9 @@ i32.const 1 i32.lt_s if - i32.const 3584 - i32.const 2448 - i32.const 271 + i32.const 1616 + i32.const 80 + i32.const 283 i32.const 18 call $~lib/builtins/abort unreachable @@ -11076,8 +10900,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -11115,6 +10939,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -11211,8 +11039,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 143 + i32.const 80 + i32.const 147 i32.const 33 call $~lib/builtins/abort unreachable @@ -11283,9 +11111,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 - i32.const 224 + i32.const 32 + i32.const 80 + i32.const 232 i32.const 60 call $~lib/builtins/abort unreachable @@ -11753,9 +11581,9 @@ i32.const 1 i32.lt_s if - i32.const 3584 - i32.const 2448 - i32.const 330 + i32.const 1616 + i32.const 80 + i32.const 344 i32.const 18 call $~lib/builtins/abort unreachable @@ -12137,8 +11965,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -13262,8 +13090,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -13291,9 +13119,9 @@ local.get $value i32.eqz if - i32.const 7360 - i32.const 2448 - i32.const 118 + i32.const 5392 + i32.const 80 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -13332,8 +13160,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -13371,6 +13199,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -13578,8 +13410,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -13638,8 +13470,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -14497,7 +14329,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 767 i32.const 7 call $~lib/builtins/abort @@ -14609,6 +14441,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $result i32.const 1 @@ -14716,7 +14552,7 @@ global.set $~argumentsLength local.get $fn i32.load - call_indirect (type $17) + call_indirect (type $18) local.set $result local.get $outStart local.get $i @@ -15605,8 +15441,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -15644,6 +15480,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -16198,7 +16038,7 @@ i32.const 4 i32.eq drop - i32.const 9424 + i32.const 9232 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -16769,7 +16609,7 @@ i32.const 4 i32.eq drop - i32.const 9712 + i32.const 9520 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -16843,8 +16683,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -17609,7 +17449,7 @@ i32.const 4 i32.le_u drop - i32.const 9888 + i32.const 9696 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -18176,7 +18016,7 @@ drop i32.const 0 drop - i32.const 10016 + i32.const 9824 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -18429,7 +18269,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1080 i32.const 3 call $~lib/builtins/abort @@ -18463,7 +18303,7 @@ i32.const 4 i32.le_u drop - i32.const 10288 + i32.const 10096 br $~lib/util/sort/COMPARATOR|inlined.1 end local.set $1 @@ -18624,6 +18464,10 @@ i32.add local.get $ref i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $slice local.get $ref i32.const 1 @@ -19941,8 +19785,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -19970,9 +19814,9 @@ local.get $value i32.eqz if - i32.const 7360 - i32.const 2448 - i32.const 118 + i32.const 5392 + i32.const 80 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -20020,7 +19864,7 @@ local.get $6 i32.store local.get $6 - i32.const 10384 + i32.const 10192 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 @@ -20120,7 +19964,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1076 i32.const 3 call $~lib/builtins/abort @@ -20196,9 +20040,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 - i32.const 70 + i32.const 32 + i32.const 80 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -20294,8 +20138,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -20333,6 +20177,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -21678,8 +21526,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -21707,9 +21555,9 @@ local.get $value i32.eqz if - i32.const 7360 - i32.const 2448 - i32.const 118 + i32.const 5392 + i32.const 80 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -21855,7 +21703,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1080 i32.const 3 call $~lib/builtins/abort @@ -21931,9 +21779,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 - i32.const 70 + i32.const 32 + i32.const 80 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -22065,8 +21913,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -22104,6 +21952,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -23433,8 +23285,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -23462,9 +23314,9 @@ local.get $value i32.eqz if - i32.const 7360 - i32.const 2448 - i32.const 118 + i32.const 5392 + i32.const 80 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -23610,7 +23462,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1080 i32.const 3 call $~lib/builtins/abort @@ -24845,8 +24697,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -25012,7 +24864,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1080 i32.const 3 call $~lib/builtins/abort @@ -25190,7 +25042,7 @@ drop i32.const 1 drop - i32.const 10832 + i32.const 10672 br $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 end local.tee $comparator @@ -25527,9 +25379,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 - i32.const 70 + i32.const 32 + i32.const 80 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -25621,7 +25473,7 @@ call $~lib/string/String#get:length i32.ge_u if - i32.const 96 + i32.const 10544 local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -25653,6 +25505,113 @@ local.get $3 return ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize + i32.add + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 10544 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) (func $std/array/createRandomString (param $len i32) (result i32) (local $result i32) (local $i i32) @@ -25670,7 +25629,7 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 10544 local.tee $result i32.store i32.const 0 @@ -25750,8 +25709,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -25789,6 +25748,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -27084,8 +27047,8 @@ i32.ge_u if i32.const 320 - i32.const 2448 - i32.const 114 + i32.const 80 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -27113,9 +27076,9 @@ local.get $value i32.eqz if - i32.const 7360 - i32.const 2448 - i32.const 118 + i32.const 5392 + i32.const 80 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -27261,7 +27224,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1080 i32.const 3 call $~lib/builtins/abort @@ -27439,7 +27402,7 @@ drop i32.const 1 drop - i32.const 10864 + i32.const 10704 br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 end local.tee $comparator @@ -27561,7 +27524,7 @@ local.get $size i32.eqz if - i32.const 96 + i32.const 10544 local.set $22 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27638,7 +27601,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27650,8 +27613,8 @@ local.get $lastIndex i32.eqz if - i32.const 10928 - i32.const 10960 + i32.const 10768 + i32.const 10800 local.get $dataStart i32.load8_u select @@ -27713,8 +27676,8 @@ i32.const 1 i32.shl i32.add - i32.const 10928 - i32.const 10960 + i32.const 10768 + i32.const 10800 local.get $value select local.get $valueLen @@ -27764,8 +27727,8 @@ i32.const 1 i32.shl i32.add - i32.const 10928 - i32.const 10960 + i32.const 10768 + i32.const 10800 local.get $value select local.get $valueLen @@ -27879,7 +27842,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28107,7 +28070,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28334,7 +28297,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28560,7 +28523,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $13 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -28581,7 +28544,7 @@ if (result i32) local.get $4 else - i32.const 96 + i32.const 10544 end local.set $13 global.get $~lib/memory/__stack_pointer @@ -28840,7 +28803,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $8 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -28869,7 +28832,7 @@ local.get $8 call $std/array/Ref#toString else - i32.const 96 + i32.const 10544 end local.set $8 global.get $~lib/memory/__stack_pointer @@ -28880,7 +28843,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 10544 local.tee $result i32.store offset=8 local.get $separator @@ -29088,7 +29051,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $8 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -29117,7 +29080,7 @@ local.get $8 call $std/array/Ref#toString else - i32.const 96 + i32.const 10544 end local.set $8 global.get $~lib/memory/__stack_pointer @@ -29128,7 +29091,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 10544 local.tee $result i32.store offset=8 local.get $separator @@ -29328,7 +29291,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -29364,7 +29327,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29582,7 +29545,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -29618,7 +29581,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29836,7 +29799,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -29872,7 +29835,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -30090,7 +30053,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -30126,7 +30089,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -30344,7 +30307,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -30380,7 +30343,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -30600,7 +30563,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -30626,7 +30589,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array<~lib/string/String|null>#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -30660,7 +30623,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $8 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -30689,7 +30652,7 @@ local.get $8 call $~lib/array/Array#toString else - i32.const 96 + i32.const 10544 end local.set $8 global.get $~lib/memory/__stack_pointer @@ -30700,7 +30663,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 10544 local.tee $result i32.store offset=8 local.get $separator @@ -30900,7 +30863,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array<~lib/array/Array>#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -30935,8 +30898,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -30974,6 +30937,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -31009,7 +30976,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -31227,7 +31194,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -31261,7 +31228,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $8 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -31290,7 +31257,7 @@ local.get $8 call $~lib/array/Array#toString else - i32.const 96 + i32.const 10544 end local.set $8 global.get $~lib/memory/__stack_pointer @@ -31301,7 +31268,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 10544 local.tee $result i32.store offset=8 local.get $separator @@ -31501,7 +31468,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array<~lib/array/Array>#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -31536,8 +31503,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -31575,6 +31542,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -31609,8 +31580,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -31648,6 +31619,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -31673,7 +31648,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -31707,7 +31682,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $8 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -31736,7 +31711,7 @@ local.get $8 call $~lib/array/Array#toString else - i32.const 96 + i32.const 10544 end local.set $8 global.get $~lib/memory/__stack_pointer @@ -31747,7 +31722,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 10544 local.tee $result i32.store offset=8 local.get $separator @@ -31947,7 +31922,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array<~lib/array/Array>#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -31981,7 +31956,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 10544 local.set $8 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -32010,7 +31985,7 @@ local.get $8 call $~lib/array/Array<~lib/array/Array>#toString else - i32.const 96 + i32.const 10544 end local.set $8 global.get $~lib/memory/__stack_pointer @@ -32021,7 +31996,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 10544 local.tee $result i32.store offset=8 local.get $separator @@ -32221,7 +32196,7 @@ local.get $1 i32.store local.get $1 - i32.const 10992 + i32.const 10832 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -32338,6 +32313,10 @@ local.get $outArray local.get $outBuffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $outArray local.get $outBuffer i32.const 0 @@ -32424,8 +32403,8 @@ i32.lt_s if i32.const 320 - i32.const 2448 - i32.const 130 + i32.const 80 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -32463,6 +32442,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -32581,6 +32564,10 @@ local.get $outArray local.get $outBuffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $outArray local.get $outBuffer i32.const 0 @@ -32647,6 +32634,10 @@ i32.add i32.load local.set $ref + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $outBuffer local.get $ref i32.const 1 @@ -32689,7 +32680,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1267 i32.const 5 call $~lib/builtins/abort @@ -32716,7 +32707,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1269 i32.const 5 call $~lib/builtins/abort @@ -32834,6 +32825,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $result i32.const 1 @@ -33200,7 +33195,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -33219,7 +33214,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 48 i32.const 3 call $~lib/builtins/abort @@ -33238,7 +33233,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -33250,19 +33245,19 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 50 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2608 + i32.const 640 call $~lib/array/Array.isArray<~lib/string/String> i32.eqz i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 51 i32.const 3 call $~lib/builtins/abort @@ -33278,7 +33273,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 53 i32.const 3 call $~lib/builtins/abort @@ -33288,7 +33283,7 @@ i32.const 5 i32.const 0 i32.const 7 - i32.const 2640 + i32.const 672 call $~lib/rt/__newArray local.tee $1 i32.store offset=4 @@ -33312,7 +33307,7 @@ i32.const 5 i32.const 0 i32.const 7 - i32.const 2672 + i32.const 704 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33324,7 +33319,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -33352,7 +33347,7 @@ i32.const 5 i32.const 0 i32.const 7 - i32.const 2704 + i32.const 736 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33364,7 +33359,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -33390,7 +33385,7 @@ i32.const 5 i32.const 0 i32.const 7 - i32.const 2736 + i32.const 768 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33402,7 +33397,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -33430,7 +33425,7 @@ i32.const 5 i32.const 0 i32.const 7 - i32.const 2768 + i32.const 800 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33442,7 +33437,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 70 i32.const 3 call $~lib/builtins/abort @@ -33468,7 +33463,7 @@ i32.const 5 i32.const 0 i32.const 7 - i32.const 2800 + i32.const 832 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33480,7 +33475,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 73 i32.const 3 call $~lib/builtins/abort @@ -33508,7 +33503,7 @@ i32.const 5 i32.const 0 i32.const 7 - i32.const 2832 + i32.const 864 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33520,7 +33515,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 76 i32.const 3 call $~lib/builtins/abort @@ -33530,7 +33525,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 2864 + i32.const 896 call $~lib/rt/__newArray local.tee $9 i32.store offset=12 @@ -33554,7 +33549,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 2912 + i32.const 944 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33566,7 +33561,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -33594,7 +33589,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 2960 + i32.const 992 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33606,7 +33601,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 86 i32.const 3 call $~lib/builtins/abort @@ -33632,7 +33627,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 3008 + i32.const 1040 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33644,7 +33639,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 89 i32.const 3 call $~lib/builtins/abort @@ -33672,7 +33667,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 3056 + i32.const 1088 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33684,7 +33679,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 92 i32.const 3 call $~lib/builtins/abort @@ -33710,7 +33705,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 3104 + i32.const 1136 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33722,7 +33717,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 95 i32.const 3 call $~lib/builtins/abort @@ -33750,7 +33745,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 3152 + i32.const 1184 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33762,7 +33757,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -33772,7 +33767,7 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 3200 + i32.const 1232 call $~lib/rt/__newArray local.tee $17 i32.store offset=16 @@ -33796,7 +33791,7 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 3248 + i32.const 1280 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33808,7 +33803,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -33836,7 +33831,7 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 3296 + i32.const 1328 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33848,7 +33843,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -33874,7 +33869,7 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 3344 + i32.const 1376 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33886,7 +33881,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -33914,7 +33909,7 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 3392 + i32.const 1424 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33926,7 +33921,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -33952,7 +33947,7 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 3440 + i32.const 1472 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -33964,7 +33959,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 117 i32.const 3 call $~lib/builtins/abort @@ -33992,7 +33987,7 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 3488 + i32.const 1520 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -34004,7 +33999,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 120 i32.const 3 call $~lib/builtins/abort @@ -34032,7 +34027,7 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 3536 + i32.const 1568 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -34044,7 +34039,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 123 i32.const 3 call $~lib/builtins/abort @@ -34062,7 +34057,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 129 i32.const 3 call $~lib/builtins/abort @@ -34080,7 +34075,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 130 i32.const 3 call $~lib/builtins/abort @@ -34108,7 +34103,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 134 i32.const 3 call $~lib/builtins/abort @@ -34126,7 +34121,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -34144,7 +34139,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 136 i32.const 3 call $~lib/builtins/abort @@ -34164,7 +34159,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 140 i32.const 3 call $~lib/builtins/abort @@ -34182,7 +34177,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -34200,7 +34195,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 142 i32.const 3 call $~lib/builtins/abort @@ -34227,7 +34222,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 146 i32.const 3 call $~lib/builtins/abort @@ -34245,7 +34240,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -34264,7 +34259,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 148 i32.const 3 call $~lib/builtins/abort @@ -34291,7 +34286,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 152 i32.const 3 call $~lib/builtins/abort @@ -34309,7 +34304,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 153 i32.const 3 call $~lib/builtins/abort @@ -34328,7 +34323,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 154 i32.const 3 call $~lib/builtins/abort @@ -34347,7 +34342,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -34374,7 +34369,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 159 i32.const 3 call $~lib/builtins/abort @@ -34392,7 +34387,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 160 i32.const 3 call $~lib/builtins/abort @@ -34411,7 +34406,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 161 i32.const 3 call $~lib/builtins/abort @@ -34430,7 +34425,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 162 i32.const 3 call $~lib/builtins/abort @@ -34449,7 +34444,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 163 i32.const 3 call $~lib/builtins/abort @@ -34499,7 +34494,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 171 i32.const 3 call $~lib/builtins/abort @@ -34509,7 +34504,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 3632 + i32.const 1664 call $~lib/rt/__newArray local.tee $29 i32.store offset=28 @@ -34526,7 +34521,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 179 i32.const 3 call $~lib/builtins/abort @@ -34545,7 +34540,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 180 i32.const 3 call $~lib/builtins/abort @@ -34564,7 +34559,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 181 i32.const 3 call $~lib/builtins/abort @@ -34583,7 +34578,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 182 i32.const 3 call $~lib/builtins/abort @@ -34623,7 +34618,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 191 i32.const 3 call $~lib/builtins/abort @@ -34641,7 +34636,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 192 i32.const 3 call $~lib/builtins/abort @@ -34659,7 +34654,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 193 i32.const 3 call $~lib/builtins/abort @@ -34674,7 +34669,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 3680 + i32.const 1712 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -34695,7 +34690,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 196 i32.const 3 call $~lib/builtins/abort @@ -34714,7 +34709,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 198 i32.const 3 call $~lib/builtins/abort @@ -34733,7 +34728,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 199 i32.const 3 call $~lib/builtins/abort @@ -34752,7 +34747,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 200 i32.const 3 call $~lib/builtins/abort @@ -34804,7 +34799,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 207 i32.const 3 call $~lib/builtins/abort @@ -34822,7 +34817,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 208 i32.const 3 call $~lib/builtins/abort @@ -34840,7 +34835,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 209 i32.const 3 call $~lib/builtins/abort @@ -34859,7 +34854,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 210 i32.const 3 call $~lib/builtins/abort @@ -34878,7 +34873,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 211 i32.const 3 call $~lib/builtins/abort @@ -34897,7 +34892,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 212 i32.const 3 call $~lib/builtins/abort @@ -34916,7 +34911,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 213 i32.const 3 call $~lib/builtins/abort @@ -34935,7 +34930,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 214 i32.const 3 call $~lib/builtins/abort @@ -34961,7 +34956,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 217 i32.const 3 call $~lib/builtins/abort @@ -34971,7 +34966,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 3712 + i32.const 1744 call $~lib/rt/__newArray local.tee $34 i32.store offset=40 @@ -34987,7 +34982,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 225 i32.const 3 call $~lib/builtins/abort @@ -35021,7 +35016,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 227 i32.const 3 call $~lib/builtins/abort @@ -35039,7 +35034,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 228 i32.const 3 call $~lib/builtins/abort @@ -35049,7 +35044,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 3744 + i32.const 1776 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35073,7 +35068,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 3792 + i32.const 1824 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35085,7 +35080,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 235 i32.const 3 call $~lib/builtins/abort @@ -35095,7 +35090,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 3840 + i32.const 1872 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35119,7 +35114,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 3888 + i32.const 1920 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35131,7 +35126,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 237 i32.const 3 call $~lib/builtins/abort @@ -35141,7 +35136,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 3936 + i32.const 1968 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35165,7 +35160,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 3984 + i32.const 2016 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35177,7 +35172,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 239 i32.const 3 call $~lib/builtins/abort @@ -35187,7 +35182,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4032 + i32.const 2064 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35211,7 +35206,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4080 + i32.const 2112 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35223,7 +35218,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 241 i32.const 3 call $~lib/builtins/abort @@ -35233,7 +35228,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4128 + i32.const 2160 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35255,7 +35250,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4176 + i32.const 2208 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35267,7 +35262,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 243 i32.const 3 call $~lib/builtins/abort @@ -35277,7 +35272,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4224 + i32.const 2256 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35299,7 +35294,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4272 + i32.const 2304 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35311,7 +35306,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 245 i32.const 3 call $~lib/builtins/abort @@ -35321,7 +35316,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4320 + i32.const 2352 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35343,7 +35338,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4368 + i32.const 2400 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35355,7 +35350,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 247 i32.const 3 call $~lib/builtins/abort @@ -35365,7 +35360,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4416 + i32.const 2448 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35389,7 +35384,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4464 + i32.const 2496 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35401,7 +35396,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 249 i32.const 3 call $~lib/builtins/abort @@ -35411,7 +35406,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4512 + i32.const 2544 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35433,7 +35428,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4560 + i32.const 2592 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35445,7 +35440,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 251 i32.const 3 call $~lib/builtins/abort @@ -35455,7 +35450,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4608 + i32.const 2640 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35477,7 +35472,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4656 + i32.const 2688 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35489,7 +35484,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 253 i32.const 3 call $~lib/builtins/abort @@ -35499,7 +35494,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4704 + i32.const 2736 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35521,7 +35516,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4752 + i32.const 2784 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35533,7 +35528,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 255 i32.const 3 call $~lib/builtins/abort @@ -35543,7 +35538,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4800 + i32.const 2832 call $~lib/rt/__newArray local.tee $36 i32.store offset=44 @@ -35567,7 +35562,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4848 + i32.const 2880 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -35579,7 +35574,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 257 i32.const 3 call $~lib/builtins/abort @@ -35606,7 +35601,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 265 i32.const 3 call $~lib/builtins/abort @@ -35624,7 +35619,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 266 i32.const 3 call $~lib/builtins/abort @@ -35643,7 +35638,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 267 i32.const 3 call $~lib/builtins/abort @@ -35662,7 +35657,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 268 i32.const 3 call $~lib/builtins/abort @@ -35681,7 +35676,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 269 i32.const 3 call $~lib/builtins/abort @@ -35700,7 +35695,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 270 i32.const 3 call $~lib/builtins/abort @@ -35727,7 +35722,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 274 i32.const 3 call $~lib/builtins/abort @@ -35745,7 +35740,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 275 i32.const 3 call $~lib/builtins/abort @@ -35764,7 +35759,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 276 i32.const 3 call $~lib/builtins/abort @@ -35783,7 +35778,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 277 i32.const 3 call $~lib/builtins/abort @@ -35802,7 +35797,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 278 i32.const 3 call $~lib/builtins/abort @@ -35821,7 +35816,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 279 i32.const 3 call $~lib/builtins/abort @@ -35840,7 +35835,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 280 i32.const 3 call $~lib/builtins/abort @@ -35860,7 +35855,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 289 i32.const 3 call $~lib/builtins/abort @@ -35878,7 +35873,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 290 i32.const 3 call $~lib/builtins/abort @@ -35896,7 +35891,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 291 i32.const 3 call $~lib/builtins/abort @@ -35915,7 +35910,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 292 i32.const 3 call $~lib/builtins/abort @@ -35934,7 +35929,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 293 i32.const 3 call $~lib/builtins/abort @@ -35953,7 +35948,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 294 i32.const 3 call $~lib/builtins/abort @@ -35972,7 +35967,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 295 i32.const 3 call $~lib/builtins/abort @@ -35992,7 +35987,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 299 i32.const 3 call $~lib/builtins/abort @@ -36010,7 +36005,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 300 i32.const 3 call $~lib/builtins/abort @@ -36028,7 +36023,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 301 i32.const 3 call $~lib/builtins/abort @@ -36047,7 +36042,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 302 i32.const 3 call $~lib/builtins/abort @@ -36066,7 +36061,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 303 i32.const 3 call $~lib/builtins/abort @@ -36085,7 +36080,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 304 i32.const 3 call $~lib/builtins/abort @@ -36095,7 +36090,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4896 + i32.const 2928 call $~lib/rt/__newArray local.tee $62 i32.store offset=52 @@ -36122,7 +36117,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 4944 + i32.const 2976 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36134,7 +36129,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 314 i32.const 3 call $~lib/builtins/abort @@ -36161,7 +36156,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 4976 + i32.const 3008 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36173,7 +36168,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 317 i32.const 3 call $~lib/builtins/abort @@ -36200,7 +36195,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 5008 + i32.const 3040 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36212,7 +36207,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 320 i32.const 3 call $~lib/builtins/abort @@ -36249,7 +36244,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -36278,7 +36273,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 5056 + i32.const 3088 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36290,7 +36285,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 326 i32.const 3 call $~lib/builtins/abort @@ -36317,7 +36312,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 5088 + i32.const 3120 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36329,7 +36324,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 329 i32.const 3 call $~lib/builtins/abort @@ -36356,7 +36351,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 5120 + i32.const 3152 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36368,7 +36363,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 332 i32.const 3 call $~lib/builtins/abort @@ -36394,7 +36389,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 334 i32.const 3 call $~lib/builtins/abort @@ -36422,7 +36417,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 335 i32.const 3 call $~lib/builtins/abort @@ -36448,7 +36443,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 343 i32.const 3 call $~lib/builtins/abort @@ -36466,7 +36461,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -36485,7 +36480,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -36504,7 +36499,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -36523,7 +36518,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 347 i32.const 3 call $~lib/builtins/abort @@ -36551,7 +36546,7 @@ i32.const 4 i32.const 0 i32.const 7 - i32.const 5152 + i32.const 3184 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36599,7 +36594,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 354 i32.const 5 call $~lib/builtins/abort @@ -36616,7 +36611,7 @@ i32.const 8 i32.const 0 i32.const 7 - i32.const 5184 + i32.const 3216 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36664,7 +36659,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 359 i32.const 5 call $~lib/builtins/abort @@ -36681,7 +36676,7 @@ i32.const 17 i32.const 0 i32.const 7 - i32.const 5216 + i32.const 3248 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36729,7 +36724,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 364 i32.const 5 call $~lib/builtins/abort @@ -36746,7 +36741,7 @@ i32.const 7 i32.const 1 i32.const 11 - i32.const 5264 + i32.const 3296 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36794,7 +36789,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 369 i32.const 5 call $~lib/builtins/abort @@ -36811,7 +36806,7 @@ i32.const 8 i32.const 1 i32.const 11 - i32.const 5312 + i32.const 3344 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36859,7 +36854,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 374 i32.const 5 call $~lib/builtins/abort @@ -36876,7 +36871,7 @@ i32.const 9 i32.const 1 i32.const 11 - i32.const 5360 + i32.const 3392 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -36924,7 +36919,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 379 i32.const 5 call $~lib/builtins/abort @@ -36953,7 +36948,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 387 i32.const 3 call $~lib/builtins/abort @@ -36975,7 +36970,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -36997,7 +36992,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 393 i32.const 3 call $~lib/builtins/abort @@ -37019,7 +37014,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 396 i32.const 3 call $~lib/builtins/abort @@ -37041,7 +37036,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 399 i32.const 3 call $~lib/builtins/abort @@ -37063,7 +37058,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 402 i32.const 3 call $~lib/builtins/abort @@ -37085,7 +37080,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 405 i32.const 3 call $~lib/builtins/abort @@ -37107,7 +37102,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 408 i32.const 3 call $~lib/builtins/abort @@ -37129,7 +37124,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 411 i32.const 3 call $~lib/builtins/abort @@ -37151,7 +37146,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -37160,7 +37155,7 @@ i32.const 1 i32.const 2 i32.const 9 - i32.const 5408 + i32.const 3440 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37175,7 +37170,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -37184,7 +37179,7 @@ i32.const 1 i32.const 3 i32.const 12 - i32.const 5440 + i32.const 3472 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37199,7 +37194,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -37209,7 +37204,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 5472 + i32.const 3504 call $~lib/rt/__newArray local.tee $96 i32.store offset=84 @@ -37229,7 +37224,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 424 i32.const 3 call $~lib/builtins/abort @@ -37251,7 +37246,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 425 i32.const 3 call $~lib/builtins/abort @@ -37271,7 +37266,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 426 i32.const 3 call $~lib/builtins/abort @@ -37291,7 +37286,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 427 i32.const 3 call $~lib/builtins/abort @@ -37311,7 +37306,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 428 i32.const 3 call $~lib/builtins/abort @@ -37331,7 +37326,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 429 i32.const 3 call $~lib/builtins/abort @@ -37353,7 +37348,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 437 i32.const 3 call $~lib/builtins/abort @@ -37375,7 +37370,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -37397,7 +37392,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 443 i32.const 3 call $~lib/builtins/abort @@ -37419,7 +37414,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 446 i32.const 3 call $~lib/builtins/abort @@ -37441,7 +37436,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 449 i32.const 3 call $~lib/builtins/abort @@ -37463,7 +37458,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 452 i32.const 3 call $~lib/builtins/abort @@ -37485,7 +37480,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 455 i32.const 3 call $~lib/builtins/abort @@ -37507,7 +37502,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 458 i32.const 3 call $~lib/builtins/abort @@ -37529,7 +37524,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -37551,7 +37546,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 464 i32.const 3 call $~lib/builtins/abort @@ -37560,7 +37555,7 @@ i32.const 1 i32.const 2 i32.const 9 - i32.const 5520 + i32.const 3552 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37573,7 +37568,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 466 i32.const 3 call $~lib/builtins/abort @@ -37582,7 +37577,7 @@ i32.const 1 i32.const 3 i32.const 12 - i32.const 5552 + i32.const 3584 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37595,7 +37590,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 467 i32.const 3 call $~lib/builtins/abort @@ -37623,7 +37618,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 471 i32.const 3 call $~lib/builtins/abort @@ -37641,7 +37636,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 472 i32.const 3 call $~lib/builtins/abort @@ -37660,7 +37655,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 473 i32.const 3 call $~lib/builtins/abort @@ -37679,7 +37674,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 474 i32.const 3 call $~lib/builtins/abort @@ -37689,7 +37684,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5584 + i32.const 3616 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -37712,7 +37707,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5632 + i32.const 3664 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37724,7 +37719,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 481 i32.const 3 call $~lib/builtins/abort @@ -37739,7 +37734,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 5680 + i32.const 3712 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37751,7 +37746,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 482 i32.const 3 call $~lib/builtins/abort @@ -37761,7 +37756,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5712 + i32.const 3744 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -37782,7 +37777,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 5760 + i32.const 3792 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37794,7 +37789,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 485 i32.const 3 call $~lib/builtins/abort @@ -37809,7 +37804,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5792 + i32.const 3824 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37821,7 +37816,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -37831,7 +37826,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5840 + i32.const 3872 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -37854,7 +37849,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 5888 + i32.const 3920 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37866,7 +37861,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 489 i32.const 3 call $~lib/builtins/abort @@ -37881,7 +37876,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 5920 + i32.const 3952 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37893,7 +37888,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 490 i32.const 3 call $~lib/builtins/abort @@ -37903,7 +37898,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5952 + i32.const 3984 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -37924,7 +37919,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 6000 + i32.const 4032 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37936,7 +37931,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 493 i32.const 3 call $~lib/builtins/abort @@ -37951,7 +37946,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 6032 + i32.const 4064 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -37963,7 +37958,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 494 i32.const 3 call $~lib/builtins/abort @@ -37973,7 +37968,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6064 + i32.const 4096 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -37994,7 +37989,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 6112 + i32.const 4144 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38006,7 +38001,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 497 i32.const 3 call $~lib/builtins/abort @@ -38021,7 +38016,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 6144 + i32.const 4176 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38033,7 +38028,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 498 i32.const 3 call $~lib/builtins/abort @@ -38043,7 +38038,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6192 + i32.const 4224 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -38066,7 +38061,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 6240 + i32.const 4272 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38078,7 +38073,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 501 i32.const 3 call $~lib/builtins/abort @@ -38093,7 +38088,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 6272 + i32.const 4304 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38105,7 +38100,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 502 i32.const 3 call $~lib/builtins/abort @@ -38115,7 +38110,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6320 + i32.const 4352 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -38138,7 +38133,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 6368 + i32.const 4400 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38150,7 +38145,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 505 i32.const 3 call $~lib/builtins/abort @@ -38165,7 +38160,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 6400 + i32.const 4432 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38177,7 +38172,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 506 i32.const 3 call $~lib/builtins/abort @@ -38187,7 +38182,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6432 + i32.const 4464 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -38208,7 +38203,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 6480 + i32.const 4512 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38220,7 +38215,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -38235,7 +38230,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 6512 + i32.const 4544 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38247,7 +38242,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 510 i32.const 3 call $~lib/builtins/abort @@ -38257,7 +38252,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6560 + i32.const 4592 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -38278,7 +38273,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 6608 + i32.const 4640 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38290,7 +38285,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 513 i32.const 3 call $~lib/builtins/abort @@ -38305,7 +38300,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 6640 + i32.const 4672 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38317,7 +38312,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 514 i32.const 3 call $~lib/builtins/abort @@ -38327,7 +38322,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6688 + i32.const 4720 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -38348,7 +38343,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 6736 + i32.const 4768 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38360,7 +38355,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 517 i32.const 3 call $~lib/builtins/abort @@ -38375,7 +38370,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6768 + i32.const 4800 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38387,7 +38382,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 518 i32.const 3 call $~lib/builtins/abort @@ -38397,7 +38392,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6816 + i32.const 4848 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -38418,7 +38413,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 6864 + i32.const 4896 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38430,7 +38425,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 521 i32.const 3 call $~lib/builtins/abort @@ -38445,7 +38440,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6896 + i32.const 4928 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38457,7 +38452,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 522 i32.const 3 call $~lib/builtins/abort @@ -38467,7 +38462,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6944 + i32.const 4976 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -38488,7 +38483,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 6992 + i32.const 5024 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38500,7 +38495,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 525 i32.const 3 call $~lib/builtins/abort @@ -38515,7 +38510,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7024 + i32.const 5056 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38527,7 +38522,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 526 i32.const 3 call $~lib/builtins/abort @@ -38537,7 +38532,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7072 + i32.const 5104 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -38558,7 +38553,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 7120 + i32.const 5152 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38570,7 +38565,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 529 i32.const 3 call $~lib/builtins/abort @@ -38585,7 +38580,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7152 + i32.const 5184 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38597,7 +38592,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 530 i32.const 3 call $~lib/builtins/abort @@ -38607,7 +38602,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7200 + i32.const 5232 call $~lib/rt/__newArray local.tee $101 i32.store offset=88 @@ -38628,7 +38623,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 7248 + i32.const 5280 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38640,7 +38635,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 533 i32.const 3 call $~lib/builtins/abort @@ -38655,7 +38650,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7280 + i32.const 5312 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -38667,7 +38662,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 534 i32.const 3 call $~lib/builtins/abort @@ -38677,7 +38672,7 @@ i32.const 0 i32.const 2 i32.const 10 - i32.const 7328 + i32.const 5360 call $~lib/rt/__newArray local.tee $144 i32.store offset=92 @@ -38705,7 +38700,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 538 i32.const 3 call $~lib/builtins/abort @@ -38723,7 +38718,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 539 i32.const 3 call $~lib/builtins/abort @@ -38795,7 +38790,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 544 i32.const 3 call $~lib/builtins/abort @@ -38820,7 +38815,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 545 i32.const 3 call $~lib/builtins/abort @@ -38845,7 +38840,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 546 i32.const 3 call $~lib/builtins/abort @@ -38863,7 +38858,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 548 i32.const 3 call $~lib/builtins/abort @@ -38888,7 +38883,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 549 i32.const 3 call $~lib/builtins/abort @@ -38913,7 +38908,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 550 i32.const 3 call $~lib/builtins/abort @@ -38938,7 +38933,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 551 i32.const 3 call $~lib/builtins/abort @@ -38996,7 +38991,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 556 i32.const 3 call $~lib/builtins/abort @@ -39017,8 +39012,8 @@ if (result i32) local.get $150 else - i32.const 7488 - i32.const 2496 + i32.const 5520 + i32.const 528 i32.const 557 i32.const 10 call $~lib/builtins/abort @@ -39035,7 +39030,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 557 i32.const 3 call $~lib/builtins/abort @@ -39053,7 +39048,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 559 i32.const 3 call $~lib/builtins/abort @@ -39072,7 +39067,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 560 i32.const 3 call $~lib/builtins/abort @@ -39093,8 +39088,8 @@ if (result i32) local.get $151 else - i32.const 7488 - i32.const 2496 + i32.const 5520 + i32.const 528 i32.const 561 i32.const 10 call $~lib/builtins/abort @@ -39111,7 +39106,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 561 i32.const 3 call $~lib/builtins/abort @@ -39159,7 +39154,7 @@ local.get $296 i32.store local.get $296 - i32.const 7616 + i32.const 5648 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39173,7 +39168,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 574 i32.const 3 call $~lib/builtins/abort @@ -39185,7 +39180,7 @@ local.get $296 i32.store local.get $296 - i32.const 7648 + i32.const 5680 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39199,7 +39194,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -39211,7 +39206,7 @@ local.get $296 i32.store local.get $296 - i32.const 7680 + i32.const 5712 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39225,7 +39220,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 580 i32.const 3 call $~lib/builtins/abort @@ -39237,7 +39232,7 @@ local.get $296 i32.store local.get $296 - i32.const 7712 + i32.const 5744 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39251,7 +39246,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 588 i32.const 3 call $~lib/builtins/abort @@ -39269,7 +39264,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 589 i32.const 3 call $~lib/builtins/abort @@ -39281,7 +39276,7 @@ local.get $296 i32.store local.get $296 - i32.const 7744 + i32.const 5776 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39295,7 +39290,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 591 i32.const 3 call $~lib/builtins/abort @@ -39339,7 +39334,7 @@ local.get $296 i32.store local.get $296 - i32.const 7776 + i32.const 5808 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39353,7 +39348,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -39371,7 +39366,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -39399,7 +39394,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 7808 + i32.const 5840 call $~lib/rt/__newArray local.tee $153 i32.store offset=124 @@ -39409,7 +39404,7 @@ local.get $296 i32.store local.get $296 - i32.const 7856 + i32.const 5888 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39423,7 +39418,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -39435,7 +39430,7 @@ local.get $296 i32.store local.get $296 - i32.const 7888 + i32.const 5920 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39449,7 +39444,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -39461,7 +39456,7 @@ local.get $296 i32.store local.get $296 - i32.const 7920 + i32.const 5952 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39475,7 +39470,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 624 i32.const 3 call $~lib/builtins/abort @@ -39487,7 +39482,7 @@ local.get $296 i32.store local.get $296 - i32.const 7952 + i32.const 5984 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39501,7 +39496,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -39513,7 +39508,7 @@ local.get $296 i32.store local.get $296 - i32.const 7984 + i32.const 6016 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39527,7 +39522,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 640 i32.const 3 call $~lib/builtins/abort @@ -39539,7 +39534,7 @@ local.get $296 i32.store local.get $296 - i32.const 8016 + i32.const 6048 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39553,7 +39548,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 643 i32.const 3 call $~lib/builtins/abort @@ -39565,7 +39560,7 @@ local.get $296 i32.store local.get $296 - i32.const 8048 + i32.const 6080 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39579,7 +39574,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 651 i32.const 3 call $~lib/builtins/abort @@ -39597,7 +39592,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 652 i32.const 3 call $~lib/builtins/abort @@ -39609,7 +39604,7 @@ local.get $296 i32.store local.get $296 - i32.const 8080 + i32.const 6112 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39623,7 +39618,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 654 i32.const 3 call $~lib/builtins/abort @@ -39667,7 +39662,7 @@ local.get $296 i32.store local.get $296 - i32.const 8112 + i32.const 6144 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39681,7 +39676,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 667 i32.const 3 call $~lib/builtins/abort @@ -39699,7 +39694,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 668 i32.const 3 call $~lib/builtins/abort @@ -39729,7 +39724,7 @@ local.get $296 i32.store local.get $296 - i32.const 8144 + i32.const 6176 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39743,7 +39738,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 678 i32.const 3 call $~lib/builtins/abort @@ -39755,7 +39750,7 @@ local.get $296 i32.store local.get $296 - i32.const 8176 + i32.const 6208 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39769,7 +39764,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 681 i32.const 3 call $~lib/builtins/abort @@ -39781,7 +39776,7 @@ local.get $296 i32.store local.get $296 - i32.const 8208 + i32.const 6240 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39795,7 +39790,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 689 i32.const 3 call $~lib/builtins/abort @@ -39813,7 +39808,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 690 i32.const 3 call $~lib/builtins/abort @@ -39825,7 +39820,7 @@ local.get $296 i32.store local.get $296 - i32.const 8240 + i32.const 6272 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39839,7 +39834,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 692 i32.const 3 call $~lib/builtins/abort @@ -39883,7 +39878,7 @@ local.get $296 i32.store local.get $296 - i32.const 8272 + i32.const 6304 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39897,7 +39892,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 705 i32.const 3 call $~lib/builtins/abort @@ -39915,7 +39910,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 706 i32.const 3 call $~lib/builtins/abort @@ -39947,7 +39942,7 @@ local.get $296 i32.store local.get $296 - i32.const 8304 + i32.const 6336 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39960,7 +39955,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 717 i32.const 3 call $~lib/builtins/abort @@ -39974,7 +39969,7 @@ local.get $296 i32.store local.get $296 - i32.const 8336 + i32.const 6368 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -39987,7 +39982,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 726 i32.const 3 call $~lib/builtins/abort @@ -40005,7 +40000,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 727 i32.const 3 call $~lib/builtins/abort @@ -40019,7 +40014,7 @@ local.get $296 i32.store local.get $296 - i32.const 8368 + i32.const 6400 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40032,7 +40027,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 730 i32.const 3 call $~lib/builtins/abort @@ -40078,7 +40073,7 @@ local.get $296 i32.store local.get $296 - i32.const 8400 + i32.const 6432 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40091,7 +40086,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 744 i32.const 3 call $~lib/builtins/abort @@ -40109,7 +40104,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 745 i32.const 3 call $~lib/builtins/abort @@ -40139,7 +40134,7 @@ local.get $296 i32.store local.get $296 - i32.const 8432 + i32.const 6464 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40158,7 +40153,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 770 i32.const 3 call $~lib/builtins/abort @@ -40229,7 +40224,7 @@ local.get $296 i32.store local.get $296 - i32.const 8464 + i32.const 8272 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40245,7 +40240,7 @@ local.get $296 i32.store local.get $296 - i32.const 8496 + i32.const 8304 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40266,7 +40261,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 786 i32.const 3 call $~lib/builtins/abort @@ -40293,7 +40288,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 787 i32.const 3 call $~lib/builtins/abort @@ -40307,7 +40302,7 @@ local.get $296 i32.store local.get $296 - i32.const 8528 + i32.const 8336 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40321,7 +40316,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 796 i32.const 3 call $~lib/builtins/abort @@ -40339,7 +40334,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 797 i32.const 3 call $~lib/builtins/abort @@ -40353,7 +40348,7 @@ local.get $296 i32.store local.get $296 - i32.const 8560 + i32.const 8368 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40367,7 +40362,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 804 i32.const 3 call $~lib/builtins/abort @@ -40413,7 +40408,7 @@ local.get $296 i32.store local.get $296 - i32.const 8592 + i32.const 8400 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40427,7 +40422,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 819 i32.const 3 call $~lib/builtins/abort @@ -40445,7 +40440,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 820 i32.const 3 call $~lib/builtins/abort @@ -40476,7 +40471,7 @@ local.get $296 i32.store local.get $296 - i32.const 8624 + i32.const 8432 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40497,7 +40492,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 830 i32.const 3 call $~lib/builtins/abort @@ -40511,7 +40506,7 @@ local.get $296 i32.store local.get $296 - i32.const 8656 + i32.const 8464 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40525,7 +40520,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 839 i32.const 3 call $~lib/builtins/abort @@ -40543,7 +40538,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 840 i32.const 3 call $~lib/builtins/abort @@ -40557,7 +40552,7 @@ local.get $296 i32.store local.get $296 - i32.const 8688 + i32.const 8496 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40571,7 +40566,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 847 i32.const 3 call $~lib/builtins/abort @@ -40617,7 +40612,7 @@ local.get $296 i32.store local.get $296 - i32.const 8720 + i32.const 8528 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40631,7 +40626,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 862 i32.const 3 call $~lib/builtins/abort @@ -40649,7 +40644,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 863 i32.const 3 call $~lib/builtins/abort @@ -40679,7 +40674,7 @@ local.get $296 i32.store local.get $296 - i32.const 8752 + i32.const 8560 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40694,7 +40689,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 873 i32.const 3 call $~lib/builtins/abort @@ -40706,7 +40701,7 @@ local.get $296 i32.store local.get $296 - i32.const 8784 + i32.const 8592 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40721,7 +40716,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 877 i32.const 3 call $~lib/builtins/abort @@ -40733,7 +40728,7 @@ local.get $296 i32.store local.get $296 - i32.const 8816 + i32.const 8624 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40750,7 +40745,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 880 i32.const 3 call $~lib/builtins/abort @@ -40762,7 +40757,7 @@ local.get $296 i32.store local.get $296 - i32.const 8848 + i32.const 8656 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40779,7 +40774,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 883 i32.const 3 call $~lib/builtins/abort @@ -40791,7 +40786,7 @@ local.get $296 i32.store local.get $296 - i32.const 8880 + i32.const 8688 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40806,7 +40801,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -40824,7 +40819,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 892 i32.const 3 call $~lib/builtins/abort @@ -40836,7 +40831,7 @@ local.get $296 i32.store local.get $296 - i32.const 8912 + i32.const 8720 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40851,7 +40846,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 894 i32.const 3 call $~lib/builtins/abort @@ -40895,7 +40890,7 @@ local.get $296 i32.store local.get $296 - i32.const 8944 + i32.const 8752 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40910,7 +40905,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 907 i32.const 3 call $~lib/builtins/abort @@ -40928,7 +40923,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 908 i32.const 3 call $~lib/builtins/abort @@ -40958,7 +40953,7 @@ local.get $296 i32.store local.get $296 - i32.const 8976 + i32.const 8784 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -40973,7 +40968,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 918 i32.const 3 call $~lib/builtins/abort @@ -40985,7 +40980,7 @@ local.get $296 i32.store local.get $296 - i32.const 9008 + i32.const 8816 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -41000,7 +40995,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 922 i32.const 3 call $~lib/builtins/abort @@ -41012,7 +41007,7 @@ local.get $296 i32.store local.get $296 - i32.const 9040 + i32.const 8848 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -41029,7 +41024,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 925 i32.const 3 call $~lib/builtins/abort @@ -41041,7 +41036,7 @@ local.get $296 i32.store local.get $296 - i32.const 9072 + i32.const 8880 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -41058,7 +41053,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 928 i32.const 3 call $~lib/builtins/abort @@ -41070,7 +41065,7 @@ local.get $296 i32.store local.get $296 - i32.const 9104 + i32.const 8912 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -41085,7 +41080,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 936 i32.const 3 call $~lib/builtins/abort @@ -41103,7 +41098,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 937 i32.const 3 call $~lib/builtins/abort @@ -41115,7 +41110,7 @@ local.get $296 i32.store local.get $296 - i32.const 9136 + i32.const 8944 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -41130,7 +41125,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 939 i32.const 3 call $~lib/builtins/abort @@ -41174,7 +41169,7 @@ local.get $296 i32.store local.get $296 - i32.const 9168 + i32.const 8976 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -41189,7 +41184,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 952 i32.const 3 call $~lib/builtins/abort @@ -41207,7 +41202,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 953 i32.const 3 call $~lib/builtins/abort @@ -41876,7 +41871,7 @@ i32.const 3 i32.const 2 i32.const 9 - i32.const 9392 + i32.const 9200 call $~lib/rt/__newArray local.tee $189 i32.store offset=244 @@ -41900,7 +41895,7 @@ i32.const 3 i32.const 2 i32.const 9 - i32.const 9456 + i32.const 9264 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -41912,7 +41907,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1091 i32.const 3 call $~lib/builtins/abort @@ -41922,7 +41917,7 @@ i32.const 8 i32.const 2 i32.const 9 - i32.const 9488 + i32.const 9296 call $~lib/rt/__newArray local.tee $192 i32.store offset=248 @@ -41946,7 +41941,7 @@ i32.const 8 i32.const 2 i32.const 9 - i32.const 9552 + i32.const 9360 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -41958,7 +41953,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1095 i32.const 3 call $~lib/builtins/abort @@ -41968,7 +41963,7 @@ i32.const 8 i32.const 3 i32.const 12 - i32.const 9616 + i32.const 9424 call $~lib/rt/__newArray local.tee $195 i32.store offset=252 @@ -41992,7 +41987,7 @@ i32.const 8 i32.const 3 i32.const 12 - i32.const 9744 + i32.const 9552 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -42004,7 +41999,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1099 i32.const 3 call $~lib/builtins/abort @@ -42014,7 +42009,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 9840 + i32.const 9648 call $~lib/rt/__newArray local.tee $198 i32.store offset=256 @@ -42038,7 +42033,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 9920 + i32.const 9728 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -42050,7 +42045,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1103 i32.const 3 call $~lib/builtins/abort @@ -42060,7 +42055,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 9968 + i32.const 9776 call $~lib/rt/__newArray local.tee $201 i32.store offset=260 @@ -42084,7 +42079,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 10048 + i32.const 9856 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -42096,7 +42091,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1107 i32.const 3 call $~lib/builtins/abort @@ -42106,7 +42101,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 10096 + i32.const 9904 call $~lib/rt/__newArray local.tee $204 i32.store offset=264 @@ -42114,7 +42109,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 10128 + i32.const 9936 call $~lib/rt/__newArray local.tee $206 i32.store offset=268 @@ -42122,7 +42117,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 10160 + i32.const 9968 call $~lib/rt/__newArray local.tee $208 i32.store offset=272 @@ -42130,7 +42125,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 10192 + i32.const 10000 call $~lib/rt/__newArray local.tee $210 i32.store offset=276 @@ -42138,7 +42133,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 10240 + i32.const 10048 call $~lib/rt/__newArray local.tee $212 i32.store offset=280 @@ -42190,7 +42185,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 10320 + i32.const 10128 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -42202,7 +42197,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1127 i32.const 3 call $~lib/builtins/abort @@ -42224,7 +42219,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 10352 + i32.const 10160 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -42236,7 +42231,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1130 i32.const 3 call $~lib/builtins/abort @@ -42266,7 +42261,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1133 i32.const 3 call $~lib/builtins/abort @@ -42296,7 +42291,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1136 i32.const 3 call $~lib/builtins/abort @@ -42326,7 +42321,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1139 i32.const 3 call $~lib/builtins/abort @@ -42356,7 +42351,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1142 i32.const 3 call $~lib/builtins/abort @@ -42386,7 +42381,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1145 i32.const 3 call $~lib/builtins/abort @@ -42416,7 +42411,7 @@ local.get $296 i32.store local.get $296 - i32.const 10416 + i32.const 10224 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -42429,7 +42424,7 @@ local.get $296 i32.store local.get $296 - i32.const 10448 + i32.const 10256 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -42442,7 +42437,7 @@ local.get $296 i32.store local.get $296 - i32.const 10480 + i32.const 10288 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -42455,7 +42450,7 @@ local.get $296 i32.store local.get $296 - i32.const 10512 + i32.const 10320 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -42473,7 +42468,7 @@ local.get $296 i32.store local.get $296 - i32.const 10544 + i32.const 10352 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -42491,7 +42486,7 @@ local.get $296 i32.store local.get $296 - i32.const 10576 + i32.const 10384 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -42502,7 +42497,7 @@ i32.const 7 i32.const 2 i32.const 34 - i32.const 10736 + i32.const 10576 call $~lib/rt/__newArray local.tee $225 i32.store offset=320 @@ -42510,7 +42505,7 @@ i32.const 7 i32.const 2 i32.const 34 - i32.const 10784 + i32.const 10624 call $~lib/rt/__newArray local.tee $227 i32.store offset=324 @@ -42541,7 +42536,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1184 i32.const 3 call $~lib/builtins/abort @@ -42565,26 +42560,26 @@ i32.const 2 i32.const 0 i32.const 37 - i32.const 10896 + i32.const 10736 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store offset=8 local.get $296 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store local.get $296 - i32.const 11024 + i32.const 10864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1193 i32.const 3 call $~lib/builtins/abort @@ -42593,26 +42588,26 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 11072 + i32.const 10912 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store offset=8 local.get $296 - i32.const 96 + i32.const 10544 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store local.get $296 - i32.const 11104 + i32.const 10944 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1194 i32.const 3 call $~lib/builtins/abort @@ -42621,26 +42616,26 @@ i32.const 3 i32.const 2 i32.const 8 - i32.const 11136 + i32.const 10976 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store offset=8 local.get $296 - i32.const 11168 + i32.const 11008 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store local.get $296 - i32.const 11104 + i32.const 10944 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1195 i32.const 3 call $~lib/builtins/abort @@ -42649,26 +42644,26 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 11200 + i32.const 11040 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store offset=8 local.get $296 - i32.const 11232 + i32.const 11072 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store local.get $296 - i32.const 11264 + i32.const 11104 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1196 i32.const 3 call $~lib/builtins/abort @@ -42677,26 +42672,26 @@ i32.const 6 i32.const 3 i32.const 12 - i32.const 11344 + i32.const 11184 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store offset=8 local.get $296 - i32.const 11424 + i32.const 11264 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store local.get $296 - i32.const 12592 + i32.const 12432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1197 i32.const 3 call $~lib/builtins/abort @@ -42705,26 +42700,26 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 12736 + i32.const 12576 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store offset=8 local.get $296 - i32.const 96 + i32.const 10544 call $~lib/array/Array<~lib/string/String|null>#join local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store local.get $296 - i32.const 12704 + i32.const 12544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1198 i32.const 3 call $~lib/builtins/abort @@ -42764,19 +42759,19 @@ local.get $296 i32.store offset=8 local.get $296 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store local.get $296 - i32.const 12832 + i32.const 12672 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1200 i32.const 3 call $~lib/builtins/abort @@ -42812,19 +42807,19 @@ local.get $296 i32.store offset=8 local.get $296 - i32.const 10992 + i32.const 10832 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 i32.store local.get $296 - i32.const 12928 + i32.const 12768 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1203 i32.const 3 call $~lib/builtins/abort @@ -42834,7 +42829,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 13024 + i32.const 12864 call $~lib/rt/__newArray local.tee $240 i32.store offset=348 @@ -42842,7 +42837,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 13056 + i32.const 12896 call $~lib/rt/__newArray local.tee $242 i32.store offset=352 @@ -42850,7 +42845,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 13088 + i32.const 12928 call $~lib/rt/__newArray local.tee $244 i32.store offset=356 @@ -42858,7 +42853,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 13120 + i32.const 12960 call $~lib/rt/__newArray local.tee $246 i32.store offset=360 @@ -42874,12 +42869,12 @@ local.get $296 i32.store local.get $296 - i32.const 96 + i32.const 10544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1213 i32.const 3 call $~lib/builtins/abort @@ -42897,12 +42892,12 @@ local.get $296 i32.store local.get $296 - i32.const 12704 + i32.const 12544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1214 i32.const 3 call $~lib/builtins/abort @@ -42920,12 +42915,12 @@ local.get $296 i32.store local.get $296 - i32.const 13168 + i32.const 13008 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1215 i32.const 3 call $~lib/builtins/abort @@ -42943,12 +42938,12 @@ local.get $296 i32.store local.get $296 - i32.const 13200 + i32.const 13040 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1216 i32.const 3 call $~lib/builtins/abort @@ -42957,7 +42952,7 @@ i32.const 3 i32.const 0 i32.const 38 - i32.const 13248 + i32.const 13088 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -42970,12 +42965,12 @@ local.get $296 i32.store local.get $296 - i32.const 13280 + i32.const 13120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1218 i32.const 3 call $~lib/builtins/abort @@ -42984,7 +42979,7 @@ i32.const 3 i32.const 0 i32.const 38 - i32.const 13312 + i32.const 13152 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -42997,12 +42992,12 @@ local.get $296 i32.store local.get $296 - i32.const 13344 + i32.const 13184 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1219 i32.const 3 call $~lib/builtins/abort @@ -43011,7 +43006,7 @@ i32.const 3 i32.const 1 i32.const 11 - i32.const 13392 + i32.const 13232 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -43024,12 +43019,12 @@ local.get $296 i32.store local.get $296 - i32.const 13424 + i32.const 13264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1220 i32.const 3 call $~lib/builtins/abort @@ -43038,7 +43033,7 @@ i32.const 2 i32.const 1 i32.const 39 - i32.const 13472 + i32.const 13312 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -43051,12 +43046,12 @@ local.get $296 i32.store local.get $296 - i32.const 13504 + i32.const 13344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1221 i32.const 3 call $~lib/builtins/abort @@ -43065,7 +43060,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 13552 + i32.const 13392 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -43078,12 +43073,12 @@ local.get $296 i32.store local.get $296 - i32.const 13584 + i32.const 13424 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1222 i32.const 3 call $~lib/builtins/abort @@ -43092,7 +43087,7 @@ i32.const 3 i32.const 3 i32.const 40 - i32.const 13648 + i32.const 13488 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -43105,12 +43100,12 @@ local.get $296 i32.store local.get $296 - i32.const 13696 + i32.const 13536 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1223 i32.const 3 call $~lib/builtins/abort @@ -43119,7 +43114,7 @@ i32.const 5 i32.const 3 i32.const 41 - i32.const 13776 + i32.const 13616 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -43132,12 +43127,12 @@ local.get $296 i32.store local.get $296 - i32.const 13840 + i32.const 13680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1224 i32.const 3 call $~lib/builtins/abort @@ -43147,7 +43142,7 @@ i32.const 7 i32.const 2 i32.const 34 - i32.const 14000 + i32.const 13840 call $~lib/rt/__newArray local.tee $255 i32.store offset=364 @@ -43163,12 +43158,12 @@ local.get $296 i32.store local.get $296 - i32.const 14048 + i32.const 13888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1231 i32.const 3 call $~lib/builtins/abort @@ -43177,7 +43172,7 @@ i32.const 4 i32.const 2 i32.const 34 - i32.const 14160 + i32.const 14000 call $~lib/rt/__newArray local.set $296 global.get $~lib/memory/__stack_pointer @@ -43190,12 +43185,12 @@ local.get $296 i32.store local.get $296 - i32.const 14208 + i32.const 14048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1232 i32.const 3 call $~lib/builtins/abort @@ -43215,7 +43210,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 14240 + i32.const 14080 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $257 @@ -43223,7 +43218,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 14272 + i32.const 14112 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $257 @@ -43241,12 +43236,12 @@ local.get $296 i32.store local.get $296 - i32.const 14304 + i32.const 14144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1235 i32.const 3 call $~lib/builtins/abort @@ -43266,7 +43261,7 @@ i32.const 2 i32.const 0 i32.const 7 - i32.const 14352 + i32.const 14192 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $261 @@ -43274,7 +43269,7 @@ i32.const 2 i32.const 0 i32.const 7 - i32.const 14384 + i32.const 14224 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $261 @@ -43292,12 +43287,12 @@ local.get $296 i32.store local.get $296 - i32.const 14304 + i32.const 14144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1238 i32.const 3 call $~lib/builtins/abort @@ -43327,7 +43322,7 @@ i32.const 1 i32.const 2 i32.const 8 - i32.const 14416 + i32.const 14256 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $266 @@ -43347,12 +43342,12 @@ local.get $296 i32.store local.get $296 - i32.const 12704 + i32.const 12544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1241 i32.const 3 call $~lib/builtins/abort @@ -43372,7 +43367,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 14448 + i32.const 14288 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $269 @@ -43380,7 +43375,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 14480 + i32.const 14320 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $269 @@ -43388,7 +43383,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 14512 + i32.const 14352 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $269 @@ -43396,7 +43391,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 14544 + i32.const 14384 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $269 @@ -43424,7 +43419,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1248 i32.const 3 call $~lib/builtins/abort @@ -43450,7 +43445,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1250 i32.const 5 call $~lib/builtins/abort @@ -43477,7 +43472,7 @@ i32.const 1 i32.const 2 i32.const 34 - i32.const 14608 + i32.const 14448 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set local.get $277 @@ -43485,7 +43480,7 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 14704 + i32.const 14544 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set local.get $277 @@ -43493,7 +43488,7 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 14832 + i32.const 14672 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set local.get $277 @@ -43501,7 +43496,7 @@ i32.const 1 i32.const 2 i32.const 34 - i32.const 14896 + i32.const 14736 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set local.get $277 @@ -43521,7 +43516,7 @@ i32.const 8 i32.const 2 i32.const 34 - i32.const 14928 + i32.const 14768 call $~lib/rt/__newArray local.tee $285 i32.store offset=420 @@ -43537,7 +43532,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1256 i32.const 3 call $~lib/builtins/abort @@ -43586,7 +43581,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1258 i32.const 5 call $~lib/builtins/abort @@ -43613,7 +43608,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 14992 + i32.const 14832 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $287 @@ -43621,7 +43616,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 15024 + i32.const 14864 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $287 @@ -43645,7 +43640,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1262 i32.const 3 call $~lib/builtins/abort @@ -43665,7 +43660,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 15056 + i32.const 14896 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $291 @@ -43673,7 +43668,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 15088 + i32.const 14928 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set local.get $291 @@ -43686,7 +43681,7 @@ local.get $296 i32.store offset=8 local.get $296 - i32.const 15120 + i32.const 14960 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 @@ -43713,7 +43708,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1272 i32.const 3 call $~lib/builtins/abort @@ -43732,7 +43727,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1273 i32.const 3 call $~lib/builtins/abort @@ -43751,7 +43746,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1274 i32.const 3 call $~lib/builtins/abort @@ -43770,7 +43765,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1275 i32.const 3 call $~lib/builtins/abort @@ -43789,7 +43784,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 528 i32.const 1276 i32.const 3 call $~lib/builtins/abort @@ -43809,153 +43804,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) (local $buffer i32) @@ -43987,6 +43835,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -44042,8 +43894,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 6496 + i32.const 6624 i32.const 373 i32.const 5 call $~lib/builtins/abort @@ -44052,7 +43904,7 @@ local.get $value i32.eqz if - i32.const 752 + i32.const 6688 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -44219,6 +44071,153 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) + (local $out i32) + (local $decimals i32) + (local $buffer i32) + (local $num i32) + (local $offset i32) + (local $decimals|7 i32) + (local $buffer|8 i32) + (local $num|9 i32) + (local $offset|10 i32) + (local $decimals|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 $radix + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $radix + i32.const 36 + i32.gt_s + end + if + i32.const 6496 + i32.const 6624 + i32.const 350 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $value + i32.eqz + if + i32.const 6688 + 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 $radix + i32.const 10 + i32.eq + if + local.get $value + call $~lib/util/number/decimalCount32 + local.set $decimals + global.get $~lib/memory/__stack_pointer + local.get $decimals + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + else + local.get $radix + i32.const 16 + i32.eq + if + i32.const 31 + local.get $value + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $decimals|7 + global.get $~lib/memory/__stack_pointer + local.get $decimals|7 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut + else + local.get $value + i64.extend_i32_u + local.get $radix + call $~lib/util/number/ulog_base + local.set $decimals|11 + global.get $~lib/memory/__stack_pointer + local.get $decimals|11 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.get $value + i64.extend_i32_u + local.get $decimals|11 + local.get $radix + call $~lib/util/number/utoa64_any_core + end + end + local.get $out + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + ) (func $~lib/util/number/dtoa (param $value f64) (result i32) (local $value|1 f64) (local $isSingle i32) @@ -44242,7 +44241,7 @@ f64.const 0 f64.eq if - i32.const 11456 + i32.const 11296 br $~lib/util/number/dtoa_impl|inlined.0 end local.get $value|1 @@ -44256,18 +44255,18 @@ local.get $value|1 f64.ne if - i32.const 11488 + i32.const 11328 br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 11520 - i32.const 11568 + i32.const 11360 + i32.const 11408 local.get $value|1 f64.const 0 f64.lt select br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 11600 + i32.const 11440 local.get $value|1 local.get $isSingle call $~lib/util/number/dtoa_core @@ -44281,7 +44280,7 @@ local.tee $result i32.store local.get $result - i32.const 11600 + i32.const 11440 local.get $size memory.copy local.get $result @@ -44331,8 +44330,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 6496 + i32.const 6624 i32.const 401 i32.const 5 call $~lib/builtins/abort @@ -44343,7 +44342,7 @@ i64.ne i32.eqz if - i32.const 752 + i32.const 6688 local.set $17 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -44519,8 +44518,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 6496 + i32.const 6624 i32.const 431 i32.const 5 call $~lib/builtins/abort @@ -44531,7 +44530,7 @@ i64.ne i32.eqz if - i32.const 752 + i32.const 6688 local.set $18 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -44739,22 +44738,22 @@ i32.const 320 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 3584 + i32.const 1616 local.get $0 call $~lib/rt/itcms/__visit - i32.const 7360 + i32.const 5392 local.get $0 call $~lib/rt/itcms/__visit i32.const 128 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 7120 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 8176 local.get $0 call $~lib/rt/itcms/__visit ) @@ -45523,6 +45522,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -45549,6 +45552,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -45575,6 +45582,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -45601,6 +45612,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -45630,6 +45645,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -45697,6 +45716,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -45723,6 +45746,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -45752,6 +45779,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -45819,6 +45850,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -45843,6 +45878,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -45870,6 +45909,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -45937,6 +45980,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -45961,6 +46008,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -45985,6 +46036,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46009,6 +46064,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46033,6 +46092,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46060,6 +46123,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -46127,6 +46194,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46151,6 +46222,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46175,6 +46250,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46199,6 +46278,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46223,6 +46306,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46250,6 +46337,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -46317,6 +46408,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46344,6 +46439,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -46411,6 +46510,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46438,6 +46541,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -46505,6 +46612,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46529,6 +46640,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -46553,6 +46668,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -46579,6 +46698,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -46605,6 +46728,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -46631,6 +46758,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -46657,6 +46788,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -46686,6 +46821,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -46756,6 +46895,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -46826,6 +46969,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -46896,6 +47043,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -46963,6 +47114,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 6bb8d59054..c74eb0e1dc 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -7,9 +7,9 @@ (type $5 (func (param f32 f32) (result i32))) (type $6 (func (param f64 f64) (result i32))) (type $7 (func (param i32 i32))) - (type $8 (func (param i32))) - (type $9 (func (param i32 i32 i32 i32 i32))) - (type $10 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32))) + (type $10 (func (param i32 i32 i32 i32 i32))) (type $11 (func)) (type $12 (func (result f64))) (type $13 (func (param i32 i32 i32 i32 i32 i32))) @@ -24,6 +24,7 @@ (type $22 (func (param i32 i32) (result f32))) (type $23 (func (param i32 f32 i32))) (type $24 (func (param i32 i32) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "env" "Math.random" (func $~lib/bindings/dom/Math.random (result f64))) (import "env" "seed" (func $~lib/builtins/seed (result f64))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -50,619 +51,611 @@ (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 49120)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 48960)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) ",") - (data $20.1 (i32.const 3464) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $21 (i32.const 3500) ",") - (data $21.1 (i32.const 3512) "\02\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $22 (i32.const 3548) "<") - (data $22.1 (i32.const 3560) "\02\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 $23 (i32.const 3612) "\1c") - (data $23.1 (i32.const 3624) "\02\00\00\00\06\00\00\00a\00b\00c") - (data $24 (i32.const 3644) "\1c") - (data $24.1 (i32.const 3656) "\01\00\00\00\05\00\00\00\01\02\03\04\05") - (data $25 (i32.const 3676) "\1c") - (data $25.1 (i32.const 3688) "\01\00\00\00\05\00\00\00\01\01\01\04\05") - (data $26 (i32.const 3708) "\1c") - (data $26.1 (i32.const 3720) "\01\00\00\00\05") - (data $27 (i32.const 3740) "\1c") - (data $27.1 (i32.const 3752) "\01\00\00\00\05\00\00\00\01\01") - (data $28 (i32.const 3772) "\1c") - (data $28.1 (i32.const 3784) "\01\00\00\00\05\00\00\00\01\01\00\02\02") - (data $29 (i32.const 3804) "\1c") - (data $29.1 (i32.const 3816) "\01\00\00\00\05\00\00\00\01\01\00\02\02") - (data $30 (i32.const 3836) "\1c") - (data $30.1 (i32.const 3848) "\01\00\00\00\05\00\00\00\ff\ff\ff\ff\ff") - (data $31 (i32.const 3868) ",") - (data $31.1 (i32.const 3880) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $32 (i32.const 3916) ",") - (data $32.1 (i32.const 3928) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") - (data $33 (i32.const 3964) ",") - (data $33.1 (i32.const 3976) "\01\00\00\00\14") - (data $34 (i32.const 4012) ",") - (data $34.1 (i32.const 4024) "\01\00\00\00\14\00\00\00\01\00\00\00\01") - (data $35 (i32.const 4060) ",") - (data $35.1 (i32.const 4072) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") - (data $36 (i32.const 4108) ",") - (data $36.1 (i32.const 4120) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") - (data $37 (i32.const 4156) ",") - (data $37.1 (i32.const 4168) "\01\00\00\00\14\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff") - (data $38 (i32.const 4204) ",") - (data $38.1 (i32.const 4216) "\01\00\00\00\14\00\00\00\00\00\00?\00\00\80?\00\00\c0?\00\00 @\00\00@@") - (data $39 (i32.const 4252) ",") - (data $39.1 (i32.const 4264) "\01\00\00\00\14\00\00\00\00\00\00?\00\00\80?\00\00\80?\00\00 @\00\00@@") - (data $40 (i32.const 4300) ",") - (data $40.1 (i32.const 4312) "\01\00\00\00\14") - (data $41 (i32.const 4348) ",") - (data $41.1 (i32.const 4360) "\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?") - (data $42 (i32.const 4396) ",") - (data $42.1 (i32.const 4408) "\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00@\00\00\00@") - (data $43 (i32.const 4444) ",") - (data $43.1 (i32.const 4456) "\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00@\00\00\00@") - (data $44 (i32.const 4492) ",") - (data $44.1 (i32.const 4504) "\01\00\00\00\14\00\00\00\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\80\bf") - (data $45 (i32.const 4540) ",") - (data $45.1 (i32.const 4552) "\01\00\00\00\14\00\00\00\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\80") - (data $46 (i32.const 4588) ",") - (data $46.1 (i32.const 4600) "\02\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y") - (data $47 (i32.const 4636) ",") - (data $47.1 (i32.const 4648) "\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04") - (data $48 (i32.const 4684) "\1c") - (data $48.1 (i32.const 4696) "\01") - (data $49 (i32.const 4716) "\1c") - (data $49.1 (i32.const 4728) "\01") - (data $50 (i32.const 4748) ",") - (data $50.1 (i32.const 4760) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $51 (i32.const 4796) ",") - (data $51.1 (i32.const 4808) "\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") - (data $52 (i32.const 4844) ",") - (data $52.1 (i32.const 4856) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $53 (i32.const 4892) ",") - (data $53.1 (i32.const 4904) "\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05") - (data $54 (i32.const 4940) ",") - (data $54.1 (i32.const 4952) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $55 (i32.const 4988) ",") - (data $55.1 (i32.const 5000) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") - (data $56 (i32.const 5036) ",") - (data $56.1 (i32.const 5048) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $57 (i32.const 5084) ",") - (data $57.1 (i32.const 5096) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $58 (i32.const 5132) ",") - (data $58.1 (i32.const 5144) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $59 (i32.const 5180) ",") - (data $59.1 (i32.const 5192) "\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $60 (i32.const 5228) ",") - (data $60.1 (i32.const 5240) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $61 (i32.const 5276) ",") - (data $61.1 (i32.const 5288) "\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05") - (data $62 (i32.const 5324) ",") - (data $62.1 (i32.const 5336) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $63 (i32.const 5372) ",") - (data $63.1 (i32.const 5384) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") - (data $64 (i32.const 5420) ",") - (data $64.1 (i32.const 5432) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $65 (i32.const 5468) ",") - (data $65.1 (i32.const 5480) "\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") - (data $66 (i32.const 5516) ",") - (data $66.1 (i32.const 5528) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $67 (i32.const 5564) ",") - (data $67.1 (i32.const 5576) "\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $68 (i32.const 5612) ",") - (data $68.1 (i32.const 5624) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $69 (i32.const 5660) ",") - (data $69.1 (i32.const 5672) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05") - (data $70 (i32.const 5708) ",") - (data $70.1 (i32.const 5720) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $71 (i32.const 5756) ",") - (data $71.1 (i32.const 5768) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") - (data $72 (i32.const 5804) ",") - (data $72.1 (i32.const 5816) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $73 (i32.const 5852) ",") - (data $73.1 (i32.const 5864) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") - (data $74 (i32.const 5900) ",") - (data $74.1 (i32.const 5912) "\01\00\00\00\14\00\00\00\03\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b") - (data $75 (i32.const 5948) "\1c") - (data $75.1 (i32.const 5960) "\01\00\00\00\0c\00\00\00\07\00\00\00\t\00\00\00\0b") - (data $76 (i32.const 5980) "\1c") - (data $76.1 (i32.const 5992) "\01\00\00\00\08\00\00\00\07\00\00\00\t") - (data $77 (i32.const 6012) ",") - (data $77.1 (i32.const 6024) "\01\00\00\00\10\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b") - (data $78 (i32.const 6060) "\1c") - (data $78.1 (i32.const 6072) "\01\00\00\00\08\00\00\00\t\00\00\00\0b") - (data $79 (i32.const 6092) "\1c") - (data $79.1 (i32.const 6104) "\01\00\00\00\08\00\00\00\07\00\00\00\t") - (data $80 (i32.const 6124) "\1c") - (data $80.1 (i32.const 6136) "\01\00\00\00\08\00\00\00\07\00\00\00\t") - (data $81 (i32.const 6156) "\1c") - (data $81.1 (i32.const 6168) "\01\00\00\00\04\00\00\00\00\01\02\03") - (data $82 (i32.const 6188) "\1c") - (data $82.1 (i32.const 6200) "\01\00\00\00\08\00\00\00\00\01\02\03\04\05\06\07") - (data $83 (i32.const 6220) ",") - (data $83.1 (i32.const 6232) "\01\00\00\00\11\00\00\00\00\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10") - (data $84 (i32.const 6268) ",") - (data $84.1 (i32.const 6280) "\01\00\00\00\0e\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06") - (data $85 (i32.const 6316) ",") - (data $85.1 (i32.const 6328) "\01\00\00\00\10\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07") - (data $86 (i32.const 6364) ",") - (data $86.1 (i32.const 6376) "\01\00\00\00\12\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08") - (data $87 (i32.const 6412) "\1c") - (data $87.1 (i32.const 6424) "\01\00\00\00\04\00\00\00\00\00\c0\7f") - (data $88 (i32.const 6444) "\1c") - (data $88.1 (i32.const 6456) "\01\00\00\00\08") - (data $88.2 (i32.const 6470) "\f8\7f") - (data $89 (i32.const 6476) ",") - (data $89.1 (i32.const 6488) "\01\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02") - (data $90 (i32.const 6524) "\1c") - (data $90.1 (i32.const 6536) "\01\00\00\00\04\00\00\00\00\00\c0\7f") - (data $91 (i32.const 6556) "\1c") - (data $91.1 (i32.const 6568) "\01\00\00\00\08") - (data $91.2 (i32.const 6582) "\f8\7f") - (data $92 (i32.const 6588) ",") - (data $92.1 (i32.const 6600) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $93 (i32.const 6636) ",") - (data $93.1 (i32.const 6648) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $94 (i32.const 6684) "\1c") - (data $94.1 (i32.const 6696) "\01") - (data $95 (i32.const 6716) ",") - (data $95.1 (i32.const 6728) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $96 (i32.const 6764) "\1c") - (data $96.1 (i32.const 6776) "\01") - (data $97 (i32.const 6796) ",") - (data $97.1 (i32.const 6808) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $98 (i32.const 6844) ",") - (data $98.1 (i32.const 6856) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $99 (i32.const 6892) "\1c") - (data $99.1 (i32.const 6904) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") - (data $100 (i32.const 6924) "\1c") - (data $100.1 (i32.const 6936) "\01\00\00\00\08\00\00\00\01\00\00\00\02") - (data $101 (i32.const 6956) ",") - (data $101.1 (i32.const 6968) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $102 (i32.const 7004) "\1c") - (data $102.1 (i32.const 7016) "\01\00\00\00\08\00\00\00\03\00\00\00\04") - (data $103 (i32.const 7036) "\1c") - (data $103.1 (i32.const 7048) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\05") - (data $104 (i32.const 7068) ",") - (data $104.1 (i32.const 7080) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $105 (i32.const 7116) "\1c") - (data $105.1 (i32.const 7128) "\01\00\00\00\04\00\00\00\01") - (data $106 (i32.const 7148) ",") - (data $106.1 (i32.const 7160) "\01\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $107 (i32.const 7196) ",") - (data $107.1 (i32.const 7208) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $108 (i32.const 7244) "\1c") - (data $108.1 (i32.const 7256) "\01\00\00\00\04\00\00\00\05") - (data $109 (i32.const 7276) ",") - (data $109.1 (i32.const 7288) "\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04") - (data $110 (i32.const 7324) ",") - (data $110.1 (i32.const 7336) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $111 (i32.const 7372) "\1c") - (data $111.1 (i32.const 7384) "\01\00\00\00\08\00\00\00\04\00\00\00\05") - (data $112 (i32.const 7404) "\1c") - (data $112.1 (i32.const 7416) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data $113 (i32.const 7436) ",") - (data $113.1 (i32.const 7448) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $114 (i32.const 7484) "\1c") - (data $114.1 (i32.const 7496) "\01\00\00\00\04\00\00\00\04") - (data $115 (i32.const 7516) ",") - (data $115.1 (i32.const 7528) "\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05") - (data $116 (i32.const 7564) ",") - (data $116.1 (i32.const 7576) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $117 (i32.const 7612) "\1c") - (data $117.1 (i32.const 7624) "\01\00\00\00\04\00\00\00\01") - (data $118 (i32.const 7644) ",") - (data $118.1 (i32.const 7656) "\01\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $119 (i32.const 7692) ",") - (data $119.1 (i32.const 7704) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $120 (i32.const 7740) "\1c") - (data $120.1 (i32.const 7752) "\01") - (data $121 (i32.const 7772) ",") - (data $121.1 (i32.const 7784) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $122 (i32.const 7820) ",") - (data $122.1 (i32.const 7832) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $123 (i32.const 7868) "\1c") - (data $123.1 (i32.const 7880) "\01") - (data $124 (i32.const 7900) ",") - (data $124.1 (i32.const 7912) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $125 (i32.const 7948) ",") - (data $125.1 (i32.const 7960) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $126 (i32.const 7996) "\1c") - (data $126.1 (i32.const 8008) "\01") - (data $127 (i32.const 8028) ",") - (data $127.1 (i32.const 8040) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $128 (i32.const 8076) ",") - (data $128.1 (i32.const 8088) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $129 (i32.const 8124) "\1c") - (data $129.1 (i32.const 8136) "\01") - (data $130 (i32.const 8156) ",") - (data $130.1 (i32.const 8168) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $131 (i32.const 8204) ",") - (data $131.1 (i32.const 8216) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $132 (i32.const 8252) "\1c") - (data $132.1 (i32.const 8264) "\01") - (data $133 (i32.const 8284) ",") - (data $133.1 (i32.const 8296) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $134 (i32.const 8332) "\1c") - (data $134.1 (i32.const 8344) "\01") - (data $135 (i32.const 8364) "|") - (data $135.1 (i32.const 8376) "\02\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 $136 (i32.const 8492) "|") - (data $136.1 (i32.const 8504) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") - (data $137 (i32.const 8620) "\1c") - (data $137.1 (i32.const 8632) "\0e\00\00\00\08\00\00\00\01") - (data $138 (i32.const 8652) "\1c") - (data $138.1 (i32.const 8664) "\0e\00\00\00\08\00\00\00\02") - (data $139 (i32.const 8684) "\1c") - (data $139.1 (i32.const 8696) "\0e\00\00\00\08\00\00\00\03") - (data $140 (i32.const 8716) "\1c") - (data $140.1 (i32.const 8728) "\0e\00\00\00\08\00\00\00\04") - (data $141 (i32.const 8748) "\1c") - (data $141.1 (i32.const 8760) "\0e\00\00\00\08\00\00\00\05") - (data $142 (i32.const 8780) "\1c") - (data $142.1 (i32.const 8792) "\0e\00\00\00\08\00\00\00\06") - (data $143 (i32.const 8812) ",") - (data $143.1 (i32.const 8824) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data $144 (i32.const 8860) "\1c") - (data $144.1 (i32.const 8872) "\0e\00\00\00\08\00\00\00\07") - (data $145 (i32.const 8892) "\1c") - (data $145.1 (i32.const 8904) "\0e\00\00\00\08\00\00\00\08") - (data $146 (i32.const 8924) "\1c") - (data $146.1 (i32.const 8936) "\0e\00\00\00\08\00\00\00\t") - (data $147 (i32.const 8956) "\1c") - (data $147.1 (i32.const 8968) "\0e\00\00\00\08\00\00\00\n") - (data $148 (i32.const 8988) "\1c") - (data $148.1 (i32.const 9000) "\0e\00\00\00\08\00\00\00\0b") - (data $149 (i32.const 9020) "\1c") - (data $149.1 (i32.const 9032) "\0e\00\00\00\08\00\00\00\0c") - (data $150 (i32.const 9052) "\1c") - (data $150.1 (i32.const 9064) "\0e\00\00\00\08\00\00\00\r") - (data $151 (i32.const 9084) "\1c") - (data $151.1 (i32.const 9096) "\0e\00\00\00\08\00\00\00\0e") - (data $152 (i32.const 9116) "\1c") - (data $152.1 (i32.const 9128) "\0e\00\00\00\08\00\00\00\0f") - (data $153 (i32.const 9148) "\1c") - (data $153.1 (i32.const 9160) "\0e\00\00\00\08\00\00\00\10") - (data $154 (i32.const 9180) "\1c") - (data $154.1 (i32.const 9192) "\0e\00\00\00\08\00\00\00\11") - (data $155 (i32.const 9212) "\1c") - (data $155.1 (i32.const 9224) "\0e\00\00\00\08\00\00\00\12") - (data $156 (i32.const 9244) "\1c") - (data $156.1 (i32.const 9256) "\0e\00\00\00\08\00\00\00\13") - (data $157 (i32.const 9276) "\1c") - (data $157.1 (i32.const 9288) "\0e\00\00\00\08\00\00\00\14") - (data $158 (i32.const 9308) "\1c") - (data $158.1 (i32.const 9320) "\0f\00\00\00\08\00\00\00\15") - (data $159 (i32.const 9340) "\1c") - (data $159.1 (i32.const 9352) "\0f\00\00\00\08\00\00\00\16") - (data $160 (i32.const 9372) "\1c") - (data $160.1 (i32.const 9384) "\0f\00\00\00\08\00\00\00\17") - (data $161 (i32.const 9404) "\1c") - (data $161.1 (i32.const 9416) "\0f\00\00\00\08\00\00\00\18") - (data $162 (i32.const 9436) "\1c") - (data $162.1 (i32.const 9448) "\0f\00\00\00\08\00\00\00\19") - (data $163 (i32.const 9468) "\1c") - (data $163.1 (i32.const 9480) "\11\00\00\00\08\00\00\00\1a") - (data $164 (i32.const 9500) "\1c") - (data $164.1 (i32.const 9512) "\12\00\00\00\08\00\00\00\1b") - (data $165 (i32.const 9532) "\1c") - (data $165.1 (i32.const 9544) "\13\00\00\00\08\00\00\00\1c") - (data $166 (i32.const 9564) "\1c") - (data $166.1 (i32.const 9576) "\13\00\00\00\08\00\00\00\1d") - (data $167 (i32.const 9596) "\1c") - (data $167.1 (i32.const 9608) "\13\00\00\00\08\00\00\00\1e") - (data $168 (i32.const 9628) "\1c") - (data $168.1 (i32.const 9640) "\0e\00\00\00\08\00\00\00\1f") - (data $169 (i32.const 9660) "\1c") - (data $169.1 (i32.const 9672) "\0e\00\00\00\08\00\00\00 ") - (data $170 (i32.const 9692) "\1c") - (data $170.1 (i32.const 9704) "\0e\00\00\00\08\00\00\00!") - (data $171 (i32.const 9724) "\1c") - (data $171.1 (i32.const 9736) "\0e\00\00\00\08\00\00\00\"") - (data $172 (i32.const 9756) "\1c") - (data $172.1 (i32.const 9768) "\14\00\00\00\08\00\00\00#") - (data $173 (i32.const 9788) "\1c") - (data $173.1 (i32.const 9800) "\14\00\00\00\08\00\00\00$") - (data $174 (i32.const 9820) "\1c") - (data $174.1 (i32.const 9832) "\15\00\00\00\08\00\00\00%") - (data $175 (i32.const 9852) "\1c") - (data $175.1 (i32.const 9864) "\15\00\00\00\08\00\00\00&") - (data $176 (i32.const 9884) "\1c") - (data $176.1 (i32.const 9896) "\14\00\00\00\08\00\00\00\'") - (data $177 (i32.const 9916) "\1c") - (data $177.1 (i32.const 9928) "\14\00\00\00\08\00\00\00(") - (data $178 (i32.const 9948) "\1c") - (data $178.1 (i32.const 9960) "\14\00\00\00\08\00\00\00)") - (data $179 (i32.const 9980) "\1c") - (data $179.1 (i32.const 9992) "\14\00\00\00\08\00\00\00*") - (data $180 (i32.const 10012) "\1c") - (data $180.1 (i32.const 10024) "\14\00\00\00\08\00\00\00+") - (data $181 (i32.const 10044) "\1c") - (data $181.1 (i32.const 10056) "\15\00\00\00\08\00\00\00,") - (data $182 (i32.const 10076) "\1c") - (data $182.1 (i32.const 10088) "\15\00\00\00\08\00\00\00-") - (data $183 (i32.const 10108) "\1c") - (data $183.1 (i32.const 10120) "\14\00\00\00\08\00\00\00.") - (data $184 (i32.const 10140) "\1c") - (data $184.1 (i32.const 10152) "\14\00\00\00\08\00\00\00/") - (data $185 (i32.const 10172) "\1c") - (data $185.1 (i32.const 10184) "\14\00\00\00\08\00\00\000") - (data $186 (i32.const 10204) "\bc") - (data $186.1 (i32.const 10216) "\02\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?") - (data $187 (i32.const 10396) "\1c") - (data $187.1 (i32.const 10408) "\01\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf") - (data $188 (i32.const 10428) "\1c") - (data $188.1 (i32.const 10440) "\18\00\00\00\08\00\00\001") - (data $189 (i32.const 10460) "\1c") - (data $189.1 (i32.const 10472) "\01\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") - (data $190 (i32.const 10492) "<") - (data $190.1 (i32.const 10504) "\01\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") - (data $191 (i32.const 10556) "<") - (data $191.1 (i32.const 10568) "\01\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") - (data $192 (i32.const 10620) "\\") - (data $192.1 (i32.const 10632) "\01\00\00\00@") - (data $192.2 (i32.const 10646) "\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?") - (data $192.3 (i32.const 10686) "\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") - (data $193 (i32.const 10716) "\1c") - (data $193.1 (i32.const 10728) "\19\00\00\00\08\00\00\002") - (data $194 (i32.const 10748) "\\") - (data $194.1 (i32.const 10760) "\01\00\00\00@") - (data $194.2 (i32.const 10774) "\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf") - (data $194.3 (i32.const 10806) "\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") - (data $195 (i32.const 10844) ",") - (data $195.1 (i32.const 10856) "\01\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02") - (data $196 (i32.const 10892) "\1c") - (data $196.1 (i32.const 10904) "\1a\00\00\00\08\00\00\003") - (data $197 (i32.const 10924) ",") - (data $197.1 (i32.const 10936) "\01\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02") - (data $198 (i32.const 10972) ",") - (data $198.1 (i32.const 10984) "\01\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02") - (data $199 (i32.const 11020) "\1c") - (data $199.1 (i32.const 11032) "\1b\00\00\00\08\00\00\004") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $1 (i32.const 1084) ",") + (data $1.1 (i32.const 1096) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\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 $3 (i32.const 1196) "<") + (data $3.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1324) "<") + (data $6.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1388) ",") + (data $7.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1468) "<") + (data $9.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1532) ",") + (data $10.1 (i32.const 1544) "\02\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $11 (i32.const 1580) "<") + (data $11.1 (i32.const 1592) "\02\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 $12 (i32.const 1644) "\1c") + (data $12.1 (i32.const 1656) "\02\00\00\00\06\00\00\00a\00b\00c") + (data $13 (i32.const 1676) "\1c") + (data $13.1 (i32.const 1688) "\01\00\00\00\05\00\00\00\01\02\03\04\05") + (data $14 (i32.const 1708) "\1c") + (data $14.1 (i32.const 1720) "\01\00\00\00\05\00\00\00\01\01\01\04\05") + (data $15 (i32.const 1740) "\1c") + (data $15.1 (i32.const 1752) "\01\00\00\00\05") + (data $16 (i32.const 1772) "\1c") + (data $16.1 (i32.const 1784) "\01\00\00\00\05\00\00\00\01\01") + (data $17 (i32.const 1804) "\1c") + (data $17.1 (i32.const 1816) "\01\00\00\00\05\00\00\00\01\01\00\02\02") + (data $18 (i32.const 1836) "\1c") + (data $18.1 (i32.const 1848) "\01\00\00\00\05\00\00\00\01\01\00\02\02") + (data $19 (i32.const 1868) "\1c") + (data $19.1 (i32.const 1880) "\01\00\00\00\05\00\00\00\ff\ff\ff\ff\ff") + (data $20 (i32.const 1900) ",") + (data $20.1 (i32.const 1912) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $21 (i32.const 1948) ",") + (data $21.1 (i32.const 1960) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") + (data $22 (i32.const 1996) ",") + (data $22.1 (i32.const 2008) "\01\00\00\00\14") + (data $23 (i32.const 2044) ",") + (data $23.1 (i32.const 2056) "\01\00\00\00\14\00\00\00\01\00\00\00\01") + (data $24 (i32.const 2092) ",") + (data $24.1 (i32.const 2104) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data $25 (i32.const 2140) ",") + (data $25.1 (i32.const 2152) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data $26 (i32.const 2188) ",") + (data $26.1 (i32.const 2200) "\01\00\00\00\14\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff") + (data $27 (i32.const 2236) ",") + (data $27.1 (i32.const 2248) "\01\00\00\00\14\00\00\00\00\00\00?\00\00\80?\00\00\c0?\00\00 @\00\00@@") + (data $28 (i32.const 2284) ",") + (data $28.1 (i32.const 2296) "\01\00\00\00\14\00\00\00\00\00\00?\00\00\80?\00\00\80?\00\00 @\00\00@@") + (data $29 (i32.const 2332) ",") + (data $29.1 (i32.const 2344) "\01\00\00\00\14") + (data $30 (i32.const 2380) ",") + (data $30.1 (i32.const 2392) "\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?") + (data $31 (i32.const 2428) ",") + (data $31.1 (i32.const 2440) "\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00@\00\00\00@") + (data $32 (i32.const 2476) ",") + (data $32.1 (i32.const 2488) "\01\00\00\00\14\00\00\00\00\00\80?\00\00\80?\00\00\00\00\00\00\00@\00\00\00@") + (data $33 (i32.const 2524) ",") + (data $33.1 (i32.const 2536) "\01\00\00\00\14\00\00\00\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\80\bf\00\00\80\bf") + (data $34 (i32.const 2572) ",") + (data $34.1 (i32.const 2584) "\01\00\00\00\14\00\00\00\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\80\00\00\00\80") + (data $35 (i32.const 2620) ",") + (data $35.1 (i32.const 2632) "\02\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y") + (data $36 (i32.const 2668) ",") + (data $36.1 (i32.const 2680) "\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04") + (data $37 (i32.const 2716) "\1c") + (data $37.1 (i32.const 2728) "\01") + (data $38 (i32.const 2748) "\1c") + (data $38.1 (i32.const 2760) "\01") + (data $39 (i32.const 2780) ",") + (data $39.1 (i32.const 2792) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $40 (i32.const 2828) ",") + (data $40.1 (i32.const 2840) "\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") + (data $41 (i32.const 2876) ",") + (data $41.1 (i32.const 2888) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $42 (i32.const 2924) ",") + (data $42.1 (i32.const 2936) "\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05") + (data $43 (i32.const 2972) ",") + (data $43.1 (i32.const 2984) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $44 (i32.const 3020) ",") + (data $44.1 (i32.const 3032) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") + (data $45 (i32.const 3068) ",") + (data $45.1 (i32.const 3080) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $46 (i32.const 3116) ",") + (data $46.1 (i32.const 3128) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $47 (i32.const 3164) ",") + (data $47.1 (i32.const 3176) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $48 (i32.const 3212) ",") + (data $48.1 (i32.const 3224) "\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $49 (i32.const 3260) ",") + (data $49.1 (i32.const 3272) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $50 (i32.const 3308) ",") + (data $50.1 (i32.const 3320) "\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05") + (data $51 (i32.const 3356) ",") + (data $51.1 (i32.const 3368) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $52 (i32.const 3404) ",") + (data $52.1 (i32.const 3416) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") + (data $53 (i32.const 3452) ",") + (data $53.1 (i32.const 3464) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $54 (i32.const 3500) ",") + (data $54.1 (i32.const 3512) "\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") + (data $55 (i32.const 3548) ",") + (data $55.1 (i32.const 3560) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $56 (i32.const 3596) ",") + (data $56.1 (i32.const 3608) "\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $57 (i32.const 3644) ",") + (data $57.1 (i32.const 3656) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $58 (i32.const 3692) ",") + (data $58.1 (i32.const 3704) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05") + (data $59 (i32.const 3740) ",") + (data $59.1 (i32.const 3752) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $60 (i32.const 3788) ",") + (data $60.1 (i32.const 3800) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") + (data $61 (i32.const 3836) ",") + (data $61.1 (i32.const 3848) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $62 (i32.const 3884) ",") + (data $62.1 (i32.const 3896) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") + (data $63 (i32.const 3932) ",") + (data $63.1 (i32.const 3944) "\01\00\00\00\14\00\00\00\03\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b") + (data $64 (i32.const 3980) "\1c") + (data $64.1 (i32.const 3992) "\01\00\00\00\0c\00\00\00\07\00\00\00\t\00\00\00\0b") + (data $65 (i32.const 4012) "\1c") + (data $65.1 (i32.const 4024) "\01\00\00\00\08\00\00\00\07\00\00\00\t") + (data $66 (i32.const 4044) ",") + (data $66.1 (i32.const 4056) "\01\00\00\00\10\00\00\00\05\00\00\00\07\00\00\00\t\00\00\00\0b") + (data $67 (i32.const 4092) "\1c") + (data $67.1 (i32.const 4104) "\01\00\00\00\08\00\00\00\t\00\00\00\0b") + (data $68 (i32.const 4124) "\1c") + (data $68.1 (i32.const 4136) "\01\00\00\00\08\00\00\00\07\00\00\00\t") + (data $69 (i32.const 4156) "\1c") + (data $69.1 (i32.const 4168) "\01\00\00\00\08\00\00\00\07\00\00\00\t") + (data $70 (i32.const 4188) "\1c") + (data $70.1 (i32.const 4200) "\01\00\00\00\04\00\00\00\00\01\02\03") + (data $71 (i32.const 4220) "\1c") + (data $71.1 (i32.const 4232) "\01\00\00\00\08\00\00\00\00\01\02\03\04\05\06\07") + (data $72 (i32.const 4252) ",") + (data $72.1 (i32.const 4264) "\01\00\00\00\11\00\00\00\00\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10") + (data $73 (i32.const 4300) ",") + (data $73.1 (i32.const 4312) "\01\00\00\00\0e\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06") + (data $74 (i32.const 4348) ",") + (data $74.1 (i32.const 4360) "\01\00\00\00\10\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07") + (data $75 (i32.const 4396) ",") + (data $75.1 (i32.const 4408) "\01\00\00\00\12\00\00\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08") + (data $76 (i32.const 4444) "\1c") + (data $76.1 (i32.const 4456) "\01\00\00\00\04\00\00\00\00\00\c0\7f") + (data $77 (i32.const 4476) "\1c") + (data $77.1 (i32.const 4488) "\01\00\00\00\08") + (data $77.2 (i32.const 4502) "\f8\7f") + (data $78 (i32.const 4508) ",") + (data $78.1 (i32.const 4520) "\01\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02") + (data $79 (i32.const 4556) "\1c") + (data $79.1 (i32.const 4568) "\01\00\00\00\04\00\00\00\00\00\c0\7f") + (data $80 (i32.const 4588) "\1c") + (data $80.1 (i32.const 4600) "\01\00\00\00\08") + (data $80.2 (i32.const 4614) "\f8\7f") + (data $81 (i32.const 4620) ",") + (data $81.1 (i32.const 4632) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $82 (i32.const 4668) ",") + (data $82.1 (i32.const 4680) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $83 (i32.const 4716) "\1c") + (data $83.1 (i32.const 4728) "\01") + (data $84 (i32.const 4748) ",") + (data $84.1 (i32.const 4760) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $85 (i32.const 4796) "\1c") + (data $85.1 (i32.const 4808) "\01") + (data $86 (i32.const 4828) ",") + (data $86.1 (i32.const 4840) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $87 (i32.const 4876) ",") + (data $87.1 (i32.const 4888) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $88 (i32.const 4924) "\1c") + (data $88.1 (i32.const 4936) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") + (data $89 (i32.const 4956) "\1c") + (data $89.1 (i32.const 4968) "\01\00\00\00\08\00\00\00\01\00\00\00\02") + (data $90 (i32.const 4988) ",") + (data $90.1 (i32.const 5000) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $91 (i32.const 5036) "\1c") + (data $91.1 (i32.const 5048) "\01\00\00\00\08\00\00\00\03\00\00\00\04") + (data $92 (i32.const 5068) "\1c") + (data $92.1 (i32.const 5080) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\05") + (data $93 (i32.const 5100) ",") + (data $93.1 (i32.const 5112) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $94 (i32.const 5148) "\1c") + (data $94.1 (i32.const 5160) "\01\00\00\00\04\00\00\00\01") + (data $95 (i32.const 5180) ",") + (data $95.1 (i32.const 5192) "\01\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $96 (i32.const 5228) ",") + (data $96.1 (i32.const 5240) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $97 (i32.const 5276) "\1c") + (data $97.1 (i32.const 5288) "\01\00\00\00\04\00\00\00\05") + (data $98 (i32.const 5308) ",") + (data $98.1 (i32.const 5320) "\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04") + (data $99 (i32.const 5356) ",") + (data $99.1 (i32.const 5368) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $100 (i32.const 5404) "\1c") + (data $100.1 (i32.const 5416) "\01\00\00\00\08\00\00\00\04\00\00\00\05") + (data $101 (i32.const 5436) "\1c") + (data $101.1 (i32.const 5448) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data $102 (i32.const 5468) ",") + (data $102.1 (i32.const 5480) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $103 (i32.const 5516) "\1c") + (data $103.1 (i32.const 5528) "\01\00\00\00\04\00\00\00\04") + (data $104 (i32.const 5548) ",") + (data $104.1 (i32.const 5560) "\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05") + (data $105 (i32.const 5596) ",") + (data $105.1 (i32.const 5608) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $106 (i32.const 5644) "\1c") + (data $106.1 (i32.const 5656) "\01\00\00\00\04\00\00\00\01") + (data $107 (i32.const 5676) ",") + (data $107.1 (i32.const 5688) "\01\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $108 (i32.const 5724) ",") + (data $108.1 (i32.const 5736) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $109 (i32.const 5772) "\1c") + (data $109.1 (i32.const 5784) "\01") + (data $110 (i32.const 5804) ",") + (data $110.1 (i32.const 5816) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $111 (i32.const 5852) ",") + (data $111.1 (i32.const 5864) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $112 (i32.const 5900) "\1c") + (data $112.1 (i32.const 5912) "\01") + (data $113 (i32.const 5932) ",") + (data $113.1 (i32.const 5944) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $114 (i32.const 5980) ",") + (data $114.1 (i32.const 5992) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $115 (i32.const 6028) "\1c") + (data $115.1 (i32.const 6040) "\01") + (data $116 (i32.const 6060) ",") + (data $116.1 (i32.const 6072) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $117 (i32.const 6108) ",") + (data $117.1 (i32.const 6120) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $118 (i32.const 6156) "\1c") + (data $118.1 (i32.const 6168) "\01") + (data $119 (i32.const 6188) ",") + (data $119.1 (i32.const 6200) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $120 (i32.const 6236) ",") + (data $120.1 (i32.const 6248) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $121 (i32.const 6284) "\1c") + (data $121.1 (i32.const 6296) "\01") + (data $122 (i32.const 6316) ",") + (data $122.1 (i32.const 6328) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $123 (i32.const 6364) "\1c") + (data $123.1 (i32.const 6376) "\01") + (data $124 (i32.const 6396) "|") + (data $124.1 (i32.const 6408) "\02\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 $125 (i32.const 6524) "|") + (data $125.1 (i32.const 6536) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") + (data $126 (i32.const 6652) "\1c") + (data $126.1 (i32.const 6664) "\0e\00\00\00\08\00\00\00\01") + (data $127 (i32.const 6684) "\1c") + (data $127.1 (i32.const 6696) "\0e\00\00\00\08\00\00\00\02") + (data $128 (i32.const 6716) "\1c") + (data $128.1 (i32.const 6728) "\0e\00\00\00\08\00\00\00\03") + (data $129 (i32.const 6748) "\1c") + (data $129.1 (i32.const 6760) "\0e\00\00\00\08\00\00\00\04") + (data $130 (i32.const 6780) "\1c") + (data $130.1 (i32.const 6792) "\0e\00\00\00\08\00\00\00\05") + (data $131 (i32.const 6812) "\1c") + (data $131.1 (i32.const 6824) "\0e\00\00\00\08\00\00\00\06") + (data $132 (i32.const 6844) ",") + (data $132.1 (i32.const 6856) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data $133 (i32.const 6892) "\1c") + (data $133.1 (i32.const 6904) "\0e\00\00\00\08\00\00\00\07") + (data $134 (i32.const 6924) "\1c") + (data $134.1 (i32.const 6936) "\0e\00\00\00\08\00\00\00\08") + (data $135 (i32.const 6956) "\1c") + (data $135.1 (i32.const 6968) "\0e\00\00\00\08\00\00\00\t") + (data $136 (i32.const 6988) "\1c") + (data $136.1 (i32.const 7000) "\0e\00\00\00\08\00\00\00\n") + (data $137 (i32.const 7020) "\1c") + (data $137.1 (i32.const 7032) "\0e\00\00\00\08\00\00\00\0b") + (data $138 (i32.const 7052) "\1c") + (data $138.1 (i32.const 7064) "\0e\00\00\00\08\00\00\00\0c") + (data $139 (i32.const 7084) "\1c") + (data $139.1 (i32.const 7096) "\0e\00\00\00\08\00\00\00\r") + (data $140 (i32.const 7116) "\1c") + (data $140.1 (i32.const 7128) "\0e\00\00\00\08\00\00\00\0e") + (data $141 (i32.const 7148) "\1c") + (data $141.1 (i32.const 7160) "\0e\00\00\00\08\00\00\00\0f") + (data $142 (i32.const 7180) "\1c") + (data $142.1 (i32.const 7192) "\0e\00\00\00\08\00\00\00\10") + (data $143 (i32.const 7212) "\1c") + (data $143.1 (i32.const 7224) "\0e\00\00\00\08\00\00\00\11") + (data $144 (i32.const 7244) "\1c") + (data $144.1 (i32.const 7256) "\0e\00\00\00\08\00\00\00\12") + (data $145 (i32.const 7276) "\1c") + (data $145.1 (i32.const 7288) "\0e\00\00\00\08\00\00\00\13") + (data $146 (i32.const 7308) "\1c") + (data $146.1 (i32.const 7320) "\0e\00\00\00\08\00\00\00\14") + (data $147 (i32.const 7340) "\1c") + (data $147.1 (i32.const 7352) "\0f\00\00\00\08\00\00\00\15") + (data $148 (i32.const 7372) "\1c") + (data $148.1 (i32.const 7384) "\0f\00\00\00\08\00\00\00\16") + (data $149 (i32.const 7404) "\1c") + (data $149.1 (i32.const 7416) "\0f\00\00\00\08\00\00\00\17") + (data $150 (i32.const 7436) "\1c") + (data $150.1 (i32.const 7448) "\0f\00\00\00\08\00\00\00\18") + (data $151 (i32.const 7468) "\1c") + (data $151.1 (i32.const 7480) "\0f\00\00\00\08\00\00\00\19") + (data $152 (i32.const 7500) "|") + (data $152.1 (i32.const 7512) "\02\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 $153 (i32.const 7628) "<") + (data $153.1 (i32.const 7640) "\02\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 $154 (i32.const 7692) "\1c") + (data $154.1 (i32.const 7704) "\02\00\00\00\02\00\00\000") + (data $155 (i32.const 7724) "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 $156 (i32.const 8124) "\1c\04") + (data $156.1 (i32.const 8136) "\02\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 $157 (i32.const 9180) "\\") + (data $157.1 (i32.const 9192) "\02\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 $158 (i32.const 9276) "\1c") + (data $158.1 (i32.const 9288) "\11\00\00\00\08\00\00\00\1a") + (data $159 (i32.const 9308) "\1c") + (data $159.1 (i32.const 9320) "\12\00\00\00\08\00\00\00\1b") + (data $160 (i32.const 9340) "\1c") + (data $160.1 (i32.const 9352) "\13\00\00\00\08\00\00\00\1c") + (data $161 (i32.const 9372) "\1c") + (data $161.1 (i32.const 9384) "\13\00\00\00\08\00\00\00\1d") + (data $162 (i32.const 9404) "\1c") + (data $162.1 (i32.const 9416) "\13\00\00\00\08\00\00\00\1e") + (data $163 (i32.const 9436) "\1c") + (data $163.1 (i32.const 9448) "\0e\00\00\00\08\00\00\00\1f") + (data $164 (i32.const 9468) "\1c") + (data $164.1 (i32.const 9480) "\0e\00\00\00\08\00\00\00 ") + (data $165 (i32.const 9500) "\1c") + (data $165.1 (i32.const 9512) "\0e\00\00\00\08\00\00\00!") + (data $166 (i32.const 9532) "\1c") + (data $166.1 (i32.const 9544) "\0e\00\00\00\08\00\00\00\"") + (data $167 (i32.const 9564) "\1c") + (data $167.1 (i32.const 9576) "\14\00\00\00\08\00\00\00#") + (data $168 (i32.const 9596) "\1c") + (data $168.1 (i32.const 9608) "\14\00\00\00\08\00\00\00$") + (data $169 (i32.const 9628) "\1c") + (data $169.1 (i32.const 9640) "\15\00\00\00\08\00\00\00%") + (data $170 (i32.const 9660) "\1c") + (data $170.1 (i32.const 9672) "\15\00\00\00\08\00\00\00&") + (data $171 (i32.const 9692) "\1c") + (data $171.1 (i32.const 9704) "\14\00\00\00\08\00\00\00\'") + (data $172 (i32.const 9724) "\1c") + (data $172.1 (i32.const 9736) "\14\00\00\00\08\00\00\00(") + (data $173 (i32.const 9756) "\1c") + (data $173.1 (i32.const 9768) "\14\00\00\00\08\00\00\00)") + (data $174 (i32.const 9788) "\1c") + (data $174.1 (i32.const 9800) "\14\00\00\00\08\00\00\00*") + (data $175 (i32.const 9820) "\1c") + (data $175.1 (i32.const 9832) "\14\00\00\00\08\00\00\00+") + (data $176 (i32.const 9852) "\1c") + (data $176.1 (i32.const 9864) "\15\00\00\00\08\00\00\00,") + (data $177 (i32.const 9884) "\1c") + (data $177.1 (i32.const 9896) "\15\00\00\00\08\00\00\00-") + (data $178 (i32.const 9916) "\1c") + (data $178.1 (i32.const 9928) "\14\00\00\00\08\00\00\00.") + (data $179 (i32.const 9948) "\1c") + (data $179.1 (i32.const 9960) "\14\00\00\00\08\00\00\00/") + (data $180 (i32.const 9980) "\1c") + (data $180.1 (i32.const 9992) "\14\00\00\00\08\00\00\000") + (data $181 (i32.const 10012) "\bc") + (data $181.1 (i32.const 10024) "\02\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?") + (data $182 (i32.const 10204) "\1c") + (data $182.1 (i32.const 10216) "\01\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf") + (data $183 (i32.const 10236) "\1c") + (data $183.1 (i32.const 10248) "\18\00\00\00\08\00\00\001") + (data $184 (i32.const 10268) "\1c") + (data $184.1 (i32.const 10280) "\01\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") + (data $185 (i32.const 10300) "<") + (data $185.1 (i32.const 10312) "\01\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") + (data $186 (i32.const 10364) "<") + (data $186.1 (i32.const 10376) "\01\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") + (data $187 (i32.const 10428) "\\") + (data $187.1 (i32.const 10440) "\01\00\00\00@") + (data $187.2 (i32.const 10454) "\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?") + (data $187.3 (i32.const 10494) "\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") + (data $188 (i32.const 10524) "\1c") + (data $188.1 (i32.const 10536) "\19\00\00\00\08\00\00\002") + (data $189 (i32.const 10556) "\\") + (data $189.1 (i32.const 10568) "\01\00\00\00@") + (data $189.2 (i32.const 10582) "\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf") + (data $189.3 (i32.const 10614) "\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") + (data $190 (i32.const 10652) ",") + (data $190.1 (i32.const 10664) "\01\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02") + (data $191 (i32.const 10700) "\1c") + (data $191.1 (i32.const 10712) "\1a\00\00\00\08\00\00\003") + (data $192 (i32.const 10732) ",") + (data $192.1 (i32.const 10744) "\01\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02") + (data $193 (i32.const 10780) ",") + (data $193.1 (i32.const 10792) "\01\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02") + (data $194 (i32.const 10828) "\1c") + (data $194.1 (i32.const 10840) "\1b\00\00\00\08\00\00\004") + (data $195 (i32.const 10860) ",") + (data $195.1 (i32.const 10872) "\01\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") + (data $196 (i32.const 10908) "\1c") + (data $196.1 (i32.const 10920) "\01") + (data $197 (i32.const 10940) "\1c") + (data $197.1 (i32.const 10952) "\01\00\00\00\04\00\00\00\01") + (data $198 (i32.const 10972) "\1c") + (data $198.1 (i32.const 10984) "\01\00\00\00\08\00\00\00\02\00\00\00\01") + (data $199 (i32.const 11004) ",") + (data $199.1 (i32.const 11016) "\01\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01") (data $200 (i32.const 11052) ",") - (data $200.1 (i32.const 11064) "\01\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") + (data $200.1 (i32.const 11064) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") (data $201 (i32.const 11100) "\1c") - (data $201.1 (i32.const 11112) "\01") + (data $201.1 (i32.const 11112) "\1a\00\00\00\08\00\00\005") (data $202 (i32.const 11132) "\1c") (data $202.1 (i32.const 11144) "\01\00\00\00\04\00\00\00\01") (data $203 (i32.const 11164) "\1c") - (data $203.1 (i32.const 11176) "\01\00\00\00\08\00\00\00\02\00\00\00\01") - (data $204 (i32.const 11196) ",") - (data $204.1 (i32.const 11208) "\01\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01") - (data $205 (i32.const 11244) ",") - (data $205.1 (i32.const 11256) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data $206 (i32.const 11292) "\1c") - (data $206.1 (i32.const 11304) "\1a\00\00\00\08\00\00\005") - (data $207 (i32.const 11324) "\1c") - (data $207.1 (i32.const 11336) "\01\00\00\00\04\00\00\00\01") - (data $208 (i32.const 11356) "\1c") - (data $208.1 (i32.const 11368) "\01\00\00\00\08\00\00\00\01\00\00\00\02") - (data $209 (i32.const 11388) "\1c") - (data $209.1 (i32.const 11400) "\1c\00\00\00\08\00\00\006") - (data $210 (i32.const 11420) "\1c") - (data $210.1 (i32.const 11432) "\1a\00\00\00\08\00\00\007") - (data $211 (i32.const 11452) "\1c") - (data $211.1 (i32.const 11464) "\1a\00\00\00\08\00\00\008") - (data $212 (i32.const 11484) "\1c") - (data $212.1 (i32.const 11496) "\1a\00\00\00\08\00\00\009") - (data $213 (i32.const 11516) "\1c") - (data $213.1 (i32.const 11528) "\1a\00\00\00\08\00\00\00:") - (data $214 (i32.const 11548) "\1c") - (data $214.1 (i32.const 11560) "\1e\00\00\00\08\00\00\00;") - (data $215 (i32.const 11580) "\1c") - (data $215.1 (i32.const 11592) "!\00\00\00\08\00\00\00<") - (data $216 (i32.const 11612) "\1c") - (data $216.1 (i32.const 11624) "\02\00\00\00\02\00\00\00a") - (data $217 (i32.const 11644) "\1c") - (data $217.1 (i32.const 11656) "\02\00\00\00\02\00\00\00b") + (data $203.1 (i32.const 11176) "\01\00\00\00\08\00\00\00\01\00\00\00\02") + (data $204 (i32.const 11196) "\1c") + (data $204.1 (i32.const 11208) "\1c\00\00\00\08\00\00\006") + (data $205 (i32.const 11228) "\1c") + (data $205.1 (i32.const 11240) "\1a\00\00\00\08\00\00\007") + (data $206 (i32.const 11260) "\1c") + (data $206.1 (i32.const 11272) "\1a\00\00\00\08\00\00\008") + (data $207 (i32.const 11292) "\1c") + (data $207.1 (i32.const 11304) "\1a\00\00\00\08\00\00\009") + (data $208 (i32.const 11324) "\1c") + (data $208.1 (i32.const 11336) "\1a\00\00\00\08\00\00\00:") + (data $209 (i32.const 11356) "\1c") + (data $209.1 (i32.const 11368) "\1e\00\00\00\08\00\00\00;") + (data $210 (i32.const 11388) "\1c") + (data $210.1 (i32.const 11400) "!\00\00\00\08\00\00\00<") + (data $211 (i32.const 11420) "\1c") + (data $211.1 (i32.const 11432) "\02\00\00\00\02\00\00\00a") + (data $212 (i32.const 11452) "\1c") + (data $212.1 (i32.const 11464) "\02\00\00\00\02\00\00\00b") + (data $213 (i32.const 11484) "\1c") + (data $213.1 (i32.const 11496) "\02\00\00\00\04\00\00\00a\00b") + (data $214 (i32.const 11516) "\1c") + (data $214.1 (i32.const 11528) "\02\00\00\00\04\00\00\00b\00a") + (data $215 (i32.const 11548) "\1c") + (data $215.1 (i32.const 11560) "\02") + (data $216 (i32.const 11580) ",") + (data $216.1 (i32.const 11592) "\01\00\00\00\1c\00\00\00\b0,\00\00\d0,\00\00\b0,\00\00\f0,\00\00\10-\00\000-") + (data $217 (i32.const 11628) ",") + (data $217.1 (i32.const 11640) "\01\00\00\00\1c\00\00\000-\00\00\b0,\00\00\b0,\00\00\f0,\00\00\d0,\00\00\10-") (data $218 (i32.const 11676) "\1c") - (data $218.1 (i32.const 11688) "\02\00\00\00\04\00\00\00a\00b") + (data $218.1 (i32.const 11688) "#\00\00\00\08\00\00\00=") (data $219 (i32.const 11708) "\1c") - (data $219.1 (i32.const 11720) "\02\00\00\00\04\00\00\00b\00a") - (data $220 (i32.const 11740) ",") - (data $220.1 (i32.const 11752) "\01\00\00\00\1c\00\00\00p-\00\00\90-\00\00p-\00\00\b0-\00\00\d0-\00\00`\04") - (data $221 (i32.const 11788) ",") - (data $221.1 (i32.const 11800) "\01\00\00\00\1c\00\00\00`\04\00\00p-\00\00p-\00\00\b0-\00\00\90-\00\00\d0-") - (data $222 (i32.const 11836) "\1c") - (data $222.1 (i32.const 11848) "#\00\00\00\08\00\00\00=") - (data $223 (i32.const 11868) "\1c") - (data $223.1 (i32.const 11880) "$\00\00\00\08\00\00\00>") - (data $224 (i32.const 11900) "\1c") - (data $224.1 (i32.const 11912) "\01\00\00\00\02\00\00\00\01") - (data $225 (i32.const 11932) "\1c") - (data $225.1 (i32.const 11944) "\02\00\00\00\08\00\00\00t\00r\00u\00e") - (data $226 (i32.const 11964) "\1c") - (data $226.1 (i32.const 11976) "\02\00\00\00\n\00\00\00f\00a\00l\00s\00e") - (data $227 (i32.const 11996) "\1c") - (data $227.1 (i32.const 12008) "\02\00\00\00\02\00\00\00,") - (data $228 (i32.const 12028) ",") - (data $228.1 (i32.const 12040) "\02\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") - (data $229 (i32.const 12076) "\1c") - (data $229.1 (i32.const 12088) "\01\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") - (data $230 (i32.const 12108) "\1c") - (data $230.1 (i32.const 12120) "\02\00\00\00\n\00\00\001\00-\002\00-\003") - (data $231 (i32.const 12140) "\1c") - (data $231.1 (i32.const 12152) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data $232 (i32.const 12172) "\1c") - (data $232.1 (i32.const 12184) "\02\00\00\00\02\00\00\00-") - (data $233 (i32.const 12204) "\1c") - (data $233.1 (i32.const 12216) "\01\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") - (data $234 (i32.const 12236) "\1c") - (data $234.1 (i32.const 12248) "\02\00\00\00\04\00\00\00_\00_") - (data $235 (i32.const 12268) "L") - (data $235.1 (i32.const 12280) "\02\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008") - (data $236 (i32.const 12348) "L") - (data $236.1 (i32.const 12360) "\01\00\00\000") - (data $236.2 (i32.const 12382) "\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") - (data $237 (i32.const 12428) "\1c") - (data $237.1 (i32.const 12440) "\02\00\00\00\04\00\00\00,\00 ") - (data $238 (i32.const 12460) "\1c") - (data $238.1 (i32.const 12472) "\02\00\00\00\06\00\00\000\00.\000") - (data $239 (i32.const 12492) "\1c") - (data $239.1 (i32.const 12504) "\02\00\00\00\06\00\00\00N\00a\00N") - (data $240 (i32.const 12524) ",") - (data $240.1 (i32.const 12536) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data $241 (i32.const 12572) ",") - (data $241.1 (i32.const 12584) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data $243 (i32.const 12680) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") - (data $252 (i32.const 14028) "\1c") - (data $252.1 (i32.const 14040) "\01") - (data $253 (i32.const 14060) "\1c") - (data $253.1 (i32.const 14072) "\01\00\00\00\04\00\00\00\01") + (data $219.1 (i32.const 11720) "$\00\00\00\08\00\00\00>") + (data $220 (i32.const 11740) "\1c") + (data $220.1 (i32.const 11752) "\01\00\00\00\02\00\00\00\01") + (data $221 (i32.const 11772) "\1c") + (data $221.1 (i32.const 11784) "\02\00\00\00\08\00\00\00t\00r\00u\00e") + (data $222 (i32.const 11804) "\1c") + (data $222.1 (i32.const 11816) "\02\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data $223 (i32.const 11836) "\1c") + (data $223.1 (i32.const 11848) "\02\00\00\00\02\00\00\00,") + (data $224 (i32.const 11868) ",") + (data $224.1 (i32.const 11880) "\02\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") + (data $225 (i32.const 11916) "\1c") + (data $225.1 (i32.const 11928) "\01\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data $226 (i32.const 11948) "\1c") + (data $226.1 (i32.const 11960) "\02\00\00\00\n\00\00\001\00-\002\00-\003") + (data $227 (i32.const 11980) "\1c") + (data $227.1 (i32.const 11992) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data $228 (i32.const 12012) "\1c") + (data $228.1 (i32.const 12024) "\02\00\00\00\02\00\00\00-") + (data $229 (i32.const 12044) "\1c") + (data $229.1 (i32.const 12056) "\01\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") + (data $230 (i32.const 12076) "\1c") + (data $230.1 (i32.const 12088) "\02\00\00\00\04\00\00\00_\00_") + (data $231 (i32.const 12108) "L") + (data $231.1 (i32.const 12120) "\02\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008") + (data $232 (i32.const 12188) "L") + (data $232.1 (i32.const 12200) "\01\00\00\000") + (data $232.2 (i32.const 12222) "\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") + (data $233 (i32.const 12268) "\1c") + (data $233.1 (i32.const 12280) "\02\00\00\00\04\00\00\00,\00 ") + (data $234 (i32.const 12300) "\1c") + (data $234.1 (i32.const 12312) "\02\00\00\00\06\00\00\000\00.\000") + (data $235 (i32.const 12332) "\1c") + (data $235.1 (i32.const 12344) "\02\00\00\00\06\00\00\00N\00a\00N") + (data $236 (i32.const 12364) ",") + (data $236.1 (i32.const 12376) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data $237 (i32.const 12412) ",") + (data $237.1 (i32.const 12424) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data $239 (i32.const 12520) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") + (data $248 (i32.const 13868) "\1c") + (data $248.1 (i32.const 13880) "\01") + (data $249 (i32.const 13900) "\1c") + (data $249.1 (i32.const 13912) "\01\00\00\00\04\00\00\00\01") + (data $250 (i32.const 13932) "\1c") + (data $250.1 (i32.const 13944) "\01\00\00\00\08\00\00\00\01\00\00\00\02") + (data $251 (i32.const 13964) ",") + (data $251.1 (i32.const 13976) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data $252 (i32.const 14012) "\1c") + (data $252.1 (i32.const 14024) "\02\00\00\00\06\00\00\001\00,\002") + (data $253 (i32.const 14044) ",") + (data $253.1 (i32.const 14056) "\02\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003") (data $254 (i32.const 14092) "\1c") - (data $254.1 (i32.const 14104) "\01\00\00\00\08\00\00\00\01\00\00\00\02") - (data $255 (i32.const 14124) ",") - (data $255.1 (i32.const 14136) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data $256 (i32.const 14172) "\1c") - (data $256.1 (i32.const 14184) "\02\00\00\00\06\00\00\001\00,\002") - (data $257 (i32.const 14204) ",") - (data $257.1 (i32.const 14216) "\02\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003") - (data $258 (i32.const 14252) "\1c") - (data $258.1 (i32.const 14264) "\01\00\00\00\03\00\00\00\01\ff") - (data $259 (i32.const 14284) "\1c") - (data $259.1 (i32.const 14296) "\02\00\00\00\0c\00\00\001\00,\00-\001\00,\000") + (data $254.1 (i32.const 14104) "\01\00\00\00\03\00\00\00\01\ff") + (data $255 (i32.const 14124) "\1c") + (data $255.1 (i32.const 14136) "\02\00\00\00\0c\00\00\001\00,\00-\001\00,\000") + (data $256 (i32.const 14156) "\1c") + (data $256.1 (i32.const 14168) "\01\00\00\00\03\00\00\00\80\81\80") + (data $257 (i32.const 14188) ",") + (data $257.1 (i32.const 14200) "\02\00\00\00\1c\00\00\00-\001\002\008\00,\00-\001\002\007\00,\00-\001\002\008") + (data $258 (i32.const 14236) "\1c") + (data $258.1 (i32.const 14248) "\01\00\00\00\06\00\00\00\01\00\ff\ff") + (data $259 (i32.const 14268) ",") + (data $259.1 (i32.const 14280) "\02\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000") (data $260 (i32.const 14316) "\1c") - (data $260.1 (i32.const 14328) "\01\00\00\00\03\00\00\00\80\81\80") + (data $260.1 (i32.const 14328) "\01\00\00\00\04\00\00\00\00\80\01\ff") (data $261 (i32.const 14348) ",") - (data $261.1 (i32.const 14360) "\02\00\00\00\1c\00\00\00-\001\002\008\00,\00-\001\002\007\00,\00-\001\002\008") + (data $261.1 (i32.const 14360) "\02\00\00\00\16\00\00\00-\003\002\007\006\008\00,\00-\002\005\005") (data $262 (i32.const 14396) "\1c") - (data $262.1 (i32.const 14408) "\01\00\00\00\06\00\00\00\01\00\ff\ff") - (data $263 (i32.const 14428) ",") - (data $263.1 (i32.const 14440) "\02\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000") - (data $264 (i32.const 14476) "\1c") - (data $264.1 (i32.const 14488) "\01\00\00\00\04\00\00\00\00\80\01\ff") - (data $265 (i32.const 14508) ",") - (data $265.1 (i32.const 14520) "\02\00\00\00\16\00\00\00-\003\002\007\006\008\00,\00-\002\005\005") - (data $266 (i32.const 14556) "\1c") - (data $266.1 (i32.const 14568) "\01\00\00\00\08\00\00\00\00\00\00\80\80\ff\ff\ff") - (data $267 (i32.const 14588) "<") - (data $267.1 (i32.const 14600) "\02\00\00\00 \00\00\00-\002\001\004\007\004\008\003\006\004\008\00,\00-\001\002\008") - (data $268 (i32.const 14652) ",") - (data $268.1 (i32.const 14664) "\01\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff") - (data $269 (i32.const 14700) "L") - (data $269.1 (i32.const 14712) "\02\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000") - (data $270 (i32.const 14780) "<") - (data $270.1 (i32.const 14792) "\01\00\00\00(\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") - (data $271 (i32.const 14844) "\9c") - (data $271.1 (i32.const 14856) "\02\00\00\00~\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") + (data $262.1 (i32.const 14408) "\01\00\00\00\08\00\00\00\00\00\00\80\80\ff\ff\ff") + (data $263 (i32.const 14428) "<") + (data $263.1 (i32.const 14440) "\02\00\00\00 \00\00\00-\002\001\004\007\004\008\003\006\004\008\00,\00-\001\002\008") + (data $264 (i32.const 14492) ",") + (data $264.1 (i32.const 14504) "\01\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff") + (data $265 (i32.const 14540) "L") + (data $265.1 (i32.const 14552) "\02\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000") + (data $266 (i32.const 14620) "<") + (data $266.1 (i32.const 14632) "\01\00\00\00(\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") + (data $267 (i32.const 14684) "\9c") + (data $267.1 (i32.const 14696) "\02\00\00\00~\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") + (data $268 (i32.const 14844) ",") + (data $268.1 (i32.const 14856) "\01\00\00\00\1c\00\00\000-\00\00\b0,\00\00\b0,\00\00\f0,\00\00\d0,\00\00\10-") + (data $269 (i32.const 14892) ",") + (data $269.1 (i32.const 14904) "\02\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,") + (data $270 (i32.const 14940) "\1c") + (data $270.1 (i32.const 14952) "\02\00\00\00\02\00\00\002") + (data $271 (i32.const 14972) "\1c") + (data $271.1 (i32.const 14984) "\02\00\00\00\02\00\00\004") (data $272 (i32.const 15004) ",") - (data $272.1 (i32.const 15016) "\01\00\00\00\1c\00\00\00`\04\00\00p-\00\00p-\00\00\b0-\00\00\90-\00\00\d0-") - (data $273 (i32.const 15052) ",") - (data $273.1 (i32.const 15064) "\02\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,") - (data $274 (i32.const 15100) "\1c") - (data $274.1 (i32.const 15112) "\02\00\00\00\02\00\00\002") - (data $275 (i32.const 15132) "\1c") - (data $275.1 (i32.const 15144) "\02\00\00\00\02\00\00\004") - (data $276 (i32.const 15164) ",") - (data $276.1 (i32.const 15176) "\01\00\00\00\10\00\00\00\a05\00\00\10;\00\00\00\00\00\000;") - (data $277 (i32.const 15212) "\1c") - (data $277.1 (i32.const 15224) "\02\00\00\00\0c\00\00\001\00,\002\00,\00,\004") - (data $278 (i32.const 15244) "\1c") - (data $278.1 (i32.const 15256) "\01\00\00\00\08\00\00\00\01\00\00\00\02") - (data $279 (i32.const 15276) "\1c") - (data $279.1 (i32.const 15288) "\01\00\00\00\08\00\00\00\03\00\00\00\04") - (data $280 (i32.const 15308) ",") - (data $280.1 (i32.const 15320) "\02\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004") - (data $281 (i32.const 15356) "\1c") - (data $281.1 (i32.const 15368) "\01\00\00\00\02\00\00\00\01\02") - (data $282 (i32.const 15388) "\1c") - (data $282.1 (i32.const 15400) "\01\00\00\00\02\00\00\00\03\04") - (data $283 (i32.const 15420) "\1c") - (data $283.1 (i32.const 15432) "\01\00\00\00\04\00\00\00\01") - (data $284 (i32.const 15452) "\1c") - (data $284.1 (i32.const 15464) "\01\00\00\00\04") - (data $285 (i32.const 15484) "\1c") - (data $285.1 (i32.const 15496) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data $286 (i32.const 15516) "\1c") - (data $286.1 (i32.const 15528) "\01\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06") - (data $287 (i32.const 15548) "\1c") - (data $287.1 (i32.const 15560) "\01\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t") - (data $288 (i32.const 15580) "\1c") - (data $288.1 (i32.const 15592) "\02\00\00\00\06\00\00\00o\00n\00e") - (data $289 (i32.const 15612) "\1c") - (data $289.1 (i32.const 15624) "\01\00\00\00\04\00\00\00\f0<") - (data $290 (i32.const 15644) "\1c") - (data $290.1 (i32.const 15656) "\02\00\00\00\06\00\00\00t\00w\00o") - (data $291 (i32.const 15676) "\1c") - (data $291.1 (i32.const 15688) "\02\00\00\00\n\00\00\00t\00h\00r\00e\00e") - (data $292 (i32.const 15708) "\1c") - (data $292.1 (i32.const 15720) "\01\00\00\00\0c\00\00\000=\00\00\00\00\00\00P=") - (data $293 (i32.const 15740) "\1c") - (data $293.1 (i32.const 15752) "\02\00\00\00\08\00\00\00f\00o\00u\00r") - (data $294 (i32.const 15772) "\1c") - (data $294.1 (i32.const 15784) "\02\00\00\00\08\00\00\00f\00i\00v\00e") - (data $295 (i32.const 15804) "\1c") - (data $295.1 (i32.const 15816) "\02\00\00\00\06\00\00\00s\00i\00x") + (data $272.1 (i32.const 15016) "\01\00\00\00\10\00\00\00\005\00\00p:\00\00\00\00\00\00\90:") + (data $273 (i32.const 15052) "\1c") + (data $273.1 (i32.const 15064) "\02\00\00\00\0c\00\00\001\00,\002\00,\00,\004") + (data $274 (i32.const 15084) "\1c") + (data $274.1 (i32.const 15096) "\01\00\00\00\08\00\00\00\01\00\00\00\02") + (data $275 (i32.const 15116) "\1c") + (data $275.1 (i32.const 15128) "\01\00\00\00\08\00\00\00\03\00\00\00\04") + (data $276 (i32.const 15148) ",") + (data $276.1 (i32.const 15160) "\02\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004") + (data $277 (i32.const 15196) "\1c") + (data $277.1 (i32.const 15208) "\01\00\00\00\02\00\00\00\01\02") + (data $278 (i32.const 15228) "\1c") + (data $278.1 (i32.const 15240) "\01\00\00\00\02\00\00\00\03\04") + (data $279 (i32.const 15260) "\1c") + (data $279.1 (i32.const 15272) "\01\00\00\00\04\00\00\00\01") + (data $280 (i32.const 15292) "\1c") + (data $280.1 (i32.const 15304) "\01\00\00\00\04") + (data $281 (i32.const 15324) "\1c") + (data $281.1 (i32.const 15336) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data $282 (i32.const 15356) "\1c") + (data $282.1 (i32.const 15368) "\01\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06") + (data $283 (i32.const 15388) "\1c") + (data $283.1 (i32.const 15400) "\01\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t") + (data $284 (i32.const 15420) "\1c") + (data $284.1 (i32.const 15432) "\02\00\00\00\06\00\00\00o\00n\00e") + (data $285 (i32.const 15452) "\1c") + (data $285.1 (i32.const 15464) "\01\00\00\00\04\00\00\00P<") + (data $286 (i32.const 15484) "\1c") + (data $286.1 (i32.const 15496) "\02\00\00\00\06\00\00\00t\00w\00o") + (data $287 (i32.const 15516) "\1c") + (data $287.1 (i32.const 15528) "\02\00\00\00\n\00\00\00t\00h\00r\00e\00e") + (data $288 (i32.const 15548) "\1c") + (data $288.1 (i32.const 15560) "\01\00\00\00\0c\00\00\00\90<\00\00\00\00\00\00\b0<") + (data $289 (i32.const 15580) "\1c") + (data $289.1 (i32.const 15592) "\02\00\00\00\08\00\00\00f\00o\00u\00r") + (data $290 (i32.const 15612) "\1c") + (data $290.1 (i32.const 15624) "\02\00\00\00\08\00\00\00f\00i\00v\00e") + (data $291 (i32.const 15644) "\1c") + (data $291.1 (i32.const 15656) "\02\00\00\00\06\00\00\00s\00i\00x") + (data $292 (i32.const 15676) "\1c") + (data $292.1 (i32.const 15688) "\01\00\00\00\0c\00\00\00\f0<\00\00\10=\00\000=") + (data $293 (i32.const 15708) "\1c") + (data $293.1 (i32.const 15720) "\02\00\00\00\n\00\00\00s\00e\00v\00e\00n") + (data $294 (i32.const 15740) "\1c") + (data $294.1 (i32.const 15752) "\01\00\00\00\04\00\00\00p=") + (data $295 (i32.const 15772) "<") + (data $295.1 (i32.const 15784) "\01\00\00\00 \00\00\00P<\00\00\90<\00\00\00\00\00\00\b0<\00\00\f0<\00\00\10=\00\000=\00\00p=") (data $296 (i32.const 15836) "\1c") - (data $296.1 (i32.const 15848) "\01\00\00\00\0c\00\00\00\90=\00\00\b0=\00\00\d0=") + (data $296.1 (i32.const 15848) "\01") (data $297 (i32.const 15868) "\1c") - (data $297.1 (i32.const 15880) "\02\00\00\00\n\00\00\00s\00e\00v\00e\00n") + (data $297.1 (i32.const 15880) "\01") (data $298 (i32.const 15900) "\1c") - (data $298.1 (i32.const 15912) "\01\00\00\00\04\00\00\00\10>") - (data $299 (i32.const 15932) "<") - (data $299.1 (i32.const 15944) "\01\00\00\00 \00\00\00\f0<\00\000=\00\00\00\00\00\00P=\00\00\90=\00\00\b0=\00\00\d0=\00\00\10>") - (data $300 (i32.const 15996) "\1c") - (data $300.1 (i32.const 16008) "\01") - (data $301 (i32.const 16028) "\1c") - (data $301.1 (i32.const 16040) "\01") - (data $302 (i32.const 16060) "\1c") - (data $302.1 (i32.const 16072) "\01\00\00\00\04\00\00\00\01") - (data $303 (i32.const 16092) "\1c") - (data $303.1 (i32.const 16104) "\01\00\00\00\04\00\00\00\02") - (data $304 (i32.const 16124) "\1c") - (data $304.1 (i32.const 16136) ".\00\00\00\08\00\00\00?") - (data $305 (i32.const 16160) "/\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00 \00\00\00A\00\00\00B\00\00\00\02\01\00\00\02\19\00\00\02A\00\00\82\00\00\00\02\1a\00\00\02a") - (data $305.1 (i32.const 16228) "\02A") - (data $305.2 (i32.const 16252) " \00\00\00\02A") - (data $305.3 (i32.const 16280) "\02A\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\02a") - (data $305.4 (i32.const 16312) "B\00\00\00B\08\00\00\82\08\00\00\02\02\00\00\02\n\00\00\02A\00\00\02A\00\00\02A\00\00\02A") + (data $298.1 (i32.const 15912) "\01\00\00\00\04\00\00\00\01") + (data $299 (i32.const 15932) "\1c") + (data $299.1 (i32.const 15944) "\01\00\00\00\04\00\00\00\02") + (data $300 (i32.const 15964) "\1c") + (data $300.1 (i32.const 15976) ".\00\00\00\08\00\00\00?") + (data $301 (i32.const 16000) "/\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00 \00\00\00A\00\00\00B\00\00\00\02\01\00\00\02\19\00\00\02A\00\00\82\00\00\00\02\1a\00\00\02a") + (data $301.1 (i32.const 16068) "\02A") + (data $301.2 (i32.const 16092) " \00\00\00\02A") + (data $301.3 (i32.const 16120) "\02A\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\02a") + (data $301.4 (i32.const 16152) "B\00\00\00B\08\00\00\82\08\00\00\02\02\00\00\02\n\00\00\02A\00\00\02A\00\00\02A\00\00\02A") (table $0 64 64 funcref) (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|20 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|34 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|34 $start:std/array~anonymous|40 $start:std/array~anonymous|34 $start:std/array~anonymous|34 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|34 $start:std/array~anonymous|40 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|49 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|49 $start:std/array~anonymous|52 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $start:std/array~anonymous|54) (export "memory" (memory $0)) @@ -676,7 +669,7 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 10224 + i32.const 10032 call $~lib/rt/itcms/__visit global.get $std/array/inputStabArr local.tee $0 @@ -692,17 +685,17 @@ end i32.const 1344 call $~lib/rt/itcms/__visit - i32.const 3424 + i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 4608 + i32.const 2640 call $~lib/rt/itcms/__visit - i32.const 8384 + i32.const 6416 call $~lib/rt/itcms/__visit i32.const 1152 call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 8144 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 9200 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -765,7 +758,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$734 + block $__inlined_func$~lib/rt/itcms/Object#unlink$731 local.get $0 i32.load offset=4 i32.const -4 @@ -777,7 +770,7 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 49120 + i32.const 48960 i32.lt_u i32.and i32.eqz @@ -789,7 +782,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$734 + br $__inlined_func$~lib/rt/itcms/Object#unlink$731 end local.get $0 i32.load offset=8 @@ -826,13 +819,13 @@ i32.const 1 else local.get $1 - i32.const 16160 + i32.const 16000 i32.load i32.gt_u if i32.const 1344 i32.const 1408 - i32.const 21 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -840,7 +833,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 16164 + i32.const 16004 i32.add i32.load i32.const 32 @@ -1424,10 +1417,10 @@ if unreachable end - i32.const 49120 + i32.const 48960 i32.const 0 i32.store - i32.const 50688 + i32.const 50528 i32.const 0 i32.store loop $for-loop|0 @@ -1438,7 +1431,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 49120 + i32.const 48960 i32.add i32.const 0 i32.store offset=4 @@ -1456,7 +1449,7 @@ i32.add i32.const 2 i32.shl - i32.const 49120 + i32.const 48960 i32.add i32.const 0 i32.store offset=96 @@ -1474,21 +1467,21 @@ br $for-loop|0 end end - i32.const 49120 - i32.const 50692 + i32.const 48960 + i32.const 50532 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 49120 + i32.const 48960 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 49120 + i32.const 48960 i32.lt_u if return @@ -1616,7 +1609,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 49120 + i32.const 48960 i32.lt_u if local.get $0 @@ -1712,7 +1705,7 @@ unreachable end local.get $0 - i32.const 49120 + i32.const 48960 i32.lt_u if local.get $0 @@ -2101,7 +2094,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$69 + block $__inlined_func$~lib/rt/itcms/interrupt$68 i32.const 2048 local.set $2 loop $do-loop|0 @@ -2118,7 +2111,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + br $__inlined_func$~lib/rt/itcms/interrupt$68 end local.get $2 i32.const 0 @@ -2194,110 +2187,6 @@ memory.fill local.get $1 ) - (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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -2407,6 +2296,110 @@ i32.add global.set $std/array/i ) + (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 7724 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 7724 + 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 7724 + 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 7724 + 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 $start:std/array~anonymous|25 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 call $~lib/util/number/itoa32 @@ -2954,7 +2947,7 @@ global.set $~argumentsLength local.get $4 local.get $7 - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 0 @@ -2987,7 +2980,7 @@ global.set $~argumentsLength local.get $7 local.get $4 - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 0 @@ -3029,7 +3022,7 @@ global.set $~argumentsLength local.get $4 local.get $5 - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 0 @@ -3090,7 +3083,7 @@ f64.load i32.const 2 global.set $~argumentsLength - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 0 @@ -3112,7 +3105,7 @@ f64.load i32.const 2 global.set $~argumentsLength - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 31 @@ -3183,7 +3176,7 @@ f64.load i32.const 2 global.set $~argumentsLength - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 0 @@ -3290,7 +3283,7 @@ global.set $~argumentsLength local.get $6 local.get $7 - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 0 @@ -3827,7 +3820,7 @@ global.set $~argumentsLength local.get $3 local.get $5 - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 0 @@ -3860,7 +3853,7 @@ global.set $~argumentsLength local.get $7 local.get $3 - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 0 @@ -3902,7 +3895,7 @@ global.set $~argumentsLength local.get $7 local.get $4 - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 0 @@ -3962,7 +3955,7 @@ i32.load i32.const 2 global.set $~argumentsLength - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 0 @@ -3984,7 +3977,7 @@ i32.load i32.const 2 global.set $~argumentsLength - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 31 @@ -4055,7 +4048,7 @@ i32.load i32.const 2 global.set $~argumentsLength - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 0 @@ -4160,7 +4153,7 @@ global.set $~argumentsLength local.get $6 local.get $7 - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 0 @@ -4698,7 +4691,7 @@ local.get $7 i32.const 2 i32.shl - i32.const 13552 + i32.const 13392 i32.add i64.load32_u local.get $2 @@ -4821,7 +4814,7 @@ i32.sub i32.const 2 i32.shl - i32.const 13552 + i32.const 13392 i32.add i64.load32_u i64.mul @@ -5328,14 +5321,14 @@ i32.sub global.set $~lib/util/number/_K local.get $9 - i32.const 12680 + i32.const 12520 i32.add i64.load global.set $~lib/util/number/_frc_pow local.get $5 i32.const 1 i32.shl - i32.const 13376 + i32.const 13216 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow @@ -5857,7 +5850,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 1788 + i32.const 7724 i32.add i64.load32_u local.get $4 @@ -5865,7 +5858,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 1788 + i32.const 7724 i32.add i64.load32_u i64.const 32 @@ -5888,7 +5881,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 1788 + i32.const 7724 i32.add i64.load32_u local.get $3 @@ -5896,7 +5889,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 1788 + i32.const 7724 i32.add i64.load32_u i64.const 32 @@ -6245,220 +6238,55 @@ global.set $~started call $start:std/array ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 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 16352 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 16352 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$739 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$739 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49152 - i32.const 49200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16352 - i32.lt_s - if - i32.const 49152 - i32.const 49200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/util/number/utoa32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/util/number/utoa32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6508,9 +6336,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3472 - i32.const 70 + i32.const 1056 + i32.const 1104 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -6573,11 +6401,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6611,11 +6439,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6685,11 +6513,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6714,11 +6542,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6736,8 +6564,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 114 + i32.const 1104 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -6764,11 +6592,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6847,11 +6675,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6897,11 +6725,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6949,7 +6777,7 @@ i32.lt_s select local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$136 + block $__inlined_func$~lib/util/bytes/FILL$132 local.get $1 i32.eqz local.get $1 @@ -6974,7 +6802,7 @@ i32.shl memory.fill end - br $__inlined_func$~lib/util/bytes/FILL$136 + br $__inlined_func$~lib/util/bytes/FILL$132 end loop $for-loop|0 local.get $0 @@ -7007,11 +6835,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7029,8 +6857,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 114 + i32.const 1104 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -7059,11 +6887,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7142,11 +6970,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7192,11 +7020,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7244,7 +7072,7 @@ i32.lt_s select local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$145 + block $__inlined_func$~lib/util/bytes/FILL$141 local.get $1 i32.reinterpret_f32 i32.eqz @@ -7266,7 +7094,7 @@ i32.shl memory.fill end - br $__inlined_func$~lib/util/bytes/FILL$145 + br $__inlined_func$~lib/util/bytes/FILL$141 end loop $for-loop|0 local.get $0 @@ -7300,11 +7128,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7322,8 +7150,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 114 + i32.const 1104 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -7353,11 +7181,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7485,11 +7313,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7534,11 +7362,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7577,11 +7405,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7605,8 +7433,8 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -7646,7 +7474,7 @@ select local.set $1 end - block $__inlined_func$~lib/rt/itcms/__renew$648 + block $__inlined_func$~lib/rt/itcms/__renew$644 local.get $3 i32.const 20 i32.sub @@ -7664,7 +7492,7 @@ i32.store offset=16 local.get $3 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$648 + br $__inlined_func$~lib/rt/itcms/__renew$644 end local.get $1 local.get $4 @@ -7714,11 +7542,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7767,11 +7595,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7789,8 +7617,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 114 + i32.const 1104 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -7818,11 +7646,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7840,9 +7668,9 @@ i32.const 0 i32.le_s if - i32.const 4608 - i32.const 3472 - i32.const 271 + i32.const 2640 + i32.const 1104 + i32.const 283 i32.const 18 call $~lib/builtins/abort unreachable @@ -7878,11 +7706,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7904,8 +7732,8 @@ i32.lt_s if i32.const 1344 - i32.const 3472 - i32.const 130 + i32.const 1104 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -7951,11 +7779,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7982,8 +7810,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 143 + i32.const 1104 + i32.const 147 i32.const 33 call $~lib/builtins/abort unreachable @@ -8013,11 +7841,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8044,9 +7872,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3472 - i32.const 224 + i32.const 1056 + i32.const 1104 + i32.const 232 i32.const 60 call $~lib/builtins/abort unreachable @@ -8102,11 +7930,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8233,11 +8061,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8280,11 +8108,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8368,11 +8196,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8429,11 +8257,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8538,11 +8366,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8592,11 +8420,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8761,11 +8589,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8888,11 +8716,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8910,8 +8738,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 114 + i32.const 1104 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -8938,11 +8766,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9032,11 +8860,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9123,11 +8951,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9171,11 +8999,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9208,11 +9036,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9331,11 +9159,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9380,11 +9208,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9502,11 +9330,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9524,8 +9352,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 114 + i32.const 1104 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -9546,9 +9374,9 @@ local.get $0 i32.eqz if - i32.const 8384 - i32.const 3472 - i32.const 118 + i32.const 6416 + i32.const 1104 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -9565,11 +9393,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9587,8 +9415,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 114 + i32.const 1104 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -9619,11 +9447,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9645,8 +9473,8 @@ i32.lt_s if i32.const 1344 - i32.const 3472 - i32.const 130 + i32.const 1104 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -9690,11 +9518,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9771,11 +9599,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9804,11 +9632,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9839,11 +9667,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9915,11 +9743,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9997,11 +9825,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10030,11 +9858,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10066,11 +9894,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10147,11 +9975,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10180,11 +10008,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10216,11 +10044,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10288,11 +10116,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10322,11 +10150,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10357,11 +10185,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10465,7 +10293,7 @@ i32.and if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 767 i32.const 7 call $~lib/builtins/abort @@ -10482,11 +10310,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10522,11 +10350,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10617,11 +10445,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10656,11 +10484,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10747,11 +10575,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10784,11 +10612,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10824,11 +10652,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10901,11 +10729,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10934,11 +10762,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10969,11 +10797,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11041,7 +10869,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -11062,7 +10890,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -11103,8 +10931,8 @@ local.get $0 return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11132,11 +10960,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11555,7 +11383,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -11572,10 +11400,10 @@ end unreachable end - i32.const 10448 + i32.const 10256 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 10448 + i32.const 10256 i32.store end global.get $~lib/memory/__stack_pointer @@ -11589,7 +11417,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -11620,8 +11448,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11649,11 +11477,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11696,7 +11524,7 @@ local.get $16 local.get $16 local.get $17 - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 0 @@ -11715,7 +11543,7 @@ select local.tee $16 local.get $8 - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 0 @@ -11747,7 +11575,7 @@ local.get $8 local.get $8 local.get $16 - i32.const 10736 + i32.const 10544 i32.load call_indirect (type $6) i32.const 0 @@ -11764,7 +11592,7 @@ br $folding-inner0 end global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store local.get $0 i32.const 0 @@ -11833,7 +11661,7 @@ i32.add local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store local.get $0 i32.const 0 @@ -11850,7 +11678,7 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store local.get $0 i32.const 0 @@ -11874,7 +11702,7 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store local.get $0 local.get $3 @@ -11893,7 +11721,7 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store local.get $0 local.get $5 @@ -11961,7 +11789,7 @@ i32.add local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store local.get $0 local.get $7 @@ -12026,7 +11854,7 @@ i32.add local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store local.get $0 local.get $3 @@ -12064,11 +11892,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12086,8 +11914,8 @@ i32.ge_u if i32.const 1344 - i32.const 3472 - i32.const 114 + i32.const 1104 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -12126,11 +11954,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12548,11 +12376,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12601,11 +12429,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12648,7 +12476,7 @@ local.get $1 local.get $1 local.get $2 - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 0 @@ -12667,7 +12495,7 @@ select local.tee $1 local.get $4 - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 0 @@ -12699,7 +12527,7 @@ local.get $1 local.get $1 local.get $2 - i32.const 11040 + i32.const 10848 i32.load call_indirect (type $0) i32.const 0 @@ -12716,7 +12544,7 @@ br $folding-inner0 end global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store local.get $0 i32.const 0 @@ -12785,7 +12613,7 @@ i32.add local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store local.get $0 i32.const 0 @@ -12802,7 +12630,7 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store local.get $0 i32.const 0 @@ -12826,7 +12654,7 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store local.get $0 local.get $4 @@ -12845,7 +12673,7 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store local.get $0 local.get $5 @@ -12913,7 +12741,7 @@ i32.add local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store local.get $0 local.get $7 @@ -12978,7 +12806,7 @@ i32.add local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store local.get $0 local.get $3 @@ -13017,11 +12845,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13072,11 +12900,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13130,7 +12958,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -13139,7 +12967,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted$653 (result i32) + block $__inlined_func$std/array/isSorted$649 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -13161,7 +12989,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -13207,7 +13035,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted$653 + br $__inlined_func$std/array/isSorted$649 end local.get $0 i32.const 1 @@ -13225,7 +13053,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1080 i32.const 3 call $~lib/builtins/abort @@ -13237,8 +13065,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13250,11 +13078,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13267,10 +13095,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11312 + i32.const 11120 i32.store offset=4 local.get $0 - i32.const 11312 + i32.const 11120 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 8 @@ -13283,11 +13111,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13323,11 +13151,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13535,11 +13363,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13730,11 +13558,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13899,11 +13727,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14353,11 +14181,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14393,11 +14221,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14435,7 +14263,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14444,7 +14272,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted<~lib/array/Array>$655 (result i32) + block $__inlined_func$std/array/isSorted<~lib/array/Array>$651 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -14466,7 +14294,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 local.get $1 @@ -14527,7 +14355,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/array/Array>$655 + br $__inlined_func$std/array/isSorted<~lib/array/Array>$651 end local.get $1 i32.const 1 @@ -14545,7 +14373,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1080 i32.const 3 call $~lib/builtins/abort @@ -14557,8 +14385,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14575,11 +14403,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14759,11 +14587,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14907,7 +14735,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14915,70 +14743,173 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16352 - i32.lt_s - if - i32.const 49152 - i32.const 49200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $2 - 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 $2 - i32.gt_s - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.le_s - select - i32.const 1 - i32.shl - local.set $3 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.ge_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $3 - i32.sub - local.tee $2 - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - i32.const 1120 - return + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$736 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/string/String#concat$736 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $2 + 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 $2 + i32.gt_s + select + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + i32.const 1 + i32.shl + local.set $3 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.ge_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + i32.sub + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return end local.get $3 i32.eqz @@ -15027,7 +14958,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15053,13 +14984,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$741 + block $__inlined_func$~lib/util/string/joinIntegerArray$738 local.get $0 i32.const 1 i32.sub @@ -15071,9 +15002,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end local.get $7 i32.eqz @@ -15086,7 +15017,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -15185,7 +15116,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -15199,8 +15130,8 @@ local.get $0 return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15219,7 +15150,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15245,13 +15176,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$742 + block $__inlined_func$~lib/util/string/joinIntegerArray$739 local.get $0 i32.const 1 i32.sub @@ -15263,9 +15194,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$742 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 end local.get $7 i32.eqz @@ -15278,7 +15209,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$742 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -15377,7 +15308,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$742 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -15391,8 +15322,8 @@ local.get $0 return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15412,7 +15343,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15429,7 +15360,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 return end local.get $7 @@ -15443,13 +15374,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 12480 + i32.const 12320 local.set $0 block $~lib/util/number/dtoa_impl|inlined.0 local.get $3 @@ -15462,14 +15393,14 @@ f64.const 0 f64.ne if - i32.const 12512 + i32.const 12352 local.set $0 local.get $3 local.get $3 f64.ne br_if $~lib/util/number/dtoa_impl|inlined.0 - i32.const 12544 - i32.const 12592 + i32.const 12384 + i32.const 12432 local.get $3 f64.const 0 f64.lt @@ -15477,7 +15408,7 @@ local.set $0 br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 12624 + i32.const 12464 local.get $3 call $~lib/util/number/dtoa_core i32.const 1 @@ -15490,7 +15421,7 @@ local.tee $0 i32.store local.get $0 - i32.const 12624 + i32.const 12464 local.get $1 memory.copy end @@ -15501,10 +15432,10 @@ br $folding-inner1 end global.get $~lib/memory/__stack_pointer - i32.const 12448 + i32.const 12288 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12444 + i32.const 12284 i32.load i32.const 1 i32.shr_u @@ -15549,7 +15480,7 @@ i32.const 1 i32.shl i32.add - i32.const 12448 + i32.const 12288 local.get $1 i32.const 1 i32.shl @@ -15600,8 +15531,8 @@ local.get $6 return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15624,11 +15555,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15651,7 +15582,7 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 return end local.get $5 @@ -15667,7 +15598,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 1120 + i32.const 11568 local.get $0 select return @@ -15838,11 +15769,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15883,7 +15814,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15902,7 +15833,7 @@ i32.load offset=12 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store block $__inlined_func$~lib/util/string/joinReferenceArray$1 (result i32) global.get $~lib/memory/__stack_pointer @@ -15910,7 +15841,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15928,7 +15859,7 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 br $__inlined_func$~lib/util/string/joinReferenceArray$1 end local.get $2 @@ -15944,9 +15875,9 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 13792 + i32.const 13632 else - i32.const 1120 + i32.const 11568 end global.get $~lib/memory/__stack_pointer i32.const 20 @@ -15954,15 +15885,15 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray$1 end - i32.const 1120 + i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=4 - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u @@ -15990,11 +15921,11 @@ local.get $3 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 13792 + i32.const 13632 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 13792 + i32.const 13632 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 @@ -16005,11 +15936,11 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 12016 + i32.const 11856 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 @@ -16039,11 +15970,11 @@ local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 13792 + i32.const 13632 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 13792 + i32.const 13632 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 @@ -16060,8 +15991,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16073,11 +16004,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16090,7 +16021,7 @@ local.get $0 i32.store local.get $0 - i32.const 12016 + i32.const 11856 call $~lib/array/Array#join global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16110,7 +16041,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16124,7 +16055,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16143,20 +16074,20 @@ i32.load offset=12 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$743 + block $__inlined_func$~lib/util/string/joinIntegerArray$740 local.get $0 i32.const 1 i32.sub @@ -16168,9 +16099,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$743 + br $__inlined_func$~lib/util/string/joinIntegerArray$740 end local.get $6 i32.eqz @@ -16183,13 +16114,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$743 + br $__inlined_func$~lib/util/string/joinIntegerArray$740 end global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u @@ -16232,7 +16163,7 @@ i32.const 1 i32.shl i32.add - i32.const 12016 + i32.const 11856 local.get $4 i32.const 1 i32.shl @@ -16276,7 +16207,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$743 + br $__inlined_func$~lib/util/string/joinIntegerArray$740 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16294,8 +16225,8 @@ local.get $0 return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16315,7 +16246,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16332,7 +16263,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 return end local.get $7 @@ -16346,13 +16277,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/utoa64$480 + block $__inlined_func$~lib/util/number/utoa64$478 local.get $3 i64.eqz if @@ -16360,9 +16291,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1776 + i32.const 7712 local.set $1 - br $__inlined_func$~lib/util/number/utoa64$480 + br $__inlined_func$~lib/util/number/utoa64$478 end local.get $3 i64.const 4294967295 @@ -16500,10 +16431,10 @@ br $folding-inner1 end global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u @@ -16548,7 +16479,7 @@ i32.const 1 i32.shl i32.add - i32.const 12016 + i32.const 11856 local.get $1 i32.const 1 i32.shl @@ -16599,8 +16530,8 @@ local.get $6 return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16618,11 +16549,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16635,7 +16566,7 @@ local.get $0 i32.store local.get $0 - i32.const 12016 + i32.const 11856 call $~lib/array/Array<~lib/string/String|null>#join global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16655,7 +16586,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16669,7 +16600,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16688,20 +16619,20 @@ i32.load offset=12 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$746 + block $__inlined_func$~lib/util/string/joinIntegerArray$743 local.get $0 i32.const 1 i32.sub @@ -16713,9 +16644,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$746 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end local.get $6 i32.eqz @@ -16728,13 +16659,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$746 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u @@ -16777,7 +16708,7 @@ i32.const 1 i32.shl i32.add - i32.const 12016 + i32.const 11856 local.get $4 i32.const 1 i32.shl @@ -16821,7 +16752,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$746 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16839,8 +16770,8 @@ local.get $0 return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16852,11 +16783,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16869,7 +16800,7 @@ local.get $0 i32.store local.get $0 - i32.const 12016 + i32.const 11856 call $~lib/array/Array#join global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16889,7 +16820,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16903,7 +16834,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16922,7 +16853,7 @@ i32.load offset=12 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$2 (result i32) global.get $~lib/memory/__stack_pointer @@ -16930,7 +16861,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16948,7 +16879,7 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$2 end local.get $4 @@ -16967,7 +16898,7 @@ local.get $0 call $~lib/array/Array#toString else - i32.const 1120 + i32.const 11568 end global.get $~lib/memory/__stack_pointer i32.const 20 @@ -16975,15 +16906,15 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$2 end - i32.const 1120 + i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=4 - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u @@ -17029,11 +16960,11 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 12016 + i32.const 11856 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 @@ -17091,8 +17022,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17110,11 +17041,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17249,11 +17180,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17271,7 +17202,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1267 i32.const 5 call $~lib/builtins/abort @@ -17292,7 +17223,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1269 i32.const 5 call $~lib/builtins/abort @@ -17310,23 +17241,22 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 f64) - (local $7 f32) - (local $8 i32) + (local $5 i32) + (local $6 i64) + (local $7 f64) + (local $8 f32) (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 444 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner2 global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -17336,7 +17266,7 @@ memory.size i32.const 16 i32.shl - i32.const 49120 + i32.const 48960 i32.sub i32.const 1 i32.shr_u @@ -17370,16 +17300,16 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -17389,18 +17319,18 @@ i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -17409,36 +17339,36 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + 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 $2 + local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -17448,52 +17378,52 @@ local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=12 - local.get $2 + local.get $0 local.get $9 i32.store - local.get $2 + local.get $0 local.get $9 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 53 i32.const 3 call $~lib/builtins/abort @@ -17503,200 +17433,200 @@ i32.const 5 i32.const 0 i32.const 7 - i32.const 3664 + i32.const 1696 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 - i32.const 3696 + i32.const 1728 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 61 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 - i32.const 3728 + i32.const 1760 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 64 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 - i32.const 3760 + i32.const 1792 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 67 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 - i32.const 3792 + i32.const 1824 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 70 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 - i32.const 3824 + i32.const 1856 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 73 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 - i32.const 3856 + i32.const 1888 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 76 i32.const 3 call $~lib/builtins/abort @@ -17706,200 +17636,200 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 3888 + i32.const 1920 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 - i32.const 3936 + i32.const 1968 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 83 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 - i32.const 3984 + i32.const 2016 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 86 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 - i32.const 4032 + i32.const 2064 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 89 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 - i32.const 4080 + i32.const 2112 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 92 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 - i32.const 4128 + i32.const 2160 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 95 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 - i32.const 4176 + i32.const 2208 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -17909,233 +17839,233 @@ i32.const 5 i32.const 2 i32.const 9 - i32.const 4224 + i32.const 2256 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 f32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 - i32.const 4272 + i32.const 2304 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 105 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $0 f32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 - i32.const 4320 + i32.const 2352 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 108 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 f32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 - i32.const 4368 + i32.const 2400 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 111 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $0 f32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 - i32.const 4416 + i32.const 2448 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 114 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 f32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 - i32.const 4464 + i32.const 2496 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 117 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $0 f32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 - i32.const 4512 + i32.const 2544 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 120 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $0 f32.const -0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 - i32.const 4560 + i32.const 2592 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 123 i32.const 3 call $~lib/builtins/abort @@ -18143,13 +18073,13 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 129 i32.const 3 call $~lib/builtins/abort @@ -18157,15 +18087,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 130 i32.const 3 call $~lib/builtins/abort @@ -18173,23 +18103,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 42 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 134 i32.const 3 call $~lib/builtins/abort @@ -18197,15 +18127,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -18213,15 +18143,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 136 i32.const 3 call $~lib/builtins/abort @@ -18229,15 +18159,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#pop i32.const 42 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 140 i32.const 3 call $~lib/builtins/abort @@ -18245,13 +18175,13 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -18259,15 +18189,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 142 i32.const 3 call $~lib/builtins/abort @@ -18275,22 +18205,22 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 146 i32.const 3 call $~lib/builtins/abort @@ -18298,15 +18228,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -18314,16 +18244,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 148 i32.const 3 call $~lib/builtins/abort @@ -18331,22 +18261,22 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 2 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 152 i32.const 3 call $~lib/builtins/abort @@ -18354,15 +18284,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 153 i32.const 3 call $~lib/builtins/abort @@ -18370,16 +18300,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 154 i32.const 3 call $~lib/builtins/abort @@ -18387,16 +18317,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -18404,22 +18334,22 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 45 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 3 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 159 i32.const 3 call $~lib/builtins/abort @@ -18427,15 +18357,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 160 i32.const 3 call $~lib/builtins/abort @@ -18443,16 +18373,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 161 i32.const 3 call $~lib/builtins/abort @@ -18460,16 +18390,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 162 i32.const 3 call $~lib/builtins/abort @@ -18477,16 +18407,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 163 i32.const 3 call $~lib/builtins/abort @@ -18499,42 +18429,42 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $3 i32.store offset=20 - local.get $8 + local.get $3 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $8 + local.get $3 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $8 + local.get $3 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $8 + local.get $3 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18542,13 +18472,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 171 i32.const 3 call $~lib/builtins/abort @@ -18558,69 +18488,69 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 4656 + i32.const 2688 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#at i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 179 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 3 call $~lib/array/Array#at i32.const 4 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 180 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const -1 call $~lib/array/Array#at i32.const 4 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 181 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const -4 call $~lib/array/Array#at i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 182 i32.const 3 call $~lib/builtins/abort @@ -18629,20 +18559,20 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $2 + local.tee $0 i32.store offset=32 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 - local.get $2 + local.get $3 + local.get $0 call $~lib/array/Array#concat - local.tee $8 + local.tee $3 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr @@ -18654,7 +18584,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 191 i32.const 3 call $~lib/builtins/abort @@ -18670,40 +18600,40 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 192 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 call $~lib/array/Array#get:length i32.const 3 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 193 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store i32.const 0 i32.const 2 i32.const 4 - i32.const 4704 + i32.const 2736 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 - local.get $8 + local.get $3 local.get $9 call $~lib/array/Array#concat drop @@ -18717,84 +18647,84 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 196 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 198 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 44 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 199 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.const 2 call $~lib/array/Array#__get i32.const 45 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 200 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 46 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 47 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 - local.get $2 + local.get $3 + local.get $0 call $~lib/array/Array#concat - local.tee $8 + local.tee $3 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr @@ -18806,138 +18736,138 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 207 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 2 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 208 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 call $~lib/array/Array#get:length i32.const 5 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 209 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 210 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 44 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 211 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.const 2 call $~lib/array/Array#__get i32.const 45 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 212 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.const 3 call $~lib/array/Array#__get i32.const 46 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 213 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 i32.const 4 call $~lib/array/Array#__get i32.const 47 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 214 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 call $~lib/array/Array#get:length i32.const 4 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 217 i32.const 3 call $~lib/builtins/abort @@ -18947,59 +18877,59 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 4736 + i32.const 2768 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 225 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $8 + local.get $0 + local.get $3 call $~lib/array/Array#concat - local.tee $8 + local.tee $3 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 call $~lib/array/Array#get:length i32.const 3 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 227 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 228 i32.const 3 call $~lib/builtins/abort @@ -19009,40 +18939,40 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4768 + i32.const 2800 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 0 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 4816 + i32.const 2848 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 235 i32.const 3 call $~lib/builtins/abort @@ -19052,40 +18982,40 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4864 + i32.const 2896 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 1 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 4912 + i32.const 2944 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 237 i32.const 3 call $~lib/builtins/abort @@ -19095,40 +19025,40 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 4960 + i32.const 2992 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5008 + i32.const 3040 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 239 i32.const 3 call $~lib/builtins/abort @@ -19138,40 +19068,40 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5056 + i32.const 3088 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 2 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5104 + i32.const 3136 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 241 i32.const 3 call $~lib/builtins/abort @@ -19181,39 +19111,39 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5152 + i32.const 3184 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 - local.get $2 + local.get $0 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5200 + i32.const 3232 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 243 i32.const 3 call $~lib/builtins/abort @@ -19223,39 +19153,39 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5248 + i32.const 3280 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 - local.get $2 + local.get $0 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5296 + i32.const 3328 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 245 i32.const 3 call $~lib/builtins/abort @@ -19265,39 +19195,39 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5344 + i32.const 3376 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 - local.get $2 + local.get $0 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5392 + i32.const 3424 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 247 i32.const 3 call $~lib/builtins/abort @@ -19307,40 +19237,40 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5440 + i32.const 3472 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 0 i32.const -2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5488 + i32.const 3520 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 249 i32.const 3 call $~lib/builtins/abort @@ -19350,39 +19280,39 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5536 + i32.const 3568 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 - local.get $2 + local.get $0 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5584 + i32.const 3616 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 251 i32.const 3 call $~lib/builtins/abort @@ -19392,39 +19322,39 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5632 + i32.const 3664 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 - local.get $2 + local.get $0 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5680 + i32.const 3712 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 253 i32.const 3 call $~lib/builtins/abort @@ -19434,39 +19364,39 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5728 + i32.const 3760 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 - local.get $2 + local.get $0 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5776 + i32.const 3808 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 255 i32.const 3 call $~lib/builtins/abort @@ -19476,40 +19406,40 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5824 + i32.const 3856 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const -4 i32.const -3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 5872 + i32.const 3904 call $~lib/rt/__newArray - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 257 i32.const 3 call $~lib/builtins/abort @@ -19517,22 +19447,22 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 42 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 4 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 265 i32.const 3 call $~lib/builtins/abort @@ -19540,15 +19470,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 266 i32.const 3 call $~lib/builtins/abort @@ -19556,16 +19486,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 267 i32.const 3 call $~lib/builtins/abort @@ -19573,16 +19503,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 268 i32.const 3 call $~lib/builtins/abort @@ -19590,16 +19520,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 269 i32.const 3 call $~lib/builtins/abort @@ -19607,16 +19537,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 270 i32.const 3 call $~lib/builtins/abort @@ -19624,22 +19554,22 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 41 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 5 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 274 i32.const 3 call $~lib/builtins/abort @@ -19647,15 +19577,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 275 i32.const 3 call $~lib/builtins/abort @@ -19663,16 +19593,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 41 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 276 i32.const 3 call $~lib/builtins/abort @@ -19680,16 +19610,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 277 i32.const 3 call $~lib/builtins/abort @@ -19697,16 +19627,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 278 i32.const 3 call $~lib/builtins/abort @@ -19714,16 +19644,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 44 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 279 i32.const 3 call $~lib/builtins/abort @@ -19731,16 +19661,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 45 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 280 i32.const 3 call $~lib/builtins/abort @@ -19748,39 +19678,39 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.tee $8 + local.tee $3 i32.const 0 i32.le_s if - i32.const 4608 - i32.const 3472 - i32.const 330 + i32.const 2640 + i32.const 1104 + i32.const 344 i32.const 18 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 local.tee $9 i32.load @@ -19788,10 +19718,10 @@ local.get $9 i32.const 4 i32.add - local.get $8 + local.get $3 i32.const 1 i32.sub - local.tee $8 + local.tee $3 i32.const 2 i32.shl local.tee $11 @@ -19802,10 +19732,10 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - local.get $8 + local.get $0 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19817,7 +19747,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 289 i32.const 3 call $~lib/builtins/abort @@ -19825,15 +19755,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 4 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 290 i32.const 3 call $~lib/builtins/abort @@ -19841,15 +19771,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 291 i32.const 3 call $~lib/builtins/abort @@ -19857,16 +19787,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 292 i32.const 3 call $~lib/builtins/abort @@ -19874,16 +19804,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 293 i32.const 3 call $~lib/builtins/abort @@ -19891,16 +19821,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 294 i32.const 3 call $~lib/builtins/abort @@ -19908,16 +19838,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 295 i32.const 3 call $~lib/builtins/abort @@ -19925,9 +19855,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -19935,7 +19865,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 299 i32.const 3 call $~lib/builtins/abort @@ -19943,15 +19873,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 3 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 300 i32.const 3 call $~lib/builtins/abort @@ -19959,15 +19889,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 301 i32.const 3 call $~lib/builtins/abort @@ -19975,16 +19905,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 302 i32.const 3 call $~lib/builtins/abort @@ -19992,16 +19922,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 303 i32.const 3 call $~lib/builtins/abort @@ -20009,16 +19939,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 304 i32.const 3 call $~lib/builtins/abort @@ -20028,290 +19958,290 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 5920 + i32.const 3952 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 2 call $~lib/array/Array#slice@varargs - local.tee $8 + local.tee $3 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store i32.const 3 i32.const 2 i32.const 4 - i32.const 5968 + i32.const 4000 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 - local.get $8 + local.get $3 local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 314 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $8 + local.tee $3 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store i32.const 2 i32.const 2 i32.const 4 - i32.const 6000 + i32.const 4032 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 - local.get $8 + local.get $3 local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 317 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $8 + local.tee $3 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store i32.const 4 i32.const 2 i32.const 4 - i32.const 6032 + i32.const 4064 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 - local.get $8 + local.get $3 local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 320 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $8 + local.tee $3 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=8 - local.get $8 - local.get $2 + local.get $3 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const -2 call $~lib/array/Array#slice@varargs - local.tee $8 + local.tee $3 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store i32.const 2 i32.const 2 i32.const 4 - i32.const 6080 + i32.const 4112 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 - local.get $8 + local.get $3 local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 326 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $8 + local.tee $3 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store i32.const 2 i32.const 2 i32.const 4 - i32.const 6112 + i32.const 4144 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 - local.get $8 + local.get $3 local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 329 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $8 + local.tee $3 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store i32.const 2 i32.const 2 i32.const 4 - i32.const 6144 + i32.const 4176 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 - local.get $8 + local.get $3 local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 332 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 + local.get $0 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store - local.get $8 + local.get $3 call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 334 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=8 i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 10 call $~lib/array/Array#slice@varargs - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 335 i32.const 3 call $~lib/builtins/abort @@ -20319,49 +20249,49 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 1 i32.gt_u if - local.get $2 + local.get $0 i32.const 1 i32.shr_u local.set $9 - local.get $2 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $while-continue|0 - local.get $4 + local.get $5 local.get $9 i32.lt_u if - local.get $8 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.shl i32.add @@ -20369,9 +20299,9 @@ i32.load local.set $11 local.get $10 - local.get $8 - local.get $2 - local.get $4 + local.get $3 + local.get $0 + local.get $5 i32.sub i32.const 2 i32.shl @@ -20382,10 +20312,10 @@ local.get $10 local.get $11 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end @@ -20396,15 +20326,15 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length i32.const 3 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 343 i32.const 3 call $~lib/builtins/abort @@ -20412,15 +20342,15 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -20428,16 +20358,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 44 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -20445,16 +20375,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -20462,16 +20392,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 42 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 347 i32.const 3 call $~lib/builtins/abort @@ -20479,71 +20409,71 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 0 i32.const 7 - i32.const 6176 + i32.const 4208 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 call $~lib/array/Array#reverse - local.tee $2 + local.tee $0 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $3 loop $for-loop|0 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $1 i32.sub i32.const 1 i32.sub i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 354 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -20551,57 +20481,57 @@ i32.const 8 i32.const 0 i32.const 7 - i32.const 6208 + i32.const 4240 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $0 i32.store offset=64 i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $3 loop $for-loop|1 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $1 i32.sub i32.const 1 i32.sub i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 359 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end @@ -20609,57 +20539,57 @@ i32.const 17 i32.const 0 i32.const 7 - i32.const 6240 + i32.const 4272 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $0 i32.store offset=68 i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $3 loop $for-loop|2 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $1 i32.sub i32.const 1 i32.sub i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 364 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|2 end end @@ -20667,57 +20597,57 @@ i32.const 7 i32.const 1 i32.const 11 - i32.const 6288 + i32.const 4320 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $0 i32.store offset=72 i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $3 loop $for-loop|3 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $1 i32.sub i32.const 1 i32.sub i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 369 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|3 end end @@ -20725,57 +20655,57 @@ i32.const 8 i32.const 1 i32.const 11 - i32.const 6336 + i32.const 4368 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $0 i32.store offset=76 i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $3 loop $for-loop|4 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $1 i32.sub i32.const 1 i32.sub i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 374 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end @@ -20783,57 +20713,57 @@ i32.const 9 i32.const 1 i32.const 11 - i32.const 6384 + i32.const 4416 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $0 i32.store offset=80 i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $3 loop $for-loop|5 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:length local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.get $1 i32.sub i32.const 1 i32.sub i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 379 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|5 end end @@ -20849,7 +20779,7 @@ global.get $std/array/i if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 387 i32.const 3 call $~lib/builtins/abort @@ -20869,7 +20799,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -20889,7 +20819,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 393 i32.const 3 call $~lib/builtins/abort @@ -20909,7 +20839,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 396 i32.const 3 call $~lib/builtins/abort @@ -20929,7 +20859,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 399 i32.const 3 call $~lib/builtins/abort @@ -20949,7 +20879,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 402 i32.const 3 call $~lib/builtins/abort @@ -20969,7 +20899,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 405 i32.const 3 call $~lib/builtins/abort @@ -20989,7 +20919,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 408 i32.const 3 call $~lib/builtins/abort @@ -21009,7 +20939,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 411 i32.const 3 call $~lib/builtins/abort @@ -21029,7 +20959,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -21038,34 +20968,34 @@ i32.const 1 i32.const 2 i32.const 9 - i32.const 6432 + i32.const 4464 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 0 - local.set $0 + 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf$707 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf$705 + local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 i32.eqz - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.or @@ -21075,22 +21005,22 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$707 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf$705 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|05 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21102,12 +21032,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$707 + br $__inlined_func$~lib/array/Array#indexOf$705 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end @@ -21116,14 +21046,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -21132,34 +21062,34 @@ i32.const 1 i32.const 3 i32.const 12 - i32.const 6464 + i32.const 4496 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 0 - local.set $0 + 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf$708 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf$706 + local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 i32.eqz - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.or @@ -21169,22 +21099,22 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$708 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf$706 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|07 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -21196,12 +21126,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$708 + br $__inlined_func$~lib/array/Array#indexOf$706 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|07 end end @@ -21210,14 +21140,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -21227,7 +21157,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 6496 + i32.const 4528 call $~lib/rt/__newArray local.tee $0 i32.store offset=84 @@ -21243,7 +21173,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 424 i32.const 3 call $~lib/builtins/abort @@ -21261,7 +21191,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 425 i32.const 3 call $~lib/builtins/abort @@ -21278,7 +21208,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 426 i32.const 3 call $~lib/builtins/abort @@ -21293,7 +21223,7 @@ call $~lib/array/Array#lastIndexOf if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 427 i32.const 3 call $~lib/builtins/abort @@ -21308,7 +21238,7 @@ call $~lib/array/Array#lastIndexOf if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 428 i32.const 3 call $~lib/builtins/abort @@ -21325,7 +21255,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 429 i32.const 3 call $~lib/builtins/abort @@ -21343,7 +21273,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 437 i32.const 3 call $~lib/builtins/abort @@ -21361,7 +21291,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -21377,7 +21307,7 @@ call $~lib/array/Array#includes if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 443 i32.const 3 call $~lib/builtins/abort @@ -21393,7 +21323,7 @@ call $~lib/array/Array#includes if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 446 i32.const 3 call $~lib/builtins/abort @@ -21411,7 +21341,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 449 i32.const 3 call $~lib/builtins/abort @@ -21429,7 +21359,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 452 i32.const 3 call $~lib/builtins/abort @@ -21447,7 +21377,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 455 i32.const 3 call $~lib/builtins/abort @@ -21465,7 +21395,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 458 i32.const 3 call $~lib/builtins/abort @@ -21483,7 +21413,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -21501,43 +21431,43 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 464 i32.const 3 call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#includes$709 (result i32) + block $__inlined_func$~lib/array/Array#includes$707 (result i32) i32.const 1 i32.const 2 i32.const 9 - i32.const 6544 + i32.const 4576 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 0 - local.set $0 + 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 i32.eqz - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.or @@ -21547,27 +21477,27 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$709 + br $__inlined_func$~lib/array/Array#includes$707 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|09 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 f32.ne if global.get $~lib/memory/__stack_pointer @@ -21575,12 +21505,12 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$709 + br $__inlined_func$~lib/array/Array#includes$707 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|09 end end @@ -21593,43 +21523,43 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 466 i32.const 3 call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#includes$710 (result i32) + block $__inlined_func$~lib/array/Array#includes$708 (result i32) i32.const 1 i32.const 3 i32.const 12 - i32.const 6576 + i32.const 4608 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 0 - local.set $0 + 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 i32.eqz - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.or @@ -21639,27 +21569,27 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$710 + br $__inlined_func$~lib/array/Array#includes$708 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|011 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $6 - local.get $6 + local.tee $7 + local.get $7 f64.ne if global.get $~lib/memory/__stack_pointer @@ -21667,12 +21597,12 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$710 + br $__inlined_func$~lib/array/Array#includes$708 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|011 end end @@ -21685,7 +21615,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 467 i32.const 3 call $~lib/builtins/abort @@ -21710,7 +21640,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 471 i32.const 3 call $~lib/builtins/abort @@ -21726,7 +21656,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 472 i32.const 3 call $~lib/builtins/abort @@ -21743,7 +21673,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 473 i32.const 3 call $~lib/builtins/abort @@ -21760,7 +21690,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 474 i32.const 3 call $~lib/builtins/abort @@ -21770,7 +21700,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6608 + i32.const 4640 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -21782,27 +21712,27 @@ local.get $0 i32.const 0 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 - i32.const 6656 + i32.const 4688 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 481 i32.const 3 call $~lib/builtins/abort @@ -21814,20 +21744,20 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 6704 + i32.const 4736 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 482 i32.const 3 call $~lib/builtins/abort @@ -21837,7 +21767,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6736 + i32.const 4768 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -21848,27 +21778,27 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 - i32.const 6784 + i32.const 4816 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 485 i32.const 3 call $~lib/builtins/abort @@ -21880,20 +21810,20 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6816 + i32.const 4848 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -21903,7 +21833,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6864 + i32.const 4896 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -21915,27 +21845,27 @@ local.get $0 i32.const 2 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 3 i32.const 2 i32.const 4 - i32.const 6912 + i32.const 4944 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 489 i32.const 3 call $~lib/builtins/abort @@ -21947,20 +21877,20 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 6944 + i32.const 4976 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 490 i32.const 3 call $~lib/builtins/abort @@ -21970,7 +21900,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 6976 + i32.const 5008 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -21981,27 +21911,27 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 4 - i32.const 7024 + i32.const 5056 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 493 i32.const 3 call $~lib/builtins/abort @@ -22013,20 +21943,20 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 7056 + i32.const 5088 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 494 i32.const 3 call $~lib/builtins/abort @@ -22036,7 +21966,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7088 + i32.const 5120 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22047,27 +21977,27 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 4 - i32.const 7136 + i32.const 5168 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 497 i32.const 3 call $~lib/builtins/abort @@ -22079,20 +22009,20 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 7168 + i32.const 5200 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 498 i32.const 3 call $~lib/builtins/abort @@ -22102,7 +22032,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7216 + i32.const 5248 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22114,27 +22044,27 @@ local.get $0 i32.const -1 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 4 - i32.const 7264 + i32.const 5296 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 501 i32.const 3 call $~lib/builtins/abort @@ -22146,20 +22076,20 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 7296 + i32.const 5328 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 502 i32.const 3 call $~lib/builtins/abort @@ -22169,7 +22099,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7344 + i32.const 5376 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22181,27 +22111,27 @@ local.get $0 i32.const -2 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 4 - i32.const 7392 + i32.const 5424 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 505 i32.const 3 call $~lib/builtins/abort @@ -22213,20 +22143,20 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 7424 + i32.const 5456 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 506 i32.const 3 call $~lib/builtins/abort @@ -22236,7 +22166,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7456 + i32.const 5488 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22247,27 +22177,27 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 4 - i32.const 7504 + i32.const 5536 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -22279,20 +22209,20 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 7536 + i32.const 5568 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 510 i32.const 3 call $~lib/builtins/abort @@ -22302,7 +22232,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7584 + i32.const 5616 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22313,27 +22243,27 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 4 - i32.const 7632 + i32.const 5664 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 513 i32.const 3 call $~lib/builtins/abort @@ -22345,20 +22275,20 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 7664 + i32.const 5696 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 514 i32.const 3 call $~lib/builtins/abort @@ -22368,7 +22298,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7712 + i32.const 5744 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22379,27 +22309,27 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 - i32.const 7760 + i32.const 5792 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 517 i32.const 3 call $~lib/builtins/abort @@ -22411,20 +22341,20 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7792 + i32.const 5824 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 518 i32.const 3 call $~lib/builtins/abort @@ -22434,7 +22364,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7840 + i32.const 5872 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22445,27 +22375,27 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 - i32.const 7888 + i32.const 5920 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 521 i32.const 3 call $~lib/builtins/abort @@ -22477,20 +22407,20 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7920 + i32.const 5952 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 522 i32.const 3 call $~lib/builtins/abort @@ -22500,7 +22430,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 7968 + i32.const 6000 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22511,27 +22441,27 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 - i32.const 8016 + i32.const 6048 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 525 i32.const 3 call $~lib/builtins/abort @@ -22543,20 +22473,20 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 8048 + i32.const 6080 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 526 i32.const 3 call $~lib/builtins/abort @@ -22566,7 +22496,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 8096 + i32.const 6128 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22577,27 +22507,27 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 - i32.const 8144 + i32.const 6176 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 529 i32.const 3 call $~lib/builtins/abort @@ -22609,20 +22539,20 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 8176 + i32.const 6208 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 530 i32.const 3 call $~lib/builtins/abort @@ -22632,7 +22562,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 8224 + i32.const 6256 call $~lib/rt/__newArray local.tee $0 i32.store offset=88 @@ -22643,27 +22573,27 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 - i32.const 8272 + i32.const 6304 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 533 i32.const 3 call $~lib/builtins/abort @@ -22675,20 +22605,20 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 8304 + i32.const 6336 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 534 i32.const 3 call $~lib/builtins/abort @@ -22698,7 +22628,7 @@ i32.const 0 i32.const 2 i32.const 10 - i32.const 8352 + i32.const 6384 call $~lib/rt/__newArray local.tee $0 i32.store offset=92 @@ -22709,16 +22639,16 @@ local.get $0 i32.const 1 call $~lib/array/Array#splice - local.tee $2 + local.tee $1 i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 538 i32.const 3 call $~lib/builtins/abort @@ -22731,7 +22661,7 @@ call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 539 i32.const 3 call $~lib/builtins/abort @@ -22744,40 +22674,40 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=100 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#splice local.tee $0 @@ -22791,7 +22721,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 544 i32.const 3 call $~lib/builtins/abort @@ -22803,17 +22733,17 @@ local.get $0 i32.const 0 call $~lib/array/Array#__get - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load i32.const 3 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 545 i32.const 3 call $~lib/builtins/abort @@ -22835,31 +22765,31 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 546 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 548 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get local.set $0 @@ -22872,16 +22802,16 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 549 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get local.set $0 @@ -22894,16 +22824,16 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 550 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get local.set $0 @@ -22916,7 +22846,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 551 i32.const 3 call $~lib/builtins/abort @@ -22929,55 +22859,55 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=104 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.store offset=108 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.le_s select - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 1 - local.get $4 - local.get $8 + local.get $3 + local.get $5 i32.sub local.tee $9 local.get $9 @@ -23003,12 +22933,12 @@ local.get $10 i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 local.tee $11 - local.get $8 + local.get $5 i32.const 2 i32.shl i32.add @@ -23017,31 +22947,31 @@ i32.const 2 i32.shl memory.copy - local.get $8 + local.get $5 local.get $9 i32.add - local.tee $8 - local.get $4 + local.tee $5 + local.get $3 i32.ne if local.get $12 local.get $11 - local.get $8 + local.get $5 i32.const 2 i32.shl i32.add - local.get $4 - local.get $8 + local.get $3 + local.get $5 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 - local.get $4 + local.get $1 + local.get $3 local.get $9 i32.sub i32.store offset=12 @@ -23060,7 +22990,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 556 i32.const 3 call $~lib/builtins/abort @@ -23078,8 +23008,8 @@ local.get $0 i32.eqz if - i32.const 8512 - i32.const 3520 + i32.const 6544 + i32.const 1552 i32.const 557 i32.const 10 call $~lib/builtins/abort @@ -23094,46 +23024,46 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 557 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 559 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 560 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get local.tee $0 @@ -23141,8 +23071,8 @@ local.get $0 i32.eqz if - i32.const 8512 - i32.const 3520 + i32.const 6544 + i32.const 1552 i32.const 561 i32.const 10 call $~lib/builtins/abort @@ -23157,7 +23087,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 561 i32.const 3 call $~lib/builtins/abort @@ -23200,16 +23130,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8640 + i32.const 6672 i32.store offset=8 local.get $0 - i32.const 8640 + i32.const 6672 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 574 i32.const 3 call $~lib/builtins/abort @@ -23220,10 +23150,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8672 + i32.const 6704 i32.store offset=8 local.get $0 - i32.const 8672 + i32.const 6704 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23231,7 +23161,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -23242,10 +23172,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8704 + i32.const 6736 i32.store offset=8 local.get $0 - i32.const 8704 + i32.const 6736 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23253,7 +23183,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 580 i32.const 3 call $~lib/builtins/abort @@ -23264,10 +23194,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8736 + i32.const 6768 i32.store offset=8 local.get $0 - i32.const 8736 + i32.const 6768 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23275,7 +23205,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 588 i32.const 3 call $~lib/builtins/abort @@ -23291,7 +23221,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 589 i32.const 3 call $~lib/builtins/abort @@ -23302,10 +23232,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 6800 i32.store offset=8 local.get $0 - i32.const 8768 + i32.const 6800 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23313,7 +23243,7 @@ i32.eq if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 591 i32.const 3 call $~lib/builtins/abort @@ -23352,10 +23282,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8800 + i32.const 6832 i32.store offset=8 local.get $0 - i32.const 8800 + i32.const 6832 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23363,7 +23293,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -23379,7 +23309,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -23403,7 +23333,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 8832 + i32.const 6864 call $~lib/rt/__newArray local.tee $0 i32.store offset=124 @@ -23411,16 +23341,16 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8880 + i32.const 6912 i32.store offset=8 local.get $0 - i32.const 8880 + i32.const 6912 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -23430,10 +23360,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8912 + i32.const 6944 i32.store offset=8 local.get $0 - i32.const 8912 + i32.const 6944 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -23441,7 +23371,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -23451,10 +23381,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8944 + i32.const 6976 i32.store offset=8 local.get $0 - i32.const 8944 + i32.const 6976 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -23462,7 +23392,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 624 i32.const 3 call $~lib/builtins/abort @@ -23472,10 +23402,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8976 + i32.const 7008 i32.store offset=8 local.get $0 - i32.const 8976 + i32.const 7008 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -23483,7 +23413,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -23494,16 +23424,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9008 + i32.const 7040 i32.store offset=8 local.get $0 - i32.const 9008 + i32.const 7040 call $~lib/array/Array#every i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 640 i32.const 3 call $~lib/builtins/abort @@ -23514,14 +23444,14 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9040 + i32.const 7072 i32.store offset=8 local.get $0 - i32.const 9040 + i32.const 7072 call $~lib/array/Array#every if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 643 i32.const 3 call $~lib/builtins/abort @@ -23532,16 +23462,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9072 + i32.const 7104 i32.store offset=8 local.get $0 - i32.const 9072 + i32.const 7104 call $~lib/array/Array#every i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 651 i32.const 3 call $~lib/builtins/abort @@ -23557,7 +23487,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 652 i32.const 3 call $~lib/builtins/abort @@ -23568,14 +23498,14 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9104 + i32.const 7136 i32.store offset=8 local.get $0 - i32.const 9104 + i32.const 7136 call $~lib/array/Array#every if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 654 i32.const 3 call $~lib/builtins/abort @@ -23614,16 +23544,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9136 + i32.const 7168 i32.store offset=8 local.get $0 - i32.const 9136 + i32.const 7168 call $~lib/array/Array#every i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 667 i32.const 3 call $~lib/builtins/abort @@ -23639,7 +23569,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 668 i32.const 3 call $~lib/builtins/abort @@ -23664,16 +23594,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9168 + i32.const 7200 i32.store offset=8 local.get $0 - i32.const 9168 + i32.const 7200 call $~lib/array/Array#some i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 678 i32.const 3 call $~lib/builtins/abort @@ -23684,14 +23614,14 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9200 + i32.const 7232 i32.store offset=8 local.get $0 - i32.const 9200 + i32.const 7232 call $~lib/array/Array#some if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 681 i32.const 3 call $~lib/builtins/abort @@ -23702,14 +23632,14 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9232 + i32.const 7264 i32.store offset=8 local.get $0 - i32.const 9232 + i32.const 7264 call $~lib/array/Array#some if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 689 i32.const 3 call $~lib/builtins/abort @@ -23725,7 +23655,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 690 i32.const 3 call $~lib/builtins/abort @@ -23736,16 +23666,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9264 + i32.const 7296 i32.store offset=8 local.get $0 - i32.const 9264 + i32.const 7296 call $~lib/array/Array#some i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 692 i32.const 3 call $~lib/builtins/abort @@ -23784,14 +23714,14 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9296 + i32.const 7328 i32.store offset=8 local.get $0 - i32.const 9296 + i32.const 7328 call $~lib/array/Array#some if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 705 i32.const 3 call $~lib/builtins/abort @@ -23807,7 +23737,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 706 i32.const 3 call $~lib/builtins/abort @@ -23834,17 +23764,17 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9328 + i32.const 7360 i32.store offset=8 local.get $0 - i32.const 9328 + i32.const 7360 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 717 i32.const 3 call $~lib/builtins/abort @@ -23857,17 +23787,17 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9360 + i32.const 7392 i32.store offset=8 local.get $0 - i32.const 9360 + i32.const 7392 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 726 i32.const 3 call $~lib/builtins/abort @@ -23883,7 +23813,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 727 i32.const 3 call $~lib/builtins/abort @@ -23896,17 +23826,17 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9392 + i32.const 7424 i32.store offset=8 local.get $0 - i32.const 9392 + i32.const 7424 call $~lib/array/Array#forEach global.get $std/array/i i32.const 406 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 730 i32.const 3 call $~lib/builtins/abort @@ -23947,17 +23877,17 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9424 + i32.const 7456 i32.store offset=8 local.get $0 - i32.const 9424 + i32.const 7456 call $~lib/array/Array#forEach global.get $std/array/i i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 744 i32.const 3 call $~lib/builtins/abort @@ -23973,7 +23903,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 745 i32.const 3 call $~lib/builtins/abort @@ -23998,10 +23928,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9456 + i32.const 7488 i32.store offset=8 local.get $0 - i32.const 9456 + i32.const 7488 call $~lib/array/Array#forEach global.get $~lib/memory/__stack_pointer global.get $std/array/arr @@ -24013,30 +23943,30 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 770 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|6 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#pop drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|6 end end @@ -24071,17 +24001,17 @@ global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9488 + i32.const 9296 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -24091,80 +24021,78 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=12 - local.tee $8 + local.tee $3 i32.const 2 i32.const 16 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store - local.get $9 + local.get $5 i32.load offset=4 - local.set $10 - i32.const 0 - local.set $4 + local.set $9 loop $for-loop|012 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $4 - local.get $8 local.get $2 + local.get $3 + local.get $1 i32.load offset=12 - local.tee $11 - local.get $8 - local.get $11 + local.tee $10 + local.get $3 + local.get $10 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $4 + local.get $2 i32.const 2 i32.shl - local.tee $11 - local.get $2 + local.tee $10 + local.get $1 i32.load offset=4 i32.add i32.load - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 3 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $12 - local.get $4 + local.get $11 local.get $2 - i32.const 9488 + local.get $1 + i32.const 9296 i32.load call_indirect (type $1) - local.tee $12 + local.tee $11 i32.store offset=12 + local.get $9 local.get $10 - local.get $11 i32.add - local.get $12 + local.get $11 i32.store - local.get $9 - local.get $12 + local.get $5 + local.get $11 i32.const 1 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|012 end end @@ -24172,22 +24100,22 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=128 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9520 + i32.const 9328 i32.store offset=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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -24197,72 +24125,72 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=12 - local.tee $8 + local.tee $3 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store - local.get $9 + local.get $5 i32.load offset=4 - local.set $10 + local.set $9 i32.const 0 - local.set $4 + local.set $2 loop $for-loop|013 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $4 - local.get $8 local.get $2 + local.get $3 + local.get $1 i32.load offset=12 - local.tee $11 - local.get $8 - local.get $11 + local.tee $10 + local.get $3 + local.get $10 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $4 + local.get $2 i32.const 2 i32.shl - local.tee $11 - local.get $2 + local.tee $10 + local.get $1 i32.load offset=4 i32.add i32.load - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 3 global.set $~argumentsLength + local.get $9 local.get $10 - local.get $11 i32.add - local.get $12 - local.get $4 + local.get $11 local.get $2 - i32.const 9520 + local.get $1 + i32.const 9328 i32.load call_indirect (type $15) f32.store - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|013 end end @@ -24270,27 +24198,27 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store - local.get $9 + local.get $5 call $~lib/array/Array#get:length i32.const 4 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 786 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store - local.get $9 + local.get $5 i32.const 0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer @@ -24304,7 +24232,7 @@ f32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 787 i32.const 3 call $~lib/builtins/abort @@ -24317,17 +24245,17 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9552 + i32.const 9360 i32.store offset=8 local.get $0 - i32.const 9552 + i32.const 9360 call $~lib/array/Array#map global.get $std/array/i i32.const 6 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 796 i32.const 3 call $~lib/builtins/abort @@ -24343,7 +24271,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 797 i32.const 3 call $~lib/builtins/abort @@ -24356,17 +24284,17 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 9392 i32.store offset=8 local.get $0 - i32.const 9584 + i32.const 9392 call $~lib/array/Array#map global.get $std/array/i i32.const 406 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 804 i32.const 3 call $~lib/builtins/abort @@ -24407,17 +24335,17 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9616 + i32.const 9424 i32.store offset=8 local.get $0 - i32.const 9616 + i32.const 9424 call $~lib/array/Array#map global.get $std/array/i i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 819 i32.const 3 call $~lib/builtins/abort @@ -24433,7 +24361,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 820 i32.const 3 call $~lib/builtins/abort @@ -24458,11 +24386,11 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9648 + i32.const 9456 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 9648 + i32.const 9456 call $~lib/array/Array#filter local.tee $0 i32.store offset=136 @@ -24475,7 +24403,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 830 i32.const 3 call $~lib/builtins/abort @@ -24488,10 +24416,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9680 + i32.const 9488 i32.store offset=8 local.get $0 - i32.const 9680 + i32.const 9488 call $~lib/array/Array#filter drop global.get $std/array/i @@ -24499,7 +24427,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 839 i32.const 3 call $~lib/builtins/abort @@ -24515,7 +24443,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 840 i32.const 3 call $~lib/builtins/abort @@ -24528,10 +24456,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9712 + i32.const 9520 i32.store offset=8 local.get $0 - i32.const 9712 + i32.const 9520 call $~lib/array/Array#filter drop global.get $std/array/i @@ -24539,7 +24467,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 847 i32.const 3 call $~lib/builtins/abort @@ -24580,10 +24508,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9552 i32.store offset=8 local.get $0 - i32.const 9744 + i32.const 9552 call $~lib/array/Array#filter drop global.get $std/array/i @@ -24591,7 +24519,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 862 i32.const 3 call $~lib/builtins/abort @@ -24607,7 +24535,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 863 i32.const 3 call $~lib/builtins/abort @@ -24632,10 +24560,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9776 + i32.const 9584 i32.store offset=8 local.get $0 - i32.const 9776 + i32.const 9584 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -24644,7 +24572,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 873 i32.const 3 call $~lib/builtins/abort @@ -24655,10 +24583,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9808 + i32.const 9616 i32.store offset=8 local.get $0 - i32.const 9808 + i32.const 9616 i32.const 4 call $~lib/array/Array#reduce global.set $std/array/i @@ -24667,7 +24595,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 877 i32.const 3 call $~lib/builtins/abort @@ -24678,16 +24606,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9840 + i32.const 9648 i32.store offset=8 local.get $0 - i32.const 9840 + i32.const 9648 i32.const 0 call $~lib/array/Array#reduce i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 880 i32.const 3 call $~lib/builtins/abort @@ -24698,15 +24626,15 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9872 + i32.const 9680 i32.store offset=8 local.get $0 - i32.const 9872 + i32.const 9680 i32.const 0 call $~lib/array/Array#reduce if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 883 i32.const 3 call $~lib/builtins/abort @@ -24717,10 +24645,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9904 + i32.const 9712 i32.store offset=8 local.get $0 - i32.const 9904 + i32.const 9712 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -24729,7 +24657,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -24745,7 +24673,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 892 i32.const 3 call $~lib/builtins/abort @@ -24756,10 +24684,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9936 + i32.const 9744 i32.store offset=8 local.get $0 - i32.const 9936 + i32.const 9744 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -24768,7 +24696,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 894 i32.const 3 call $~lib/builtins/abort @@ -24807,10 +24735,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9968 + i32.const 9776 i32.store offset=8 local.get $0 - i32.const 9968 + i32.const 9776 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -24819,7 +24747,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 907 i32.const 3 call $~lib/builtins/abort @@ -24835,7 +24763,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 908 i32.const 3 call $~lib/builtins/abort @@ -24860,10 +24788,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 10000 + i32.const 9808 i32.store offset=8 local.get $0 - i32.const 10000 + i32.const 9808 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -24872,7 +24800,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 918 i32.const 3 call $~lib/builtins/abort @@ -24883,10 +24811,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 10032 + i32.const 9840 i32.store offset=8 local.get $0 - i32.const 10032 + i32.const 9840 i32.const 4 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -24895,7 +24823,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 922 i32.const 3 call $~lib/builtins/abort @@ -24906,16 +24834,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 10064 + i32.const 9872 i32.store offset=8 local.get $0 - i32.const 10064 + i32.const 9872 i32.const 0 call $~lib/array/Array#reduceRight i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 925 i32.const 3 call $~lib/builtins/abort @@ -24926,15 +24854,15 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 10096 + i32.const 9904 i32.store offset=8 local.get $0 - i32.const 10096 + i32.const 9904 i32.const 0 call $~lib/array/Array#reduceRight if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 928 i32.const 3 call $~lib/builtins/abort @@ -24945,10 +24873,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 10128 + i32.const 9936 i32.store offset=8 local.get $0 - i32.const 10128 + i32.const 9936 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -24957,7 +24885,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 936 i32.const 3 call $~lib/builtins/abort @@ -24973,7 +24901,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 937 i32.const 3 call $~lib/builtins/abort @@ -24984,10 +24912,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 10160 + i32.const 9968 i32.store offset=8 local.get $0 - i32.const 10160 + i32.const 9968 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -24996,7 +24924,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 939 i32.const 3 call $~lib/builtins/abort @@ -25035,10 +24963,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 10192 + i32.const 10000 i32.store offset=8 local.get $0 - i32.const 10192 + i32.const 10000 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -25047,7 +24975,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 952 i32.const 3 call $~lib/builtins/abort @@ -25061,7 +24989,7 @@ call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 953 i32.const 3 call $~lib/builtins/abort @@ -25098,26 +25026,26 @@ i64.const -7046029254386353131 call $~lib/bindings/dom/Math.random i64.reinterpret_f64 - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i64.eqz select - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor @@ -25125,22 +25053,22 @@ global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor @@ -25157,243 +25085,243 @@ i32.store offset=140 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 80 i32.store offset=4 local.get $0 i32.const 0 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=148 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 90 i32.store offset=4 local.get $0 i32.const 1 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=152 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 95 i32.store offset=4 local.get $0 i32.const 2 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store offset=4 local.get $0 i32.const 3 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 110 i32.store offset=4 local.get $0 i32.const 4 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=164 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 115 i32.store offset=4 local.get $0 i32.const 5 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=168 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 120 i32.store offset=4 local.get $0 i32.const 6 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=172 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 125 i32.store offset=4 local.get $0 i32.const 7 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=176 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 130 i32.store offset=4 local.get $0 i32.const 8 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=180 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 135 i32.store offset=4 local.get $0 i32.const 9 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=184 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 140 i32.store offset=4 local.get $0 i32.const 10 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=188 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 140 i32.store offset=4 local.get $0 i32.const 11 - local.get $2 + local.get $1 call $~lib/array/Array#__set local.get $0 global.set $std/array/inputStabArr @@ -25407,243 +25335,243 @@ i32.store offset=192 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=196 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 95 i32.store offset=4 local.get $0 i32.const 0 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=200 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 125 i32.store offset=4 local.get $0 i32.const 1 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=204 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 130 i32.store offset=4 local.get $0 i32.const 2 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=208 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 140 i32.store offset=4 local.get $0 i32.const 3 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=212 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 140 i32.store offset=4 local.get $0 i32.const 4 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=216 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 110 i32.store offset=4 local.get $0 i32.const 5 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=220 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 90 i32.store offset=4 local.get $0 i32.const 6 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=224 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 80 i32.store offset=4 local.get $0 i32.const 7 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=228 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store offset=4 local.get $0 i32.const 8 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=232 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 120 i32.store offset=4 local.get $0 i32.const 9 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=236 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 135 i32.store offset=4 local.get $0 i32.const 10 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=240 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 115 i32.store offset=4 local.get $0 i32.const 11 - local.get $2 + local.get $1 call $~lib/array/Array#__set local.get $0 global.set $std/array/outputStabArr @@ -25651,7 +25579,7 @@ i32.const 3 i32.const 2 i32.const 9 - i32.const 10416 + i32.const 10224 call $~lib/rt/__newArray local.tee $0 i32.store offset=244 @@ -25668,19 +25596,19 @@ i32.const 3 i32.const 2 i32.const 9 - i32.const 10480 + i32.const 10288 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1091 i32.const 3 call $~lib/builtins/abort @@ -25690,7 +25618,7 @@ i32.const 8 i32.const 2 i32.const 9 - i32.const 10512 + i32.const 10320 call $~lib/rt/__newArray local.tee $0 i32.store offset=248 @@ -25707,19 +25635,19 @@ i32.const 8 i32.const 2 i32.const 9 - i32.const 10576 + i32.const 10384 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1095 i32.const 3 call $~lib/builtins/abort @@ -25729,12 +25657,12 @@ i32.const 8 i32.const 3 i32.const 12 - i32.const 10640 + i32.const 10448 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=252 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 global.set $~argumentsLength @@ -25743,7 +25671,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -25753,37 +25681,37 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store offset=8 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.load offset=12 global.get $~lib/memory/__stack_pointer - i32.const 10736 + i32.const 10544 i32.store call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -25795,16 +25723,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 8 i32.const 3 i32.const 12 - i32.const 10768 + i32.const 10576 call $~lib/rt/__newArray - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual$4 (result i32) i32.const 0 @@ -25814,55 +25742,55 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store block $folding-inner1 block $folding-inner01 - local.get $4 + local.get $2 call $~lib/array/Array#get:length - local.get $8 + local.get $3 i32.ne br_if $folding-inner01 + local.get $1 local.get $2 - local.get $4 i32.eq br_if $folding-inner1 loop $for-loop|02 local.get $0 - local.get $8 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.tee $6 - local.get $6 + local.tee $7 + local.get $7 f64.ne if (result i32) global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.tee $6 - local.get $6 + local.tee $7 + local.get $7 f64.ne else i32.const 0 @@ -25870,9 +25798,9 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get i64.reinterpret_f64 @@ -25880,9 +25808,9 @@ i64.shr_u i32.wrap_i64 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 local.get $0 call $~lib/array/Array#__get i64.reinterpret_f64 @@ -25892,19 +25820,19 @@ i32.ne br_if $folding-inner01 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.get $6 + local.get $7 f64.ne br_if $folding-inner01 end @@ -25933,7 +25861,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1099 i32.const 3 call $~lib/builtins/abort @@ -25943,7 +25871,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 10864 + i32.const 10672 call $~lib/rt/__newArray local.tee $0 i32.store offset=256 @@ -25957,7 +25885,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -25967,16 +25895,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 10912 + i32.const 10720 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 10912 + i32.const 10720 i32.store offset=8 local.get $0 - i32.const 10912 + i32.const 10720 call $~lib/array/Array#sort drop global.get $~lib/memory/__stack_pointer @@ -25989,20 +25917,20 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 10944 + i32.const 10752 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1103 i32.const 3 call $~lib/builtins/abort @@ -26012,7 +25940,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 10992 + i32.const 10800 call $~lib/rt/__newArray local.tee $0 i32.store offset=260 @@ -26026,7 +25954,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -26036,20 +25964,20 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store offset=8 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -26066,7 +25994,7 @@ local.get $0 i32.load offset=12 global.get $~lib/memory/__stack_pointer - i32.const 11040 + i32.const 10848 i32.store call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -26083,19 +26011,19 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 11072 + i32.const 10880 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1107 i32.const 3 call $~lib/builtins/abort @@ -26105,56 +26033,56 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 11120 + i32.const 10928 call $~lib/rt/__newArray - local.tee $4 + local.tee $1 i32.store offset=264 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 - i32.const 11152 + i32.const 10960 call $~lib/rt/__newArray - local.tee $8 + local.tee $2 i32.store offset=268 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 - i32.const 11184 + i32.const 10992 call $~lib/rt/__newArray - local.tee $9 + local.tee $3 i32.store offset=272 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 - i32.const 11216 + i32.const 11024 call $~lib/rt/__newArray - local.tee $10 + local.tee $5 i32.store offset=276 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 - i32.const 11264 + i32.const 11072 call $~lib/rt/__newArray - local.tee $11 + local.tee $9 i32.store offset=280 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $12 + local.tee $10 i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $13 + local.tee $11 i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $14 + local.tee $12 i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 10000 @@ -26164,164 +26092,164 @@ global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $2 + local.tee $13 i32.store offset=300 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store - local.get $4 + local.get $1 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store - local.get $8 + local.get $2 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 - i32.const 11344 + i32.const 11152 call $~lib/rt/__newArray - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=8 - local.get $8 - local.get $4 + local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1127 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store - local.get $9 + local.get $3 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store i32.const 2 i32.const 2 i32.const 4 - i32.const 11376 + i32.const 11184 call $~lib/rt/__newArray - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=8 - local.get $9 - local.get $4 + local.get $3 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1130 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $5 i32.store - local.get $10 + local.get $5 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $9 i32.store offset=8 - local.get $10 - local.get $11 + local.get $5 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1133 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $10 i32.store - local.get $12 + local.get $10 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $9 i32.store offset=8 - local.get $12 - local.get $11 + local.get $10 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1136 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $11 i32.store - local.get $13 + local.get $11 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store - global.get $~lib/memory/__stack_pointer local.get $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $9 i32.store offset=8 - local.get $13 local.get $11 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1139 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $12 i32.store - local.get $14 + local.get $12 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $12 i32.store global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $9 i32.store offset=8 - local.get $14 - local.get $11 + local.get $12 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1142 i32.const 3 call $~lib/builtins/abort @@ -26336,32 +26264,32 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $9 i32.store offset=8 local.get $0 - local.get $11 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1145 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $13 i32.store - local.get $2 + local.get $13 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -26371,7 +26299,7 @@ global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $0 + local.tee $1 i32.store offset=8 i32.const 1 global.set $~argumentsLength @@ -26380,99 +26308,99 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 0 - local.get $4 + local.get $2 i32.const 0 i32.le_s select - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $8 + local.get $2 + local.get $3 i32.sub - local.tee $4 + local.tee $2 i32.const 0 - local.get $4 + local.get $2 i32.const 0 i32.gt_s select - local.tee $4 + local.tee $2 i32.const 2 i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store - local.get $9 + local.get $5 i32.load offset=4 - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.get $8 + local.get $3 i32.const 2 i32.shl i32.add - local.set $8 + local.set $3 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $2 i32.const 2 i32.shl - local.set $4 + local.set $2 loop $while-continue|06 - local.get $0 - local.get $4 + local.get $1 + local.get $2 i32.lt_u if - local.get $0 - local.get $10 + local.get $1 + local.get $9 i32.add - local.get $0 - local.get $8 + local.get $1 + local.get $3 i32.add i32.load - local.tee $11 + local.tee $10 i32.store - local.get $9 - local.get $11 + local.get $5 + local.get $10 i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 + local.set $1 br $while-continue|06 end end @@ -26485,29 +26413,29 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11408 + i32.const 11216 i32.store offset=4 - local.get $9 - i32.const 11408 + local.get $5 + i32.const 11216 call $~lib/array/Array#sort local.tee $0 i32.store offset=12 i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $2 + local.set $1 loop $for-loop|014 local.get $1 - local.get $2 - i32.lt_s + local.get $4 + i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer @@ -26515,64 +26443,64 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + local.get $4 call $~lib/array/Array#__get - local.tee $8 + local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.tee $9 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 - local.get $1 + local.get $3 + local.get $4 call $~lib/array/Array#__get - local.tee $9 + local.tee $3 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store - local.get $8 + local.get $2 i32.load global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store - local.get $9 + local.get $3 i32.load i32.ne if (result i32) i32.const 1 else global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store - local.get $8 + local.get $2 i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store - local.get $9 + local.get $3 i32.load offset=4 i32.ne end if i32.const 0 - local.set $4 + local.set $5 br $for-break0 end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|014 end end end - local.get $4 + local.get $5 i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1076 i32.const 3 call $~lib/builtins/abort @@ -26596,37 +26524,37 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11440 + i32.const 11248 i32.store offset=8 local.get $0 - i32.const 11440 + i32.const 11248 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11472 + i32.const 11280 i32.store offset=8 local.get $0 - i32.const 11472 + i32.const 11280 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11312 i32.store offset=8 local.get $1 - i32.const 11504 + i32.const 11312 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11536 + i32.const 11344 i32.store offset=8 local.get $1 - i32.const 11536 + i32.const 11344 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -26634,7 +26562,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -26649,7 +26577,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -26696,26 +26624,26 @@ i32.const 32 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 local.get $2 - local.get $4 + local.get $3 i32.store local.get $2 - local.get $4 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 @@ -26745,12 +26673,12 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $4 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $4 + local.get $3 i32.const 0 i32.const 1 local.get $0 @@ -26760,11 +26688,11 @@ local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 local.get $2 local.get $0 - local.get $4 + local.get $3 call $~lib/array/Array#__set local.get $0 i32.const 1 @@ -26783,10 +26711,10 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11568 + i32.const 11376 i32.store offset=8 local.get $2 - i32.const 11568 + i32.const 11376 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -26794,7 +26722,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -26809,7 +26737,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -26856,26 +26784,26 @@ i32.const 2048 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 local.get $2 - local.get $4 + local.get $3 i32.store local.get $2 - local.get $4 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 @@ -26910,7 +26838,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -26920,12 +26848,12 @@ i32.const 4 i32.const 31 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 511 local.get $0 i32.sub @@ -26935,11 +26863,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 local.get $2 local.get $0 - local.get $4 + local.get $3 call $~lib/array/Array#__set local.get $0 i32.const 1 @@ -26958,16 +26886,16 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11600 + i32.const 11408 i32.store offset=8 local.get $2 - i32.const 11600 + i32.const 11408 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 i32.const 34 - i32.const 11760 + i32.const 11600 call $~lib/rt/__newArray local.tee $0 i32.store offset=320 @@ -26975,9 +26903,9 @@ i32.const 7 i32.const 2 i32.const 34 - i32.const 11808 + i32.const 11648 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 @@ -26989,7 +26917,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -26999,20 +26927,20 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 11856 + i32.const 11696 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11856 + i32.const 11696 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27021,29 +26949,29 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted<~lib/string/String|null>$657 (result i32) + block $__inlined_func$std/array/isSorted<~lib/string/String|null>$653 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 11856 + i32.const 11696 i32.store offset=12 local.get $0 - i32.const 11856 + i32.const 11696 call $~lib/array/Array#sort - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 + i32.const 11696 i32.store offset=4 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27053,45 +26981,45 @@ i32.const 0 i32.store offset=8 i32.const 1 - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 call $~lib/array/Array#get:length - local.set $8 + local.set $3 loop $for-loop|07 - local.get $1 - local.get $8 - i32.lt_s + local.get $3 + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=8 + local.get $2 local.get $4 - local.get $1 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $9 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=8 + local.get $2 local.get $4 - local.get $1 call $~lib/array/Array#__get - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.store offset=4 i32.const 2 global.set $~argumentsLength + local.get $5 local.get $9 - local.get $10 - i32.const 11856 + i32.const 11696 i32.load call_indirect (type $0) i32.const 0 @@ -27102,12 +27030,12 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/string/String|null>$657 + br $__inlined_func$std/array/isSorted<~lib/string/String|null>$653 end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|07 end end @@ -27120,7 +27048,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1080 i32.const 3 call $~lib/builtins/abort @@ -27134,19 +27062,19 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$751 (result i32) + block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27160,13 +27088,13 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.get $4 + local.get $2 i32.ne if global.get $~lib/memory/__stack_pointer @@ -27174,10 +27102,10 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$751 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 end local.get $0 - local.get $2 + local.get $1 i32.eq if global.get $~lib/memory/__stack_pointer @@ -27185,54 +27113,54 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$751 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 end i32.const 0 - local.set $1 + local.set $4 loop $for-loop|08 - local.get $1 + local.get $2 local.get $4 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $1 + local.get $4 call $~lib/array/Array#__get - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 local.get $1 + local.get $4 call $~lib/array/Array#__get - local.set $9 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 - local.get $8 - local.get $9 + local.get $3 + local.get $5 call $~lib/string/String.__eq i32.eqz global.get $~lib/memory/__stack_pointer @@ -27245,12 +27173,12 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$751 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|08 end end @@ -27263,7 +27191,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1184 i32.const 3 call $~lib/builtins/abort @@ -27275,7 +27203,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27290,7 +27218,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27303,100 +27231,100 @@ i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 - local.get $9 + local.get $5 i32.const 0 i32.store - local.get $9 + local.get $5 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 - local.get $9 + local.get $5 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 - local.get $9 + local.get $5 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 - local.get $9 + local.get $5 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 1600 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 - local.get $9 - local.get $1 + local.get $5 + local.get $2 i32.store - local.get $9 - local.get $1 + local.get $5 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 - local.get $9 - local.get $1 + local.get $5 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 - local.get $9 + local.get $5 i32.const 1600 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 - local.get $9 + local.get $5 i32.const 400 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store i32.const 0 - local.set $4 + local.set $2 loop $for-loop|019 - local.get $4 + local.get $2 i32.const 400 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_sat_f64_s - local.set $10 + local.set $9 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27405,24 +27333,24 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - i32.const 1120 - local.set $0 + i32.const 11568 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 i32.store i32.const 0 - local.set $1 + local.set $4 loop $for-loop|00 - local.get $1 - local.get $10 + local.get $4 + local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/math/NativeMath.random - i32.const 10220 + i32.const 10028 i32.load i32.const 1 i32.shr_u @@ -27430,24 +27358,24 @@ f64.mul f64.floor i32.trunc_sat_f64_s - local.set $12 + local.set $11 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 10224 + i32.const 10032 i32.store - block $__inlined_func$~lib/string/String#charAt$740 - local.get $12 - i32.const 10220 + block $__inlined_func$~lib/string/String#charAt$737 + local.get $11 + i32.const 10028 i32.load i32.const 1 i32.shr_u @@ -27457,21 +27385,21 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $2 - br $__inlined_func$~lib/string/String#charAt$740 + i32.const 11568 + local.set $3 + br $__inlined_func$~lib/string/String#charAt$737 end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 - local.get $12 + local.get $3 + local.get $11 i32.const 1 i32.shl - i32.const 10224 + i32.const 10032 i32.add i32.load16_u i32.store16 @@ -27481,17 +27409,17 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|00 end end @@ -27500,16 +27428,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $9 - local.get $4 - local.get $0 + local.get $5 + local.get $2 + local.get $1 call $~lib/array/Array#__set - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|019 end end @@ -27517,10 +27445,10 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=328 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store i32.const 1 global.set $~argumentsLength @@ -27529,7 +27457,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27539,16 +27467,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 11888 + i32.const 11728 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11888 + i32.const 11728 i32.store offset=8 - local.get $9 - i32.const 11888 + local.get $5 + i32.const 11728 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 12 @@ -27557,7 +27485,7 @@ i32.const 2 i32.const 0 i32.const 37 - i32.const 11920 + i32.const 11760 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -27568,7 +27496,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27579,7 +27507,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27587,18 +27515,18 @@ i32.load offset=12 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store i32.const 0 - local.set $1 + local.set $2 i32.const 0 - local.set $4 + local.set $5 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27616,135 +27544,135 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $2 + i32.const 11568 + local.set $3 br $__inlined_func$~lib/util/string/joinBooleanArray$9 end block $folding-inner07 local.get $0 i32.eqz if - i32.const 11952 - i32.const 11984 - local.get $8 + i32.const 11792 + i32.const 11824 + local.get $1 i32.load8_u select - local.set $2 + local.set $3 br $folding-inner07 end global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u - local.tee $9 + local.tee $4 i32.const 5 i32.add local.get $0 i32.mul i32.const 5 i32.add - local.tee $10 + local.tee $9 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|18 local.get $0 - local.get $4 + local.get $5 i32.gt_s if - local.get $4 - local.get $8 + local.get $1 + local.get $5 i32.add i32.load8_u - local.tee $11 + local.tee $10 i32.eqz i32.const 4 i32.add - local.set $12 + local.set $11 + local.get $3 local.get $2 - local.get $1 i32.const 1 i32.shl i32.add - i32.const 11952 - i32.const 11984 - local.get $11 + i32.const 11792 + i32.const 11824 + local.get $10 select - local.get $12 + local.get $11 i32.const 1 i32.shl memory.copy - local.get $1 - local.get $12 + local.get $2 + local.get $11 i32.add - local.set $1 - local.get $9 + local.set $2 + local.get $4 if + local.get $3 local.get $2 - local.get $1 i32.const 1 i32.shl i32.add - i32.const 12016 - local.get $9 + i32.const 11856 + local.get $4 i32.const 1 i32.shl memory.copy - local.get $1 - local.get $9 + local.get $2 + local.get $4 i32.add - local.set $1 + local.set $2 end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|18 end end local.get $0 - local.get $8 + local.get $1 i32.add i32.load8_u local.tee $0 i32.eqz i32.const 4 i32.add - local.set $4 + local.set $1 + local.get $3 local.get $2 - local.get $1 i32.const 1 i32.shl i32.add - i32.const 11952 - i32.const 11984 + i32.const 11792 + i32.const 11824 local.get $0 select - local.get $4 + local.get $1 i32.const 1 i32.shl memory.copy local.get $1 - local.get $4 + local.get $2 i32.add local.tee $0 - local.get $10 + local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/string/String#substring - local.set $2 + local.set $3 br $folding-inner07 end global.get $~lib/memory/__stack_pointer @@ -27763,15 +27691,15 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 - i32.const 12048 + local.get $3 + i32.const 11888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1193 i32.const 3 call $~lib/builtins/abort @@ -27780,26 +27708,26 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 12096 + i32.const 11936 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 1120 + i32.const 11568 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 12128 + i32.const 11968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1194 i32.const 3 call $~lib/builtins/abort @@ -27808,26 +27736,26 @@ i32.const 3 i32.const 2 i32.const 8 - i32.const 12160 + i32.const 12000 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 12192 + i32.const 12032 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 12128 + i32.const 11968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1195 i32.const 3 call $~lib/builtins/abort @@ -27836,26 +27764,26 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 12224 + i32.const 12064 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 12256 + i32.const 12096 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 12288 + i32.const 12128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1196 i32.const 3 call $~lib/builtins/abort @@ -27864,7 +27792,7 @@ i32.const 6 i32.const 3 i32.const 12 - i32.const 12368 + i32.const 12208 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -27875,7 +27803,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -27892,7 +27820,7 @@ local.get $0 i32.load offset=12 global.get $~lib/memory/__stack_pointer - i32.const 12448 + i32.const 12288 i32.store call $~lib/util/string/joinFloatArray local.set $0 @@ -27904,12 +27832,12 @@ local.get $0 i32.store local.get $0 - i32.const 13616 + i32.const 13456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1197 i32.const 3 call $~lib/builtins/abort @@ -27918,26 +27846,26 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 13760 + i32.const 13600 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 1120 + i32.const 11568 call $~lib/array/Array<~lib/string/String|null>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 13728 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1198 i32.const 3 call $~lib/builtins/abort @@ -27978,12 +27906,12 @@ local.get $0 i32.store local.get $0 - i32.const 13856 + i32.const 13696 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1200 i32.const 3 call $~lib/builtins/abort @@ -28020,12 +27948,12 @@ local.get $0 i32.store local.get $0 - i32.const 13952 + i32.const 13792 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1203 i32.const 3 call $~lib/builtins/abort @@ -28035,7 +27963,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 14048 + i32.const 13888 call $~lib/rt/__newArray local.tee $0 i32.store offset=348 @@ -28043,7 +27971,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 14080 + i32.const 13920 call $~lib/rt/__newArray local.tee $1 i32.store offset=352 @@ -28051,7 +27979,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 14112 + i32.const 13952 call $~lib/rt/__newArray local.tee $2 i32.store offset=356 @@ -28059,9 +27987,9 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 14144 + i32.const 13984 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store offset=360 global.get $~lib/memory/__stack_pointer local.get $0 @@ -28073,12 +28001,12 @@ local.get $0 i32.store local.get $0 - i32.const 1120 + i32.const 11568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1213 i32.const 3 call $~lib/builtins/abort @@ -28094,12 +28022,12 @@ local.get $0 i32.store local.get $0 - i32.const 13728 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1214 i32.const 3 call $~lib/builtins/abort @@ -28115,33 +28043,33 @@ local.get $0 i32.store local.get $0 - i32.const 14192 + i32.const 14032 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1215 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $4 + local.get $3 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 14224 + i32.const 14064 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1216 i32.const 3 call $~lib/builtins/abort @@ -28150,7 +28078,7 @@ i32.const 3 i32.const 0 i32.const 38 - i32.const 14272 + i32.const 14112 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -28163,12 +28091,12 @@ local.get $0 i32.store local.get $0 - i32.const 14304 + i32.const 14144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1218 i32.const 3 call $~lib/builtins/abort @@ -28177,7 +28105,7 @@ i32.const 3 i32.const 0 i32.const 38 - i32.const 14336 + i32.const 14176 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -28190,12 +28118,12 @@ local.get $0 i32.store local.get $0 - i32.const 14368 + i32.const 14208 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1219 i32.const 3 call $~lib/builtins/abort @@ -28204,70 +28132,72 @@ i32.const 3 i32.const 1 i32.const 11 - i32.const 14416 + i32.const 14256 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 i32.const 0 local.set $0 + i32.const 0 + 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$744 - local.get $1 + block $__inlined_func$~lib/util/string/joinIntegerArray$741 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.lt_s if @@ -28275,35 +28205,35 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $2 - br $__inlined_func$~lib/util/string/joinIntegerArray$744 + i32.const 11568 + local.set $3 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end - local.get $1 + local.get $2 i32.eqz if local.get $4 i32.load16_u call $~lib/util/number/utoa32 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$744 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $5 i32.const 10 i32.add - local.get $1 + local.get $2 i32.mul i32.const 10 i32.add @@ -28312,20 +28242,20 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|03 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 1 i32.shl i32.add local.get $4 - local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -28334,38 +28264,37 @@ local.get $0 i32.add local.set $0 - local.get $8 + local.get $5 if - local.get $2 + local.get $3 local.get $0 i32.const 1 i32.shl i32.add - i32.const 12016 - local.get $8 + i32.const 11856 + local.get $5 i32.const 1 i32.shl memory.copy local.get $0 - local.get $8 + local.get $5 i32.add local.set $0 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|03 end end - local.get $9 - local.get $2 + local.get $3 local.get $0 i32.const 1 i32.shl i32.add local.get $4 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add @@ -28374,20 +28303,21 @@ local.get $0 i32.add local.tee $0 - i32.gt_s + local.get $9 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/string/String#substring - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$744 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28403,15 +28333,15 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 - i32.const 14448 + local.get $3 + i32.const 14288 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1220 i32.const 3 call $~lib/builtins/abort @@ -28420,72 +28350,72 @@ i32.const 2 i32.const 1 i32.const 39 - i32.const 14496 + i32.const 14336 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 i32.const 0 local.set $0 i32.const 0 - local.set $3 + 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$745 - local.get $1 + block $__inlined_func$~lib/util/string/joinIntegerArray$742 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.lt_s if @@ -28493,35 +28423,35 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $2 - br $__inlined_func$~lib/util/string/joinIntegerArray$745 + i32.const 11568 + local.set $3 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 end - local.get $1 + local.get $2 i32.eqz if local.get $4 i32.load16_s call $~lib/util/number/itoa32 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$745 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 end global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $5 i32.const 11 i32.add - local.get $1 + local.get $2 i32.mul i32.const 11 i32.add @@ -28530,20 +28460,20 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|05 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 1 i32.shl i32.add local.get $4 - local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -28552,38 +28482,37 @@ local.get $0 i32.add local.set $0 - local.get $8 + local.get $5 if - local.get $2 + local.get $3 local.get $0 i32.const 1 i32.shl i32.add - i32.const 12016 - local.get $8 + i32.const 11856 + local.get $5 i32.const 1 i32.shl memory.copy local.get $0 - local.get $8 + local.get $5 i32.add local.set $0 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|05 end end - local.get $9 - local.get $2 + local.get $3 local.get $0 i32.const 1 i32.shl i32.add local.get $4 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add @@ -28592,20 +28521,21 @@ local.get $0 i32.add local.tee $0 - i32.gt_s + local.get $9 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/string/String#substring - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$745 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28621,15 +28551,15 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 - i32.const 14528 + local.get $3 + i32.const 14368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1221 i32.const 3 call $~lib/builtins/abort @@ -28638,7 +28568,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 14576 + i32.const 14416 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -28651,12 +28581,12 @@ local.get $0 i32.store local.get $0 - i32.const 14608 + i32.const 14448 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1222 i32.const 3 call $~lib/builtins/abort @@ -28665,7 +28595,7 @@ i32.const 3 i32.const 3 i32.const 40 - i32.const 14672 + i32.const 14512 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -28676,7 +28606,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -28690,7 +28620,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -28707,7 +28637,7 @@ local.get $0 i32.load offset=12 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store call $~lib/util/string/joinIntegerArray local.set $0 @@ -28723,12 +28653,12 @@ local.get $0 i32.store local.get $0 - i32.const 14720 + i32.const 14560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1223 i32.const 3 call $~lib/builtins/abort @@ -28737,7 +28667,7 @@ i32.const 5 i32.const 3 i32.const 41 - i32.const 14800 + i32.const 14640 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -28748,7 +28678,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -28762,7 +28692,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -28773,33 +28703,33 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.set $3 + local.set $0 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinIntegerArray$10 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $4 @@ -28810,8 +28740,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $2 + i32.const 11568 + local.set $3 br $__inlined_func$~lib/util/string/joinIntegerArray$10 end block $folding-inner09 @@ -28819,91 +28749,91 @@ i32.eqz if block $__inlined_func$~lib/util/number/itoa64$4 (result i32) - local.get $1 + local.get $2 i64.load i64.extend32_s - local.set $5 + local.set $6 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $5 + local.get $6 i64.eqz if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1776 + i32.const 7712 br $__inlined_func$~lib/util/number/itoa64$4 end i64.const 0 - local.get $5 + local.get $6 i64.sub - local.get $5 - local.get $5 + local.get $6 + local.get $6 i64.const 63 i64.shr_u i32.wrap_i64 i32.const 1 i32.shl - local.tee $0 + local.tee $1 select - local.tee $5 + local.tee $6 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.wrap_i64 - local.tee $1 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -28912,89 +28842,89 @@ local.tee $3 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store local.get $0 - local.get $2 - i32.add local.get $1 + i32.add + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $5 + local.get $6 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $5 + local.get $6 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $5 + local.get $6 i64.const 10000000000 i64.ge_u i32.add else - local.get $5 + local.get $6 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $5 + local.get $6 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $5 + local.get $6 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $5 + local.get $6 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $5 + local.get $6 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $5 + local.get $6 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store local.get $0 - local.get $2 - i32.add - local.get $5 local.get $1 + i32.add + local.get $6 + local.get $2 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $1 if - local.get $2 + local.get $0 i32.const 45 i32.store16 end @@ -29002,20 +28932,20 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 end - local.set $2 + local.set $3 br $folding-inner09 end global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $5 i32.const 21 i32.add local.get $4 @@ -29027,77 +28957,77 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|010 - local.get $3 + local.get $0 local.get $4 i32.lt_s if - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 3 i32.shl i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 - local.get $8 + local.set $1 + local.get $5 if - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add - i32.const 12016 - local.get $8 + i32.const 11856 + local.get $5 i32.const 1 i32.shl memory.copy - local.get $0 - local.get $8 + local.get $1 + local.get $5 i32.add - local.set $0 + local.set $1 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|010 end end - local.get $9 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add - local.get $1 + local.get $2 local.get $4 i32.const 3 i32.shl i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add local.tee $0 - i32.gt_s + local.get $9 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/string/String#substring - local.set $2 + local.set $3 br $folding-inner09 end global.get $~lib/memory/__stack_pointer @@ -29120,15 +29050,15 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 - i32.const 14864 + local.get $3 + i32.const 14704 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1224 i32.const 3 call $~lib/builtins/abort @@ -29138,7 +29068,7 @@ i32.const 7 i32.const 2 i32.const 34 - i32.const 15024 + i32.const 14864 call $~lib/rt/__newArray local.tee $0 i32.store offset=364 @@ -29152,12 +29082,12 @@ local.get $0 i32.store local.get $0 - i32.const 15072 + i32.const 14912 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1231 i32.const 3 call $~lib/builtins/abort @@ -29166,7 +29096,7 @@ i32.const 4 i32.const 2 i32.const 34 - i32.const 15184 + i32.const 15024 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -29179,12 +29109,12 @@ local.get $0 i32.store local.get $0 - i32.const 15232 + i32.const 15072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1232 i32.const 3 call $~lib/builtins/abort @@ -29204,7 +29134,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 15264 + i32.const 15104 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -29212,7 +29142,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 15296 + i32.const 15136 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -29225,7 +29155,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -29239,7 +29169,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -29250,7 +29180,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -29258,7 +29188,7 @@ i32.load offset=12 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store i32.const 0 local.set $0 @@ -29267,7 +29197,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -29286,15 +29216,15 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $2 + i32.const 11568 + local.set $3 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -29306,24 +29236,24 @@ local.get $0 call $~lib/array/Array#toString else - i32.const 1120 + i32.const 11568 end - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 end - i32.const 1120 - local.set $2 + i32.const 11568 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=4 - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u @@ -29334,48 +29264,48 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.tee $8 + local.tee $5 i32.store - local.get $8 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=16 - local.get $8 + local.get $5 call $~lib/array/Array#toString - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=12 - local.get $2 - local.get $8 + local.get $3 + local.get $5 call $~lib/string/String.__concat - local.tee $2 + local.tee $3 i32.store offset=8 end local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 12016 + local.get $3 + i32.const 11856 call $~lib/string/String.__concat - local.tee $2 + local.tee $3 i32.store offset=8 end local.get $0 @@ -29386,7 +29316,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.shl @@ -29397,7 +29327,7 @@ local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -29409,10 +29339,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 call $~lib/string/String.__concat - local.tee $2 + local.tee $3 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -29429,15 +29359,15 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 - i32.const 15328 + local.get $3 + i32.const 15168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1235 i32.const 3 call $~lib/builtins/abort @@ -29457,7 +29387,7 @@ i32.const 2 i32.const 0 i32.const 7 - i32.const 15376 + i32.const 15216 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -29465,7 +29395,7 @@ i32.const 2 i32.const 0 i32.const 7 - i32.const 15408 + i32.const 15248 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -29478,7 +29408,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -29492,7 +29422,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -29503,7 +29433,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -29511,7 +29441,7 @@ i32.load offset=12 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store i32.const 0 local.set $0 @@ -29520,7 +29450,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -29539,15 +29469,15 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $2 + i32.const 11568 + local.set $3 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$12 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -29559,24 +29489,24 @@ local.get $0 call $~lib/array/Array#toString else - i32.const 1120 + i32.const 11568 end - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$12 end - i32.const 1120 - local.set $2 + i32.const 11568 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=4 - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u @@ -29587,48 +29517,48 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.tee $8 + local.tee $5 i32.store - local.get $8 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=16 - local.get $8 + local.get $5 call $~lib/array/Array#toString - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=12 - local.get $2 - local.get $8 + local.get $3 + local.get $5 call $~lib/string/String.__concat - local.tee $2 + local.tee $3 i32.store offset=8 end local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 12016 + local.get $3 + i32.const 11856 call $~lib/string/String.__concat - local.tee $2 + local.tee $3 i32.store offset=8 end local.get $0 @@ -29639,7 +29569,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.shl @@ -29650,7 +29580,7 @@ local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -29662,10 +29592,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 call $~lib/string/String.__concat - local.tee $2 + local.tee $3 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -29682,15 +29612,15 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 - i32.const 15328 + local.get $3 + i32.const 15168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1238 i32.const 3 call $~lib/builtins/abort @@ -29718,7 +29648,7 @@ i32.const 1 i32.const 2 i32.const 8 - i32.const 15440 + i32.const 15280 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -29735,7 +29665,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -29749,7 +29679,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -29760,7 +29690,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -29768,7 +29698,7 @@ i32.load offset=12 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store i32.const 0 local.set $0 @@ -29777,7 +29707,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -29796,15 +29726,15 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $2 + i32.const 11568 + local.set $3 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$13 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -29816,24 +29746,24 @@ local.get $0 call $~lib/array/Array<~lib/array/Array>#toString else - i32.const 1120 + i32.const 11568 end - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$13 end - i32.const 1120 - local.set $2 + i32.const 11568 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 11568 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=4 - i32.const 12012 + i32.const 11852 i32.load i32.const 1 i32.shr_u @@ -29844,48 +29774,48 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.tee $8 + local.tee $5 i32.store - local.get $8 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=16 - local.get $8 + local.get $5 call $~lib/array/Array<~lib/array/Array>#toString - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=12 - local.get $2 - local.get $8 + local.get $3 + local.get $5 call $~lib/string/String.__concat - local.tee $2 + local.tee $3 i32.store offset=8 end local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12016 + i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 12016 + local.get $3 + i32.const 11856 call $~lib/string/String.__concat - local.tee $2 + local.tee $3 i32.store offset=8 end local.get $0 @@ -29896,7 +29826,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.shl @@ -29907,7 +29837,7 @@ local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -29919,10 +29849,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 call $~lib/string/String.__concat - local.tee $2 + local.tee $3 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -29939,15 +29869,15 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store - local.get $2 - i32.const 13728 + local.get $3 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1241 i32.const 3 call $~lib/builtins/abort @@ -29967,7 +29897,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 15472 + i32.const 15312 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -29975,7 +29905,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 15504 + i32.const 15344 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -29983,7 +29913,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 15536 + i32.const 15376 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -29991,7 +29921,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 15568 + i32.const 15408 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -30002,50 +29932,50 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $1 + local.tee $0 i32.store offset=404 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 10 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1248 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|7 - local.get $0 + local.get $1 i32.const 10 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $1 call $~lib/array/Array#__get - local.get $0 + local.get $1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1250 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|7 end end @@ -30063,7 +29993,7 @@ i32.const 1 i32.const 2 i32.const 34 - i32.const 15632 + i32.const 15472 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -30071,7 +30001,7 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 15728 + i32.const 15568 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -30079,7 +30009,7 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 15856 + i32.const 15696 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -30087,21 +30017,25 @@ i32.const 1 i32.const 2 i32.const 34 - i32.const 15920 + i32.const 15760 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 i32.store offset=412 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + i32.const 0 + local.set $0 + 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 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -30115,24 +30049,22 @@ i32.store local.get $1 i32.load offset=4 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $8 + local.set $9 i32.const 0 local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|023 - local.get $0 - local.get $8 + loop $for-loop|018 + local.get $1 + local.get $9 i32.lt_s if - local.get $3 - local.get $0 + local.get $5 + local.get $1 i32.const 2 i32.shl i32.add @@ -30144,77 +30076,75 @@ else i32.const 0 end - local.get $1 + local.get $3 i32.add - local.set $1 - local.get $0 + local.set $3 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|023 + local.set $1 + br $for-loop|018 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.const 2 i32.shl - local.tee $0 + local.tee $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 34 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store offset=8 - local.get $10 - local.get $1 + local.get $11 + local.get $3 i32.store offset=12 - local.get $10 - local.get $0 + local.get $11 + local.get $1 i32.store offset=8 + local.get $11 local.get $10 - local.get $9 i32.store offset=4 + local.get $11 local.get $10 - local.get $9 i32.store + local.get $11 local.get $10 - local.get $9 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 - local.set $0 - i32.const 0 local.set $4 - loop $for-loop|124 + loop $for-loop|119 local.get $4 - local.get $8 + local.get $9 i32.lt_s if - local.get $3 + local.get $5 local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $11 + local.tee $1 if local.get $0 - local.get $9 + local.get $10 i32.add - local.get $11 + local.get $1 i32.load offset=4 - local.get $11 + local.get $1 i32.load offset=12 i32.const 2 i32.shl - local.tee $11 + local.tee $1 memory.copy local.get $0 - local.get $11 + local.get $1 i32.add local.set $0 end @@ -30222,56 +30152,56 @@ i32.const 1 i32.add local.set $4 - br $for-loop|124 + br $for-loop|119 end end i32.const 0 - local.set $0 - loop $for-loop|225 - local.get $0 - local.get $1 - i32.lt_s + local.set $4 + loop $for-loop|220 + local.get $3 + local.get $4 + i32.gt_s if - local.get $9 - local.get $9 - local.get $0 + local.get $10 + local.get $10 + local.get $4 i32.const 2 i32.shl i32.add i32.load i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 - br $for-loop|225 + local.set $4 + br $for-loop|220 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=416 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 i32.const 34 - i32.const 15952 + i32.const 15792 call $~lib/rt/__newArray local.tee $1 i32.store offset=420 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store - local.get $10 + local.get $11 call $~lib/array/Array#get:length i32.const 8 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1256 i32.const 3 call $~lib/builtins/abort @@ -30289,9 +30219,9 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=48 - local.get $10 + local.get $11 local.get $0 call $~lib/array/Array#__get local.set $2 @@ -30314,7 +30244,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1258 i32.const 5 call $~lib/builtins/abort @@ -30341,7 +30271,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 16016 + i32.const 15856 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -30349,7 +30279,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 16048 + i32.const 15888 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -30367,7 +30297,7 @@ call $~lib/array/Array#get:length if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1262 i32.const 3 call $~lib/builtins/abort @@ -30387,7 +30317,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 16080 + i32.const 15920 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -30395,7 +30325,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 16112 + i32.const 15952 call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 @@ -30405,14 +30335,14 @@ local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 16144 + i32.const 15984 i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -30425,31 +30355,31 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 2 i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.load offset=4 - local.set $8 + local.set $5 i32.const 0 - local.set $4 - loop $for-loop|026 + local.set $2 + loop $for-loop|023 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $4 local.get $2 + local.get $3 local.get $1 i32.load offset=12 local.tee $9 - local.get $2 + local.get $3 local.get $9 i32.lt_s select @@ -30459,7 +30389,7 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 2 i32.shl local.tee $9 @@ -30476,27 +30406,27 @@ global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $10 - local.get $4 + local.get $2 local.get $1 - i32.const 16144 + i32.const 15984 i32.load call_indirect (type $1) local.tee $10 i32.store offset=16 - local.get $8 + local.get $5 local.get $9 i32.add local.get $10 i32.store - local.get $3 + local.get $4 local.get $10 i32.const 1 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 - br $for-loop|026 + local.set $2 + br $for-loop|023 end end global.get $~lib/memory/__stack_pointer @@ -30504,9 +30434,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 i32.store offset=440 @@ -30519,7 +30449,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1272 i32.const 3 call $~lib/builtins/abort @@ -30535,7 +30465,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1273 i32.const 3 call $~lib/builtins/abort @@ -30551,7 +30481,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1274 i32.const 3 call $~lib/builtins/abort @@ -30567,7 +30497,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1275 i32.const 3 call $~lib/builtins/abort @@ -30583,7 +30513,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1552 i32.const 1276 i32.const 3 call $~lib/builtins/abort @@ -30595,18 +30525,18 @@ global.set $std/array/inputStabArr i32.const 0 global.set $std/array/outputStabArr - i32.const 49120 + i32.const 48960 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s if - loop $while-continue|028 + loop $while-continue|025 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|028 + br $while-continue|025 end end end @@ -30636,108 +30566,13 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 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 16352 - i32.lt_s - if - i32.const 49152 - i32.const 49200 - i32.const 1 - i32.const 1 - call $~lib/builtins/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 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - return - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - 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 $1 - ) (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) @@ -30746,11 +30581,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30810,11 +30645,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s if - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30830,7 +30665,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1776 + i32.const 7712 return end global.get $~lib/memory/__stack_pointer @@ -30918,6 +30753,101 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/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 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7712 + return + end + global.get $~lib/memory/__stack_pointer + local.get $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 $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + 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 $1 + ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) (local $2 i32) @@ -30971,7 +30901,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -30984,7 +30914,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -31032,7 +30962,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16352 + i32.const 16192 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -31050,8 +30980,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49152 - i32.const 49200 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index bda85b98f4..d09f931298 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -1,21 +1,21 @@ (module (type $0 (func (param i32 i32))) (type $1 (func (param i32) (result i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32 i32) (result i32))) (type $7 (func (param i32 i32 i32 i32) (result i32))) - (type $8 (func (param i32 i32 i64) (result i32))) - (type $9 (func (result i32))) - (type $10 (func (param i32 i64 i32))) - (type $11 (func (param i64 i32) (result i32))) - (type $12 (func (param i32 i64 i32 i32))) - (type $13 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -27,56 +27,31 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2656)) - (global $~lib/memory/__data_end i32 (i32.const 2728)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35496)) - (global $~lib/memory/__heap_base i32 (i32.const 35496)) + (global $~lib/rt/__rtti_base i32 (i32.const 688)) + (global $~lib/memory/__data_end i32 (i32.const 760)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33528)) + (global $~lib/memory/__heap_base i32 (i32.const 33528)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2492) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data $23 (i32.const 2588) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2656) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data $12 (i32.const 620) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 688) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -141,7 +116,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -211,7 +186,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -228,7 +203,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -258,9 +233,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 336 + i32.const 400 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -327,7 +302,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 208 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -479,7 +454,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -499,7 +474,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -562,7 +537,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -715,7 +690,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -732,7 +707,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -821,7 +796,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -864,7 +839,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -882,7 +857,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -950,7 +925,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1067,7 +1042,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1113,7 +1088,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1145,7 +1120,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1389,7 +1364,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1609,7 +1584,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1720,8 +1695,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 144 + i32.const 480 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1823,7 +1798,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1894,7 +1869,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2051,7 +2026,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2166,7 +2141,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2186,7 +2161,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2234,8 +2209,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 144 + i32.const 208 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2280,421 +2255,9 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return + i32.load offset=16 ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $this i32) (result i32) local.get $this @@ -2864,7 +2427,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -3117,20 +2680,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35520 - i32.const 35568 + i32.const 33552 + i32.const 33600 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3139,196 +2698,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/arraybuffer/ArrayBuffer#slice (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $length i32) @@ -3497,8 +2887,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 19 i32.const 57 call $~lib/builtins/abort @@ -3698,8 +3088,8 @@ i32.gt_u i32.or if - i32.const 2400 - i32.const 2608 + i32.const 32 + i32.const 640 i32.const 25 i32.const 7 call $~lib/builtins/abort @@ -3824,13 +3214,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 240 + i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 272 + i32.const 288 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 416 + i32.const 432 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer @@ -3851,7 +3241,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 4 i32.const 3 call $~lib/builtins/abort @@ -3881,7 +3271,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -3893,7 +3283,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 3 call $~lib/builtins/abort @@ -3923,7 +3313,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 13 i32.const 3 call $~lib/builtins/abort @@ -3953,7 +3343,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 17 i32.const 3 call $~lib/builtins/abort @@ -3983,7 +3373,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -4013,7 +3403,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 25 i32.const 3 call $~lib/builtins/abort @@ -4043,7 +3433,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 29 i32.const 3 call $~lib/builtins/abort @@ -4073,7 +3463,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -4103,7 +3493,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -4115,7 +3505,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -4127,7 +3517,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 40 i32.const 3 call $~lib/builtins/abort @@ -4139,7 +3529,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 3 call $~lib/builtins/abort @@ -4151,7 +3541,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -4163,7 +3553,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -4175,7 +3565,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -4187,7 +3577,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -4202,7 +3592,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 2576 + i32.const 608 call $~lib/rt/__newArray local.set $4 global.get $~lib/memory/__stack_pointer @@ -4214,7 +3604,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 48 i32.const 3 call $~lib/builtins/abort @@ -4230,7 +3620,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -4248,7 +3638,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 3 call $~lib/builtins/abort @@ -4281,7 +3671,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 51 i32.const 3 call $~lib/builtins/abort @@ -4295,153 +3685,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) (local $buffer i32) (local $3 i32) @@ -4457,8 +3700,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -4514,6 +3757,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -4538,19 +3785,13 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2400 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 + i32.const 336 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 144 local.get $0 call $~lib/rt/itcms/__visit ) @@ -4756,6 +3997,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 6f5a31ba6e..564856a29c 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -1,13 +1,13 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32 i64))) - (type $5 (func (result i32))) - (type $6 (func (param i32) (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (type $8 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (result i32))) + (type $7 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,64 +18,39 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36520)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34552)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) "<") - (data $20.1 (i32.const 3464) "\02\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 $21 (i32.const 3516) "<") - (data $21.1 (i32.const 3528) "\02\00\00\00$\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data $22 (i32.const 3580) "\1c") - (data $22.1 (i32.const 3592) "\01\00\00\00\08\00\00\00\01\00\00\00\02") - (data $23 (i32.const 3612) "<") - (data $23.1 (i32.const 3624) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") - (data $24 (i32.const 3680) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\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 $3 (i32.const 1212) "<") + (data $3.1 (i32.const 1224) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1340) "<") + (data $6.1 (i32.const 1352) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1404) ",") + (data $7.1 (i32.const 1416) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1484) "<") + (data $9.1 (i32.const 1496) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1548) "<") + (data $10.1 (i32.const 1560) "\02\00\00\00$\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data $11 (i32.const 1612) "\1c") + (data $11.1 (i32.const 1624) "\01\00\00\00\08\00\00\00\01\00\00\00\02") + (data $12 (i32.const 1644) "<") + (data $12.1 (i32.const 1656) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") + (data $13 (i32.const 1712) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 + i32.const 1360 call $~lib/rt/itcms/__visit - i32.const 3424 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1168 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -96,7 +71,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -129,7 +104,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -138,7 +113,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$198 + block $__inlined_func$~lib/rt/itcms/Object#unlink$186 local.get $0 i32.load offset=4 i32.const -4 @@ -150,19 +125,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36520 + i32.const 34552 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$198 + br $__inlined_func$~lib/rt/itcms/Object#unlink$186 end local.get $0 i32.load offset=8 @@ -170,7 +145,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -199,13 +174,13 @@ i32.const 1 else local.get $1 - i32.const 3680 + i32.const 1712 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1360 + i32.const 1424 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -213,7 +188,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3684 + i32.const 1716 i32.add i32.load i32.const 32 @@ -284,7 +259,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -298,7 +273,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -344,7 +319,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -427,7 +402,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -441,7 +416,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -502,7 +477,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -535,7 +510,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -550,7 +525,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -601,7 +576,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -673,7 +648,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -698,7 +673,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -725,7 +700,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -797,10 +772,10 @@ if unreachable end - i32.const 36528 + i32.const 34560 i32.const 0 i32.store - i32.const 38096 + i32.const 36128 i32.const 0 i32.store loop $for-loop|0 @@ -811,7 +786,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36528 + i32.const 34560 i32.add i32.const 0 i32.store offset=4 @@ -829,7 +804,7 @@ i32.add i32.const 2 i32.shl - i32.const 36528 + i32.const 34560 i32.add i32.const 0 i32.store offset=96 @@ -847,14 +822,14 @@ br $for-loop|0 end end - i32.const 36528 - i32.const 38100 + i32.const 34560 + i32.const 36132 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36528 + i32.const 34560 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -939,7 +914,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36520 + i32.const 34552 i32.lt_u if local.get $0 @@ -1028,14 +1003,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36520 + i32.const 34552 i32.lt_u if local.get $0 @@ -1058,7 +1033,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36520 + i32.const 34552 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1087,7 +1062,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1171,7 +1146,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1223,7 +1198,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1255,8 +1230,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1168 + i32.const 1232 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1266,7 +1241,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1283,7 +1258,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1316,8 +1291,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1168 + i32.const 1504 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1419,7 +1394,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1434,7 +1409,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1453,7 +1428,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1558,204 +1533,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3752 - i32.lt_s - if - i32.const 36544 - i32.const 36592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 i32.eqz @@ -1766,7 +1543,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1813,205 +1590,40 @@ (func $~start call $start:std/arraybuffer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3752 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3752 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$203 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$203 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36544 - i32.const 36592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s if - i32.const 36544 - i32.const 36592 + i32.const 34576 + i32.const 34624 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2020,11 +1632,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s if - i32.const 36544 - i32.const 36592 + i32.const 34576 + i32.const 34624 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2117,11 +1729,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s if - i32.const 36544 - i32.const 36592 + i32.const 34576 + i32.const 34624 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2169,8 +1781,8 @@ i32.shr_u i32.eqz if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 19 i32.const 57 call $~lib/builtins/abort @@ -2225,7 +1837,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2235,34 +1847,34 @@ memory.size i32.const 16 i32.shl - i32.const 36520 + i32.const 34552 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1284 + i32.const 1280 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1288 + i32.const 1280 i32.store - i32.const 1264 + i32.const 1280 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1316 + i32.const 1312 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1320 + i32.const 1312 i32.store - i32.const 1296 + i32.const 1312 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1460 + i32.const 1456 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1464 + i32.const 1456 i32.store - i32.const 1440 + i32.const 1456 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2270,7 +1882,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2299,7 +1911,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 4 i32.const 3 call $~lib/builtins/abort @@ -2326,7 +1938,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -2337,7 +1949,7 @@ i32.eq if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 3 call $~lib/builtins/abort @@ -2364,7 +1976,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 13 i32.const 3 call $~lib/builtins/abort @@ -2391,7 +2003,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 17 i32.const 3 call $~lib/builtins/abort @@ -2418,7 +2030,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -2445,7 +2057,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 25 i32.const 3 call $~lib/builtins/abort @@ -2472,7 +2084,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 29 i32.const 3 call $~lib/builtins/abort @@ -2499,7 +2111,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -2524,7 +2136,7 @@ i32.load offset=16 if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -2534,7 +2146,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -2546,7 +2158,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2578,7 +2190,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2589,7 +2201,7 @@ i32.const 1 call $~lib/rt/itcms/__new local.tee $2 - i32.const 3600 + i32.const 1632 i64.load align=1 i64.store align=1 local.get $2 @@ -2627,7 +2239,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2670,7 +2282,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer @@ -2695,7 +2307,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer @@ -2745,8 +2357,8 @@ i32.gt_u i32.or if - i32.const 3424 - i32.const 3632 + i32.const 1056 + i32.const 1664 i32.const 25 i32.const 7 call $~lib/builtins/abort @@ -2793,7 +2405,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 36520 + i32.const 34552 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -2834,8 +2446,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36544 - i32.const 36592 + i32.const 34576 + i32.const 34624 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2865,11 +2477,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3752 + i32.const 1784 i32.lt_s if - i32.const 36544 - i32.const 36592 + i32.const 34576 + i32.const 34624 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/console.debug.wat b/tests/compiler/std/console.debug.wat index 7983b6f417..100ea5d5df 100644 --- a/tests/compiler/std/console.debug.wat +++ b/tests/compiler/std/console.debug.wat @@ -1,16 +1,8 @@ (module (type $0 (func (param i32))) - (type $1 (func (param i32) (result i32))) + (type $1 (func)) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32 i32))) (import "env" "console.assert" (func $~lib/bindings/dom/console.assert (param i32 i32))) (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) (import "env" "console.debug" (func $~lib/bindings/dom/console.debug (param i32))) @@ -20,25 +12,11 @@ (import "env" "console.time" (func $~lib/bindings/dom/console.time (param i32))) (import "env" "console.timeLog" (func $~lib/bindings/dom/console.timeLog (param i32))) (import "env" "console.timeEnd" (func $~lib/bindings/dom/console.timeEnd (param i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__data_end i32 (i32.const 588)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33356)) (global $~lib/memory/__heap_base i32 (i32.const 33356)) - (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/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/__rtti_base (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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00w\00h\00o\00o\00p\00s\00") (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00p\00h\00e\00w\00\00\00\00\00") @@ -101,2645 +79,13 @@ (func $~start call $start:std/console ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33584 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33584 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 33584 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 33712 - i32.const 33776 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 33584 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 33584 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 33520 - i32.const 33856 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33856 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 33520 - i32.const 33584 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 34156 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 34156 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 34156 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 34156 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 34576 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 34576 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35632 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35632 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~stack_check global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if i32.const 33376 - i32.const 35792 + i32.const 33424 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2947,84 +293,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 33488 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3033,322 +303,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 33424 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 33456 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 33920 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 33920 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 35728 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + local.set $4 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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 33952 - i32.const 34080 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 34144 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 33712 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 33520 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 34576 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 35632 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/std/console.release.wat b/tests/compiler/std/console.release.wat index 9af2b1126d..91c358f3ff 100644 --- a/tests/compiler/std/console.release.wat +++ b/tests/compiler/std/console.release.wat @@ -2,11 +2,7 @@ (type $0 (func (param i32))) (type $1 (func (param i32 i32))) (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32 i32))) (import "env" "console.assert" (func $~lib/bindings/dom/console.assert (param i32 i32))) (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) (import "env" "console.debug" (func $~lib/bindings/dom/console.debug (param i32))) @@ -16,14 +12,8 @@ (import "env" "console.time" (func $~lib/bindings/dom/console.time (param i32))) (import "env" "console.timeLog" (func $~lib/bindings/dom/console.timeLog (param i32))) (import "env" "console.timeEnd" (func $~lib/bindings/dom/console.timeEnd (param i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34380)) - (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/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\0c\00\00\00w\00h\00o\00o\00p\00s") @@ -68,1788 +58,130 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1168 - call $~lib/bindings/dom/console.debug - 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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1216 - i32.store - i32.const 1216 - call $~lib/bindings/dom/console.info - 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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1264 - i32.store - i32.const 1264 - call $~lib/bindings/dom/console.warn - 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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1312 - i32.store - i32.const 1312 - call $~lib/bindings/dom/console.error - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1360 - call $~lib/console/console.time - i32.const 1360 - call $~lib/console/console.timeLog - i32.const 1360 - call $~lib/console/console.timeEnd - i32.const 1408 - call $~lib/console/console.timeLog - i32.const 1408 - call $~lib/console/console.timeEnd - i32.const 1456 - call $~lib/console/console.time - i32.const 1456 - call $~lib/console/console.time - i32.const 1504 - call $~lib/console/console.log - i32.const 1536 - call $~lib/console/console.log - i32.const 1568 - call $~lib/console/console.log - i32.const 1600 - call $~lib/console/console.log - return - end - i32.const 34400 - i32.const 36816 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - i32.const 34736 - call $~lib/rt/itcms/__visit - i32.const 34544 - call $~lib/rt/itcms/__visit - i32.const 35600 - call $~lib/rt/itcms/__visit - i32.const 36656 - call $~lib/rt/itcms/__visit - i32.const 4 - i32.load - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 34608 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - 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 - 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 34608 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$128 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34380 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 34608 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$128 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 34608 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.load - i32.gt_u - if - i32.const 34736 - i32.const 34800 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.load offset=4 - i32.const 32 - i32.and - end - local.set $1 - i32.const 8 - i32.load - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $1 - select - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - i32.const 8 - local.get $0 - i32.store - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34880 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 34880 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 34880 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 34880 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34880 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 34880 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 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 34880 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1168 + call $~lib/bindings/dom/console.debug + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $2 - i32.add - i32.ne - if - i32.const 0 - i32.const 34880 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer 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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 34880 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer 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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 34880 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 34880 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 34880 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or + global.get $~lib/memory/__stack_pointer + i32.const 1216 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 1216 + call $~lib/bindings/dom/console.info + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 34384 + global.set $~lib/memory/__stack_pointer + 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 35952 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 1264 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 34384 - 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 34384 - 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 34384 - i32.const 35956 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34384 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - i32.const 0 - 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 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34380 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 - local.get $1 - global.set $~lib/rt/itcms/white - i32.const 4 - i32.load - 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 - 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 34608 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34380 - 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 - local.tee $0 - i32.const 34380 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 34880 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - i32.const 4 - i32.const 0 - i32.store - i32.const 8 - i32.const 0 - i32.store - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 34880 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 34880 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 34544 - i32.const 34608 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$72 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$72 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 34544 - i32.const 34880 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 34880 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 34880 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 + i32.const 1264 + call $~lib/bindings/dom/console.warn + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 34880 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - i32.const 8 - i32.load - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.store offset=4 - 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 - i32.const 8 - local.get $1 - i32.store - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1312 + i32.store + i32.const 1312 + call $~lib/bindings/dom/console.error global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + i32.const 1360 + call $~lib/console/console.time + i32.const 1360 + call $~lib/console/console.timeLog + i32.const 1360 + call $~lib/console/console.timeEnd + i32.const 1408 + call $~lib/console/console.timeLog + i32.const 1408 + call $~lib/console/console.timeEnd + i32.const 1456 + call $~lib/console/console.time + i32.const 1456 + call $~lib/console/console.time + i32.const 1504 + call $~lib/console/console.log + i32.const 1536 + call $~lib/console/console.log + i32.const 1568 + call $~lib/console/console.log + i32.const 1600 + call $~lib/console/console.log + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer i32.const 1612 i32.lt_s if + 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 + global.get $~lib/memory/__stack_pointer i32.const 34400 - i32.const 36816 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$76 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 35168 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$76 - end + i32.store global.get $~lib/memory/__stack_pointer - local.get $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 $2 + i32.const 34448 + i32.store offset=4 + i32.const 34400 + i32.const 34448 i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 35180 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 35180 - 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 35180 - 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 35180 - 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 + i32.const 1 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + unreachable end - local.get $0 ) (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 1612 - i32.lt_s - if - i32.const 34400 - i32.const 36816 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1871,17 +203,7 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - if - i32.const 34400 - i32.const 36816 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1900,17 +222,7 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - if - i32.const 34400 - i32.const 36816 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1929,17 +241,7 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - if - i32.const 34400 - i32.const 36816 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1958,17 +260,7 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - if - i32.const 34400 - i32.const 36816 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1982,228 +274,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$133 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 34512 - local.set $0 - br $__inlined_func$~lib/string/String#concat$133 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34400 - i32.const 36816 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - if - i32.const 34400 - i32.const 36816 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 34448 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 34480 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 34944 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 34944 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 36752 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) ) diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index b88877c8a1..d85d8f7493 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -1,28 +1,28 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32 i32 i32))) (type $5 (func)) - (type $6 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32) (result i32))) (type $7 (func (param i32 i32 i32) (result i32))) (type $8 (func (param i32 i32 i32 i32) (result i32))) (type $9 (func (param i32 i32 i32) (result i64))) (type $10 (func (param i32 i32 i64 i32))) (type $11 (func (param i32 i32 i64) (result i32))) (type $12 (func (result i32))) - (type $13 (func (param i32 i64 i32))) - (type $14 (func (param i64 i32) (result i32))) - (type $15 (func (param i32 i64 i32 i32))) - (type $16 (func (param i64) (result i64))) - (type $17 (func (param i32 i32 i32) (result f32))) - (type $18 (func (param i32 i32 i32) (result f64))) - (type $19 (func (param i32 i32 f32 i32))) - (type $20 (func (param i32 i32 f64 i32))) + (type $13 (func (param i64) (result i64))) + (type $14 (func (param i32 i32 i32) (result f32))) + (type $15 (func (param i32 i32 i32) (result f64))) + (type $16 (func (param i32 i32 f32 i32))) + (type $17 (func (param i32 i32 f64 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -34,56 +34,31 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2688)) - (global $~lib/memory/__data_end i32 (i32.const 2716)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35484)) - (global $~lib/memory/__heap_base i32 (i32.const 35484)) + (global $~lib/rt/__rtti_base i32 (i32.const 720)) + (global $~lib/memory/__data_end i32 (i32.const 748)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33516)) + (global $~lib/memory/__heap_base i32 (i32.const 33516)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2492) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $22 (i32.const 2556) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2620) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2688) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 720) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -148,7 +123,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -218,7 +193,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -235,7 +210,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -265,9 +240,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 336 + i32.const 400 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -334,7 +309,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 208 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -486,7 +461,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -506,7 +481,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -569,7 +544,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -722,7 +697,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -739,7 +714,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -828,7 +803,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -871,7 +846,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -889,7 +864,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -957,7 +932,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1074,7 +1049,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1120,7 +1095,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1152,7 +1127,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1396,7 +1371,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1616,7 +1591,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1727,8 +1702,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 144 + i32.const 480 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1830,7 +1805,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1901,7 +1876,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2058,7 +2033,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2173,7 +2148,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2193,7 +2168,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2241,8 +2216,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 144 + i32.const 208 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2287,422 +2262,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2718,7 +2277,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2798,6 +2357,10 @@ local.get $this i32.load offset=4 ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $this i32) (result i32) local.get $this i32.const 20 @@ -3005,20 +2568,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35504 - i32.const 35552 + i32.const 33536 + i32.const 33584 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3027,196 +2586,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) @@ -3272,8 +2662,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 19 i32.const 57 call $~lib/builtins/abort @@ -3389,9 +2779,9 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2512 - i32.const 178 + i32.const 336 + i32.const 544 + i32.const 179 i32.const 45 call $~lib/builtins/abort unreachable @@ -3476,8 +2866,8 @@ i32.gt_u i32.or if - i32.const 2400 - i32.const 2576 + i32.const 32 + i32.const 608 i32.const 25 i32.const 7 call $~lib/builtins/abort @@ -3584,8 +2974,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 35 i32.const 7 call $~lib/builtins/abort @@ -3652,8 +3042,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 44 i32.const 7 call $~lib/builtins/abort @@ -3713,8 +3103,8 @@ call $~lib/dataview/DataView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 51 i32.const 50 call $~lib/builtins/abort @@ -3765,8 +3155,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 58 i32.const 7 call $~lib/builtins/abort @@ -3825,8 +3215,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 66 i32.const 7 call $~lib/builtins/abort @@ -3886,8 +3276,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 151 i32.const 7 call $~lib/builtins/abort @@ -3939,8 +3329,8 @@ call $~lib/dataview/DataView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 72 i32.const 50 call $~lib/builtins/abort @@ -3991,8 +3381,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 79 i32.const 7 call $~lib/builtins/abort @@ -4051,8 +3441,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 87 i32.const 7 call $~lib/builtins/abort @@ -4112,8 +3502,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 159 i32.const 7 call $~lib/builtins/abort @@ -4171,8 +3561,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 95 i32.const 7 call $~lib/builtins/abort @@ -4237,8 +3627,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 103 i32.const 7 call $~lib/builtins/abort @@ -4297,8 +3687,8 @@ call $~lib/dataview/DataView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 109 i32.const 50 call $~lib/builtins/abort @@ -4346,8 +3736,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 116 i32.const 7 call $~lib/builtins/abort @@ -4401,8 +3791,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 123 i32.const 7 call $~lib/builtins/abort @@ -4456,8 +3846,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 167 i32.const 7 call $~lib/builtins/abort @@ -4505,8 +3895,8 @@ call $~lib/dataview/DataView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 128 i32.const 50 call $~lib/builtins/abort @@ -4554,8 +3944,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 135 i32.const 7 call $~lib/builtins/abort @@ -4609,8 +3999,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 142 i32.const 7 call $~lib/builtins/abort @@ -4664,8 +4054,8 @@ i32.gt_s i32.or if - i32.const 320 - i32.const 2576 + i32.const 336 + i32.const 608 i32.const 174 i32.const 7 call $~lib/builtins/abort @@ -4804,13 +4194,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 240 + i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 272 + i32.const 288 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 416 + i32.const 432 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer @@ -4936,7 +4326,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 15 i32.const 3 call $~lib/builtins/abort @@ -4956,7 +4346,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -4976,7 +4366,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 17 i32.const 3 call $~lib/builtins/abort @@ -4996,7 +4386,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -5016,7 +4406,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 19 i32.const 3 call $~lib/builtins/abort @@ -5036,7 +4426,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -5056,7 +4446,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -5076,7 +4466,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 23 i32.const 3 call $~lib/builtins/abort @@ -5096,7 +4486,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 24 i32.const 3 call $~lib/builtins/abort @@ -5116,7 +4506,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 25 i32.const 3 call $~lib/builtins/abort @@ -5136,7 +4526,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -5156,7 +4546,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 28 i32.const 3 call $~lib/builtins/abort @@ -5175,7 +4565,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 30 i32.const 3 call $~lib/builtins/abort @@ -5194,7 +4584,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 31 i32.const 3 call $~lib/builtins/abort @@ -5213,7 +4603,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -5232,7 +4622,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -5251,7 +4641,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 34 i32.const 3 call $~lib/builtins/abort @@ -5270,7 +4660,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -5289,7 +4679,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -5308,7 +4698,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -5329,7 +4719,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 39 i32.const 3 call $~lib/builtins/abort @@ -5350,7 +4740,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 40 i32.const 3 call $~lib/builtins/abort @@ -5371,7 +4761,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 41 i32.const 3 call $~lib/builtins/abort @@ -5392,7 +4782,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -5413,7 +4803,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -5434,7 +4824,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -5455,7 +4845,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -5476,7 +4866,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -5497,7 +4887,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 48 i32.const 3 call $~lib/builtins/abort @@ -5518,7 +4908,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -5539,7 +4929,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 50 i32.const 3 call $~lib/builtins/abort @@ -5560,7 +4950,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 51 i32.const 3 call $~lib/builtins/abort @@ -5581,7 +4971,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -5602,7 +4992,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 53 i32.const 3 call $~lib/builtins/abort @@ -5622,7 +5012,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 55 i32.const 3 call $~lib/builtins/abort @@ -5642,7 +5032,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -5662,7 +5052,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -5682,7 +5072,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 58 i32.const 3 call $~lib/builtins/abort @@ -5702,7 +5092,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 59 i32.const 3 call $~lib/builtins/abort @@ -5722,7 +5112,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -5742,7 +5132,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 62 i32.const 3 call $~lib/builtins/abort @@ -5762,7 +5152,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 63 i32.const 3 call $~lib/builtins/abort @@ -5782,7 +5172,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -5802,7 +5192,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -5822,7 +5212,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -5842,7 +5232,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -5861,7 +5251,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 70 i32.const 3 call $~lib/builtins/abort @@ -5880,7 +5270,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 71 i32.const 3 call $~lib/builtins/abort @@ -5899,7 +5289,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 72 i32.const 3 call $~lib/builtins/abort @@ -5918,7 +5308,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 73 i32.const 3 call $~lib/builtins/abort @@ -5937,7 +5327,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -5956,7 +5346,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 75 i32.const 3 call $~lib/builtins/abort @@ -5975,7 +5365,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 76 i32.const 3 call $~lib/builtins/abort @@ -5994,7 +5384,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 77 i32.const 3 call $~lib/builtins/abort @@ -6016,7 +5406,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 79 i32.const 3 call $~lib/builtins/abort @@ -6038,7 +5428,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 80 i32.const 3 call $~lib/builtins/abort @@ -6060,7 +5450,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -6082,7 +5472,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 82 i32.const 3 call $~lib/builtins/abort @@ -6104,7 +5494,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -6126,7 +5516,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -6148,7 +5538,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 85 i32.const 3 call $~lib/builtins/abort @@ -6170,7 +5560,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 87 i32.const 3 call $~lib/builtins/abort @@ -6192,7 +5582,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 88 i32.const 3 call $~lib/builtins/abort @@ -6214,7 +5604,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 89 i32.const 3 call $~lib/builtins/abort @@ -6236,7 +5626,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 90 i32.const 3 call $~lib/builtins/abort @@ -6258,7 +5648,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 91 i32.const 3 call $~lib/builtins/abort @@ -6280,7 +5670,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 92 i32.const 3 call $~lib/builtins/abort @@ -6302,7 +5692,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 93 i32.const 3 call $~lib/builtins/abort @@ -6322,7 +5712,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 95 i32.const 3 call $~lib/builtins/abort @@ -6342,7 +5732,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 96 i32.const 3 call $~lib/builtins/abort @@ -6362,7 +5752,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -6382,7 +5772,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -6402,7 +5792,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 99 i32.const 3 call $~lib/builtins/abort @@ -6422,7 +5812,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 101 i32.const 3 call $~lib/builtins/abort @@ -6442,7 +5832,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 102 i32.const 3 call $~lib/builtins/abort @@ -6462,7 +5852,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 103 i32.const 3 call $~lib/builtins/abort @@ -6482,7 +5872,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -6502,7 +5892,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -6522,7 +5912,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 107 i32.const 3 call $~lib/builtins/abort @@ -6542,7 +5932,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -6572,7 +5962,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -6602,7 +5992,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -6632,7 +6022,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 117 i32.const 3 call $~lib/builtins/abort @@ -6662,7 +6052,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 120 i32.const 3 call $~lib/builtins/abort @@ -6690,7 +6080,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 123 i32.const 3 call $~lib/builtins/abort @@ -6721,7 +6111,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -6752,7 +6142,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 129 i32.const 3 call $~lib/builtins/abort @@ -6782,7 +6172,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 132 i32.const 3 call $~lib/builtins/abort @@ -6812,7 +6202,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -6842,7 +6232,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -6872,7 +6262,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -6900,7 +6290,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 144 i32.const 3 call $~lib/builtins/abort @@ -6932,7 +6322,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -6964,7 +6354,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 150 i32.const 3 call $~lib/builtins/abort @@ -6994,7 +6384,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 153 i32.const 3 call $~lib/builtins/abort @@ -7024,7 +6414,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 156 i32.const 3 call $~lib/builtins/abort @@ -7054,7 +6444,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 159 i32.const 3 call $~lib/builtins/abort @@ -7084,7 +6474,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 162 i32.const 3 call $~lib/builtins/abort @@ -7123,7 +6513,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 165 i32.const 3 call $~lib/builtins/abort @@ -7141,7 +6531,7 @@ i32.eqz if i32.const 0 - i32.const 2640 + i32.const 672 i32.const 166 i32.const 3 call $~lib/builtins/abort @@ -7155,168 +6545,15 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2400 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 + i32.const 336 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 144 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index 418f846e13..405410210a 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -1,20 +1,21 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (param i32 i32 i32))) - (type $2 (func (param i32 i32 i32) (result i32))) - (type $3 (func)) + (type $0 (func (param i32 i32 i32))) + (type $1 (func (param i32 i32 i32) (result i32))) + (type $2 (func)) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32))) (type $5 (func (param i32 i32))) - (type $6 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32) (result i64))) (type $8 (func (param i32 i64 i32))) (type $9 (func (param i32 i32 i64))) (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $11 (func (param i32) (result i32))) (type $12 (func (param i32 i32 i32) (result f32))) (type $13 (func (param i32 i32) (result f64))) (type $14 (func (param i32 f32 i32))) (type $15 (func (param i32 f64 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -25,64 +26,39 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36508)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34540)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) "<") - (data $20.1 (i32.const 3464) "\02\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 $21 (i32.const 3516) "<") - (data $21.1 (i32.const 3528) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") - (data $22 (i32.const 3580) "<") - (data $22.1 (i32.const 3592) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") - (data $23 (i32.const 3644) "<") - (data $23.1 (i32.const 3656) "\02\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") - (data $24 (i32.const 3712) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\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 $3 (i32.const 1212) "<") + (data $3.1 (i32.const 1224) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1340) "<") + (data $6.1 (i32.const 1352) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1404) ",") + (data $7.1 (i32.const 1416) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1484) "<") + (data $9.1 (i32.const 1496) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1548) "<") + (data $10.1 (i32.const 1560) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data $11 (i32.const 1612) "<") + (data $11.1 (i32.const 1624) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") + (data $12 (i32.const 1676) "<") + (data $12.1 (i32.const 1688) "\02\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") + (data $13 (i32.const 1744) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 + i32.const 1360 call $~lib/rt/itcms/__visit - i32.const 3424 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1168 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -103,7 +79,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -136,7 +112,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -145,7 +121,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$234 + block $__inlined_func$~lib/rt/itcms/Object#unlink$222 local.get $0 i32.load offset=4 i32.const -4 @@ -157,19 +133,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36508 + i32.const 34540 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$234 + br $__inlined_func$~lib/rt/itcms/Object#unlink$222 end local.get $0 i32.load offset=8 @@ -177,7 +153,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -206,13 +182,13 @@ i32.const 1 else local.get $1 - i32.const 3712 + i32.const 1744 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1360 + i32.const 1424 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -220,7 +196,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3716 + i32.const 1748 i32.add i32.load i32.const 32 @@ -291,7 +267,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -305,7 +281,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -351,7 +327,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -434,7 +410,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -448,7 +424,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -509,7 +485,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -542,7 +518,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -557,7 +533,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -608,7 +584,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -680,7 +656,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -705,7 +681,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -732,7 +708,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -804,10 +780,10 @@ if unreachable end - i32.const 36512 + i32.const 34544 i32.const 0 i32.store - i32.const 38080 + i32.const 36112 i32.const 0 i32.store loop $for-loop|0 @@ -818,7 +794,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36512 + i32.const 34544 i32.add i32.const 0 i32.store offset=4 @@ -836,7 +812,7 @@ i32.add i32.const 2 i32.shl - i32.const 36512 + i32.const 34544 i32.add i32.const 0 i32.store offset=96 @@ -854,14 +830,14 @@ br $for-loop|0 end end - i32.const 36512 - i32.const 38084 + i32.const 34544 + i32.const 36116 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36512 + i32.const 34544 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -946,7 +922,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36508 + i32.const 34540 i32.lt_u if local.get $0 @@ -1035,14 +1011,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36508 + i32.const 34540 i32.lt_u if local.get $0 @@ -1065,7 +1041,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36508 + i32.const 34540 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1094,7 +1070,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1178,7 +1154,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1230,7 +1206,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1262,8 +1238,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1168 + i32.const 1232 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1273,7 +1249,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1290,7 +1266,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1323,8 +1299,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1168 + i32.const 1504 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1426,7 +1402,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1441,7 +1417,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1460,7 +1436,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1565,204 +1541,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3740 - i32.lt_s - if - i32.const 36528 - i32.const 36576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -1773,7 +1551,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1821,205 +1599,40 @@ (func $~start call $start:std/dataview ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3740 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3740 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$239 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$239 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36528 - i32.const 36576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -2027,11 +1640,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2048,9 +1661,9 @@ i32.load offset=8 i32.ge_u if - i32.const 1344 - i32.const 3536 - i32.const 178 + i32.const 1360 + i32.const 1568 + i32.const 179 i32.const 45 call $~lib/builtins/abort unreachable @@ -2076,11 +1689,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2132,8 +1745,8 @@ i32.gt_u i32.or if - i32.const 3424 - i32.const 3600 + i32.const 1056 + i32.const 1632 i32.const 25 i32.const 7 call $~lib/builtins/abort @@ -2175,11 +1788,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2211,11 +1824,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2238,8 +1851,8 @@ i32.lt_s i32.or if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 35 i32.const 7 call $~lib/builtins/abort @@ -2290,11 +1903,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2311,8 +1924,8 @@ i32.const 8 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 44 i32.const 7 call $~lib/builtins/abort @@ -2370,11 +1983,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2391,8 +2004,8 @@ i32.load offset=8 i32.ge_u if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 51 i32.const 50 call $~lib/builtins/abort @@ -2417,11 +2030,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2444,8 +2057,8 @@ i32.lt_s i32.or if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 58 i32.const 7 call $~lib/builtins/abort @@ -2485,11 +2098,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2512,8 +2125,8 @@ i32.lt_s i32.or if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 66 i32.const 7 call $~lib/builtins/abort @@ -2556,11 +2169,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2577,8 +2190,8 @@ i32.const 8 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 151 i32.const 7 call $~lib/builtins/abort @@ -2631,11 +2244,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2652,8 +2265,8 @@ i32.load offset=8 i32.ge_u if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 72 i32.const 50 call $~lib/builtins/abort @@ -2678,11 +2291,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2705,8 +2318,8 @@ i32.lt_s i32.or if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 79 i32.const 7 call $~lib/builtins/abort @@ -2744,11 +2357,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2771,8 +2384,8 @@ i32.lt_s i32.or if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 87 i32.const 7 call $~lib/builtins/abort @@ -2815,11 +2428,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2836,8 +2449,8 @@ i32.const 8 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 159 i32.const 7 call $~lib/builtins/abort @@ -2890,11 +2503,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2911,8 +2524,8 @@ i32.const 4 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 95 i32.const 7 call $~lib/builtins/abort @@ -2960,11 +2573,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2981,8 +2594,8 @@ i32.const 8 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 103 i32.const 7 call $~lib/builtins/abort @@ -3042,11 +2655,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3063,8 +2676,8 @@ i32.const 2 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 116 i32.const 7 call $~lib/builtins/abort @@ -3101,11 +2714,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3122,8 +2735,8 @@ i32.const 4 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 123 i32.const 7 call $~lib/builtins/abort @@ -3162,11 +2775,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3183,8 +2796,8 @@ i32.const 8 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 167 i32.const 7 call $~lib/builtins/abort @@ -3236,11 +2849,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3257,8 +2870,8 @@ i32.const 2 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 135 i32.const 7 call $~lib/builtins/abort @@ -3295,11 +2908,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3316,8 +2929,8 @@ i32.const 4 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 142 i32.const 7 call $~lib/builtins/abort @@ -3356,11 +2969,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s if - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3377,8 +2990,8 @@ i32.const 8 i32.lt_s if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 174 i32.const 7 call $~lib/builtins/abort @@ -3435,7 +3048,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3447,34 +3060,34 @@ memory.size i32.const 16 i32.shl - i32.const 36508 + i32.const 34540 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1284 + i32.const 1280 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1288 + i32.const 1280 i32.store - i32.const 1264 + i32.const 1280 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1316 + i32.const 1312 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1320 + i32.const 1312 i32.store - i32.const 1296 + i32.const 1312 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1460 + i32.const 1456 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1464 + i32.const 1456 i32.store - i32.const 1440 + i32.const 1456 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer block $__inlined_func$~lib/typedarray/Uint8Array#constructor (result i32) @@ -3484,7 +3097,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer @@ -3505,7 +3118,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer @@ -3678,7 +3291,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 15 i32.const 3 call $~lib/builtins/abort @@ -3695,7 +3308,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -3712,7 +3325,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 17 i32.const 3 call $~lib/builtins/abort @@ -3729,7 +3342,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -3746,7 +3359,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 19 i32.const 3 call $~lib/builtins/abort @@ -3763,7 +3376,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -3780,7 +3393,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -3797,7 +3410,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 23 i32.const 3 call $~lib/builtins/abort @@ -3814,7 +3427,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 24 i32.const 3 call $~lib/builtins/abort @@ -3831,7 +3444,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 25 i32.const 3 call $~lib/builtins/abort @@ -3847,7 +3460,7 @@ f64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -3863,7 +3476,7 @@ f64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 28 i32.const 3 call $~lib/builtins/abort @@ -3879,7 +3492,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 30 i32.const 3 call $~lib/builtins/abort @@ -3895,7 +3508,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 31 i32.const 3 call $~lib/builtins/abort @@ -3911,7 +3524,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -3927,7 +3540,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -3943,7 +3556,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 34 i32.const 3 call $~lib/builtins/abort @@ -3959,7 +3572,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -3975,7 +3588,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -3991,7 +3604,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -4010,7 +3623,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 39 i32.const 3 call $~lib/builtins/abort @@ -4029,7 +3642,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 40 i32.const 3 call $~lib/builtins/abort @@ -4048,7 +3661,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 41 i32.const 3 call $~lib/builtins/abort @@ -4067,7 +3680,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -4086,7 +3699,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -4105,7 +3718,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -4124,7 +3737,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -4143,7 +3756,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -4162,7 +3775,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 48 i32.const 3 call $~lib/builtins/abort @@ -4181,7 +3794,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -4200,7 +3813,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 50 i32.const 3 call $~lib/builtins/abort @@ -4219,7 +3832,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 51 i32.const 3 call $~lib/builtins/abort @@ -4238,7 +3851,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -4257,7 +3870,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 53 i32.const 3 call $~lib/builtins/abort @@ -4274,7 +3887,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 55 i32.const 3 call $~lib/builtins/abort @@ -4291,7 +3904,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -4308,7 +3921,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -4325,7 +3938,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 58 i32.const 3 call $~lib/builtins/abort @@ -4342,7 +3955,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 59 i32.const 3 call $~lib/builtins/abort @@ -4359,7 +3972,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -4376,7 +3989,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 62 i32.const 3 call $~lib/builtins/abort @@ -4393,7 +4006,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 63 i32.const 3 call $~lib/builtins/abort @@ -4410,7 +4023,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -4427,7 +4040,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -4443,7 +4056,7 @@ i64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -4459,7 +4072,7 @@ i64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -4475,7 +4088,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 70 i32.const 3 call $~lib/builtins/abort @@ -4491,7 +4104,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 71 i32.const 3 call $~lib/builtins/abort @@ -4507,7 +4120,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 72 i32.const 3 call $~lib/builtins/abort @@ -4523,7 +4136,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 73 i32.const 3 call $~lib/builtins/abort @@ -4539,7 +4152,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -4555,7 +4168,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 75 i32.const 3 call $~lib/builtins/abort @@ -4571,7 +4184,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 76 i32.const 3 call $~lib/builtins/abort @@ -4587,7 +4200,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 77 i32.const 3 call $~lib/builtins/abort @@ -4606,7 +4219,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 79 i32.const 3 call $~lib/builtins/abort @@ -4625,7 +4238,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 80 i32.const 3 call $~lib/builtins/abort @@ -4644,7 +4257,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -4663,7 +4276,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 82 i32.const 3 call $~lib/builtins/abort @@ -4682,7 +4295,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -4701,7 +4314,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -4720,7 +4333,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 85 i32.const 3 call $~lib/builtins/abort @@ -4739,7 +4352,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 87 i32.const 3 call $~lib/builtins/abort @@ -4758,7 +4371,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 88 i32.const 3 call $~lib/builtins/abort @@ -4777,7 +4390,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 89 i32.const 3 call $~lib/builtins/abort @@ -4796,7 +4409,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 90 i32.const 3 call $~lib/builtins/abort @@ -4815,7 +4428,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 91 i32.const 3 call $~lib/builtins/abort @@ -4834,7 +4447,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 92 i32.const 3 call $~lib/builtins/abort @@ -4853,7 +4466,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 93 i32.const 3 call $~lib/builtins/abort @@ -4870,7 +4483,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 95 i32.const 3 call $~lib/builtins/abort @@ -4887,7 +4500,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 96 i32.const 3 call $~lib/builtins/abort @@ -4904,7 +4517,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -4921,7 +4534,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -4938,7 +4551,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 99 i32.const 3 call $~lib/builtins/abort @@ -4955,7 +4568,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 101 i32.const 3 call $~lib/builtins/abort @@ -4972,7 +4585,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 102 i32.const 3 call $~lib/builtins/abort @@ -4989,7 +4602,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 103 i32.const 3 call $~lib/builtins/abort @@ -5006,7 +4619,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -5023,7 +4636,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -5039,7 +4652,7 @@ i64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 107 i32.const 3 call $~lib/builtins/abort @@ -5055,7 +4668,7 @@ i64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -5079,7 +4692,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -5103,7 +4716,7 @@ f32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -5126,7 +4739,7 @@ f64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 117 i32.const 3 call $~lib/builtins/abort @@ -5149,7 +4762,7 @@ f64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 120 i32.const 3 call $~lib/builtins/abort @@ -5163,7 +4776,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5176,8 +4789,8 @@ i32.load offset=8 i32.eqz if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 109 i32.const 50 call $~lib/builtins/abort @@ -5204,7 +4817,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 123 i32.const 3 call $~lib/builtins/abort @@ -5230,7 +4843,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -5256,7 +4869,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 129 i32.const 3 call $~lib/builtins/abort @@ -5280,7 +4893,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 132 i32.const 3 call $~lib/builtins/abort @@ -5304,7 +4917,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -5327,7 +4940,7 @@ i64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -5350,7 +4963,7 @@ i64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -5364,7 +4977,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5377,8 +4990,8 @@ i32.load offset=8 i32.eqz if - i32.const 1344 - i32.const 3600 + i32.const 1360 + i32.const 1632 i32.const 128 i32.const 50 call $~lib/builtins/abort @@ -5405,7 +5018,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 144 i32.const 3 call $~lib/builtins/abort @@ -5431,7 +5044,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -5457,7 +5070,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 150 i32.const 3 call $~lib/builtins/abort @@ -5481,7 +5094,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 153 i32.const 3 call $~lib/builtins/abort @@ -5505,7 +5118,7 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 156 i32.const 3 call $~lib/builtins/abort @@ -5528,7 +5141,7 @@ i64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 159 i32.const 3 call $~lib/builtins/abort @@ -5551,7 +5164,7 @@ i64.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 162 i32.const 3 call $~lib/builtins/abort @@ -5571,7 +5184,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3740 + i32.const 1772 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5609,7 +5222,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 165 i32.const 3 call $~lib/builtins/abort @@ -5624,13 +5237,13 @@ i32.ne if i32.const 0 - i32.const 3664 + i32.const 1696 i32.const 166 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 36508 + i32.const 34540 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -5671,8 +5284,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36528 - i32.const 36576 + i32.const 34560 + i32.const 34608 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 68c4bc1bdb..19b880b48e 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -12,19 +12,20 @@ (type $10 (func (param i32 i32 i32 i32 i32 i32 i32) (result i64))) (type $11 (func (param i32 i32 i64) (result i32))) (type $12 (func (result i32))) - (type $13 (func (param i32 i64 i32))) - (type $14 (func (param i64 i32) (result i32))) - (type $15 (func (param i32 i64 i32 i32))) - (type $16 (func (param i32 i64))) - (type $17 (func (param i32) (result i64))) - (type $18 (func (param i32 i32 i32 i64) (result i64))) + (type $13 (func (param i32 i64))) + (type $14 (func (param i32) (result i64))) + (type $15 (func (param i32 i32 i32 i64) (result i64))) + (type $16 (func (param i32 i64 i32))) + (type $17 (func (param i64 i32) (result i32))) + (type $18 (func (param i32 i64 i32 i32))) (type $19 (func (param i32 i32 i32 i32 i32) (result i32))) (type $20 (func (param i32 i64) (result i32))) (type $21 (func (param i32 i64) (result i64))) (type $22 (func (param i32 i32 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)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/date/_day (mut i32) (i32.const 0)) + (global $~lib/date/_month (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)) @@ -33,142 +34,141 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/date/_day (mut i32) (i32.const 0)) - (global $~lib/date/_month (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 7536)) - (global $~lib/memory/__data_end i32 (i32.const 7572)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 40340)) - (global $~lib/memory/__heap_base i32 (i32.const 40340)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $~lib/rt/__rtti_base i32 (i32.const 7408)) + (global $~lib/memory/__data_end i32 (i32.const 7444)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 40212)) + (global $~lib/memory/__heap_base i32 (i32.const 40212)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00D\00a\00t\00e\00\00\00\00\00") - (data $20 (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00~\00l\00i\00b\00/\00d\00a\00t\00e\00.\00t\00s\00\00\00\00\00") - (data $21 (i32.const 2476) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s\00\00\00\00\00\00\00") - (data $22 (i32.const 2524) "\00\03\02\05\00\03\05\01\04\06\02\04") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00T\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00Z\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2700) "L\00\00\00\03\00\00\00\00\00\00\00\05\00\00\008\00\00\00\00\00\00\00\00\n\00\00\00\00\00\00\00\n\00\00\00\00\00\00@\n\00\00\00\00\00\00\10\02\00\00\00\00\00\00\10\02\00\00\00\00\00\00`\n\00\00\00\00\00\00\80\n\00\00\00\00\00\00") - (data $29 (i32.const 2780) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\000\000\000\000\00-\000\001\00-\000\001\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2860) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\000\000\000\000\000\001\00-\001\002\00-\003\001\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00") - (data $31 (i32.const 2940) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\000\000\000\001\00-\000\004\00-\000\007\00T\002\003\00:\000\006\00:\004\000\00.\000\000\000\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 3020) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\002\000\000\009\00-\000\001\00-\000\006\00T\000\008\00:\004\000\00:\003\001\00.\000\002\000\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 3100) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\002\000\000\009\00-\000\001\00-\000\006\00T\000\008\00:\004\000\00:\003\001\00.\004\005\006\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 3180) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\000\001\002\001\008\004\00-\000\004\00-\000\008\00T\001\003\00:\000\007\00:\001\001\00.\000\002\000\00Z\00\00\00\00\00\00\00") - (data $35 (i32.const 3260) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\009\009\009\009\00-\001\002\00-\003\001\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 3340) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\000\001\000\000\000\000\00-\000\001\00-\000\001\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") - (data $37 (i32.const 3420) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\000\000\000\000\002\002\00-\000\006\00-\001\006\00T\001\007\00:\001\003\00:\005\000\00.\007\007\004\00Z\00\00\00\00\00\00\00") - (data $38 (i32.const 3500) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00S\00u\00n\00 \00\00\00\00\00") - (data $39 (i32.const 3532) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00M\00o\00n\00 \00\00\00\00\00") - (data $40 (i32.const 3564) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00T\00u\00e\00 \00\00\00\00\00") - (data $41 (i32.const 3596) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00W\00e\00d\00 \00\00\00\00\00") - (data $42 (i32.const 3628) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00T\00h\00u\00 \00\00\00\00\00") - (data $43 (i32.const 3660) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00F\00r\00i\00 \00\00\00\00\00") - (data $44 (i32.const 3692) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00S\00a\00t\00 \00\00\00\00\00") - (data $45 (i32.const 3724) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\1c\00\00\00\c0\r\00\00\e0\r\00\00\00\0e\00\00 \0e\00\00@\0e\00\00`\0e\00\00\80\0e\00\00") - (data $46 (i32.const 3772) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00J\00a\00n\00 \00\00\00\00\00") - (data $47 (i32.const 3804) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00F\00e\00b\00 \00\00\00\00\00") - (data $48 (i32.const 3836) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00M\00a\00r\00 \00\00\00\00\00") - (data $49 (i32.const 3868) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00p\00r\00 \00\00\00\00\00") - (data $50 (i32.const 3900) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00M\00a\00y\00 \00\00\00\00\00") - (data $51 (i32.const 3932) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00J\00u\00n\00 \00\00\00\00\00") - (data $52 (i32.const 3964) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00J\00u\00l\00 \00\00\00\00\00") - (data $53 (i32.const 3996) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00u\00g\00 \00\00\00\00\00") - (data $54 (i32.const 4028) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00S\00e\00p\00 \00\00\00\00\00") - (data $55 (i32.const 4060) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00O\00c\00t\00 \00\00\00\00\00") - (data $56 (i32.const 4092) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00N\00o\00v\00 \00\00\00\00\00") - (data $57 (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00D\00e\00c\00 \00\00\00\00\00") - (data $58 (i32.const 4156) "L\00\00\00\00\00\00\00\00\00\00\00\05\00\00\000\00\00\00\d0\0e\00\00\f0\0e\00\00\10\0f\00\000\0f\00\00P\0f\00\00p\0f\00\00\90\0f\00\00\b0\0f\00\00\d0\0f\00\00\f0\0f\00\00\10\10\00\000\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $59 (i32.const 4236) ",\00\00\00\03\00\00\00\00\00\00\00\05\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $60 (i32.const 4284) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00 \00-\00\00\00\00\00\00\00\00\00") - (data $61 (i32.const 4316) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $62 (i32.const 4348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00W\00e\00d\00 \00J\00a\00n\00 \000\001\00 \000\000\002\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $63 (i32.const 4412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00S\00u\00n\00 \00F\00e\00b\00 \000\002\00 \002\000\002\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $64 (i32.const 4476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00T\00h\00u\00 \00J\00u\00l\00 \000\001\00 \00-\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $65 (i32.const 4540) ",\00\00\00\03\00\00\00\00\00\00\00\05\00\00\00\14\00\00\00\00\00\00\00\10\02\00\00\00\00\00\00\10\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $66 (i32.const 4588) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\000\000\00:\000\000\00:\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $67 (i32.const 4636) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\002\003\00:\005\009\00:\005\009\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $68 (i32.const 4684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00S\00u\00n\00,\00 \00\00\00") - (data $69 (i32.const 4716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00M\00o\00n\00,\00 \00\00\00") - (data $70 (i32.const 4748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00T\00u\00e\00,\00 \00\00\00") - (data $71 (i32.const 4780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00W\00e\00d\00,\00 \00\00\00") - (data $72 (i32.const 4812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00T\00h\00u\00,\00 \00\00\00") - (data $73 (i32.const 4844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00F\00r\00i\00,\00 \00\00\00") - (data $74 (i32.const 4876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00S\00a\00t\00,\00 \00\00\00") - (data $75 (i32.const 4908) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\1c\00\00\00`\12\00\00\80\12\00\00\a0\12\00\00\c0\12\00\00\e0\12\00\00\00\13\00\00 \13\00\00") - (data $76 (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00J\00a\00n\00 \00\00\00") - (data $77 (i32.const 4988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00F\00e\00b\00 \00\00\00") - (data $78 (i32.const 5020) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00M\00a\00r\00 \00\00\00") - (data $79 (i32.const 5052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00A\00p\00r\00 \00\00\00") - (data $80 (i32.const 5084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00M\00a\00y\00 \00\00\00") - (data $81 (i32.const 5116) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00J\00u\00n\00 \00\00\00") - (data $82 (i32.const 5148) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00J\00u\00l\00 \00\00\00") - (data $83 (i32.const 5180) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00A\00u\00g\00 \00\00\00") - (data $84 (i32.const 5212) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00S\00e\00p\00 \00\00\00") - (data $85 (i32.const 5244) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00O\00c\00t\00 \00\00\00") - (data $86 (i32.const 5276) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00N\00o\00v\00 \00\00\00") - (data $87 (i32.const 5308) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00D\00e\00c\00 \00\00\00") - (data $88 (i32.const 5340) "L\00\00\00\00\00\00\00\00\00\00\00\05\00\00\000\00\00\00p\13\00\00\90\13\00\00\b0\13\00\00\d0\13\00\00\f0\13\00\00\10\14\00\000\14\00\00P\14\00\00p\14\00\00\90\14\00\00\b0\14\00\00\d0\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $89 (i32.const 5420) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00G\00M\00T\00\00\00\00\00") - (data $90 (i32.const 5452) "L\00\00\00\03\00\00\00\00\00\00\00\05\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\10\00\00\00\00\00\00\10\02\00\00\00\00\00\00\10\02\00\00\00\00\00\00@\15\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $91 (i32.const 5532) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\00W\00e\00d\00,\00 \000\001\00 \00J\00a\00n\00 \000\000\002\000\00 \000\000\00:\000\000\00:\000\000\00 \00G\00M\00T\00\00\00") - (data $92 (i32.const 5612) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\00M\00o\00n\00,\00 \000\003\00 \00F\00e\00b\00 \002\000\002\000\00 \001\004\00:\005\003\00:\003\003\00 \00G\00M\00T\00\00\00") - (data $93 (i32.const 5692) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00<\00\00\00T\00h\00u\00,\00 \000\001\00 \00J\00u\00l\00 \00-\000\000\000\001\00 \000\000\00:\000\000\00:\000\000\00 \00G\00M\00T\00") - (data $94 (i32.const 5772) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\009\007\006\00-\000\002\00-\000\002\00\00\00\00\00\00\00\00\00") - (data $95 (i32.const 5820) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $96 (i32.const 5868) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $97 (i32.const 5916) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $98 (i32.const 6044) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\009\007\006\00-\002\00-\002\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $99 (i32.const 6092) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\002\003\004\005\00-\001\001\00-\000\004\00\00\00\00\00\00\00\00\00") - (data $100 (i32.const 6140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00\00\00\00\00\00\00") - (data $101 (i32.const 6204) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $102 (i32.const 6284) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $103 (i32.const 6364) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00-\000\008\00:\000\000\00\00\00") - (data $104 (i32.const 6444) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00+\000\005\00:\003\000\00\00\00") - (data $105 (i32.const 6524) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00") - (data $106 (i32.const 6588) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $107 (i32.const 6668) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\008\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00+\000\000\00:\000\000\00\00\00\00\00") - (data $108 (i32.const 6748) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00\00\00\00\00\00\00\00\00") - (data $109 (i32.const 6828) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00Z\00\00\00\00\00\00\00") - (data $110 (i32.const 6908) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00+\000\000\00:\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $111 (i32.const 7004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\000\000\000\00\00\00\00\00") - (data $112 (i32.const 7036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\000\000\001\00\00\00\00\00") - (data $113 (i32.const 7068) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\009\007\006\00\00\00\00\00") - (data $114 (i32.const 7100) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\009\007\006\00-\000\002\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $115 (i32.const 7148) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $116 (i32.const 7212) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") - (data $117 (i32.const 7292) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\003\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") - (data $118 (i32.const 7372) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00") - (data $119 (i32.const 7452) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z\00\00\00\00\00\00\00") - (data $120 (i32.const 7536) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\04A\00\00\02A\00\00\02\t\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00D\00a\00t\00e\00\00\00\00\00") + (data $1 (i32.const 60) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00~\00l\00i\00b\00/\00d\00a\00t\00e\00.\00t\00s\00\00\00\00\00") + (data $2 (i32.const 108) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s\00\00\00\00\00\00\00") + (data $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 220) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 464) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 492) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 556) "\00\03\02\05\00\03\05\01\04\06\02\04") + (data $12 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 636) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 860) "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 $18 (i32.const 1260) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2316) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 2444) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00T\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00Z\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 2572) "L\00\00\00\03\00\00\00\00\00\00\00\05\00\00\008\00\00\00\00\00\00\00P\02\00\00\00\00\00\00P\02\00\00\00\00\00\00\a0\t\00\00\00\00\00\00\c0\t\00\00\00\00\00\00\c0\t\00\00\00\00\00\00\e0\t\00\00\00\00\00\00\00\n\00\00\00\00\00\00") + (data $26 (i32.const 2652) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\000\000\000\000\00-\000\001\00-\000\001\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 2732) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\000\000\000\000\000\001\00-\001\002\00-\003\001\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00") + (data $28 (i32.const 2812) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\000\000\000\001\00-\000\004\00-\000\007\00T\002\003\00:\000\006\00:\004\000\00.\000\000\000\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $29 (i32.const 2892) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\002\000\000\009\00-\000\001\00-\000\006\00T\000\008\00:\004\000\00:\003\001\00.\000\002\000\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 2972) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\002\000\000\009\00-\000\001\00-\000\006\00T\000\008\00:\004\000\00:\003\001\00.\004\005\006\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 3052) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\000\001\002\001\008\004\00-\000\004\00-\000\008\00T\001\003\00:\000\007\00:\001\001\00.\000\002\000\00Z\00\00\00\00\00\00\00") + (data $32 (i32.const 3132) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\009\009\009\009\00-\001\002\00-\003\001\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 3212) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\000\001\000\000\000\000\00-\000\001\00-\000\001\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") + (data $34 (i32.const 3292) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\000\000\000\000\002\002\00-\000\006\00-\001\006\00T\001\007\00:\001\003\00:\005\000\00.\007\007\004\00Z\00\00\00\00\00\00\00") + (data $35 (i32.const 3372) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00S\00u\00n\00 \00\00\00\00\00") + (data $36 (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00M\00o\00n\00 \00\00\00\00\00") + (data $37 (i32.const 3436) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00T\00u\00e\00 \00\00\00\00\00") + (data $38 (i32.const 3468) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00W\00e\00d\00 \00\00\00\00\00") + (data $39 (i32.const 3500) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00T\00h\00u\00 \00\00\00\00\00") + (data $40 (i32.const 3532) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00F\00r\00i\00 \00\00\00\00\00") + (data $41 (i32.const 3564) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00S\00a\00t\00 \00\00\00\00\00") + (data $42 (i32.const 3596) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\1c\00\00\00@\r\00\00`\r\00\00\80\r\00\00\a0\r\00\00\c0\r\00\00\e0\r\00\00\00\0e\00\00") + (data $43 (i32.const 3644) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00J\00a\00n\00 \00\00\00\00\00") + (data $44 (i32.const 3676) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00F\00e\00b\00 \00\00\00\00\00") + (data $45 (i32.const 3708) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00M\00a\00r\00 \00\00\00\00\00") + (data $46 (i32.const 3740) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00p\00r\00 \00\00\00\00\00") + (data $47 (i32.const 3772) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00M\00a\00y\00 \00\00\00\00\00") + (data $48 (i32.const 3804) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00J\00u\00n\00 \00\00\00\00\00") + (data $49 (i32.const 3836) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00J\00u\00l\00 \00\00\00\00\00") + (data $50 (i32.const 3868) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00u\00g\00 \00\00\00\00\00") + (data $51 (i32.const 3900) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00S\00e\00p\00 \00\00\00\00\00") + (data $52 (i32.const 3932) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00O\00c\00t\00 \00\00\00\00\00") + (data $53 (i32.const 3964) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00N\00o\00v\00 \00\00\00\00\00") + (data $54 (i32.const 3996) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00D\00e\00c\00 \00\00\00\00\00") + (data $55 (i32.const 4028) "L\00\00\00\00\00\00\00\00\00\00\00\05\00\00\000\00\00\00P\0e\00\00p\0e\00\00\90\0e\00\00\b0\0e\00\00\d0\0e\00\00\f0\0e\00\00\10\0f\00\000\0f\00\00P\0f\00\00p\0f\00\00\90\0f\00\00\b0\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 4108) ",\00\00\00\03\00\00\00\00\00\00\00\05\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $57 (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00 \00-\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 4188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $59 (i32.const 4220) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00W\00e\00d\00 \00J\00a\00n\00 \000\001\00 \000\000\002\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $60 (i32.const 4284) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00S\00u\00n\00 \00F\00e\00b\00 \000\002\00 \002\000\002\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $61 (i32.const 4348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00T\00h\00u\00 \00J\00u\00l\00 \000\001\00 \00-\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $62 (i32.const 4412) ",\00\00\00\03\00\00\00\00\00\00\00\05\00\00\00\14\00\00\00\00\00\00\00\c0\t\00\00\00\00\00\00\c0\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $63 (i32.const 4460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\000\000\00:\000\000\00:\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $64 (i32.const 4508) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\002\003\00:\005\009\00:\005\009\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $65 (i32.const 4556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00S\00u\00n\00,\00 \00\00\00") + (data $66 (i32.const 4588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00M\00o\00n\00,\00 \00\00\00") + (data $67 (i32.const 4620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00T\00u\00e\00,\00 \00\00\00") + (data $68 (i32.const 4652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00W\00e\00d\00,\00 \00\00\00") + (data $69 (i32.const 4684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00T\00h\00u\00,\00 \00\00\00") + (data $70 (i32.const 4716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00F\00r\00i\00,\00 \00\00\00") + (data $71 (i32.const 4748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00S\00a\00t\00,\00 \00\00\00") + (data $72 (i32.const 4780) ",\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\1c\00\00\00\e0\11\00\00\00\12\00\00 \12\00\00@\12\00\00`\12\00\00\80\12\00\00\a0\12\00\00") + (data $73 (i32.const 4828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00J\00a\00n\00 \00\00\00") + (data $74 (i32.const 4860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00F\00e\00b\00 \00\00\00") + (data $75 (i32.const 4892) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00M\00a\00r\00 \00\00\00") + (data $76 (i32.const 4924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00A\00p\00r\00 \00\00\00") + (data $77 (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00M\00a\00y\00 \00\00\00") + (data $78 (i32.const 4988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00J\00u\00n\00 \00\00\00") + (data $79 (i32.const 5020) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00J\00u\00l\00 \00\00\00") + (data $80 (i32.const 5052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00A\00u\00g\00 \00\00\00") + (data $81 (i32.const 5084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00S\00e\00p\00 \00\00\00") + (data $82 (i32.const 5116) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00O\00c\00t\00 \00\00\00") + (data $83 (i32.const 5148) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00N\00o\00v\00 \00\00\00") + (data $84 (i32.const 5180) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00D\00e\00c\00 \00\00\00") + (data $85 (i32.const 5212) "L\00\00\00\00\00\00\00\00\00\00\00\05\00\00\000\00\00\00\f0\12\00\00\10\13\00\000\13\00\00P\13\00\00p\13\00\00\90\13\00\00\b0\13\00\00\d0\13\00\00\f0\13\00\00\10\14\00\000\14\00\00P\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $86 (i32.const 5292) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00G\00M\00T\00\00\00\00\00") + (data $87 (i32.const 5324) "L\00\00\00\03\00\00\00\00\00\00\00\05\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00p\10\00\00\00\00\00\00\c0\t\00\00\00\00\00\00\c0\t\00\00\00\00\00\00\c0\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $88 (i32.const 5404) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\00W\00e\00d\00,\00 \000\001\00 \00J\00a\00n\00 \000\000\002\000\00 \000\000\00:\000\000\00:\000\000\00 \00G\00M\00T\00\00\00") + (data $89 (i32.const 5484) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\00M\00o\00n\00,\00 \000\003\00 \00F\00e\00b\00 \002\000\002\000\00 \001\004\00:\005\003\00:\003\003\00 \00G\00M\00T\00\00\00") + (data $90 (i32.const 5564) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00<\00\00\00T\00h\00u\00,\00 \000\001\00 \00J\00u\00l\00 \00-\000\000\000\001\00 \000\000\00:\000\000\00:\000\000\00 \00G\00M\00T\00") + (data $91 (i32.const 5644) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\009\007\006\00-\000\002\00-\000\002\00\00\00\00\00\00\00\00\00") + (data $92 (i32.const 5692) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $93 (i32.const 5740) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $94 (i32.const 5788) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $95 (i32.const 5916) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\009\007\006\00-\002\00-\002\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $96 (i32.const 5964) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\002\003\004\005\00-\001\001\00-\000\004\00\00\00\00\00\00\00\00\00") + (data $97 (i32.const 6012) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00\00\00\00\00\00\00") + (data $98 (i32.const 6076) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $99 (i32.const 6156) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $100 (i32.const 6236) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00-\000\008\00:\000\000\00\00\00") + (data $101 (i32.const 6316) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00+\000\005\00:\003\000\00\00\00") + (data $102 (i32.const 6396) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00") + (data $103 (i32.const 6460) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $104 (i32.const 6540) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\008\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00+\000\000\00:\000\000\00\00\00\00\00") + (data $105 (i32.const 6620) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00\00\00\00\00\00\00\00\00") + (data $106 (i32.const 6700) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00Z\00\00\00\00\00\00\00") + (data $107 (i32.const 6780) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00+\000\000\00:\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $108 (i32.const 6876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\000\000\000\00\00\00\00\00") + (data $109 (i32.const 6908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\000\000\001\00\00\00\00\00") + (data $110 (i32.const 6940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\009\007\006\00\00\00\00\00") + (data $111 (i32.const 6972) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\009\007\006\00-\000\002\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $112 (i32.const 7020) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $113 (i32.const 7084) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") + (data $114 (i32.const 7164) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\003\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") + (data $115 (i32.const 7244) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00") + (data $116 (i32.const 7324) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z\00\00\00\00\00\00\00") + (data $117 (i32.const 7408) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\04A\00\00\02A\00\00\02\t\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -299,19 +299,151 @@ i32.or return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 + (func $~lib/date/dateFromEpoch (param $ms i64) (result i32) + (local $a i64) + (local $b i64) + (local $da i32) + (local $a|4 i32) + (local $b|5 i32) + (local $q0 i32) + (local $r1 i32) + (local $u1 i64) + (local $dm1 i32) + (local $n1 i32) + (local $year i32) + (local $mo i32) + block $~lib/date/floorDiv|inlined.0 (result i64) + local.get $ms + local.set $a + i32.const 86400000 + i64.extend_i32_s + local.set $b + local.get $a + local.get $a + i64.const 0 + i64.lt_s + if (result i64) + local.get $b + i64.const 1 + i64.sub + else + i64.const 0 + end + i64.sub + local.get $b + i64.div_s + br $~lib/date/floorDiv|inlined.0 + end + i32.wrap_i64 + i32.const 4 + i32.mul + i32.const 719468 + i32.const 4 + i32.mul + i32.add + i32.const 3 + i32.or + local.set $da + block $~lib/date/floorDiv|inlined.1 (result i32) + local.get $da + local.set $a|4 + i32.const 146097 + local.set $b|5 + local.get $a|4 + local.get $a|4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $b|5 + i32.const 1 + i32.sub + else + i32.const 0 + end + i32.sub + local.get $b|5 + i32.div_s + br $~lib/date/floorDiv|inlined.1 + end + local.set $q0 + local.get $da + local.get $q0 + i32.const 146097 + i32.mul i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 + local.set $r1 + local.get $r1 + i32.const 3 + i32.or + i64.extend_i32_u + i64.const 2939745 + i64.mul + local.set $u1 + local.get $u1 + i32.wrap_i64 + i32.const 11758980 + i32.div_u + local.set $dm1 + i32.const 2141 + local.get $dm1 + i32.mul + i32.const 197913 + i32.add + local.set $n1 + i32.const 100 + local.get $q0 + i32.mul + local.get $u1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.add + local.set $year + local.get $n1 + i32.const 16 i32.shr_u + local.set $mo + local.get $n1 + i32.const 65535 + i32.and + i32.const 2141 + i32.div_s + i32.const 1 + i32.add + global.set $~lib/date/_day + local.get $dm1 + i32.const 306 + i32.ge_u + if + local.get $mo + i32.const 12 + i32.sub + local.set $mo + local.get $year + i32.const 1 + i32.add + local.set $year + end + local.get $mo + global.set $~lib/date/_month + local.get $year return ) + (func $~lib/date/Date#set:year (param $this i32) (param $year i32) + local.get $this + local.get $year + i32.store + ) + (func $~lib/date/Date#set:month (param $this i32) (param $month i32) + local.get $this + local.get $month + i32.store offset=4 + ) + (func $~lib/date/Date#set:day (param $this i32) (param $day i32) + local.get $this + local.get $day + i32.store offset=8 + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -376,7 +508,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -446,7 +578,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -463,7 +595,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -493,9 +625,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 368 + i32.const 432 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -562,7 +694,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 240 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -714,7 +846,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -734,7 +866,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -797,7 +929,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -950,7 +1082,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -967,7 +1099,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1056,7 +1188,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1099,7 +1231,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1117,7 +1249,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1185,7 +1317,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1302,7 +1434,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1348,7 +1480,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1380,7 +1512,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1624,7 +1756,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1844,7 +1976,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1955,8 +2087,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 176 + i32.const 512 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2058,7 +2190,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2129,7 +2261,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2286,7 +2418,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2401,7 +2533,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2421,7 +2553,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 512 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2469,8 +2601,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 176 + i32.const 240 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2515,46 +2647,221 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return + (func $~lib/date/Date#set:epochMillis (param $this i32) (param $epochMillis i64) + local.get $this + local.get $epochMillis + i64.store offset=16 + ) + (func $~lib/date/Date#get:epochMillis (param $this i32) (result i64) + local.get $this + i64.load offset=16 + ) + (func $~lib/date/Date#get:year (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/date/Date#get:month (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/date/Date#get:day (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/date/join (param $year i32) (param $month i32) (param $day i32) (param $ms i64) (result i64) + (local $a i64) + (local $b i64) + (local $m i64) + local.get $year + local.get $month + local.get $day + call $~lib/date/daysSinceEpoch + i32.const 86400000 + i64.extend_i32_s + i64.mul + block $~lib/date/euclidRem|inlined.4 (result i64) + local.get $ms + local.set $a + i32.const 86400000 + i64.extend_i32_s + local.set $b + local.get $a + local.get $b + i64.rem_s + local.set $m + local.get $m + local.get $m + i64.const 0 + i64.lt_s + if (result i64) + local.get $b else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return + i64.const 0 end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else + i64.add + br $~lib/date/euclidRem|inlined.4 + end + i64.add + return + ) + (func $~lib/date/dayOfWeek (param $year i32) (param $month i32) (param $day i32) (result i32) + (local $a i32) + (local $b i32) + (local $a|5 i32) + (local $b|6 i32) + (local $a|7 i32) + (local $b|8 i32) + (local $a|9 i32) + (local $b|10 i32) + (local $m i32) + local.get $year + local.get $month + i32.const 3 + i32.lt_s + i32.sub + local.set $year + local.get $year + block $~lib/date/floorDiv|inlined.2 (result i32) + local.get $year + local.set $a + i32.const 4 + local.set $b + local.get $a + local.get $a + i32.const 0 + i32.lt_s + if (result i32) + local.get $b + i32.const 1 + i32.sub + else + i32.const 0 + end + i32.sub + local.get $b + i32.div_s + br $~lib/date/floorDiv|inlined.2 + end + block $~lib/date/floorDiv|inlined.3 (result i32) + local.get $year + local.set $a|5 + i32.const 100 + local.set $b|6 + local.get $a|5 + local.get $a|5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $b|6 + i32.const 1 + i32.sub + else + i32.const 0 + end + i32.sub + local.get $b|6 + i32.div_s + br $~lib/date/floorDiv|inlined.3 + end + i32.sub + block $~lib/date/floorDiv|inlined.4 (result i32) + local.get $year + local.set $a|7 + i32.const 400 + local.set $b|8 + local.get $a|7 + local.get $a|7 + i32.const 0 + i32.lt_s + if (result i32) + local.get $b|8 + i32.const 1 + i32.sub + else + i32.const 0 + end + i32.sub + local.get $b|8 + i32.div_s + br $~lib/date/floorDiv|inlined.4 + end + i32.add + i32.add + local.set $year + i32.const 556 + local.get $month + i32.add + i32.const 1 + i32.sub + i32.load8_u + local.set $month + block $~lib/date/euclidRem|inlined.0 (result i32) + local.get $year + local.get $month + i32.add + local.get $day + i32.add + local.set $a|9 + i32.const 7 + local.set $b|10 + local.get $a|9 + local.get $b|10 + i32.rem_s + local.set $m + local.get $m + local.get $m + i32.const 0 + i32.lt_s + if (result i32) + local.get $b|10 + else + i32.const 0 + end + i32.add + br $~lib/date/euclidRem|inlined.0 + end + return + ) + (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) + local.get $value + i32.const 100000 + i32.lt_u + if + local.get $value + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $value + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $value + i32.const 10000 + i32.ge_u + i32.add + local.get $value + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $value + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $value + i32.const 1000000 + i32.ge_u + i32.add + return + else i32.const 8 local.get $value i32.const 1000000000 @@ -2605,14 +2912,14 @@ i32.const 100 i32.rem_u local.set $d2 - i32.const 764 + i32.const 860 local.get $d1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 764 + i32.const 860 local.get $d2 i32.const 2 i32.shl @@ -2655,7 +2962,7 @@ i32.const 2 i32.sub local.set $offset - i32.const 764 + i32.const 860 local.get $d1|10 i32.const 2 i32.shl @@ -2678,7 +2985,7 @@ i32.const 2 i32.sub local.set $offset - i32.const 764 + i32.const 860 local.get $num i32.const 2 i32.shl @@ -2725,7 +3032,7 @@ i32.const 1 i32.shl i32.add - i32.const 1184 + i32.const 1280 local.get $num i32.wrap_i64 i32.const 255 @@ -2747,7 +3054,7 @@ i32.and if local.get $buffer - i32.const 1184 + i32.const 1280 local.get $num i32.wrap_i64 i32.const 6 @@ -2790,466 +3097,140 @@ i64.extend_i32_s local.set $b64 local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/date/dateFromEpoch (param $ms i64) (result i32) - (local $a i64) - (local $b i64) - (local $da i32) - (local $a|4 i32) - (local $b|5 i32) - (local $q0 i32) - (local $r1 i32) - (local $u1 i64) - (local $dm1 i32) - (local $n1 i32) - (local $year i32) - (local $mo i32) - block $~lib/date/floorDiv|inlined.0 (result i64) - local.get $ms - local.set $a - i32.const 86400000 - i64.extend_i32_s - local.set $b - local.get $a - local.get $a - i64.const 0 - i64.lt_s - if (result i64) - local.get $b - i64.const 1 - i64.sub - else - i64.const 0 - end - i64.sub - local.get $b - i64.div_s - br $~lib/date/floorDiv|inlined.0 - end - i32.wrap_i64 - i32.const 4 - i32.mul - i32.const 719468 - i32.const 4 - i32.mul - i32.add - i32.const 3 - i32.or - local.set $da - block $~lib/date/floorDiv|inlined.1 (result i32) - local.get $da - local.set $a|4 - i32.const 146097 - local.set $b|5 - local.get $a|4 - local.get $a|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $b|5 - i32.const 1 - i32.sub - else - i32.const 0 - end - i32.sub - local.get $b|5 - i32.div_s - br $~lib/date/floorDiv|inlined.1 - end - local.set $q0 - local.get $da - local.get $q0 - i32.const 146097 - i32.mul - i32.sub - local.set $r1 - local.get $r1 - i32.const 3 - i32.or - i64.extend_i32_u - i64.const 2939745 - i64.mul - local.set $u1 - local.get $u1 - i32.wrap_i64 - i32.const 11758980 - i32.div_u - local.set $dm1 - i32.const 2141 - local.get $dm1 - i32.mul - i32.const 197913 - i32.add - local.set $n1 - i32.const 100 - local.get $q0 - i32.mul - local.get $u1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.add - local.set $year - local.get $n1 - i32.const 16 - i32.shr_u - local.set $mo - local.get $n1 - i32.const 65535 - i32.and - i32.const 2141 - i32.div_s - i32.const 1 - i32.add - global.set $~lib/date/_day - local.get $dm1 - i32.const 306 - i32.ge_u - if - local.get $mo - i32.const 12 - i32.sub - local.set $mo - local.get $year - i32.const 1 - i32.add - local.set $year - end - local.get $mo - global.set $~lib/date/_month - local.get $year - return - ) - (func $~lib/date/Date#set:year (param $this i32) (param $year i32) - local.get $this - local.get $year - i32.store - ) - (func $~lib/date/Date#set:month (param $this i32) (param $month i32) - local.get $this - local.get $month - i32.store offset=4 - ) - (func $~lib/date/Date#set:day (param $this i32) (param $day i32) - local.get $this - local.get $day - i32.store offset=8 - ) - (func $~lib/date/Date#set:epochMillis (param $this i32) (param $epochMillis i64) - local.get $this - local.get $epochMillis - i64.store offset=16 - ) - (func $~lib/date/Date#get:epochMillis (param $this i32) (result i64) - local.get $this - i64.load offset=16 - ) - (func $~lib/date/Date#get:year (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/date/Date#get:month (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/date/Date#get:day (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/date/join (param $year i32) (param $month i32) (param $day i32) (param $ms i64) (result i64) - (local $a i64) - (local $b i64) - (local $m i64) - local.get $year - local.get $month - local.get $day - call $~lib/date/daysSinceEpoch - i32.const 86400000 - i64.extend_i32_s - i64.mul - block $~lib/date/euclidRem|inlined.4 (result i64) - local.get $ms - local.set $a - i32.const 86400000 - i64.extend_i32_s - local.set $b - local.get $a - local.get $b - i64.rem_s - local.set $m - local.get $m - local.get $m - i64.const 0 - i64.lt_s - if (result i64) - local.get $b - else - i64.const 0 - end - i64.add - br $~lib/date/euclidRem|inlined.4 - end - i64.add - return - ) - (func $~lib/date/dayOfWeek (param $year i32) (param $month i32) (param $day i32) (result i32) - (local $a i32) - (local $b i32) - (local $a|5 i32) - (local $b|6 i32) - (local $a|7 i32) - (local $b|8 i32) - (local $a|9 i32) - (local $b|10 i32) - (local $m i32) - local.get $year - local.get $month - i32.const 3 - i32.lt_s - i32.sub - local.set $year - local.get $year - block $~lib/date/floorDiv|inlined.2 (result i32) - local.get $year - local.set $a - i32.const 4 - local.set $b - local.get $a - local.get $a - i32.const 0 - i32.lt_s - if (result i32) - local.get $b - i32.const 1 - i32.sub - else - i32.const 0 - end - i32.sub - local.get $b - i32.div_s - br $~lib/date/floorDiv|inlined.2 - end - block $~lib/date/floorDiv|inlined.3 (result i32) - local.get $year - local.set $a|5 - i32.const 100 - local.set $b|6 - local.get $a|5 - local.get $a|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $b|6 + local.set $b + i32.const 1 + local.set $e + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e i32.const 1 - i32.sub - else - i32.const 0 + i32.shl + local.set $e + br $while-continue|0 end - i32.sub - local.get $b|6 - i32.div_s - br $~lib/date/floorDiv|inlined.3 end - i32.sub - block $~lib/date/floorDiv|inlined.4 (result i32) - local.get $year - local.set $a|7 - i32.const 400 - local.set $b|8 - local.get $a|7 - local.get $a|7 - i32.const 0 - i32.lt_s - if (result i32) - local.get $b|8 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e i32.const 1 - i32.sub - else - i32.const 0 + i32.add + local.set $e + br $while-continue|1 end - i32.sub - local.get $b|8 - i32.div_s - br $~lib/date/floorDiv|inlined.4 end - i32.add - i32.add - local.set $year - i32.const 2524 - local.get $month - i32.add + local.get $e i32.const 1 i32.sub - i32.load8_u - local.set $month - block $~lib/date/euclidRem|inlined.0 (result i32) - local.get $year - local.get $month - i32.add - local.get $day - i32.add - local.set $a|9 + return + ) + (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) + (local $base i64) + (local $shift i64) + (local $mask i64) + (local $q i64) + local.get $radix + i64.extend_i32_s + local.set $base + local.get $radix + local.get $radix + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $radix + i32.ctz i32.const 7 - local.set $b|10 - local.get $a|9 - local.get $b|10 - i32.rem_s - local.set $m - local.get $m - local.get $m - i32.const 0 - i32.lt_s - if (result i32) - local.get $b|10 - else - i32.const 0 + i32.and + i64.extend_i32_s + local.set $shift + local.get $base + i64.const 1 + i64.sub + local.set $mask + loop $do-loop|0 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 2336 + local.get $num + local.get $mask + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $num + local.get $shift + i64.shr_u + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $num + local.get $base + i64.div_u + local.set $q + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 2336 + local.get $num + local.get $q + local.get $base + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $q + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|1 end - i32.add - br $~lib/date/euclidRem|inlined.0 end - return ) (func $~lib/number/I32#toString (param $this i32) (param $radix i32) (result i32) local.get $this @@ -3257,6 +3238,19 @@ call $~lib/util/number/itoa32 return ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/memory/memory.repeat (param $dst i32) (param $src i32) (param $srcLength i32) (param $count i32) (local $index i32) (local $total i32) @@ -3300,7 +3294,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 240 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -3363,6 +3357,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -3663,107 +3661,31 @@ (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) local.get $this i32.load offset=4 - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/date - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 40368 - i32.const 40416 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq + ) + (func $~start + global.get $~started if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end + i32.const 1 + global.set $~started + call $start:std/date + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 40240 + i32.const 40288 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3772,124 +3694,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 + i32.const 0 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/date/Date#constructor (param $this i32) (param $epochMillis i64) (result i32) (local $2 i32) @@ -3946,8 +3771,8 @@ local.get $epochMillis call $~lib/date/invalidDate if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 131 i32.const 35 call $~lib/builtins/abort @@ -4000,8 +3825,8 @@ local.get $time call $~lib/date/invalidDate if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 143 i32.const 28 call $~lib/builtins/abort @@ -4781,22 +4606,129 @@ global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $value - i32.const 10 - call $~lib/number/I32#toString + i32.const 0 + i32.store + local.get $value + i32.const 10 + call $~lib/number/I32#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $padding + i32.const 848 + call $~lib/string/String#padStart + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize + i32.add + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 2432 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 + local.get $left local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - local.get $padding - i32.const 752 - call $~lib/string/String#padStart + local.get $right local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -4833,7 +4765,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 2432 local.set $13 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -4854,7 +4786,7 @@ if (result i32) local.get $4 else - i32.const 96 + i32.const 2432 end local.set $13 global.get $~lib/memory/__stack_pointer @@ -5130,9 +5062,9 @@ if (result i32) local.get $isNeg if (result i32) - i32.const 2560 + i32.const 592 else - i32.const 2592 + i32.const 624 end local.set $19 global.get $~lib/memory/__stack_pointer @@ -5263,7 +5195,7 @@ local.get $ms local.tee $18 i32.store offset=60 - i32.const 2720 + i32.const 2592 local.set $19 global.get $~lib/memory/__stack_pointer local.get $19 @@ -5277,7 +5209,7 @@ i32.store offset=4 local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2720 + i32.const 2592 local.set $19 global.get $~lib/memory/__stack_pointer local.get $19 @@ -5291,7 +5223,7 @@ i32.store offset=4 local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2720 + i32.const 2592 local.set $19 global.get $~lib/memory/__stack_pointer local.get $19 @@ -5305,7 +5237,7 @@ i32.store offset=4 local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2720 + i32.const 2592 local.set $19 global.get $~lib/memory/__stack_pointer local.get $19 @@ -5319,7 +5251,7 @@ i32.store offset=4 local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2720 + i32.const 2592 local.set $19 global.get $~lib/memory/__stack_pointer local.get $19 @@ -5333,7 +5265,7 @@ i32.store offset=4 local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2720 + i32.const 2592 local.set $19 global.get $~lib/memory/__stack_pointer local.get $19 @@ -5347,7 +5279,7 @@ i32.store offset=4 local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2720 + i32.const 2592 local.set $19 global.get $~lib/memory/__stack_pointer local.get $19 @@ -5361,13 +5293,13 @@ i32.store offset=4 local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2720 + i32.const 2592 local.set $19 global.get $~lib/memory/__stack_pointer local.get $19 i32.store local.get $19 - i32.const 96 + i32.const 2432 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $19 global.get $~lib/memory/__stack_pointer @@ -5506,14 +5438,14 @@ global.get $~lib/memory/__stack_pointer i32.const 28 i32.const 5 - i32.const 3744 + i32.const 3616 call $~lib/rt/__newBuffer local.tee $weeks i32.store global.get $~lib/memory/__stack_pointer i32.const 48 i32.const 5 - i32.const 4176 + i32.const 4048 call $~lib/rt/__newBuffer local.tee $months i32.store offset=4 @@ -5607,9 +5539,9 @@ i32.const 0 i32.lt_s if (result i32) - i32.const 4304 + i32.const 4176 else - i32.const 4336 + i32.const 4208 end local.tee $18 i32.store offset=40 @@ -5617,7 +5549,7 @@ local.get $year local.tee $19 i32.store offset=44 - i32.const 4256 + i32.const 4128 local.set $20 global.get $~lib/memory/__stack_pointer local.get $20 @@ -5631,7 +5563,7 @@ i32.store offset=48 local.get $20 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4256 + i32.const 4128 local.set $20 global.get $~lib/memory/__stack_pointer local.get $20 @@ -5645,7 +5577,7 @@ i32.store offset=48 local.get $20 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4256 + i32.const 4128 local.set $20 global.get $~lib/memory/__stack_pointer local.get $20 @@ -5659,7 +5591,7 @@ i32.store offset=48 local.get $20 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4256 + i32.const 4128 local.set $20 global.get $~lib/memory/__stack_pointer local.get $20 @@ -5673,7 +5605,7 @@ i32.store offset=48 local.get $20 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4256 + i32.const 4128 local.set $20 global.get $~lib/memory/__stack_pointer local.get $20 @@ -5687,13 +5619,13 @@ i32.store offset=48 local.get $20 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4256 + i32.const 4128 local.set $20 global.get $~lib/memory/__stack_pointer local.get $20 i32.store offset=8 local.get $20 - i32.const 96 + i32.const 2432 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $20 global.get $~lib/memory/__stack_pointer @@ -5768,7 +5700,7 @@ local.get $secs local.tee $6 i32.store offset=24 - i32.const 4560 + i32.const 4432 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -5782,7 +5714,7 @@ i32.store offset=28 local.get $7 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4560 + i32.const 4432 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -5796,7 +5728,7 @@ i32.store offset=28 local.get $7 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4560 + i32.const 4432 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -5810,13 +5742,13 @@ i32.store offset=28 local.get $7 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4560 + i32.const 4432 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 i32.store local.get $7 - i32.const 96 + i32.const 2432 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $7 global.get $~lib/memory/__stack_pointer @@ -5865,14 +5797,14 @@ global.get $~lib/memory/__stack_pointer i32.const 28 i32.const 5 - i32.const 4928 + i32.const 4800 call $~lib/rt/__newBuffer local.tee $weeks i32.store global.get $~lib/memory/__stack_pointer i32.const 48 i32.const 5 - i32.const 5360 + i32.const 5232 call $~lib/rt/__newBuffer local.tee $months i32.store offset=4 @@ -6002,9 +5934,9 @@ i32.const 0 i32.lt_s if (result i32) - i32.const 2560 + i32.const 592 else - i32.const 96 + i32.const 2432 end local.tee $21 i32.store offset=52 @@ -6024,7 +5956,7 @@ local.get $secs local.tee $25 i32.store offset=68 - i32.const 5472 + i32.const 5344 local.set $26 global.get $~lib/memory/__stack_pointer local.get $26 @@ -6038,7 +5970,7 @@ i32.store offset=72 local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 5472 + i32.const 5344 local.set $26 global.get $~lib/memory/__stack_pointer local.get $26 @@ -6052,7 +5984,7 @@ i32.store offset=72 local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 5472 + i32.const 5344 local.set $26 global.get $~lib/memory/__stack_pointer local.get $26 @@ -6066,7 +5998,7 @@ i32.store offset=72 local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 5472 + i32.const 5344 local.set $26 global.get $~lib/memory/__stack_pointer local.get $26 @@ -6080,7 +6012,7 @@ i32.store offset=72 local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 5472 + i32.const 5344 local.set $26 global.get $~lib/memory/__stack_pointer local.get $26 @@ -6094,7 +6026,7 @@ i32.store offset=72 local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 5472 + i32.const 5344 local.set $26 global.get $~lib/memory/__stack_pointer local.get $26 @@ -6108,7 +6040,7 @@ i32.store offset=72 local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 5472 + i32.const 5344 local.set $26 global.get $~lib/memory/__stack_pointer local.get $26 @@ -6122,7 +6054,7 @@ i32.store offset=72 local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 5472 + i32.const 5344 local.set $26 global.get $~lib/memory/__stack_pointer local.get $26 @@ -6136,13 +6068,13 @@ i32.store offset=72 local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 5472 + i32.const 5344 local.set $26 global.get $~lib/memory/__stack_pointer local.get $26 i32.store offset=8 local.get $26 - i32.const 96 + i32.const 2432 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $26 global.get $~lib/memory/__stack_pointer @@ -6375,7 +6307,7 @@ local.get $size i32.eqz if - i32.const 96 + i32.const 2432 local.set $22 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -6899,8 +6831,8 @@ i32.shr_u i32.gt_u if - i32.const 5888 - i32.const 5840 + i32.const 5760 + i32.const 5712 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -6964,6 +6896,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -7002,9 +6938,9 @@ i32.const 0 i32.lt_s if - i32.const 320 - i32.const 5840 - i32.const 130 + i32.const 368 + i32.const 5712 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -7042,6 +6978,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -7095,6 +7035,10 @@ i32.add local.get $value i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -7281,6 +7225,10 @@ i32.add local.get $charStr i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $result local.get $charStr i32.const 1 @@ -7319,7 +7267,7 @@ i32.store offset=4 local.get $21 call $~lib/array/Array<~lib/string/String>#get:dataStart - i32.const 96 + i32.const 2432 i32.store local.get $result|12 local.set $21 @@ -7411,7 +7359,7 @@ local.get $21 i32.store offset=4 local.get $21 - i32.const 96 + i32.const 2432 call $~lib/array/Array<~lib/string/String>#push drop end @@ -7511,7 +7459,7 @@ local.get $21 i32.store offset=4 local.get $21 - i32.const 96 + i32.const 2432 call $~lib/array/Array<~lib/string/String>#push drop end @@ -7616,9 +7564,9 @@ call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if - i32.const 320 - i32.const 5840 - i32.const 114 + i32.const 368 + i32.const 5712 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -7646,9 +7594,9 @@ local.get $value i32.eqz if - i32.const 5936 - i32.const 5840 - i32.const 118 + i32.const 5808 + i32.const 5712 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -7735,7 +7683,7 @@ i32.const 0 i32.le_s if - i32.const 96 + i32.const 2432 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7957,8 +7905,8 @@ call $~lib/string/String#get:length i32.eqz if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 50 i32.const 33 call $~lib/builtins/abort @@ -7984,7 +7932,7 @@ local.get $46 i32.store local.get $46 - i32.const 2624 + i32.const 2464 i32.const 0 call $~lib/string/String#indexOf local.set $posT @@ -8086,8 +8034,8 @@ i32.sub i32.eq if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 74 i32.const 13 call $~lib/builtins/abort @@ -8099,7 +8047,7 @@ local.get $46 i32.store local.get $46 - i32.const 528 + i32.const 2496 local.get $i i32.const 1 i32.add @@ -8250,7 +8198,7 @@ local.get $46 i32.store local.get $46 - i32.const 528 + i32.const 2496 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -8269,8 +8217,8 @@ i32.const 1 i32.le_s if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 96 i32.const 21 call $~lib/builtins/abort @@ -8347,7 +8295,7 @@ local.get $46 i32.store local.get $46 - i32.const 2656 + i32.const 2528 i32.const 0 call $~lib/string/String#indexOf local.set $posDot @@ -8400,7 +8348,7 @@ i32.store local.get $46 i32.const 3 - i32.const 752 + i32.const 848 call $~lib/string/String#padEnd local.tee $value|31 i32.store offset=48 @@ -8446,7 +8394,7 @@ local.get $46 i32.store local.get $46 - i32.const 2560 + i32.const 592 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -8746,23 +8694,6 @@ i32.const 0 i32.const 436 memory.fill - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace block $~lib/date/Date.UTC|inlined.0 (result i64) i32.const 1970 local.set $0 @@ -8808,8 +8739,8 @@ local.get $7 call $~lib/date/invalidDate if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 36 i32.const 26 call $~lib/builtins/abort @@ -8823,7 +8754,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 3 i32.const 3 call $~lib/builtins/abort @@ -8874,8 +8805,8 @@ local.get $15 call $~lib/date/invalidDate if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 36 i32.const 26 call $~lib/builtins/abort @@ -8889,7 +8820,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 4 i32.const 3 call $~lib/builtins/abort @@ -8940,8 +8871,8 @@ local.get $23 call $~lib/date/invalidDate if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 36 i32.const 26 call $~lib/builtins/abort @@ -8955,7 +8886,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 5 i32.const 3 call $~lib/builtins/abort @@ -9006,8 +8937,8 @@ local.get $31 call $~lib/date/invalidDate if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 36 i32.const 26 call $~lib/builtins/abort @@ -9021,7 +8952,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -9072,8 +9003,8 @@ local.get $39 call $~lib/date/invalidDate if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 36 i32.const 26 call $~lib/builtins/abort @@ -9087,7 +9018,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 7 i32.const 3 call $~lib/builtins/abort @@ -9138,8 +9069,8 @@ local.get $47 call $~lib/date/invalidDate if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 36 i32.const 26 call $~lib/builtins/abort @@ -9153,7 +9084,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -9204,8 +9135,8 @@ local.get $55 call $~lib/date/invalidDate if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 36 i32.const 26 call $~lib/builtins/abort @@ -9219,12 +9150,29 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 9 i32.const 3 call $~lib/builtins/abort unreachable end + 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 288 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 464 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace i64.const 1541847600001 local.set $56 global.get $~lib/memory/__stack_pointer @@ -9252,7 +9200,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -9290,7 +9238,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 20 i32.const 3 call $~lib/builtins/abort @@ -9321,7 +9269,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 28 i32.const 3 call $~lib/builtins/abort @@ -9348,7 +9296,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 29 i32.const 3 call $~lib/builtins/abort @@ -9373,7 +9321,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 30 i32.const 3 call $~lib/builtins/abort @@ -9391,7 +9339,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 31 i32.const 3 call $~lib/builtins/abort @@ -9409,7 +9357,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -9427,7 +9375,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -9445,7 +9393,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 34 i32.const 3 call $~lib/builtins/abort @@ -9476,7 +9424,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 40 i32.const 3 call $~lib/builtins/abort @@ -9503,7 +9451,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 41 i32.const 3 call $~lib/builtins/abort @@ -9528,7 +9476,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -9546,7 +9494,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -9564,7 +9512,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -9582,7 +9530,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -9600,7 +9548,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -9624,7 +9572,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -9650,7 +9598,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 54 i32.const 3 call $~lib/builtins/abort @@ -9676,7 +9624,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -9709,7 +9657,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 59 i32.const 3 call $~lib/builtins/abort @@ -9742,7 +9690,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -9768,7 +9716,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -9793,7 +9741,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -9819,7 +9767,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -9844,7 +9792,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -9868,7 +9816,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -9894,7 +9842,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 76 i32.const 3 call $~lib/builtins/abort @@ -9920,7 +9868,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 78 i32.const 3 call $~lib/builtins/abort @@ -9953,7 +9901,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -9986,7 +9934,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -10010,7 +9958,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 89 i32.const 3 call $~lib/builtins/abort @@ -10036,7 +9984,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 91 i32.const 3 call $~lib/builtins/abort @@ -10062,7 +10010,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 93 i32.const 3 call $~lib/builtins/abort @@ -10095,7 +10043,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 96 i32.const 3 call $~lib/builtins/abort @@ -10128,7 +10076,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -10152,7 +10100,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -10178,7 +10126,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 106 i32.const 3 call $~lib/builtins/abort @@ -10204,7 +10152,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -10237,7 +10185,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -10270,7 +10218,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 113 i32.const 3 call $~lib/builtins/abort @@ -10301,7 +10249,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 119 i32.const 3 call $~lib/builtins/abort @@ -10328,7 +10276,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 120 i32.const 3 call $~lib/builtins/abort @@ -10361,7 +10309,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 124 i32.const 3 call $~lib/builtins/abort @@ -10394,7 +10342,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -10483,7 +10431,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -10535,7 +10483,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 146 i32.const 3 call $~lib/builtins/abort @@ -10562,7 +10510,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -10587,7 +10535,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 148 i32.const 3 call $~lib/builtins/abort @@ -10605,7 +10553,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 149 i32.const 3 call $~lib/builtins/abort @@ -10623,7 +10571,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 150 i32.const 3 call $~lib/builtins/abort @@ -10641,7 +10589,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 151 i32.const 3 call $~lib/builtins/abort @@ -10680,7 +10628,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -10713,7 +10661,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 157 i32.const 3 call $~lib/builtins/abort @@ -10746,7 +10694,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 160 i32.const 3 call $~lib/builtins/abort @@ -10783,7 +10731,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 163 i32.const 3 call $~lib/builtins/abort @@ -10822,7 +10770,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 166 i32.const 3 call $~lib/builtins/abort @@ -10861,7 +10809,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 169 i32.const 3 call $~lib/builtins/abort @@ -10900,7 +10848,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 173 i32.const 3 call $~lib/builtins/abort @@ -10939,7 +10887,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 177 i32.const 3 call $~lib/builtins/abort @@ -10981,7 +10929,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 187 i32.const 3 call $~lib/builtins/abort @@ -11025,7 +10973,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 188 i32.const 3 call $~lib/builtins/abort @@ -11071,7 +11019,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 189 i32.const 3 call $~lib/builtins/abort @@ -11115,7 +11063,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 190 i32.const 3 call $~lib/builtins/abort @@ -11157,7 +11105,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 192 i32.const 3 call $~lib/builtins/abort @@ -11201,7 +11149,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 193 i32.const 3 call $~lib/builtins/abort @@ -11247,7 +11195,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 194 i32.const 3 call $~lib/builtins/abort @@ -11291,7 +11239,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 195 i32.const 3 call $~lib/builtins/abort @@ -11324,7 +11272,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 201 i32.const 3 call $~lib/builtins/abort @@ -11362,7 +11310,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 203 i32.const 3 call $~lib/builtins/abort @@ -11400,7 +11348,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 205 i32.const 3 call $~lib/builtins/abort @@ -11425,7 +11373,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 206 i32.const 3 call $~lib/builtins/abort @@ -11461,7 +11409,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 209 i32.const 3 call $~lib/builtins/abort @@ -11497,7 +11445,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 211 i32.const 3 call $~lib/builtins/abort @@ -11535,7 +11483,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 215 i32.const 3 call $~lib/builtins/abort @@ -11560,7 +11508,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 216 i32.const 3 call $~lib/builtins/abort @@ -11598,7 +11546,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 218 i32.const 3 call $~lib/builtins/abort @@ -11623,7 +11571,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 219 i32.const 3 call $~lib/builtins/abort @@ -11654,7 +11602,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 225 i32.const 3 call $~lib/builtins/abort @@ -11687,7 +11635,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 227 i32.const 3 call $~lib/builtins/abort @@ -11720,7 +11668,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 229 i32.const 3 call $~lib/builtins/abort @@ -11753,7 +11701,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 231 i32.const 3 call $~lib/builtins/abort @@ -11777,12 +11725,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 2800 + i32.const 2672 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 237 i32.const 3 call $~lib/builtins/abort @@ -11808,12 +11756,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 2880 + i32.const 2752 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 239 i32.const 3 call $~lib/builtins/abort @@ -11837,12 +11785,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 2960 + i32.const 2832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 241 i32.const 3 call $~lib/builtins/abort @@ -11866,12 +11814,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 3040 + i32.const 2912 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 243 i32.const 3 call $~lib/builtins/abort @@ -11895,12 +11843,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 3120 + i32.const 2992 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 245 i32.const 3 call $~lib/builtins/abort @@ -11924,12 +11872,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 3200 + i32.const 3072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 247 i32.const 3 call $~lib/builtins/abort @@ -11953,12 +11901,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 3280 + i32.const 3152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 249 i32.const 3 call $~lib/builtins/abort @@ -11982,12 +11930,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 3360 + i32.const 3232 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 251 i32.const 3 call $~lib/builtins/abort @@ -12011,12 +11959,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 3440 + i32.const 3312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 253 i32.const 3 call $~lib/builtins/abort @@ -12040,12 +11988,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 4368 + i32.const 4240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 259 i32.const 3 call $~lib/builtins/abort @@ -12069,12 +12017,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 4432 + i32.const 4304 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 261 i32.const 3 call $~lib/builtins/abort @@ -12098,12 +12046,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 4496 + i32.const 4368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 264 i32.const 3 call $~lib/builtins/abort @@ -12127,12 +12075,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 4608 + i32.const 4480 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 270 i32.const 3 call $~lib/builtins/abort @@ -12156,12 +12104,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 4656 + i32.const 4528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 273 i32.const 3 call $~lib/builtins/abort @@ -12185,12 +12133,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 5552 + i32.const 5424 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 279 i32.const 3 call $~lib/builtins/abort @@ -12214,12 +12162,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 5632 + i32.const 5504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 281 i32.const 3 call $~lib/builtins/abort @@ -12243,19 +12191,19 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 5712 + i32.const 5584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 284 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5792 + i32.const 5664 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12278,14 +12226,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 291 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6064 + i32.const 5936 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12308,14 +12256,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 293 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6112 + i32.const 5984 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12338,14 +12286,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 295 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6160 + i32.const 6032 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12368,14 +12316,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 299 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6224 + i32.const 6096 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12398,14 +12346,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 303 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6304 + i32.const 6176 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12428,14 +12376,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 307 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6384 + i32.const 6256 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12458,14 +12406,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 311 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6464 + i32.const 6336 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12488,14 +12436,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 315 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6544 + i32.const 6416 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12518,14 +12466,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 319 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6608 + i32.const 6480 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12548,14 +12496,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6688 + i32.const 6560 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12578,14 +12526,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 327 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6768 + i32.const 6640 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12608,14 +12556,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 331 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6848 + i32.const 6720 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12638,14 +12586,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 335 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6928 + i32.const 6800 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12668,14 +12616,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 339 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 6896 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12698,14 +12646,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 342 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7056 + i32.const 6928 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12728,14 +12676,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7088 + i32.const 6960 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12758,14 +12706,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 348 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7120 + i32.const 6992 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12788,14 +12736,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 351 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5792 + i32.const 5664 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12818,14 +12766,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 354 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7168 + i32.const 7040 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12848,14 +12796,14 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 357 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6160 + i32.const 6032 call $~lib/date/Date.fromString local.tee $127 i32.store offset=288 @@ -12878,7 +12826,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 360 i32.const 3 call $~lib/builtins/abort @@ -12915,7 +12863,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 378 i32.const 3 call $~lib/builtins/abort @@ -12940,7 +12888,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 379 i32.const 3 call $~lib/builtins/abort @@ -12965,7 +12913,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 381 i32.const 3 call $~lib/builtins/abort @@ -12990,7 +12938,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 382 i32.const 3 call $~lib/builtins/abort @@ -13017,7 +12965,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 384 i32.const 3 call $~lib/builtins/abort @@ -13044,7 +12992,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 385 i32.const 3 call $~lib/builtins/abort @@ -13069,7 +13017,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 387 i32.const 3 call $~lib/builtins/abort @@ -13094,7 +13042,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -13112,12 +13060,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 7232 + i32.const 7104 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -13135,12 +13083,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 7312 + i32.const 7184 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 391 i32.const 3 call $~lib/builtins/abort @@ -13181,7 +13129,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 396 i32.const 3 call $~lib/builtins/abort @@ -13208,7 +13156,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 397 i32.const 3 call $~lib/builtins/abort @@ -13233,7 +13181,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 398 i32.const 3 call $~lib/builtins/abort @@ -13251,7 +13199,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 399 i32.const 3 call $~lib/builtins/abort @@ -13269,7 +13217,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 400 i32.const 3 call $~lib/builtins/abort @@ -13287,7 +13235,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 401 i32.const 3 call $~lib/builtins/abort @@ -13305,7 +13253,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 402 i32.const 3 call $~lib/builtins/abort @@ -13323,12 +13271,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 7392 + i32.const 7264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 404 i32.const 3 call $~lib/builtins/abort @@ -13346,12 +13294,12 @@ local.get $164 i32.store offset=8 local.get $164 - i32.const 7472 + i32.const 7344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 128 i32.const 405 i32.const 3 call $~lib/builtins/abort @@ -13362,153 +13310,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/util/number/itoa32 (param $value i32) (param $radix i32) (result i32) (local $sign i32) (local $out i32) @@ -13542,8 +13343,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 656 + i32.const 784 i32.const 373 i32.const 5 call $~lib/builtins/abort @@ -13552,7 +13353,7 @@ local.get $value i32.eqz if - i32.const 752 + i32.const 848 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -13722,6 +13523,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -13746,25 +13551,25 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 + i32.const 368 local.get $0 call $~lib/rt/itcms/__visit - i32.const 5888 + i32.const 5760 local.get $0 call $~lib/rt/itcms/__visit - i32.const 5936 + i32.const 5808 local.get $0 call $~lib/rt/itcms/__visit - i32.const 128 + i32.const 176 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 1280 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 2336 local.get $0 call $~lib/rt/itcms/__visit ) @@ -13784,6 +13589,10 @@ (local $cur i32) (local $end i32) (local $val i32) + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -13908,6 +13717,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -13975,6 +13788,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 343a59ffd5..8c6b358bcc 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -5,15 +5,18 @@ (type $3 (func)) (type $4 (func (param i32))) (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i64) (result i32))) (type $8 (func (param i32 i32 i32 i32 i32 i32 i32) (result i64))) (type $9 (func (param i32 i32 i64))) (type $10 (func (result i32))) (type $11 (func (param i32 i32 i32 i64) (result i64))) - (type $12 (func (param i32 i32 i32 i32) (result i32))) - (type $13 (func (param i32 i32 i32 i32))) + (type $12 (func (param i32 i32 i32))) + (type $13 (func (param i32 i32 i32 i32) (result i32))) (type $14 (func (param i32 i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/date/_day (mut i32) (i32.const 0)) + (global $~lib/date/_month (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)) @@ -24,242 +27,234 @@ (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/date/_day (mut i32) (i32.const 0)) - (global $~lib/date/_month (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 41364)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 41236)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\18\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00D\00a\00t\00e") - (data $20 (i32.const 3452) ",") - (data $20.1 (i32.const 3464) "\02\00\00\00\18\00\00\00~\00l\00i\00b\00/\00d\00a\00t\00e\00.\00t\00s") - (data $21 (i32.const 3500) ",") - (data $21.1 (i32.const 3512) "\02\00\00\00\16\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s") - (data $22 (i32.const 3549) "\03\02\05\00\03\05\01\04\06\02\04") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\02\00\00\00\02\00\00\00-") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\02\00\00\00\02\00\00\00+") - (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\02\00\00\00\02\00\00\00T") - (data $26 (i32.const 3660) "\1c") - (data $26.1 (i32.const 3672) "\02\00\00\00\02\00\00\00.") - (data $27 (i32.const 3692) "\1c") - (data $27.1 (i32.const 3704) "\02\00\00\00\02\00\00\00Z") - (data $28 (i32.const 3724) "L\00\00\00\03\00\00\00\00\00\00\00\05\00\00\008\00\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00@\0e\00\00\00\00\00\00\10\06\00\00\00\00\00\00\10\06\00\00\00\00\00\00`\0e\00\00\00\00\00\00\80\0e") - (data $29 (i32.const 3804) "L") - (data $29.1 (i32.const 3816) "\02\00\00\000\00\00\000\000\000\000\00-\000\001\00-\000\001\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") - (data $30 (i32.const 3884) "L") - (data $30.1 (i32.const 3896) "\02\00\00\006\00\00\00-\000\000\000\000\000\001\00-\001\002\00-\003\001\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z") - (data $31 (i32.const 3964) "L") - (data $31.1 (i32.const 3976) "\02\00\00\000\00\00\000\000\000\001\00-\000\004\00-\000\007\00T\002\003\00:\000\006\00:\004\000\00.\000\000\000\00Z") - (data $32 (i32.const 4044) "L") - (data $32.1 (i32.const 4056) "\02\00\00\000\00\00\002\000\000\009\00-\000\001\00-\000\006\00T\000\008\00:\004\000\00:\003\001\00.\000\002\000\00Z") - (data $33 (i32.const 4124) "L") - (data $33.1 (i32.const 4136) "\02\00\00\000\00\00\002\000\000\009\00-\000\001\00-\000\006\00T\000\008\00:\004\000\00:\003\001\00.\004\005\006\00Z") - (data $34 (i32.const 4204) "L") - (data $34.1 (i32.const 4216) "\02\00\00\006\00\00\00+\000\001\002\001\008\004\00-\000\004\00-\000\008\00T\001\003\00:\000\007\00:\001\001\00.\000\002\000\00Z") - (data $35 (i32.const 4284) "L") - (data $35.1 (i32.const 4296) "\02\00\00\000\00\00\009\009\009\009\00-\001\002\00-\003\001\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z") - (data $36 (i32.const 4364) "L") - (data $36.1 (i32.const 4376) "\02\00\00\006\00\00\00+\000\001\000\000\000\000\00-\000\001\00-\000\001\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") - (data $37 (i32.const 4444) "L") - (data $37.1 (i32.const 4456) "\02\00\00\006\00\00\00-\000\000\000\000\002\002\00-\000\006\00-\001\006\00T\001\007\00:\001\003\00:\005\000\00.\007\007\004\00Z") - (data $38 (i32.const 4524) "\1c") - (data $38.1 (i32.const 4536) "\02\00\00\00\08\00\00\00S\00u\00n\00 ") - (data $39 (i32.const 4556) "\1c") - (data $39.1 (i32.const 4568) "\02\00\00\00\08\00\00\00M\00o\00n\00 ") - (data $40 (i32.const 4588) "\1c") - (data $40.1 (i32.const 4600) "\02\00\00\00\08\00\00\00T\00u\00e\00 ") - (data $41 (i32.const 4620) "\1c") - (data $41.1 (i32.const 4632) "\02\00\00\00\08\00\00\00W\00e\00d\00 ") - (data $42 (i32.const 4652) "\1c") - (data $42.1 (i32.const 4664) "\02\00\00\00\08\00\00\00T\00h\00u\00 ") - (data $43 (i32.const 4684) "\1c") - (data $43.1 (i32.const 4696) "\02\00\00\00\08\00\00\00F\00r\00i\00 ") - (data $44 (i32.const 4716) "\1c") - (data $44.1 (i32.const 4728) "\02\00\00\00\08\00\00\00S\00a\00t\00 ") - (data $45 (i32.const 4748) ",") - (data $45.1 (i32.const 4760) "\05\00\00\00\1c\00\00\00\c0\11\00\00\e0\11\00\00\00\12\00\00 \12\00\00@\12\00\00`\12\00\00\80\12") - (data $46 (i32.const 4796) "\1c") - (data $46.1 (i32.const 4808) "\02\00\00\00\08\00\00\00J\00a\00n\00 ") - (data $47 (i32.const 4828) "\1c") - (data $47.1 (i32.const 4840) "\02\00\00\00\08\00\00\00F\00e\00b\00 ") - (data $48 (i32.const 4860) "\1c") - (data $48.1 (i32.const 4872) "\02\00\00\00\08\00\00\00M\00a\00r\00 ") - (data $49 (i32.const 4892) "\1c") - (data $49.1 (i32.const 4904) "\02\00\00\00\08\00\00\00A\00p\00r\00 ") - (data $50 (i32.const 4924) "\1c") - (data $50.1 (i32.const 4936) "\02\00\00\00\08\00\00\00M\00a\00y\00 ") - (data $51 (i32.const 4956) "\1c") - (data $51.1 (i32.const 4968) "\02\00\00\00\08\00\00\00J\00u\00n\00 ") - (data $52 (i32.const 4988) "\1c") - (data $52.1 (i32.const 5000) "\02\00\00\00\08\00\00\00J\00u\00l\00 ") - (data $53 (i32.const 5020) "\1c") - (data $53.1 (i32.const 5032) "\02\00\00\00\08\00\00\00A\00u\00g\00 ") - (data $54 (i32.const 5052) "\1c") - (data $54.1 (i32.const 5064) "\02\00\00\00\08\00\00\00S\00e\00p\00 ") - (data $55 (i32.const 5084) "\1c") - (data $55.1 (i32.const 5096) "\02\00\00\00\08\00\00\00O\00c\00t\00 ") - (data $56 (i32.const 5116) "\1c") - (data $56.1 (i32.const 5128) "\02\00\00\00\08\00\00\00N\00o\00v\00 ") - (data $57 (i32.const 5148) "\1c") - (data $57.1 (i32.const 5160) "\02\00\00\00\08\00\00\00D\00e\00c\00 ") - (data $58 (i32.const 5180) "L") - (data $58.1 (i32.const 5192) "\05\00\00\000\00\00\00\d0\12\00\00\f0\12\00\00\10\13\00\000\13\00\00P\13\00\00p\13\00\00\90\13\00\00\b0\13\00\00\d0\13\00\00\f0\13\00\00\10\14\00\000\14") - (data $59 (i32.const 5260) ",\00\00\00\03\00\00\00\00\00\00\00\05\00\00\00\14") - (data $60 (i32.const 5308) "\1c") - (data $60.1 (i32.const 5320) "\02\00\00\00\04\00\00\00 \00-") - (data $61 (i32.const 5340) "\1c") - (data $61.1 (i32.const 5352) "\02\00\00\00\02\00\00\00 ") - (data $62 (i32.const 5372) "<") - (data $62.1 (i32.const 5384) "\02\00\00\00\1e\00\00\00W\00e\00d\00 \00J\00a\00n\00 \000\001\00 \000\000\002\000") - (data $63 (i32.const 5436) "<") - (data $63.1 (i32.const 5448) "\02\00\00\00\1e\00\00\00S\00u\00n\00 \00F\00e\00b\00 \000\002\00 \002\000\002\000") - (data $64 (i32.const 5500) "<") - (data $64.1 (i32.const 5512) "\02\00\00\00 \00\00\00T\00h\00u\00 \00J\00u\00l\00 \000\001\00 \00-\000\000\000\001") - (data $65 (i32.const 5564) ",\00\00\00\03\00\00\00\00\00\00\00\05\00\00\00\14\00\00\00\00\00\00\00\10\06\00\00\00\00\00\00\10\06") - (data $66 (i32.const 5612) ",") - (data $66.1 (i32.const 5624) "\02\00\00\00\10\00\00\000\000\00:\000\000\00:\000\000") - (data $67 (i32.const 5660) ",") - (data $67.1 (i32.const 5672) "\02\00\00\00\10\00\00\002\003\00:\005\009\00:\005\009") - (data $68 (i32.const 5708) "\1c") - (data $68.1 (i32.const 5720) "\02\00\00\00\n\00\00\00S\00u\00n\00,\00 ") - (data $69 (i32.const 5740) "\1c") - (data $69.1 (i32.const 5752) "\02\00\00\00\n\00\00\00M\00o\00n\00,\00 ") - (data $70 (i32.const 5772) "\1c") - (data $70.1 (i32.const 5784) "\02\00\00\00\n\00\00\00T\00u\00e\00,\00 ") - (data $71 (i32.const 5804) "\1c") - (data $71.1 (i32.const 5816) "\02\00\00\00\n\00\00\00W\00e\00d\00,\00 ") - (data $72 (i32.const 5836) "\1c") - (data $72.1 (i32.const 5848) "\02\00\00\00\n\00\00\00T\00h\00u\00,\00 ") - (data $73 (i32.const 5868) "\1c") - (data $73.1 (i32.const 5880) "\02\00\00\00\n\00\00\00F\00r\00i\00,\00 ") - (data $74 (i32.const 5900) "\1c") - (data $74.1 (i32.const 5912) "\02\00\00\00\n\00\00\00S\00a\00t\00,\00 ") - (data $75 (i32.const 5932) ",") - (data $75.1 (i32.const 5944) "\05\00\00\00\1c\00\00\00`\16\00\00\80\16\00\00\a0\16\00\00\c0\16\00\00\e0\16\00\00\00\17\00\00 \17") - (data $76 (i32.const 5980) "\1c") - (data $76.1 (i32.const 5992) "\02\00\00\00\n\00\00\00 \00J\00a\00n\00 ") - (data $77 (i32.const 6012) "\1c") - (data $77.1 (i32.const 6024) "\02\00\00\00\n\00\00\00 \00F\00e\00b\00 ") - (data $78 (i32.const 6044) "\1c") - (data $78.1 (i32.const 6056) "\02\00\00\00\n\00\00\00 \00M\00a\00r\00 ") - (data $79 (i32.const 6076) "\1c") - (data $79.1 (i32.const 6088) "\02\00\00\00\n\00\00\00 \00A\00p\00r\00 ") - (data $80 (i32.const 6108) "\1c") - (data $80.1 (i32.const 6120) "\02\00\00\00\n\00\00\00 \00M\00a\00y\00 ") - (data $81 (i32.const 6140) "\1c") - (data $81.1 (i32.const 6152) "\02\00\00\00\n\00\00\00 \00J\00u\00n\00 ") - (data $82 (i32.const 6172) "\1c") - (data $82.1 (i32.const 6184) "\02\00\00\00\n\00\00\00 \00J\00u\00l\00 ") - (data $83 (i32.const 6204) "\1c") - (data $83.1 (i32.const 6216) "\02\00\00\00\n\00\00\00 \00A\00u\00g\00 ") - (data $84 (i32.const 6236) "\1c") - (data $84.1 (i32.const 6248) "\02\00\00\00\n\00\00\00 \00S\00e\00p\00 ") - (data $85 (i32.const 6268) "\1c") - (data $85.1 (i32.const 6280) "\02\00\00\00\n\00\00\00 \00O\00c\00t\00 ") - (data $86 (i32.const 6300) "\1c") - (data $86.1 (i32.const 6312) "\02\00\00\00\n\00\00\00 \00N\00o\00v\00 ") - (data $87 (i32.const 6332) "\1c") - (data $87.1 (i32.const 6344) "\02\00\00\00\n\00\00\00 \00D\00e\00c\00 ") - (data $88 (i32.const 6364) "L") - (data $88.1 (i32.const 6376) "\05\00\00\000\00\00\00p\17\00\00\90\17\00\00\b0\17\00\00\d0\17\00\00\f0\17\00\00\10\18\00\000\18\00\00P\18\00\00p\18\00\00\90\18\00\00\b0\18\00\00\d0\18") - (data $89 (i32.const 6444) "\1c") - (data $89.1 (i32.const 6456) "\02\00\00\00\08\00\00\00 \00G\00M\00T") - (data $90 (i32.const 6476) "L\00\00\00\03\00\00\00\00\00\00\00\05\00\00\000") - (data $90.1 (i32.const 6516) "\f0\14\00\00\00\00\00\00\10\06\00\00\00\00\00\00\10\06\00\00\00\00\00\00@\19") - (data $91 (i32.const 6556) "L") - (data $91.1 (i32.const 6568) "\02\00\00\00:\00\00\00W\00e\00d\00,\00 \000\001\00 \00J\00a\00n\00 \000\000\002\000\00 \000\000\00:\000\000\00:\000\000\00 \00G\00M\00T") - (data $92 (i32.const 6636) "L") - (data $92.1 (i32.const 6648) "\02\00\00\00:\00\00\00M\00o\00n\00,\00 \000\003\00 \00F\00e\00b\00 \002\000\002\000\00 \001\004\00:\005\003\00:\003\003\00 \00G\00M\00T") - (data $93 (i32.const 6716) "L") - (data $93.1 (i32.const 6728) "\02\00\00\00<\00\00\00T\00h\00u\00,\00 \000\001\00 \00J\00u\00l\00 \00-\000\000\000\001\00 \000\000\00:\000\000\00:\000\000\00 \00G\00M\00T") - (data $94 (i32.const 6796) ",") - (data $94.1 (i32.const 6808) "\02\00\00\00\14\00\00\001\009\007\006\00-\000\002\00-\000\002") - (data $95 (i32.const 6844) ",") - (data $95.1 (i32.const 6856) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $96 (i32.const 6892) ",") - (data $96.1 (i32.const 6904) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $97 (i32.const 6940) "|") - (data $97.1 (i32.const 6952) "\02\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 $98 (i32.const 7068) ",") - (data $98.1 (i32.const 7080) "\02\00\00\00\10\00\00\001\009\007\006\00-\002\00-\002") - (data $99 (i32.const 7116) ",") - (data $99.1 (i32.const 7128) "\02\00\00\00\14\00\00\002\003\004\005\00-\001\001\00-\000\004") - (data $100 (i32.const 7164) "<") - (data $100.1 (i32.const 7176) "\02\00\00\00&\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006") - (data $101 (i32.const 7228) "L") - (data $101.1 (i32.const 7240) "\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006") - (data $102 (i32.const 7308) "L") - (data $102.1 (i32.const 7320) "\02\00\00\000\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00Z") - (data $103 (i32.const 7388) "L") - (data $103.1 (i32.const 7400) "\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00-\000\008\00:\000\000") - (data $104 (i32.const 7468) "L") - (data $104.1 (i32.const 7480) "\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00+\000\005\00:\003\000") - (data $105 (i32.const 7548) "<") - (data $105.1 (i32.const 7560) "\02\00\00\00,\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005") - (data $106 (i32.const 7612) "L") - (data $106.1 (i32.const 7624) "\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00Z") - (data $107 (i32.const 7692) "L") - (data $107.1 (i32.const 7704) "\02\00\00\008\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00+\000\000\00:\000\000") - (data $108 (i32.const 7772) "L") - (data $108.1 (i32.const 7784) "\02\00\00\004\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009") - (data $109 (i32.const 7852) "L") - (data $109.1 (i32.const 7864) "\02\00\00\006\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00Z") - (data $110 (i32.const 7932) "\\") - (data $110.1 (i32.const 7944) "\02\00\00\00@\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00+\000\000\00:\000\000") - (data $111 (i32.const 8028) "\1c") - (data $111.1 (i32.const 8040) "\02\00\00\00\08\00\00\000\000\000\000") - (data $112 (i32.const 8060) "\1c") - (data $112.1 (i32.const 8072) "\02\00\00\00\08\00\00\000\000\000\001") - (data $113 (i32.const 8092) "\1c") - (data $113.1 (i32.const 8104) "\02\00\00\00\08\00\00\001\009\007\006") - (data $114 (i32.const 8124) ",") - (data $114.1 (i32.const 8136) "\02\00\00\00\0e\00\00\001\009\007\006\00-\000\002") - (data $115 (i32.const 8172) "<") - (data $115.1 (i32.const 8184) "\02\00\00\00 \00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004") - (data $116 (i32.const 8236) "L") - (data $116.1 (i32.const 8248) "\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") - (data $117 (i32.const 8316) "L") - (data $117.1 (i32.const 8328) "\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\003\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") - (data $118 (i32.const 8396) "L") - (data $118.1 (i32.const 8408) "\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z") - (data $119 (i32.const 8476) "L") - (data $119.1 (i32.const 8488) "\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z") - (data $120 (i32.const 8560) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\04A\00\00\02A\00\00\02\t") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\18\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00D\00a\00t\00e") + (data $1 (i32.const 1084) ",") + (data $1.1 (i32.const 1096) "\02\00\00\00\18\00\00\00~\00l\00i\00b\00/\00d\00a\00t\00e\00.\00t\00s") + (data $2 (i32.const 1132) ",") + (data $2.1 (i32.const 1144) "\02\00\00\00\16\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s") + (data $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\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 $4 (i32.const 1244) "<") + (data $4.1 (i32.const 1256) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $8 (i32.const 1436) ",") + (data $8.1 (i32.const 1448) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $10 (i32.const 1516) "<") + (data $10.1 (i32.const 1528) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $11 (i32.const 1581) "\03\02\05\00\03\05\01\04\06\02\04") + (data $12 (i32.const 1596) "\1c") + (data $12.1 (i32.const 1608) "\02\00\00\00\02\00\00\00-") + (data $13 (i32.const 1628) "\1c") + (data $13.1 (i32.const 1640) "\02\00\00\00\02\00\00\00+") + (data $14 (i32.const 1660) "|") + (data $14.1 (i32.const 1672) "\02\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 $15 (i32.const 1788) "<") + (data $15.1 (i32.const 1800) "\02\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 $16 (i32.const 1852) "\1c") + (data $16.1 (i32.const 1864) "\02\00\00\00\02\00\00\000") + (data $17 (i32.const 1884) "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 $18 (i32.const 2284) "\1c\04") + (data $18.1 (i32.const 2296) "\02\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 $19 (i32.const 3340) "\\") + (data $19.1 (i32.const 3352) "\02\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 $20 (i32.const 3436) "\1c") + (data $20.1 (i32.const 3448) "\02") + (data $21 (i32.const 3468) "\1c") + (data $21.1 (i32.const 3480) "\02\00\00\00\02\00\00\00T") + (data $22 (i32.const 3500) "\1c") + (data $22.1 (i32.const 3512) "\02\00\00\00\02\00\00\00:") + (data $23 (i32.const 3532) "\1c") + (data $23.1 (i32.const 3544) "\02\00\00\00\02\00\00\00.") + (data $24 (i32.const 3564) "\1c") + (data $24.1 (i32.const 3576) "\02\00\00\00\02\00\00\00Z") + (data $25 (i32.const 3596) "L\00\00\00\03\00\00\00\00\00\00\00\05\00\00\008\00\00\00\00\00\00\00P\06\00\00\00\00\00\00P\06\00\00\00\00\00\00\a0\r\00\00\00\00\00\00\c0\r\00\00\00\00\00\00\c0\r\00\00\00\00\00\00\e0\r\00\00\00\00\00\00\00\0e") + (data $26 (i32.const 3676) "L") + (data $26.1 (i32.const 3688) "\02\00\00\000\00\00\000\000\000\000\00-\000\001\00-\000\001\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") + (data $27 (i32.const 3756) "L") + (data $27.1 (i32.const 3768) "\02\00\00\006\00\00\00-\000\000\000\000\000\001\00-\001\002\00-\003\001\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z") + (data $28 (i32.const 3836) "L") + (data $28.1 (i32.const 3848) "\02\00\00\000\00\00\000\000\000\001\00-\000\004\00-\000\007\00T\002\003\00:\000\006\00:\004\000\00.\000\000\000\00Z") + (data $29 (i32.const 3916) "L") + (data $29.1 (i32.const 3928) "\02\00\00\000\00\00\002\000\000\009\00-\000\001\00-\000\006\00T\000\008\00:\004\000\00:\003\001\00.\000\002\000\00Z") + (data $30 (i32.const 3996) "L") + (data $30.1 (i32.const 4008) "\02\00\00\000\00\00\002\000\000\009\00-\000\001\00-\000\006\00T\000\008\00:\004\000\00:\003\001\00.\004\005\006\00Z") + (data $31 (i32.const 4076) "L") + (data $31.1 (i32.const 4088) "\02\00\00\006\00\00\00+\000\001\002\001\008\004\00-\000\004\00-\000\008\00T\001\003\00:\000\007\00:\001\001\00.\000\002\000\00Z") + (data $32 (i32.const 4156) "L") + (data $32.1 (i32.const 4168) "\02\00\00\000\00\00\009\009\009\009\00-\001\002\00-\003\001\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z") + (data $33 (i32.const 4236) "L") + (data $33.1 (i32.const 4248) "\02\00\00\006\00\00\00+\000\001\000\000\000\000\00-\000\001\00-\000\001\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") + (data $34 (i32.const 4316) "L") + (data $34.1 (i32.const 4328) "\02\00\00\006\00\00\00-\000\000\000\000\002\002\00-\000\006\00-\001\006\00T\001\007\00:\001\003\00:\005\000\00.\007\007\004\00Z") + (data $35 (i32.const 4396) "\1c") + (data $35.1 (i32.const 4408) "\02\00\00\00\08\00\00\00S\00u\00n\00 ") + (data $36 (i32.const 4428) "\1c") + (data $36.1 (i32.const 4440) "\02\00\00\00\08\00\00\00M\00o\00n\00 ") + (data $37 (i32.const 4460) "\1c") + (data $37.1 (i32.const 4472) "\02\00\00\00\08\00\00\00T\00u\00e\00 ") + (data $38 (i32.const 4492) "\1c") + (data $38.1 (i32.const 4504) "\02\00\00\00\08\00\00\00W\00e\00d\00 ") + (data $39 (i32.const 4524) "\1c") + (data $39.1 (i32.const 4536) "\02\00\00\00\08\00\00\00T\00h\00u\00 ") + (data $40 (i32.const 4556) "\1c") + (data $40.1 (i32.const 4568) "\02\00\00\00\08\00\00\00F\00r\00i\00 ") + (data $41 (i32.const 4588) "\1c") + (data $41.1 (i32.const 4600) "\02\00\00\00\08\00\00\00S\00a\00t\00 ") + (data $42 (i32.const 4620) ",") + (data $42.1 (i32.const 4632) "\05\00\00\00\1c\00\00\00@\11\00\00`\11\00\00\80\11\00\00\a0\11\00\00\c0\11\00\00\e0\11\00\00\00\12") + (data $43 (i32.const 4668) "\1c") + (data $43.1 (i32.const 4680) "\02\00\00\00\08\00\00\00J\00a\00n\00 ") + (data $44 (i32.const 4700) "\1c") + (data $44.1 (i32.const 4712) "\02\00\00\00\08\00\00\00F\00e\00b\00 ") + (data $45 (i32.const 4732) "\1c") + (data $45.1 (i32.const 4744) "\02\00\00\00\08\00\00\00M\00a\00r\00 ") + (data $46 (i32.const 4764) "\1c") + (data $46.1 (i32.const 4776) "\02\00\00\00\08\00\00\00A\00p\00r\00 ") + (data $47 (i32.const 4796) "\1c") + (data $47.1 (i32.const 4808) "\02\00\00\00\08\00\00\00M\00a\00y\00 ") + (data $48 (i32.const 4828) "\1c") + (data $48.1 (i32.const 4840) "\02\00\00\00\08\00\00\00J\00u\00n\00 ") + (data $49 (i32.const 4860) "\1c") + (data $49.1 (i32.const 4872) "\02\00\00\00\08\00\00\00J\00u\00l\00 ") + (data $50 (i32.const 4892) "\1c") + (data $50.1 (i32.const 4904) "\02\00\00\00\08\00\00\00A\00u\00g\00 ") + (data $51 (i32.const 4924) "\1c") + (data $51.1 (i32.const 4936) "\02\00\00\00\08\00\00\00S\00e\00p\00 ") + (data $52 (i32.const 4956) "\1c") + (data $52.1 (i32.const 4968) "\02\00\00\00\08\00\00\00O\00c\00t\00 ") + (data $53 (i32.const 4988) "\1c") + (data $53.1 (i32.const 5000) "\02\00\00\00\08\00\00\00N\00o\00v\00 ") + (data $54 (i32.const 5020) "\1c") + (data $54.1 (i32.const 5032) "\02\00\00\00\08\00\00\00D\00e\00c\00 ") + (data $55 (i32.const 5052) "L") + (data $55.1 (i32.const 5064) "\05\00\00\000\00\00\00P\12\00\00p\12\00\00\90\12\00\00\b0\12\00\00\d0\12\00\00\f0\12\00\00\10\13\00\000\13\00\00P\13\00\00p\13\00\00\90\13\00\00\b0\13") + (data $56 (i32.const 5132) ",\00\00\00\03\00\00\00\00\00\00\00\05\00\00\00\14") + (data $57 (i32.const 5180) "\1c") + (data $57.1 (i32.const 5192) "\02\00\00\00\04\00\00\00 \00-") + (data $58 (i32.const 5212) "\1c") + (data $58.1 (i32.const 5224) "\02\00\00\00\02\00\00\00 ") + (data $59 (i32.const 5244) "<") + (data $59.1 (i32.const 5256) "\02\00\00\00\1e\00\00\00W\00e\00d\00 \00J\00a\00n\00 \000\001\00 \000\000\002\000") + (data $60 (i32.const 5308) "<") + (data $60.1 (i32.const 5320) "\02\00\00\00\1e\00\00\00S\00u\00n\00 \00F\00e\00b\00 \000\002\00 \002\000\002\000") + (data $61 (i32.const 5372) "<") + (data $61.1 (i32.const 5384) "\02\00\00\00 \00\00\00T\00h\00u\00 \00J\00u\00l\00 \000\001\00 \00-\000\000\000\001") + (data $62 (i32.const 5436) ",\00\00\00\03\00\00\00\00\00\00\00\05\00\00\00\14\00\00\00\00\00\00\00\c0\r\00\00\00\00\00\00\c0\r") + (data $63 (i32.const 5484) ",") + (data $63.1 (i32.const 5496) "\02\00\00\00\10\00\00\000\000\00:\000\000\00:\000\000") + (data $64 (i32.const 5532) ",") + (data $64.1 (i32.const 5544) "\02\00\00\00\10\00\00\002\003\00:\005\009\00:\005\009") + (data $65 (i32.const 5580) "\1c") + (data $65.1 (i32.const 5592) "\02\00\00\00\n\00\00\00S\00u\00n\00,\00 ") + (data $66 (i32.const 5612) "\1c") + (data $66.1 (i32.const 5624) "\02\00\00\00\n\00\00\00M\00o\00n\00,\00 ") + (data $67 (i32.const 5644) "\1c") + (data $67.1 (i32.const 5656) "\02\00\00\00\n\00\00\00T\00u\00e\00,\00 ") + (data $68 (i32.const 5676) "\1c") + (data $68.1 (i32.const 5688) "\02\00\00\00\n\00\00\00W\00e\00d\00,\00 ") + (data $69 (i32.const 5708) "\1c") + (data $69.1 (i32.const 5720) "\02\00\00\00\n\00\00\00T\00h\00u\00,\00 ") + (data $70 (i32.const 5740) "\1c") + (data $70.1 (i32.const 5752) "\02\00\00\00\n\00\00\00F\00r\00i\00,\00 ") + (data $71 (i32.const 5772) "\1c") + (data $71.1 (i32.const 5784) "\02\00\00\00\n\00\00\00S\00a\00t\00,\00 ") + (data $72 (i32.const 5804) ",") + (data $72.1 (i32.const 5816) "\05\00\00\00\1c\00\00\00\e0\15\00\00\00\16\00\00 \16\00\00@\16\00\00`\16\00\00\80\16\00\00\a0\16") + (data $73 (i32.const 5852) "\1c") + (data $73.1 (i32.const 5864) "\02\00\00\00\n\00\00\00 \00J\00a\00n\00 ") + (data $74 (i32.const 5884) "\1c") + (data $74.1 (i32.const 5896) "\02\00\00\00\n\00\00\00 \00F\00e\00b\00 ") + (data $75 (i32.const 5916) "\1c") + (data $75.1 (i32.const 5928) "\02\00\00\00\n\00\00\00 \00M\00a\00r\00 ") + (data $76 (i32.const 5948) "\1c") + (data $76.1 (i32.const 5960) "\02\00\00\00\n\00\00\00 \00A\00p\00r\00 ") + (data $77 (i32.const 5980) "\1c") + (data $77.1 (i32.const 5992) "\02\00\00\00\n\00\00\00 \00M\00a\00y\00 ") + (data $78 (i32.const 6012) "\1c") + (data $78.1 (i32.const 6024) "\02\00\00\00\n\00\00\00 \00J\00u\00n\00 ") + (data $79 (i32.const 6044) "\1c") + (data $79.1 (i32.const 6056) "\02\00\00\00\n\00\00\00 \00J\00u\00l\00 ") + (data $80 (i32.const 6076) "\1c") + (data $80.1 (i32.const 6088) "\02\00\00\00\n\00\00\00 \00A\00u\00g\00 ") + (data $81 (i32.const 6108) "\1c") + (data $81.1 (i32.const 6120) "\02\00\00\00\n\00\00\00 \00S\00e\00p\00 ") + (data $82 (i32.const 6140) "\1c") + (data $82.1 (i32.const 6152) "\02\00\00\00\n\00\00\00 \00O\00c\00t\00 ") + (data $83 (i32.const 6172) "\1c") + (data $83.1 (i32.const 6184) "\02\00\00\00\n\00\00\00 \00N\00o\00v\00 ") + (data $84 (i32.const 6204) "\1c") + (data $84.1 (i32.const 6216) "\02\00\00\00\n\00\00\00 \00D\00e\00c\00 ") + (data $85 (i32.const 6236) "L") + (data $85.1 (i32.const 6248) "\05\00\00\000\00\00\00\f0\16\00\00\10\17\00\000\17\00\00P\17\00\00p\17\00\00\90\17\00\00\b0\17\00\00\d0\17\00\00\f0\17\00\00\10\18\00\000\18\00\00P\18") + (data $86 (i32.const 6316) "\1c") + (data $86.1 (i32.const 6328) "\02\00\00\00\08\00\00\00 \00G\00M\00T") + (data $87 (i32.const 6348) "L\00\00\00\03\00\00\00\00\00\00\00\05\00\00\000") + (data $87.1 (i32.const 6388) "p\14\00\00\00\00\00\00\c0\r\00\00\00\00\00\00\c0\r\00\00\00\00\00\00\c0\18") + (data $88 (i32.const 6428) "L") + (data $88.1 (i32.const 6440) "\02\00\00\00:\00\00\00W\00e\00d\00,\00 \000\001\00 \00J\00a\00n\00 \000\000\002\000\00 \000\000\00:\000\000\00:\000\000\00 \00G\00M\00T") + (data $89 (i32.const 6508) "L") + (data $89.1 (i32.const 6520) "\02\00\00\00:\00\00\00M\00o\00n\00,\00 \000\003\00 \00F\00e\00b\00 \002\000\002\000\00 \001\004\00:\005\003\00:\003\003\00 \00G\00M\00T") + (data $90 (i32.const 6588) "L") + (data $90.1 (i32.const 6600) "\02\00\00\00<\00\00\00T\00h\00u\00,\00 \000\001\00 \00J\00u\00l\00 \00-\000\000\000\001\00 \000\000\00:\000\000\00:\000\000\00 \00G\00M\00T") + (data $91 (i32.const 6668) ",") + (data $91.1 (i32.const 6680) "\02\00\00\00\14\00\00\001\009\007\006\00-\000\002\00-\000\002") + (data $92 (i32.const 6716) ",") + (data $92.1 (i32.const 6728) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $93 (i32.const 6764) ",") + (data $93.1 (i32.const 6776) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $94 (i32.const 6812) "|") + (data $94.1 (i32.const 6824) "\02\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 $95 (i32.const 6940) ",") + (data $95.1 (i32.const 6952) "\02\00\00\00\10\00\00\001\009\007\006\00-\002\00-\002") + (data $96 (i32.const 6988) ",") + (data $96.1 (i32.const 7000) "\02\00\00\00\14\00\00\002\003\004\005\00-\001\001\00-\000\004") + (data $97 (i32.const 7036) "<") + (data $97.1 (i32.const 7048) "\02\00\00\00&\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006") + (data $98 (i32.const 7100) "L") + (data $98.1 (i32.const 7112) "\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006") + (data $99 (i32.const 7180) "L") + (data $99.1 (i32.const 7192) "\02\00\00\000\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00Z") + (data $100 (i32.const 7260) "L") + (data $100.1 (i32.const 7272) "\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00-\000\008\00:\000\000") + (data $101 (i32.const 7340) "L") + (data $101.1 (i32.const 7352) "\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00+\000\005\00:\003\000") + (data $102 (i32.const 7420) "<") + (data $102.1 (i32.const 7432) "\02\00\00\00,\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005") + (data $103 (i32.const 7484) "L") + (data $103.1 (i32.const 7496) "\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00Z") + (data $104 (i32.const 7564) "L") + (data $104.1 (i32.const 7576) "\02\00\00\008\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00+\000\000\00:\000\000") + (data $105 (i32.const 7644) "L") + (data $105.1 (i32.const 7656) "\02\00\00\004\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009") + (data $106 (i32.const 7724) "L") + (data $106.1 (i32.const 7736) "\02\00\00\006\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00Z") + (data $107 (i32.const 7804) "\\") + (data $107.1 (i32.const 7816) "\02\00\00\00@\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00+\000\000\00:\000\000") + (data $108 (i32.const 7900) "\1c") + (data $108.1 (i32.const 7912) "\02\00\00\00\08\00\00\000\000\000\000") + (data $109 (i32.const 7932) "\1c") + (data $109.1 (i32.const 7944) "\02\00\00\00\08\00\00\000\000\000\001") + (data $110 (i32.const 7964) "\1c") + (data $110.1 (i32.const 7976) "\02\00\00\00\08\00\00\001\009\007\006") + (data $111 (i32.const 7996) ",") + (data $111.1 (i32.const 8008) "\02\00\00\00\0e\00\00\001\009\007\006\00-\000\002") + (data $112 (i32.const 8044) "<") + (data $112.1 (i32.const 8056) "\02\00\00\00 \00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004") + (data $113 (i32.const 8108) "L") + (data $113.1 (i32.const 8120) "\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") + (data $114 (i32.const 8188) "L") + (data $114.1 (i32.const 8200) "\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\003\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") + (data $115 (i32.const 8268) "L") + (data $115.1 (i32.const 8280) "\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z") + (data $116 (i32.const 8348) "L") + (data $116.1 (i32.const 8360) "\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z") + (data $117 (i32.const 8432) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\04A\00\00\02A\00\00\02\t") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/date/epochMillis (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i64) @@ -340,22 +335,113 @@ i64.add i64.add ) + (func $~lib/date/dateFromEpoch (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i64.const 86399999 + i64.const 0 + local.get $0 + i64.const 0 + i64.lt_s + select + i64.sub + i64.const 86400000 + i64.div_s + i32.wrap_i64 + i32.const 2 + i32.shl + i32.const 2877872 + i32.add + i32.const 3 + i32.or + local.tee $1 + i32.const 146096 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 146097 + i32.div_s + local.set $2 + local.get $1 + local.get $2 + i32.const 146097 + i32.mul + i32.sub + i32.const 3 + i32.or + i64.extend_i32_u + i64.const 2939745 + i64.mul + local.tee $0 + i32.wrap_i64 + i32.const 11758980 + i32.div_u + local.tee $4 + i32.const 2141 + i32.mul + i32.const 197913 + i32.add + local.set $3 + local.get $0 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.get $2 + i32.const 100 + i32.mul + i32.add + local.set $1 + local.get $3 + i32.const 16 + i32.shr_u + local.set $2 + local.get $3 + i32.const 65535 + i32.and + i32.const 2141 + i32.div_u + i32.const 1 + i32.add + global.set $~lib/date/_day + local.get $4 + i32.const 306 + i32.ge_u + if + local.get $2 + i32.const 12 + i32.sub + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $2 + global.set $~lib/date/_month + local.get $1 + ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 + i32.const 1392 call $~lib/rt/itcms/__visit - i32.const 6912 + i32.const 6784 call $~lib/rt/itcms/__visit - i32.const 6960 + i32.const 6832 call $~lib/rt/itcms/__visit - i32.const 1152 + i32.const 1200 call $~lib/rt/itcms/__visit - i32.const 3424 + i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 2304 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 3360 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -376,7 +462,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -409,7 +495,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -418,7 +504,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$379 + block $__inlined_func$~lib/rt/itcms/Object#unlink$377 local.get $0 i32.load offset=4 i32.const -4 @@ -430,19 +516,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 41364 + i32.const 41236 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$379 + br $__inlined_func$~lib/rt/itcms/Object#unlink$377 end local.get $0 i32.load offset=8 @@ -450,7 +536,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -479,13 +565,13 @@ i32.const 1 else local.get $1 - i32.const 8560 + i32.const 8432 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1392 + i32.const 1456 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -493,7 +579,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 8564 + i32.const 8436 i32.add i32.load i32.const 32 @@ -564,7 +650,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -578,7 +664,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -624,7 +710,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -707,7 +793,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -721,7 +807,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -782,7 +868,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -815,7 +901,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -830,7 +916,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -881,7 +967,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -953,7 +1039,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -978,7 +1064,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1005,7 +1091,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1077,10 +1163,10 @@ if unreachable end - i32.const 41376 + i32.const 41248 i32.const 0 i32.store - i32.const 42944 + i32.const 42816 i32.const 0 i32.store loop $for-loop|0 @@ -1091,7 +1177,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 41376 + i32.const 41248 i32.add i32.const 0 i32.store offset=4 @@ -1109,7 +1195,7 @@ i32.add i32.const 2 i32.shl - i32.const 41376 + i32.const 41248 i32.add i32.const 0 i32.store offset=96 @@ -1127,14 +1213,14 @@ br $for-loop|0 end end - i32.const 41376 - i32.const 42948 + i32.const 41248 + i32.const 42820 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 41376 + i32.const 41248 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1219,7 +1305,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 41364 + i32.const 41236 i32.lt_u if local.get $0 @@ -1308,14 +1394,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1264 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 41364 + i32.const 41236 i32.lt_u if local.get $0 @@ -1338,7 +1424,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 41364 + i32.const 41236 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1367,7 +1453,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1451,7 +1537,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1503,7 +1589,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1535,8 +1621,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1200 + i32.const 1264 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1546,7 +1632,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1563,7 +1649,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1596,8 +1682,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1200 + i32.const 1536 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1699,7 +1785,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1714,7 +1800,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1733,7 +1819,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1536 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1838,145 +1924,128 @@ memory.fill local.get $1 ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/date/join (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i64) (result i64) + (local $4 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.le_s + i32.sub + local.tee $0 + i32.const 399 + i32.const 0 + local.get $0 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 400 + i32.div_s + local.set $4 + i64.const 86400000 + i64.const 0 + local.get $3 + i64.const 86400000 + i64.rem_s + local.tee $3 + i64.const 0 + i64.lt_s + select + local.get $3 + i64.add + local.get $1 + i32.const -3 + i32.const 9 + local.get $1 + i32.const 2 + i32.gt_s + select + i32.add + i32.const 153 + i32.mul + i32.const 2 + i32.add + i32.const 5 + i32.div_u + local.get $2 + i32.add + local.get $0 + local.get $4 + i32.const 400 + i32.mul + i32.sub + local.tee $0 + i32.const 365 + i32.mul + local.get $0 + i32.const 2 + i32.shr_u + i32.add + local.get $0 + i32.const 100 + i32.div_u + i32.sub + i32.add + local.get $4 + i32.const 146097 + i32.mul + i32.add + i32.const 719469 + i32.sub + i64.extend_i32_s + i64.const 86400000 + i64.mul + i64.add + ) + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u + (local $4 i32) + (local $5 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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32$73 + local.get $0 + i32.eqz 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 + global.get $~lib/memory/__stack_pointer 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + i32.const 1872 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 end - end - local.get $1 - i32.const 100 - i32.ge_u - if + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $0 - local.get $2 - i32.const 2 i32.sub - local.tee $2 + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u i32.const 1 i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 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 8596 - i32.lt_s - if - i32.const 41392 - i32.const 41440 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $1 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $3 + select + local.tee $0 i32.const 100000 i32.lt_u if (result i32) @@ -2022,211 +2091,156 @@ i32.add end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl + local.get $3 + i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - local.get $0 local.get $2 - call $~lib/util/number/utoa32_dec_lut + local.get $3 + i32.add + local.set $5 + loop $while-continue|0 + local.get $0 + i32.const 10000 + i32.ge_u + if + local.get $0 + i32.const 10000 + i32.rem_u + local.set $4 + local.get $0 + i32.const 10000 + i32.div_u + local.set $0 + local.get $5 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + i32.const 100 + i32.ge_u + if + local.get $5 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 + end + local.get $0 + i32.const 10 + i32.ge_u + if + local.get $5 + local.get $1 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i32.load + i32.store + else + local.get $5 + local.get $1 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 48 + i32.add + i32.store16 + end + local.get $3 + if + local.get $2 + i32.const 45 + i32.store16 + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $1 + local.get $2 ) - (func $~lib/date/dateFromEpoch (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - local.get $0 - i64.const 86399999 - i64.const 0 - local.get $0 - i64.const 0 - i64.lt_s - select - i64.sub - i64.const 86400000 - i64.div_s - i32.wrap_i64 - i32.const 2 - i32.shl - i32.const 2877872 - i32.add - i32.const 3 - i32.or - local.tee $1 - i32.const 146096 - i32.const 0 local.get $1 - i32.const 0 - i32.lt_s - select - i32.sub - i32.const 146097 - i32.div_s - local.set $2 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white local.get $1 - local.get $2 - i32.const 146097 - i32.mul + i32.const 20 i32.sub - i32.const 3 - i32.or - i64.extend_i32_u - i64.const 2939745 - i64.mul - local.tee $0 - i32.wrap_i64 - i32.const 11758980 - i32.div_u - local.tee $4 - i32.const 2141 - i32.mul - i32.const 197913 - i32.add - local.set $3 - local.get $0 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.get $2 - i32.const 100 - i32.mul - i32.add - local.set $1 - local.get $3 - i32.const 16 - i32.shr_u - local.set $2 - local.get $3 - i32.const 65535 - i32.and - i32.const 2141 - i32.div_u - i32.const 1 - i32.add - global.set $~lib/date/_day - local.get $4 - i32.const 306 - i32.ge_u - if - local.get $2 - i32.const 12 - i32.sub - local.set $2 - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $2 - global.set $~lib/date/_month - local.get $1 - ) - (func $~lib/date/join (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i64) (result i64) - (local $4 i32) - local.get $0 - local.get $1 - i32.const 2 - i32.le_s - i32.sub - local.tee $0 - i32.const 399 - i32.const 0 - local.get $0 - i32.const 0 - i32.lt_s - select - i32.sub - i32.const 400 - i32.div_s - local.set $4 - i64.const 86400000 - i64.const 0 - local.get $3 - i64.const 86400000 - i64.rem_s - local.tee $3 - i64.const 0 - i64.lt_s - select - local.get $3 - i64.add - local.get $1 - i32.const -3 - i32.const 9 - local.get $1 - i32.const 2 - i32.gt_s - select - i32.add - i32.const 153 - i32.mul - i32.const 2 - i32.add - i32.const 5 - i32.div_u - local.get $2 - i32.add - local.get $0 - local.get $4 - i32.const 400 - i32.mul - i32.sub - local.tee $0 - i32.const 365 - i32.mul - local.get $0 - i32.const 2 - i32.shr_u - i32.add - local.get $0 - i32.const 100 - i32.div_u - i32.sub - i32.add - local.get $4 - i32.const 146097 - i32.mul - i32.add - i32.const 719469 - i32.sub - i64.extend_i32_s - i64.const 86400000 - i64.mul - i64.add - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - i32.eqz - if - return - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 + local.tee $1 + i32.load offset=4 i32.const 3 i32.and i32.eq @@ -2355,233 +2369,68 @@ global.set $~started call $start:std/date ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 8596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 8596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$384 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$384 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 41392 - i32.const 41440 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) + (func $~lib/date/Date#constructor (param $0 i64) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/date/Date#constructor (param $0 i64) (result 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 8596 - i32.lt_s - if - i32.const 41392 - i32.const 41440 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 @@ -2613,8 +2462,8 @@ i64.gt_s i32.or if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 131 i32.const 35 call $~lib/builtins/abort @@ -2651,11 +2500,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2672,8 +2521,8 @@ i64.gt_s i32.or if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 143 i32.const 28 call $~lib/builtins/abort @@ -2716,11 +2565,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2760,11 +2609,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2804,11 +2653,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2848,11 +2697,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2890,11 +2739,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2936,11 +2785,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2984,11 +2833,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3032,11 +2881,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3081,11 +2930,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3148,7 +2997,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3179,7 +3028,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3227,8 +3076,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3242,11 +3091,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3311,121 +3160,17 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 8596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 8596 + i32.const 8468 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/itoa32$75 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/itoa32$75 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - select - local.tee $4 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $4 - i32.const 100 - i32.lt_u - if (result i32) - local.get $4 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $4 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $4 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $4 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $4 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $4 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $5 - i32.const 1 - i32.shl - local.get $3 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $3 - i32.add - local.get $4 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - local.get $3 - 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 + local.get $0 + call $~lib/number/I32#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3434,9 +3179,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -3449,22 +3194,22 @@ i32.load offset=16 i32.const -2 i32.and - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 1776 + i32.const 1872 i32.store - block $__inlined_func$~lib/string/String#padStart$385 - i32.const 1772 + block $__inlined_func$~lib/string/String#padStart$382 + i32.const 1868 i32.load i32.const -2 i32.and - local.tee $5 + local.tee $2 i32.eqz local.get $1 i32.const 1 i32.shl - local.tee $3 - local.get $4 + local.tee $5 + local.get $3 i32.lt_u i32.or if @@ -3472,67 +3217,67 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#padStart$385 + br $__inlined_func$~lib/string/String#padStart$382 end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 2 call $~lib/rt/itcms/__new local.tee $1 i32.store offset=4 + local.get $5 local.get $3 - local.get $4 i32.sub - local.tee $6 - local.get $5 + local.tee $7 + local.get $2 i32.gt_u if - local.get $6 - local.get $6 + local.get $7 + local.get $7 i32.const 2 i32.sub - local.get $5 + local.get $2 i32.div_u - local.get $5 + local.get $2 i32.mul - local.tee $3 + local.tee $6 i32.sub - local.set $7 + local.set $5 loop $while-continue|0 - local.get $2 - local.get $3 + local.get $4 + local.get $6 i32.lt_u if local.get $1 - local.get $2 + local.get $4 i32.add - i32.const 1776 - local.get $5 + i32.const 1872 + local.get $2 memory.copy local.get $2 - local.get $5 + local.get $4 i32.add - local.set $2 + local.set $4 br $while-continue|0 end end local.get $1 - local.get $3 + local.get $6 i32.add - i32.const 1776 - local.get $7 + i32.const 1872 + local.get $5 memory.copy else local.get $1 - i32.const 1776 - local.get $6 + i32.const 1872 + local.get $7 memory.copy end local.get $1 - local.get $6 + local.get $7 i32.add local.get $0 - local.get $4 + local.get $3 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3548,8 +3293,8 @@ local.get $0 return end - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3566,11 +3311,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3593,7 +3338,7 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 3456 return end local.get $4 @@ -3609,7 +3354,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 1120 + i32.const 3456 local.get $0 select return @@ -3653,11 +3398,11 @@ i32.const 0 local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 3456 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 1116 + i32.const 3452 i32.load i32.const 1 i32.shr_u @@ -3720,7 +3465,7 @@ i32.const 1 i32.shl i32.add - i32.const 1120 + i32.const 3456 local.get $1 i32.const 1 i32.shl @@ -3778,11 +3523,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3802,7 +3547,7 @@ i32.shr_u local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 3456 i32.store local.get $0 local.get $1 @@ -3823,248 +3568,335 @@ i32.const -64 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8596 - i32.lt_s - if - i32.const 41392 - i32.const 41440 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 64 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $1 - i32.const 0 - i32.lt_s - local.tee $2 - local.get $1 - i32.const 10000 - i32.ge_s - i32.or - if (result i32) + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3584 - i32.const 3616 - local.get $2 - select - local.tee $2 + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 64 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 - i32.const 31 - i32.shr_s - local.tee $3 - local.get $1 - local.get $3 - i32.add - i32.xor - i32.const 6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $1 + i32.const 0 + i32.lt_s + local.tee $3 + local.get $1 + i32.const 10000 + i32.ge_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.const 1648 + local.get $3 + select + local.tee $3 + i32.store + local.get $1 + i32.const 31 + i32.shr_s + local.tee $4 + local.get $1 + local.get $4 + i32.add + i32.xor + i32.const 6 + call $~lib/date/stringify + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + block $__inlined_func$~lib/string/String#concat$383 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $6 + local.get $5 + i32.add + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3456 + local.set $1 + br $__inlined_func$~lib/string/String#concat$383 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $5 + memory.copy + local.get $1 + local.get $5 + i32.add + local.get $4 + local.get $6 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + else + local.get $1 + i32.const 4 + call $~lib/date/stringify + local.set $1 + end + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + i32.const 2 call $~lib/date/stringify - local.set $1 + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + i32.const 2 + call $~lib/date/stringify + local.tee $3 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCHours + i32.const 2 + call $~lib/date/stringify + local.tee $4 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCMinutes + i32.const 2 + call $~lib/date/stringify + local.tee $5 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCSeconds + i32.const 2 + call $~lib/date/stringify + local.tee $6 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCMilliseconds + i32.const 3 + call $~lib/date/stringify + local.tee $0 + i32.store offset=32 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/string/String.__concat - else + i32.store offset=4 + i32.const 3616 local.get $1 - i32.const 4 - call $~lib/date/stringify - end - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.const 2 - call $~lib/date/stringify - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - i32.const 2 - call $~lib/date/stringify - local.tee $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCHours - i32.const 2 - call $~lib/date/stringify - local.tee $4 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCMinutes - i32.const 2 - call $~lib/date/stringify - local.tee $5 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCSeconds - i32.const 2 - call $~lib/date/stringify - local.tee $6 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCMilliseconds - i32.const 3 - call $~lib/date/stringify - local.tee $0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=56 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=60 - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 3744 - local.get $1 - i32.store - i32.const 3744 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 3752 - local.get $2 - i32.store - i32.const 3744 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 3760 - local.get $3 - i32.store - i32.const 3744 - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 3768 - local.get $4 - i32.store - i32.const 3744 - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - i32.const 3776 - local.get $5 - i32.store - i32.const 3744 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 3784 - local.get $6 - i32.store - i32.const 3744 - local.get $6 + i32.store + i32.const 3616 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 3624 + local.get $2 + i32.store + i32.const 3616 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + i32.const 3632 + local.get $3 + i32.store + i32.const 3616 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 3640 + local.get $4 + i32.store + i32.const 3616 + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 3648 + local.get $5 + i32.store + i32.const 3616 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 3656 + local.get $6 + i32.store + i32.const 3616 + local.get $6 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 3664 + local.get $0 + i32.store + i32.const 3616 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + i32.const 3616 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const -64 + i32.sub + global.set $~lib/memory/__stack_pointer + return + end + i32.const 41264 + i32.const 41312 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 3792 - local.get $0 - i32.store - i32.const 3744 - local.get $0 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store - i32.const 3744 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - global.get $~lib/memory/__stack_pointer - i32.const -64 - i32.sub - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4073,11 +3905,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4162,11 +3994,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4181,7 +4013,7 @@ i32.const 5 call $~lib/rt/itcms/__new local.tee $2 - i32.const 4768 + i32.const 4640 i32.const 28 memory.copy local.get $2 @@ -4191,7 +4023,7 @@ i32.const 5 call $~lib/rt/itcms/__new local.tee $3 - i32.const 5200 + i32.const 5072 i32.const 48 memory.copy local.get $3 @@ -4223,7 +4055,7 @@ i32.lt_s local.set $6 local.get $1 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $5 @@ -4322,8 +4154,8 @@ local.get $3 i32.store offset=36 global.get $~lib/memory/__stack_pointer - i32.const 5328 - i32.const 5360 + i32.const 5200 + i32.const 5232 local.get $0 i32.const 0 i32.lt_s @@ -4334,74 +4166,74 @@ local.get $6 i32.store offset=44 global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 5152 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=48 - i32.const 5280 + i32.const 5152 local.get $2 i32.store - i32.const 5280 + i32.const 5152 local.get $2 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 5152 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=48 - i32.const 5284 + i32.const 5156 local.get $1 i32.store - i32.const 5280 + i32.const 5152 local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 5152 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=48 - i32.const 5288 + i32.const 5160 local.get $3 i32.store - i32.const 5280 + i32.const 5152 local.get $3 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 5152 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=48 - i32.const 5292 + i32.const 5164 local.get $0 i32.store - i32.const 5280 + i32.const 5152 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 5152 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=48 - i32.const 5296 + i32.const 5168 local.get $6 i32.store - i32.const 5280 + i32.const 5152 local.get $6 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 5152 i32.store offset=8 - i32.const 5280 + i32.const 5152 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer i32.const 52 @@ -4416,11 +4248,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4470,48 +4302,48 @@ local.get $0 i32.store offset=24 global.get $~lib/memory/__stack_pointer - i32.const 5584 + i32.const 5456 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=28 - i32.const 5584 + i32.const 5456 local.get $1 i32.store - i32.const 5584 + i32.const 5456 local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5584 + i32.const 5456 i32.store global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=28 - i32.const 5592 + i32.const 5464 local.get $2 i32.store - i32.const 5584 + i32.const 5456 local.get $2 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5584 + i32.const 5456 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=28 - i32.const 5600 + i32.const 5472 local.get $0 i32.store - i32.const 5584 + i32.const 5456 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5584 + i32.const 5456 i32.store - i32.const 5584 + i32.const 5456 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer i32.const 32 @@ -4531,11 +4363,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4550,7 +4382,7 @@ i32.const 5 call $~lib/rt/itcms/__new local.tee $2 - i32.const 5952 + i32.const 5824 i32.const 28 memory.copy local.get $2 @@ -4560,7 +4392,7 @@ i32.const 5 call $~lib/rt/itcms/__new local.tee $3 - i32.const 6384 + i32.const 6256 i32.const 48 memory.copy local.get $3 @@ -4592,7 +4424,7 @@ i32.lt_s local.set $7 local.get $1 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $6 @@ -4721,8 +4553,8 @@ local.get $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - i32.const 3584 - i32.const 1120 + i32.const 1616 + i32.const 3456 local.get $5 i32.const 0 i32.lt_s @@ -4742,113 +4574,113 @@ local.get $0 i32.store offset=68 global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=72 - i32.const 6496 + i32.const 6368 local.get $2 i32.store - i32.const 6496 + i32.const 6368 local.get $2 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=72 - i32.const 6500 + i32.const 6372 local.get $3 i32.store - i32.const 6496 + i32.const 6368 local.get $3 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=72 - i32.const 6504 + i32.const 6376 local.get $1 i32.store - i32.const 6496 + i32.const 6368 local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=72 - i32.const 6508 + i32.const 6380 local.get $5 i32.store - i32.const 6496 + i32.const 6368 local.get $5 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=72 - i32.const 6512 + i32.const 6384 local.get $7 i32.store - i32.const 6496 + i32.const 6368 local.get $7 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=72 - i32.const 6520 + i32.const 6392 local.get $4 i32.store - i32.const 6496 + i32.const 6368 local.get $4 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=72 - i32.const 6528 + i32.const 6400 local.get $6 i32.store - i32.const 6496 + i32.const 6368 local.get $6 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=72 - i32.const 6536 + i32.const 6408 local.get $0 i32.store - i32.const 6496 + i32.const 6368 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 6368 i32.store offset=8 - i32.const 6496 + i32.const 6368 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer i32.const 76 @@ -4863,11 +4695,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4977,11 +4809,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5050,7 +4882,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 3456 return end local.get $4 @@ -5094,11 +4926,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5145,11 +4977,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5176,7 +5008,7 @@ i32.load16_u local.set $0 loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$159 (result i32) + block $__inlined_func$~lib/util/string/isSpace$158 (result i32) local.get $0 i32.const 128 i32.or @@ -5191,7 +5023,7 @@ local.get $0 i32.const 5760 i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$159 + br_if $__inlined_func$~lib/util/string/isSpace$158 drop i32.const 1 local.get $0 @@ -5199,7 +5031,7 @@ i32.add i32.const 10 i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$159 + br_if $__inlined_func$~lib/util/string/isSpace$158 drop block $break|0 block $case0|0 @@ -5234,7 +5066,7 @@ br $break|0 end i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$159 + br $__inlined_func$~lib/util/string/isSpace$158 end i32.const 0 end @@ -5444,11 +5276,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5472,8 +5304,8 @@ i32.const 268435455 i32.gt_u if - i32.const 6912 - i32.const 6864 + i32.const 6784 + i32.const 6736 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -5482,7 +5314,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$358 + block $__inlined_func$~lib/rt/itcms/__renew$356 i32.const 1073741820 local.get $2 i32.const 1 @@ -5525,7 +5357,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$358 + br $__inlined_func$~lib/rt/itcms/__renew$356 end local.get $3 local.get $4 @@ -5575,11 +5407,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5643,7 +5475,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5666,7 +5498,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5747,7 +5579,7 @@ i32.store offset=4 local.get $2 i32.load offset=4 - i32.const 1120 + i32.const 3456 i32.store br $folding-inner4 end @@ -5871,7 +5703,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 1120 + i32.const 3456 call $~lib/array/Array<~lib/string/String>#push end local.get $5 @@ -5940,13 +5772,13 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 1120 + i32.const 3456 call $~lib/array/Array<~lib/string/String>#push end br $folding-inner4 end - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5977,11 +5809,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6026,11 +5858,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6055,11 +5887,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6076,9 +5908,9 @@ i32.load offset=12 i32.ge_u if - i32.const 1344 - i32.const 6864 - i32.const 114 + i32.const 1392 + i32.const 6736 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -6099,9 +5931,9 @@ local.get $0 i32.eqz if - i32.const 6960 - i32.const 6864 - i32.const 118 + i32.const 6832 + i32.const 6736 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -6131,7 +5963,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6149,8 +5981,8 @@ i32.shr_u i32.eqz if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 50 i32.const 33 call $~lib/builtins/abort @@ -6165,7 +5997,7 @@ local.get $0 i32.store local.get $0 - i32.const 3648 + i32.const 3488 i32.const 0 call $~lib/string/String#indexOf local.tee $2 @@ -6220,7 +6052,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6229,7 +6061,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - block $__inlined_func$~lib/string/String#charCodeAt$386 + block $__inlined_func$~lib/string/String#charCodeAt$384 local.get $3 local.get $2 i32.const 20 @@ -6245,7 +6077,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/string/String#charCodeAt$386 + br $__inlined_func$~lib/string/String#charCodeAt$384 end local.get $2 local.get $3 @@ -6286,8 +6118,8 @@ i32.sub i32.eq if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 74 i32.const 13 call $~lib/builtins/abort @@ -6298,7 +6130,7 @@ i32.store i32.const 0 local.get $2 - i32.const 1552 + i32.const 3520 local.get $3 i32.const 1 i32.add @@ -6405,7 +6237,7 @@ global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 1552 + i32.const 3520 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=24 @@ -6418,8 +6250,8 @@ i32.const 1 i32.le_s if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 96 i32.const 21 call $~lib/builtins/abort @@ -6472,7 +6304,7 @@ local.get $2 i32.store local.get $2 - i32.const 3680 + i32.const 3552 i32.const 0 call $~lib/string/String#indexOf local.tee $0 @@ -6496,7 +6328,7 @@ call $~lib/util/string/strtol local.set $6 global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/string/String#substr$387 (result i32) + block $__inlined_func$~lib/string/String#substr$385 (result i32) global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=44 @@ -6509,7 +6341,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6558,8 +6390,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 - br $__inlined_func$~lib/string/String#substr$387 + i32.const 3456 + br $__inlined_func$~lib/string/String#substr$385 end global.get $~lib/memory/__stack_pointer local.get $8 @@ -6590,7 +6422,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6607,10 +6439,10 @@ i32.and local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 1776 + i32.const 1872 i32.store - block $__inlined_func$~lib/string/String#padEnd$388 - i32.const 1772 + block $__inlined_func$~lib/string/String#padEnd$386 + i32.const 1868 i32.load i32.const -2 i32.and @@ -6625,7 +6457,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#padEnd$388 + br $__inlined_func$~lib/string/String#padEnd$386 end global.get $~lib/memory/__stack_pointer i32.const 6 @@ -6667,7 +6499,7 @@ local.get $4 local.get $12 i32.add - i32.const 1776 + i32.const 1872 local.get $8 memory.copy local.get $4 @@ -6682,14 +6514,14 @@ i32.add local.get $0 i32.add - i32.const 1776 + i32.const 1872 local.get $11 memory.copy else local.get $2 local.get $10 i32.add - i32.const 1776 + i32.const 1872 local.get $0 memory.copy end @@ -6728,7 +6560,7 @@ global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 3584 + i32.const 1616 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=56 @@ -6814,8 +6646,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6831,11 +6663,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6845,38 +6677,6 @@ i32.const 0 i32.const 436 memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 41364 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace block $folding-inner0 i32.const 1970 i32.const 1 @@ -6899,7 +6699,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 3 i32.const 3 call $~lib/builtins/abort @@ -6926,7 +6726,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 4 i32.const 3 call $~lib/builtins/abort @@ -6953,7 +6753,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 5 i32.const 3 call $~lib/builtins/abort @@ -6980,7 +6780,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -7007,7 +6807,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 7 i32.const 3 call $~lib/builtins/abort @@ -7034,7 +6834,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -7061,12 +6861,44 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 9 i32.const 3 call $~lib/builtins/abort unreachable end + memory.size + i32.const 16 + i32.shl + i32.const 41236 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/pinSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/toSpace + i32.const 1492 + i32.const 1488 + i32.store + i32.const 1496 + i32.const 1488 + i32.store + i32.const 1488 + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i64.const 1541847600001 call $~lib/date/Date#constructor @@ -7084,7 +6916,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -7108,7 +6940,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 20 i32.const 3 call $~lib/builtins/abort @@ -7131,7 +6963,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 28 i32.const 3 call $~lib/builtins/abort @@ -7149,7 +6981,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 29 i32.const 3 call $~lib/builtins/abort @@ -7167,7 +6999,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 30 i32.const 3 call $~lib/builtins/abort @@ -7182,7 +7014,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 31 i32.const 3 call $~lib/builtins/abort @@ -7197,7 +7029,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -7212,7 +7044,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -7227,7 +7059,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 34 i32.const 3 call $~lib/builtins/abort @@ -7250,7 +7082,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 40 i32.const 3 call $~lib/builtins/abort @@ -7268,7 +7100,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 41 i32.const 3 call $~lib/builtins/abort @@ -7286,7 +7118,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -7301,7 +7133,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -7316,7 +7148,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -7331,7 +7163,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -7346,7 +7178,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -7366,7 +7198,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -7387,7 +7219,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 54 i32.const 3 call $~lib/builtins/abort @@ -7408,7 +7240,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -7432,7 +7264,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 59 i32.const 3 call $~lib/builtins/abort @@ -7456,7 +7288,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -7475,7 +7307,7 @@ call $~lib/date/Date#getUTCMilliseconds if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -7493,7 +7325,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -7512,7 +7344,7 @@ call $~lib/date/Date#getUTCMilliseconds if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -7530,7 +7362,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -7550,7 +7382,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -7571,7 +7403,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 76 i32.const 3 call $~lib/builtins/abort @@ -7592,7 +7424,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 78 i32.const 3 call $~lib/builtins/abort @@ -7616,7 +7448,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -7640,7 +7472,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -7660,7 +7492,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 89 i32.const 3 call $~lib/builtins/abort @@ -7681,7 +7513,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 91 i32.const 3 call $~lib/builtins/abort @@ -7702,7 +7534,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 93 i32.const 3 call $~lib/builtins/abort @@ -7726,7 +7558,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 96 i32.const 3 call $~lib/builtins/abort @@ -7750,7 +7582,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -7770,7 +7602,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -7791,7 +7623,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 106 i32.const 3 call $~lib/builtins/abort @@ -7812,7 +7644,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -7836,7 +7668,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -7860,7 +7692,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 113 i32.const 3 call $~lib/builtins/abort @@ -7883,7 +7715,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 119 i32.const 3 call $~lib/builtins/abort @@ -7901,7 +7733,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 120 i32.const 3 call $~lib/builtins/abort @@ -7925,7 +7757,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 124 i32.const 3 call $~lib/builtins/abort @@ -7949,7 +7781,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -8013,7 +7845,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -8051,7 +7883,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 146 i32.const 3 call $~lib/builtins/abort @@ -8069,7 +7901,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -8087,7 +7919,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 148 i32.const 3 call $~lib/builtins/abort @@ -8102,7 +7934,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 149 i32.const 3 call $~lib/builtins/abort @@ -8117,7 +7949,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 150 i32.const 3 call $~lib/builtins/abort @@ -8132,7 +7964,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 151 i32.const 3 call $~lib/builtins/abort @@ -8161,7 +7993,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -8185,7 +8017,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 157 i32.const 3 call $~lib/builtins/abort @@ -8209,7 +8041,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 160 i32.const 3 call $~lib/builtins/abort @@ -8233,7 +8065,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 163 i32.const 3 call $~lib/builtins/abort @@ -8257,7 +8089,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 166 i32.const 3 call $~lib/builtins/abort @@ -8281,7 +8113,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 169 i32.const 3 call $~lib/builtins/abort @@ -8310,7 +8142,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 173 i32.const 3 call $~lib/builtins/abort @@ -8339,7 +8171,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 177 i32.const 3 call $~lib/builtins/abort @@ -8370,7 +8202,7 @@ local.get $0 i32.load offset=8 local.get $3 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $2 @@ -8423,7 +8255,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 187 i32.const 3 call $~lib/builtins/abort @@ -8454,7 +8286,7 @@ local.get $0 i32.load offset=8 local.get $3 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $2 @@ -8507,7 +8339,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 188 i32.const 3 call $~lib/builtins/abort @@ -8538,7 +8370,7 @@ local.get $0 i32.load offset=8 local.get $3 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $2 @@ -8591,7 +8423,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 189 i32.const 3 call $~lib/builtins/abort @@ -8622,7 +8454,7 @@ local.get $0 i32.load offset=8 local.get $3 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $2 @@ -8675,7 +8507,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 190 i32.const 3 call $~lib/builtins/abort @@ -8706,7 +8538,7 @@ local.get $0 i32.load offset=8 local.get $3 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $2 @@ -8759,7 +8591,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 192 i32.const 3 call $~lib/builtins/abort @@ -8790,7 +8622,7 @@ local.get $0 i32.load offset=8 local.get $3 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $2 @@ -8843,7 +8675,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 193 i32.const 3 call $~lib/builtins/abort @@ -8874,7 +8706,7 @@ local.get $0 i32.load offset=8 local.get $3 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $2 @@ -8927,7 +8759,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 194 i32.const 3 call $~lib/builtins/abort @@ -8958,7 +8790,7 @@ local.get $0 i32.load offset=8 local.get $3 - i32.const 3547 + i32.const 1579 i32.add i32.load8_u local.get $2 @@ -9009,7 +8841,7 @@ i32.add if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 195 i32.const 3 call $~lib/builtins/abort @@ -9032,7 +8864,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 201 i32.const 3 call $~lib/builtins/abort @@ -9058,7 +8890,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 203 i32.const 3 call $~lib/builtins/abort @@ -9084,7 +8916,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 205 i32.const 3 call $~lib/builtins/abort @@ -9102,7 +8934,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 206 i32.const 3 call $~lib/builtins/abort @@ -9128,7 +8960,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 209 i32.const 3 call $~lib/builtins/abort @@ -9154,7 +8986,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 211 i32.const 3 call $~lib/builtins/abort @@ -9180,7 +9012,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 215 i32.const 3 call $~lib/builtins/abort @@ -9198,7 +9030,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 216 i32.const 3 call $~lib/builtins/abort @@ -9224,7 +9056,7 @@ i32.sub if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 218 i32.const 3 call $~lib/builtins/abort @@ -9242,7 +9074,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 219 i32.const 3 call $~lib/builtins/abort @@ -9265,7 +9097,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 225 i32.const 3 call $~lib/builtins/abort @@ -9289,7 +9121,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 227 i32.const 3 call $~lib/builtins/abort @@ -9313,7 +9145,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 229 i32.const 3 call $~lib/builtins/abort @@ -9337,7 +9169,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 231 i32.const 3 call $~lib/builtins/abort @@ -9358,12 +9190,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 3824 + i32.const 3696 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 237 i32.const 3 call $~lib/builtins/abort @@ -9384,12 +9216,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 3904 + i32.const 3776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 239 i32.const 3 call $~lib/builtins/abort @@ -9410,12 +9242,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 3984 + i32.const 3856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 241 i32.const 3 call $~lib/builtins/abort @@ -9436,12 +9268,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 4064 + i32.const 3936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 243 i32.const 3 call $~lib/builtins/abort @@ -9462,12 +9294,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 4144 + i32.const 4016 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 245 i32.const 3 call $~lib/builtins/abort @@ -9488,12 +9320,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 4224 + i32.const 4096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 247 i32.const 3 call $~lib/builtins/abort @@ -9514,12 +9346,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 4304 + i32.const 4176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 249 i32.const 3 call $~lib/builtins/abort @@ -9540,12 +9372,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 4384 + i32.const 4256 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 251 i32.const 3 call $~lib/builtins/abort @@ -9566,12 +9398,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 4464 + i32.const 4336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 253 i32.const 3 call $~lib/builtins/abort @@ -9592,12 +9424,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 5392 + i32.const 5264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 259 i32.const 3 call $~lib/builtins/abort @@ -9618,12 +9450,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 5456 + i32.const 5328 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 261 i32.const 3 call $~lib/builtins/abort @@ -9644,12 +9476,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 5520 + i32.const 5392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 264 i32.const 3 call $~lib/builtins/abort @@ -9670,12 +9502,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 5632 + i32.const 5504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 270 i32.const 3 call $~lib/builtins/abort @@ -9696,12 +9528,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 5680 + i32.const 5552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 273 i32.const 3 call $~lib/builtins/abort @@ -9722,12 +9554,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 6576 + i32.const 6448 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 279 i32.const 3 call $~lib/builtins/abort @@ -9748,12 +9580,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 6656 + i32.const 6528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 281 i32.const 3 call $~lib/builtins/abort @@ -9774,19 +9606,19 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 6736 + i32.const 6608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 284 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6816 + i32.const 6688 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -9802,14 +9634,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 291 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7088 + i32.const 6960 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -9825,14 +9657,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 293 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7136 + i32.const 7008 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -9848,14 +9680,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 295 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7184 + i32.const 7056 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -9871,14 +9703,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 299 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7248 + i32.const 7120 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -9894,14 +9726,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 303 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7328 + i32.const 7200 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -9917,14 +9749,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 307 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7408 + i32.const 7280 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -9940,14 +9772,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 311 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7488 + i32.const 7360 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -9963,14 +9795,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 315 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7568 + i32.const 7440 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -9986,14 +9818,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 319 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7632 + i32.const 7504 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10009,14 +9841,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7712 + i32.const 7584 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10032,14 +9864,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 327 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7792 + i32.const 7664 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10055,14 +9887,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 331 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7872 + i32.const 7744 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10078,14 +9910,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 335 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7952 + i32.const 7824 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10101,14 +9933,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 339 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8048 + i32.const 7920 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10124,14 +9956,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 342 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8080 + i32.const 7952 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10147,14 +9979,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8112 + i32.const 7984 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10170,14 +10002,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 348 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8144 + i32.const 8016 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10193,14 +10025,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 351 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6816 + i32.const 6688 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10216,14 +10048,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 354 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8192 + i32.const 8064 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10239,14 +10071,14 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 357 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 7184 + i32.const 7056 call $~lib/date/Date.fromString local.tee $0 i32.store offset=288 @@ -10262,7 +10094,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 360 i32.const 3 call $~lib/builtins/abort @@ -10290,7 +10122,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 378 i32.const 3 call $~lib/builtins/abort @@ -10308,7 +10140,7 @@ i64.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 379 i32.const 3 call $~lib/builtins/abort @@ -10326,7 +10158,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 381 i32.const 3 call $~lib/builtins/abort @@ -10344,7 +10176,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 382 i32.const 3 call $~lib/builtins/abort @@ -10362,7 +10194,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 384 i32.const 3 call $~lib/builtins/abort @@ -10380,7 +10212,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 385 i32.const 3 call $~lib/builtins/abort @@ -10398,7 +10230,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 387 i32.const 3 call $~lib/builtins/abort @@ -10416,7 +10248,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -10432,12 +10264,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 8256 + i32.const 8128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -10453,12 +10285,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 8336 + i32.const 8208 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 391 i32.const 3 call $~lib/builtins/abort @@ -10486,7 +10318,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 396 i32.const 3 call $~lib/builtins/abort @@ -10504,7 +10336,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 397 i32.const 3 call $~lib/builtins/abort @@ -10522,7 +10354,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 398 i32.const 3 call $~lib/builtins/abort @@ -10535,7 +10367,7 @@ call $~lib/date/Date#getUTCHours if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 399 i32.const 3 call $~lib/builtins/abort @@ -10548,7 +10380,7 @@ call $~lib/date/Date#getUTCMinutes if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 400 i32.const 3 call $~lib/builtins/abort @@ -10561,7 +10393,7 @@ call $~lib/date/Date#getUTCSeconds if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 401 i32.const 3 call $~lib/builtins/abort @@ -10576,7 +10408,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 402 i32.const 3 call $~lib/builtins/abort @@ -10592,12 +10424,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 8416 + i32.const 8288 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 404 i32.const 3 call $~lib/builtins/abort @@ -10613,12 +10445,12 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 8496 + i32.const 8368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1152 i32.const 405 i32.const 3 call $~lib/builtins/abort @@ -10630,8 +10462,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 36 i32.const 26 call $~lib/builtins/abort @@ -10646,11 +10478,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s if - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10760,7 +10592,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10808,7 +10640,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8596 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10818,8 +10650,8 @@ end unreachable end - i32.const 41392 - i32.const 41440 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/hash.debug.wat b/tests/compiler/std/hash.debug.wat index 486f960e45..d903d3716d 100644 --- a/tests/compiler/std/hash.debug.wat +++ b/tests/compiler/std/hash.debug.wat @@ -1,37 +1,18 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param f32) (result i32))) - (type $7 (func (param f64) (result i32))) - (type $8 (func (param i32 i32 i64) (result i32))) - (type $9 (func (result i32))) - (type $10 (func (param i32 i64 i32))) - (type $11 (func (param i64 i32) (result i32))) - (type $12 (func (param i32 i64 i32 i32))) - (type $13 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param f32) (result i32))) + (type $4 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/memory/__data_end i32 (i32.const 380)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33148)) (global $~lib/memory/__heap_base i32 (i32.const 33148)) - (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/__rtti_base (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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") @@ -316,2632 +297,13 @@ (func $~start call $start:std/hash ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33344 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33344 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 33344 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 33472 - i32.const 33536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 33344 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 33344 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 33280 - i32.const 33616 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33616 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 33280 - i32.const 33344 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 33916 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 33916 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33916 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33916 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 34336 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 34336 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35392 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35392 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~stack_check global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if i32.const 33168 - i32.const 35552 + i32.const 33216 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3526,84 +888,8 @@ local.get $19 return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 32 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3612,322 +898,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 33216 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 33248 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 33680 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 33680 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 35488 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 33712 - i32.const 33840 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 33904 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 33472 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 33280 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 34336 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 35392 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/std/hash.release.wat b/tests/compiler/std/hash.release.wat index 89198cb130..7ab53f6b60 100644 --- a/tests/compiler/std/hash.release.wat +++ b/tests/compiler/std/hash.release.wat @@ -1,20 +1,9 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34172)) - (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/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02") @@ -62,1663 +51,36 @@ i32.const 1376 call $~lib/util/hash/HASH<~lib/string/String|null> ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - i32.const 34496 - call $~lib/rt/itcms/__visit - i32.const 34304 - call $~lib/rt/itcms/__visit - i32.const 35360 - call $~lib/rt/itcms/__visit - i32.const 36416 - call $~lib/rt/itcms/__visit - i32.const 4 - i32.load - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 34368 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - 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 - 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 34368 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$145 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34172 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 34368 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$145 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 34368 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.load - i32.gt_u - if - i32.const 34496 - i32.const 34560 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.load offset=4 - i32.const 32 - i32.and - end - local.set $1 - i32.const 8 - i32.load - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $1 - select - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - i32.const 8 - local.get $0 - i32.store - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34640 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 34640 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 34640 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 34640 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34640 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 34640 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 34640 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 34640 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 34640 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 34640 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 34640 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 34640 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 34176 - i32.const 0 - i32.store - i32.const 35744 - 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 34176 - 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 34176 - 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 34176 - i32.const 35748 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34176 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - i32.const 0 - 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 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34172 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 - local.get $1 - global.set $~lib/rt/itcms/white - i32.const 4 - i32.load - 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 - 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 34368 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34172 - 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 - local.tee $0 - i32.const 34172 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 34640 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - i32.const 4 - i32.const 0 - i32.store - i32.const 8 - i32.const 0 - i32.store - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 34640 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 34640 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 34304 - i32.const 34368 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$97 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$97 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 34304 - i32.const 34640 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 34640 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 34640 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 34640 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - i32.const 8 - i32.load - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.store offset=4 - 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 - i32.const 8 - local.get $1 - i32.store - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + (func $~stack_check global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s if + 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 + global.get $~lib/memory/__stack_pointer i32.const 34192 - i32.const 36576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$101 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 34928 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$101 - end + i32.store global.get $~lib/memory/__stack_pointer - local.get $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 $2 + i32.const 34240 + i32.store offset=4 + i32.const 34192 + i32.const 34240 i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 34940 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 34940 - 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 34940 - 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 34940 - 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 + i32.const 1 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + unreachable end - local.get $0 ) (func $~lib/util/hash/HASH<~lib/string/String|null> (param $0 i32) (local $1 i32) @@ -1732,17 +94,7 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1404 - i32.lt_s - if - i32.const 34192 - i32.const 36576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1753,9 +105,9 @@ if global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $1 i32.store offset=4 - local.get $1 + local.get $0 + local.tee $1 i32.const 20 i32.sub i32.load offset=16 @@ -1918,228 +270,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 1404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 1404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$150 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#concat$150 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34192 - i32.const 36576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1404 - i32.lt_s - if - i32.const 34192 - i32.const 36576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 34240 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 34272 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 34704 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 34704 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 36512 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) ) diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index bb41af4def..76f2a5bccb 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -10,36 +10,31 @@ (type $8 (func (param i32 i64))) (type $9 (func (param i32 i64 i32) (result i32))) (type $10 (func (param i32 i64) (result i32))) - (type $11 (func (param i32) (result f32))) - (type $12 (func (param i32 f32))) - (type $13 (func (param i32) (result f64))) - (type $14 (func (param i32 f64))) - (type $15 (func (param i32 f32 i32) (result i32))) - (type $16 (func (param i32 f32) (result i32))) - (type $17 (func (param i32 f64 i32) (result i32))) - (type $18 (func (param i32 f64) (result i32))) - (type $19 (func (param i64) (result i32))) - (type $20 (func (param i32 i32 i32 i32))) + (type $11 (func (param i32 i32 i32 i32))) + (type $12 (func (param i32) (result f32))) + (type $13 (func (param i32 f32))) + (type $14 (func (param i32) (result f64))) + (type $15 (func (param i32 f64))) + (type $16 (func (param i32 f32 i32) (result i32))) + (type $17 (func (param i32 f32) (result i32))) + (type $18 (func (param i32 f64 i32) (result i32))) + (type $19 (func (param i32 f64) (result i32))) + (type $20 (func (param i64) (result i32))) (type $21 (func (param i32 i32 i64))) (type $22 (func (param i32 i32) (result i64))) (type $23 (func (param i32 i64 i64) (result i32))) - (type $24 (func (param i32 i64 i32))) - (type $25 (func (param i64 i32) (result i32))) - (type $26 (func (param i32 i64 i32 i32))) - (type $27 (func (param i32 i32 i64) (result i32))) - (type $28 (func (result i32))) - (type $29 (func (param f32) (result i32))) - (type $30 (func (param f64) (result i32))) - (type $31 (func (param i32 i32 f32))) - (type $32 (func (param i32 i32) (result f32))) - (type $33 (func (param i32 f32 f32) (result i32))) - (type $34 (func (param i32 i32 f64))) - (type $35 (func (param i32 i32) (result f64))) - (type $36 (func (param i32 f64 f64) (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)) + (type $24 (func (param i32 i32 i64) (result i32))) + (type $25 (func (result i32))) + (type $26 (func (param f32) (result i32))) + (type $27 (func (param f64) (result i32))) + (type $28 (func (param i32 i32 f32))) + (type $29 (func (param i32 i32) (result f32))) + (type $30 (func (param i32 f32 f32) (result i32))) + (type $31 (func (param i32 i32 f64))) + (type $32 (func (param i32 i32) (result f64))) + (type $33 (func (param i32 f64 f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -48,474 +43,38 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $~lib/rt/__rtti_base i32 (i32.const 2704)) - (global $~lib/memory/__data_end i32 (i32.const 2840)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35608)) - (global $~lib/memory/__heap_base i32 (i32.const 35608)) + (global $~lib/rt/__rtti_base i32 (i32.const 736)) + (global $~lib/memory/__data_end i32 (i32.const 872)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33640)) + (global $~lib/memory/__heap_base i32 (i32.const 33640)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2540) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $23 (i32.const 2604) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $24 (i32.const 2652) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $25 (i32.const 2704) "!\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00B\08\00\00\02\t\00\00P\88\10\00\10\t\12\00\10\89\00\00B\00\00\00P\80\00\00\10\t\11\00\82\08\00\00\90\08\11\00\10\t\01\00\82\00\00\00\90\00\01\00\10\t\02\00\02\01\00\00\10\01\02\00\10\t\14\00\02\n\00\00\10\n\14\00\10\t\04\00\02\02\00\00\10\02\04\00\10\t2\00\02\19\00\00\10\192\00\10\t4\00\02\1a\00\00\10\1a4\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 684) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $14 (i32.const 736) "!\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00B\08\00\00\02\t\00\00P\88\10\00\10\t\12\00\10\89\00\00B\00\00\00P\80\00\00\10\t\11\00\82\08\00\00\90\08\11\00\10\t\01\00\82\00\00\00\90\00\01\00\10\t\02\00\02\01\00\00\10\01\02\00\10\t\14\00\02\n\00\00\10\n\14\00\10\t\04\00\02\02\00\00\10\02\04\00\10\t2\00\02\19\00\00\10\192\00\10\t4\00\02\1a\00\00\10\1a4\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -580,7 +139,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -650,7 +209,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -667,7 +226,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -697,9 +256,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -766,7 +325,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -918,7 +477,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -938,7 +497,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1001,7 +560,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1154,7 +713,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1171,7 +730,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1260,7 +819,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1303,7 +862,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1321,7 +880,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1389,7 +948,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1506,7 +1065,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1552,7 +1111,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1584,7 +1143,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1828,7 +1387,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2048,7 +1607,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2159,8 +1718,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2262,7 +1821,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2333,7 +1892,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2490,7 +2049,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2605,7 +2164,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2625,7 +2184,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2673,8 +2232,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2734,7 +2293,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -5650,13 +5209,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $"std/map/testNumeric" @@ -5679,20 +5238,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35632 - i32.const 35680 + i32.const 33664 + i32.const 33712 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5701,196 +5256,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) @@ -6533,9 +5919,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -6640,9 +6026,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -6753,8 +6139,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 + i32.const 432 + i32.const 704 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -6818,6 +6204,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -6856,9 +6246,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -7097,9 +6487,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -7194,9 +6584,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -7620,9 +7010,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -7672,9 +7062,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -8981,7 +8371,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -9010,7 +8400,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -9031,7 +8421,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -9056,7 +8446,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -9080,7 +8470,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -9101,7 +8491,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -9130,7 +8520,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -9151,7 +8541,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -9176,7 +8566,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -9254,7 +8644,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -9273,7 +8663,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -9322,7 +8712,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -9340,7 +8730,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -9364,7 +8754,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -9385,7 +8775,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -9412,7 +8802,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -9437,7 +8827,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -9462,7 +8852,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -9491,7 +8881,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -9518,7 +8908,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -9543,7 +8933,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -9568,7 +8958,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -10222,9 +9612,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -10329,9 +9719,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -10426,9 +9816,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -10853,9 +10243,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -11657,7 +11047,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -11686,7 +11076,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -11707,7 +11097,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -11732,7 +11122,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -11756,7 +11146,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -11777,7 +11167,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -11806,7 +11196,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -11827,7 +11217,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -11852,7 +11242,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -11930,7 +11320,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -11949,7 +11339,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -11998,7 +11388,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -12016,7 +11406,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -12040,7 +11430,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -12061,7 +11451,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -12088,7 +11478,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -12113,7 +11503,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -12138,7 +11528,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -12167,7 +11557,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -12194,7 +11584,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -12219,7 +11609,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -12244,7 +11634,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -12896,9 +12286,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -13003,9 +12393,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -13100,9 +12490,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -13527,9 +12917,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -14329,7 +13719,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -14358,7 +13748,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -14379,7 +13769,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -14404,7 +13794,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -14428,7 +13818,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -14449,7 +13839,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -14478,7 +13868,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -14499,7 +13889,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -14524,7 +13914,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -14602,7 +13992,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -14621,7 +14011,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -14670,7 +14060,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -14688,7 +14078,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -14712,7 +14102,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -14733,7 +14123,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -14760,7 +14150,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -14785,7 +14175,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -14810,7 +14200,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -14839,7 +14229,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -14866,7 +14256,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -14891,7 +14281,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -14916,7 +14306,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -15570,9 +14960,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -15677,9 +15067,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -15774,9 +15164,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -16201,9 +15591,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -17005,7 +16395,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -17034,7 +16424,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -17055,7 +16445,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -17080,7 +16470,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -17104,7 +16494,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -17125,7 +16515,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -17154,7 +16544,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -17175,7 +16565,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -17200,7 +16590,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -17278,7 +16668,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -17297,7 +16687,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -17346,7 +16736,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -17364,7 +16754,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -17388,7 +16778,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -17409,7 +16799,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -17436,7 +16826,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -17461,7 +16851,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -17486,7 +16876,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -17515,7 +16905,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -17542,7 +16932,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -17567,7 +16957,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -17592,7 +16982,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -17658,9 +17048,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -18168,7 +17558,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -18197,7 +17587,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -18218,7 +17608,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -18243,7 +17633,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -18267,7 +17657,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -18288,7 +17678,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -18317,7 +17707,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -18338,7 +17728,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -18363,7 +17753,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -18441,7 +17831,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -18460,7 +17850,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -18509,7 +17899,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -18527,7 +17917,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -18551,7 +17941,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -18572,7 +17962,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -18599,7 +17989,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -18624,7 +18014,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -18649,7 +18039,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -18678,7 +18068,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -18705,7 +18095,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -18730,7 +18120,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -18755,7 +18145,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -19405,9 +18795,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -19512,9 +18902,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -19609,9 +18999,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -20036,9 +19426,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -20836,7 +20226,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -20865,7 +20255,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -20886,7 +20276,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -20911,7 +20301,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -20935,7 +20325,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -20956,7 +20346,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -20985,7 +20375,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -21006,7 +20396,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -21031,7 +20421,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -21109,7 +20499,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -21128,7 +20518,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -21177,7 +20567,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -21195,7 +20585,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -21219,7 +20609,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -21240,7 +20630,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -21267,7 +20657,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -21292,7 +20682,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -21317,7 +20707,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -21346,7 +20736,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -21373,7 +20763,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -21398,7 +20788,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -21423,7 +20813,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -22073,9 +21463,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -22180,9 +21570,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -22277,9 +21667,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -22705,9 +22095,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -23505,7 +22895,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -23535,7 +22925,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -23557,7 +22947,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -23582,7 +22972,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -23606,7 +22996,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -23628,7 +23018,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -23658,7 +23048,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -23680,7 +23070,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -23705,7 +23095,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -23783,7 +23173,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -23803,7 +23193,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -23852,7 +23242,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -23870,7 +23260,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -23894,7 +23284,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -23916,7 +23306,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -23943,7 +23333,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -23968,7 +23358,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -23993,7 +23383,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -24023,7 +23413,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -24050,7 +23440,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -24075,7 +23465,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -24100,7 +23490,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -24750,9 +24140,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -24857,9 +24247,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -24954,9 +24344,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -25382,9 +24772,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -26182,7 +25572,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -26212,7 +25602,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -26234,7 +25624,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -26259,7 +25649,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -26283,7 +25673,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -26305,7 +25695,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -26335,7 +25725,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -26357,7 +25747,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -26382,7 +25772,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -26460,7 +25850,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -26480,7 +25870,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -26529,7 +25919,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -26547,7 +25937,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -26571,7 +25961,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -26593,7 +25983,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -26620,7 +26010,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -26645,7 +26035,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -26670,7 +26060,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -26700,7 +26090,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -26727,7 +26117,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -26752,7 +26142,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -26777,7 +26167,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -27427,9 +26817,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -27534,9 +26924,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -27631,9 +27021,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -28059,9 +27449,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -28859,7 +28249,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -28889,7 +28279,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -28911,7 +28301,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -28936,7 +28326,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -28960,7 +28350,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -28982,7 +28372,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -29012,7 +28402,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -29034,7 +28424,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -29059,7 +28449,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -29137,7 +28527,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -29157,7 +28547,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -29206,7 +28596,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -29224,7 +28614,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -29248,7 +28638,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -29270,7 +28660,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -29297,7 +28687,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -29322,7 +28712,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -29347,7 +28737,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -29377,7 +28767,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -29404,7 +28794,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -29429,7 +28819,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -29454,7 +28844,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -30104,9 +29494,9 @@ local.get $entry i32.eqz if - i32.const 2560 - i32.const 2624 - i32.const 105 + i32.const 592 + i32.const 656 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -30211,9 +29601,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2672 - i32.const 70 + i32.const 432 + i32.const 704 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -30308,9 +29698,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2672 - i32.const 130 + i32.const 224 + i32.const 704 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -30736,9 +30126,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2672 - i32.const 114 + i32.const 224 + i32.const 704 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -31536,7 +30926,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -31566,7 +30956,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -31588,7 +30978,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -31613,7 +31003,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -31637,7 +31027,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -31659,7 +31049,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -31689,7 +31079,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -31711,7 +31101,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -31736,7 +31126,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -31814,7 +31204,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -31834,7 +31224,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -31883,7 +31273,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -31901,7 +31291,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -31925,7 +31315,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -31947,7 +31337,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -31974,7 +31364,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -31999,7 +31389,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -32024,7 +31414,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -32054,7 +31444,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -32081,7 +31471,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -32106,7 +31496,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -32131,7 +31521,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -32142,153 +31532,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) (local $buffer i32) (local $3 i32) @@ -32304,8 +31547,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 432 + i32.const 480 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -32332,22 +31575,16 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2400 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2560 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 432 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 592 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) @@ -32845,6 +32082,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -32882,6 +32123,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -32908,6 +32153,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -32935,6 +32184,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -32973,6 +32226,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33011,6 +32268,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33048,6 +32309,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -33075,6 +32340,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33113,6 +32382,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33150,6 +32423,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -33177,6 +32454,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33215,6 +32496,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33252,6 +32537,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -33279,6 +32568,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33317,6 +32610,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33354,6 +32651,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -33381,6 +32682,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33419,6 +32724,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33456,6 +32765,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -33483,6 +32796,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33521,6 +32838,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33558,6 +32879,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -33585,6 +32910,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33623,6 +32952,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33660,6 +32993,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -33687,6 +33024,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33725,6 +33066,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -33762,6 +33107,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -33789,6 +33138,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 8eaeb7af36..f7c4d36296 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -7,9 +7,9 @@ (type $5 (func (param i32))) (type $6 (func (param i32 i32 i32) (result i32))) (type $7 (func (param i32 i64) (result i32))) - (type $8 (func (param i32 i32 i64))) - (type $9 (func (result i32))) - (type $10 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i64))) + (type $10 (func (result i32))) (type $11 (func (param i32 i64 i32) (result i32))) (type $12 (func (param i32 i64 i32))) (type $13 (func (param i32 i64 i64))) @@ -24,6 +24,7 @@ (type $22 (func (param i32 f64 i32))) (type $23 (func (param i32 f64 f64))) (type $24 (func (param i32 f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -34,266 +35,43 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36632)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34664)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) "<") - (data $20.1 (i32.const 3464) "\02\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 $21 (i32.const 3516) ",") - (data $21.1 (i32.const 3528) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s") - (data $22 (i32.const 3564) "<") - (data $22.1 (i32.const 3576) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data $23 (i32.const 3628) ",") - (data $23.1 (i32.const 3640) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data $24 (i32.const 3676) ",") - (data $24.1 (i32.const 3688) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $25 (i32.const 3728) "!\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00B\08\00\00\02\t\00\00P\88\10\00\10\t\12\00\10\89\00\00B\00\00\00P\80\00\00\10\t\11\00\82\08\00\00\90\08\11\00\10\t\01\00\82\00\00\00\90\00\01\00\10\t\02\00\02\01\00\00\10\01\02\00\10\t\14\00\02\n\00\00\10\n\14\00\10\t\04\00\02\02\00\00\10\02\04\00\10\t2\00\02\19\00\00\10\192\00\10\t4\00\02\1a\00\00\10\1a4") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) ",") + (data $8.1 (i32.const 1448) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $9 (i32.const 1484) "<") + (data $9.1 (i32.const 1496) "\02\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 $10 (i32.const 1548) ",") + (data $10.1 (i32.const 1560) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s") + (data $11 (i32.const 1596) "<") + (data $11.1 (i32.const 1608) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data $12 (i32.const 1660) ",") + (data $12.1 (i32.const 1672) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data $13 (i32.const 1708) ",") + (data $13.1 (i32.const 1720) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $14 (i32.const 1760) "!\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00B\08\00\00\02\t\00\00P\88\10\00\10\t\12\00\10\89\00\00B\00\00\00P\80\00\00\10\t\11\00\82\08\00\00\90\08\11\00\10\t\01\00\82\00\00\00\90\00\01\00\10\t\02\00\02\01\00\00\10\01\02\00\10\t\14\00\02\n\00\00\10\n\14\00\10\t\04\00\02\02\00\00\10\02\04\00\10\t2\00\02\19\00\00\10\192\00\10\t4\00\02\1a\00\00\10\1a4") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3864 - i32.lt_s - if - i32.const 36656 - i32.const 36704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3424 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3584 + i32.const 1456 call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1616 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -314,7 +92,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -347,7 +125,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -356,7 +134,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1435 + block $__inlined_func$~lib/rt/itcms/Object#unlink$1423 local.get $0 i32.load offset=4 i32.const -4 @@ -368,19 +146,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36632 + i32.const 34664 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1435 + br $__inlined_func$~lib/rt/itcms/Object#unlink$1423 end local.get $0 i32.load offset=8 @@ -388,7 +166,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -417,13 +195,13 @@ i32.const 1 else local.get $1 - i32.const 3728 + i32.const 1760 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -431,7 +209,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3732 + i32.const 1764 i32.add i32.load i32.const 32 @@ -502,7 +280,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -516,7 +294,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -562,7 +340,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -645,7 +423,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -659,7 +437,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -720,7 +498,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -753,7 +531,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -768,7 +546,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -819,7 +597,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -891,7 +669,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -916,7 +694,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -943,7 +721,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1015,10 +793,10 @@ if unreachable end - i32.const 36640 + i32.const 34672 i32.const 0 i32.store - i32.const 38208 + i32.const 36240 i32.const 0 i32.store loop $for-loop|0 @@ -1029,7 +807,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36640 + i32.const 34672 i32.add i32.const 0 i32.store offset=4 @@ -1047,7 +825,7 @@ i32.add i32.const 2 i32.shl - i32.const 36640 + i32.const 34672 i32.add i32.const 0 i32.store offset=96 @@ -1065,14 +843,14 @@ br $for-loop|0 end end - i32.const 36640 - i32.const 38212 + i32.const 34672 + i32.const 36244 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36640 + i32.const 34672 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1157,7 +935,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36632 + i32.const 34664 i32.lt_u if local.get $0 @@ -1246,14 +1024,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36632 + i32.const 34664 i32.lt_u if local.get $0 @@ -1276,7 +1054,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36632 + i32.const 34664 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1305,7 +1083,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1389,7 +1167,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1441,7 +1219,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1473,8 +1251,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1484,7 +1262,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1501,7 +1279,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1534,8 +1312,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1637,7 +1415,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1652,7 +1430,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1671,7 +1449,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1786,7 +1564,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1834,34 +1612,34 @@ memory.size i32.const 16 i32.shl - i32.const 36632 + i32.const 34664 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $"std/map/testNumeric" call $"std/map/testNumeric" @@ -1907,205 +1685,40 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3864 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3864 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$1441 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$1441 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36656 - i32.const 36704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2114,11 +1727,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2189,11 +1802,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2257,11 +1870,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2446,11 +2059,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2636,11 +2249,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2687,9 +2300,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -2707,11 +2320,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2738,11 +2351,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2768,8 +2381,8 @@ i32.shr_u i32.gt_u if - i32.const 3424 - i32.const 3696 + i32.const 1456 + i32.const 1728 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -2809,7 +2422,7 @@ select local.set $1 end - block $__inlined_func$~lib/rt/itcms/__renew$1384 + block $__inlined_func$~lib/rt/itcms/__renew$1372 local.get $4 i32.const 20 i32.sub @@ -2827,7 +2440,7 @@ i32.store offset=16 local.get $4 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$1384 + br $__inlined_func$~lib/rt/itcms/__renew$1372 end local.get $1 local.get $3 @@ -2875,11 +2488,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2900,9 +2513,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3696 - i32.const 130 + i32.const 1248 + i32.const 1728 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -2942,11 +2555,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2980,11 +2593,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3033,9 +2646,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -3097,11 +2710,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3122,9 +2735,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3696 - i32.const 130 + i32.const 1248 + i32.const 1728 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3166,11 +2779,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3206,11 +2819,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3291,11 +2904,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3379,11 +2992,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3408,11 +3021,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3429,9 +3042,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3467,7 +3080,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3515,7 +3128,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3538,7 +3151,7 @@ i32.add i32.load local.set $3 - block $"__inlined_func$~lib/map/Map#find$1385" + block $"__inlined_func$~lib/map/Map#find$1373" loop $while-continue|0 local.get $3 if @@ -3562,7 +3175,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1385" + br $"__inlined_func$~lib/map/Map#find$1373" end local.get $4 i32.const -2 @@ -3637,7 +3250,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3885,8 +3498,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3899,11 +3512,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3979,11 +3592,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4168,11 +3781,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4358,11 +3971,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4495,11 +4108,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4583,7 +4196,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4596,7 +4209,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4684,7 +4297,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -4708,7 +4321,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -4726,7 +4339,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -4748,7 +4361,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -4770,7 +4383,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -4788,7 +4401,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -4812,7 +4425,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -4830,7 +4443,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -4852,7 +4465,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -4867,7 +4480,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4891,7 +4504,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4937,9 +4550,9 @@ i32.const 1073741820 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -5056,7 +4669,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5152,7 +4765,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -5166,9 +4779,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -5202,7 +4815,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -5219,7 +4832,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -5258,7 +4871,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -5273,7 +4886,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -5295,7 +4908,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -5313,7 +4926,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -5333,7 +4946,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -5355,7 +4968,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -5376,7 +4989,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -5400,7 +5013,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -5420,7 +5033,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -5442,7 +5055,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -5460,7 +5073,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -5472,8 +5085,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5485,11 +5098,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5554,11 +5167,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5743,11 +5356,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5934,11 +5547,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5986,9 +5599,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -6016,7 +5629,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6065,7 +5678,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6088,7 +5701,7 @@ i32.add i32.load local.set $3 - block $"__inlined_func$~lib/map/Map#find$1390" + block $"__inlined_func$~lib/map/Map#find$1378" loop $while-continue|0 local.get $3 if @@ -6112,7 +5725,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1390" + br $"__inlined_func$~lib/map/Map#find$1378" end local.get $4 i32.const -2 @@ -6187,7 +5800,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6435,8 +6048,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6449,11 +6062,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6596,7 +6209,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6609,7 +6222,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6697,7 +6310,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -6721,7 +6334,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -6739,7 +6352,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -6761,7 +6374,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -6783,7 +6396,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -6801,7 +6414,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -6825,7 +6438,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -6843,7 +6456,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -6865,7 +6478,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -6880,7 +6493,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6904,7 +6517,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6950,9 +6563,9 @@ i32.const 1073741820 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -7069,7 +6682,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7165,7 +6778,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7179,9 +6792,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -7215,7 +6828,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -7232,7 +6845,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -7271,7 +6884,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -7286,7 +6899,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -7308,7 +6921,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -7326,7 +6939,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -7346,7 +6959,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -7368,7 +6981,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -7389,7 +7002,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -7413,7 +7026,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -7433,7 +7046,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -7455,7 +7068,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -7473,7 +7086,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -7485,8 +7098,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7499,11 +7112,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7574,11 +7187,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7642,11 +7255,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7831,11 +7444,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8021,11 +7634,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8072,9 +7685,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -8093,11 +7706,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8118,9 +7731,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3696 - i32.const 130 + i32.const 1248 + i32.const 1728 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -8162,11 +7775,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8207,7 +7820,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8255,7 +7868,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8278,7 +7891,7 @@ i32.add i32.load local.set $3 - block $"__inlined_func$~lib/map/Map#find$1395" + block $"__inlined_func$~lib/map/Map#find$1383" loop $while-continue|0 local.get $3 if @@ -8302,7 +7915,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1395" + br $"__inlined_func$~lib/map/Map#find$1383" end local.get $4 i32.const -2 @@ -8377,7 +7990,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8625,8 +8238,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8639,11 +8252,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8785,7 +8398,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8798,7 +8411,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8886,7 +8499,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -8910,7 +8523,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -8928,7 +8541,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -8950,7 +8563,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -8972,7 +8585,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -8990,7 +8603,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -9014,7 +8627,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -9032,7 +8645,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -9054,7 +8667,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -9069,7 +8682,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -9093,7 +8706,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -9139,9 +8752,9 @@ i32.const 536870910 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -9260,7 +8873,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -9356,7 +8969,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -9370,9 +8983,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -9408,7 +9021,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -9425,7 +9038,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -9464,7 +9077,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -9479,7 +9092,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -9501,7 +9114,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -9519,7 +9132,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -9539,7 +9152,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -9561,7 +9174,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -9582,7 +9195,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -9606,7 +9219,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -9626,7 +9239,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -9648,7 +9261,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -9666,7 +9279,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -9678,8 +9291,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9691,11 +9304,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9760,11 +9373,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9949,11 +9562,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10140,11 +9753,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10192,9 +9805,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -10222,7 +9835,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10271,7 +9884,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10294,7 +9907,7 @@ i32.add i32.load local.set $3 - block $"__inlined_func$~lib/map/Map#find$1400" + block $"__inlined_func$~lib/map/Map#find$1388" loop $while-continue|0 local.get $3 if @@ -10318,7 +9931,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1400" + br $"__inlined_func$~lib/map/Map#find$1388" end local.get $4 i32.const -2 @@ -10393,7 +10006,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10641,8 +10254,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10655,11 +10268,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10802,7 +10415,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10815,7 +10428,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10903,7 +10516,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -10927,7 +10540,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -10945,7 +10558,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -10967,7 +10580,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -10989,7 +10602,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -11007,7 +10620,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -11031,7 +10644,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -11049,7 +10662,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -11071,7 +10684,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -11086,7 +10699,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -11110,7 +10723,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -11156,9 +10769,9 @@ i32.const 536870910 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -11277,7 +10890,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -11373,7 +10986,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -11387,9 +11000,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -11425,7 +11038,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -11442,7 +11055,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -11481,7 +11094,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -11496,7 +11109,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -11518,7 +11131,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -11536,7 +11149,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -11556,7 +11169,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -11578,7 +11191,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -11599,7 +11212,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -11623,7 +11236,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -11643,7 +11256,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -11665,7 +11278,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -11683,7 +11296,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -11695,8 +11308,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11708,11 +11321,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11768,11 +11381,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11818,9 +11431,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -11839,11 +11452,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11983,7 +11596,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12007,7 +11620,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -12031,7 +11644,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -12049,7 +11662,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -12071,7 +11684,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -12093,7 +11706,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -12111,7 +11724,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -12135,7 +11748,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -12153,7 +11766,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -12175,7 +11788,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -12190,7 +11803,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12312,7 +11925,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -12329,7 +11942,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -12368,7 +11981,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -12383,7 +11996,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -12405,7 +12018,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -12423,7 +12036,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -12443,7 +12056,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -12465,7 +12078,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -12486,7 +12099,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -12510,7 +12123,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -12530,7 +12143,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -12552,7 +12165,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -12570,7 +12183,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -12582,8 +12195,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12596,11 +12209,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12669,11 +12282,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12736,11 +12349,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12925,11 +12538,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13114,11 +12727,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13164,9 +12777,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -13194,7 +12807,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -13297,7 +12910,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -13545,8 +13158,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13559,11 +13172,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13704,7 +13317,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -13717,7 +13330,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -13805,7 +13418,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -13829,7 +13442,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -13847,7 +13460,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -13869,7 +13482,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -13891,7 +13504,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -13909,7 +13522,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -13933,7 +13546,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -13951,7 +13564,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -13973,7 +13586,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -13988,7 +13601,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -14012,7 +13625,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -14058,9 +13671,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -14179,7 +13792,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -14275,7 +13888,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -14289,9 +13902,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -14327,7 +13940,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -14344,7 +13957,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -14383,7 +13996,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -14398,7 +14011,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -14420,7 +14033,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -14438,7 +14051,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -14458,7 +14071,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -14480,7 +14093,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -14501,7 +14114,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -14525,7 +14138,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -14545,7 +14158,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -14567,7 +14180,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -14585,7 +14198,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -14597,8 +14210,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14611,11 +14224,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14684,11 +14297,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14764,11 +14377,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14965,11 +14578,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15166,11 +14779,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15228,9 +14841,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -15249,11 +14862,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15274,9 +14887,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3696 - i32.const 130 + i32.const 1248 + i32.const 1728 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -15318,11 +14931,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15358,11 +14971,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15452,7 +15065,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -15469,7 +15082,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -15532,7 +15145,7 @@ i32.add i32.load local.set $3 - block $"__inlined_func$~lib/map/Map#find$1410" + block $"__inlined_func$~lib/map/Map#find$1398" loop $while-continue|0 local.get $3 if @@ -15554,7 +15167,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1410" + br $"__inlined_func$~lib/map/Map#find$1398" end local.get $4 i32.const -2 @@ -15629,7 +15242,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -15889,8 +15502,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15904,11 +15517,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16052,11 +15665,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16141,7 +15754,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16154,7 +15767,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16242,7 +15855,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -16267,7 +15880,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -16286,7 +15899,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -16308,7 +15921,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -16330,7 +15943,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -16349,7 +15962,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -16374,7 +15987,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -16393,7 +16006,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -16415,7 +16028,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -16430,7 +16043,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16454,7 +16067,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16500,9 +16113,9 @@ i32.const 134217727 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -16619,7 +16232,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16717,7 +16330,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16731,9 +16344,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -16769,7 +16382,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -16787,7 +16400,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -16826,7 +16439,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -16841,7 +16454,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -16863,7 +16476,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -16882,7 +16495,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -16902,7 +16515,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -16924,7 +16537,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -16945,7 +16558,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -16970,7 +16583,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -16990,7 +16603,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -17012,7 +16625,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -17030,7 +16643,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -17042,8 +16655,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17056,11 +16669,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17129,11 +16742,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17209,11 +16822,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17410,11 +17023,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17611,11 +17224,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17673,9 +17286,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -17704,7 +17317,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -17721,7 +17334,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -17784,7 +17397,7 @@ i32.add i32.load local.set $3 - block $"__inlined_func$~lib/map/Map#find$1415" + block $"__inlined_func$~lib/map/Map#find$1403" loop $while-continue|0 local.get $3 if @@ -17806,7 +17419,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1415" + br $"__inlined_func$~lib/map/Map#find$1403" end local.get $4 i32.const -2 @@ -17881,7 +17494,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18141,8 +17754,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18156,11 +17769,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18314,7 +17927,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18327,7 +17940,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18415,7 +18028,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -18440,7 +18053,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -18459,7 +18072,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -18481,7 +18094,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -18503,7 +18116,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -18522,7 +18135,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -18547,7 +18160,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -18566,7 +18179,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -18588,7 +18201,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -18603,7 +18216,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18627,7 +18240,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18673,9 +18286,9 @@ i32.const 134217727 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -18792,7 +18405,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18890,7 +18503,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18904,9 +18517,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -18942,7 +18555,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -18960,7 +18573,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -18999,7 +18612,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -19014,7 +18627,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -19036,7 +18649,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -19055,7 +18668,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -19075,7 +18688,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -19097,7 +18710,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -19118,7 +18731,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -19143,7 +18756,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -19163,7 +18776,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -19185,7 +18798,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -19203,7 +18816,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -19215,8 +18828,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19229,11 +18842,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19302,11 +18915,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19371,11 +18984,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19561,11 +19174,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19751,11 +19364,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19802,9 +19415,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -19830,7 +19443,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19854,7 +19467,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -19900,9 +19513,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -19989,7 +19602,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -20007,9 +19620,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3696 - i32.const 130 + i32.const 1248 + i32.const 1728 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -20065,8 +19678,8 @@ local.get $6 return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20089,7 +19702,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -20193,7 +19806,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -20442,8 +20055,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20457,11 +20070,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20602,7 +20215,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -20615,7 +20228,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -20703,7 +20316,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -20728,7 +20341,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -20747,7 +20360,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -20769,7 +20382,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -20791,7 +20404,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -20810,7 +20423,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -20835,7 +20448,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -20854,7 +20467,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -20876,7 +20489,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -20904,7 +20517,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -21000,7 +20613,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -21014,9 +20627,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -21052,7 +20665,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -21070,7 +20683,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -21109,7 +20722,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -21124,7 +20737,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -21146,7 +20759,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -21165,7 +20778,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -21185,7 +20798,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -21207,7 +20820,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -21228,7 +20841,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -21253,7 +20866,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -21273,7 +20886,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -21295,7 +20908,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -21313,7 +20926,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -21325,8 +20938,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21339,11 +20952,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21413,11 +21026,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21496,11 +21109,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21700,11 +21313,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21904,11 +21517,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21968,9 +21581,9 @@ local.tee $0 i32.eqz if - i32.const 3584 - i32.const 3648 - i32.const 105 + i32.const 1616 + i32.const 1680 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -21996,7 +21609,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -22020,7 +21633,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -22066,9 +21679,9 @@ i32.const 134217727 i32.gt_u if - i32.const 3424 - i32.const 3696 - i32.const 70 + i32.const 1456 + i32.const 1728 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -22155,7 +21768,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -22173,9 +21786,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3696 - i32.const 130 + i32.const 1248 + i32.const 1728 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -22231,8 +21844,8 @@ local.get $6 return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22256,7 +21869,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -22273,7 +21886,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -22338,7 +21951,7 @@ i32.add i32.load local.set $3 - block $"__inlined_func$~lib/map/Map#find$1425" + block $"__inlined_func$~lib/map/Map#find$1413" loop $while-continue|0 local.get $3 if @@ -22360,7 +21973,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1425" + br $"__inlined_func$~lib/map/Map#find$1413" end local.get $4 i32.const -2 @@ -22435,7 +22048,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -22697,8 +22310,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22713,11 +22326,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22871,7 +22484,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -22884,7 +22497,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -22972,7 +22585,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -22997,7 +22610,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -23016,7 +22629,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 9 i32.const 5 call $~lib/builtins/abort @@ -23038,7 +22651,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -23060,7 +22673,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 15 i32.const 5 call $~lib/builtins/abort @@ -23079,7 +22692,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -23104,7 +22717,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 5 call $~lib/builtins/abort @@ -23123,7 +22736,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 19 i32.const 5 call $~lib/builtins/abort @@ -23145,7 +22758,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -23173,7 +22786,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -23269,7 +22882,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -23283,9 +22896,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3696 - i32.const 114 + i32.const 1248 + i32.const 1728 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -23321,7 +22934,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -23339,7 +22952,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 5 call $~lib/builtins/abort @@ -23378,7 +22991,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -23393,7 +23006,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -23415,7 +23028,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -23434,7 +23047,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 5 call $~lib/builtins/abort @@ -23454,7 +23067,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 5 call $~lib/builtins/abort @@ -23476,7 +23089,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -23497,7 +23110,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 50 i32.const 5 call $~lib/builtins/abort @@ -23522,7 +23135,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 5 call $~lib/builtins/abort @@ -23542,7 +23155,7 @@ call $"~lib/map/Map#has" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 5 call $~lib/builtins/abort @@ -23564,7 +23177,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -23582,7 +23195,7 @@ call $"~lib/map/Map#get:size" if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -23594,8 +23207,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23607,11 +23220,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s if - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23624,8 +23237,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3424 - i32.const 3472 + i32.const 1456 + i32.const 1504 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -23676,7 +23289,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -23705,7 +23318,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3864 + i32.const 1896 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -23723,8 +23336,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36656 - i32.const 36704 + i32.const 34688 + i32.const 34736 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/math.debug.wat b/tests/compiler/std/math.debug.wat index 654ceaf7bb..cdce966d26 100644 --- a/tests/compiler/std/math.debug.wat +++ b/tests/compiler/std/math.debug.wat @@ -2,41 +2,33 @@ (type $0 (func (param f64) (result f64))) (type $1 (func (param f64 f64 f64 i32) (result i32))) (type $2 (func (param f32 f32 f32 i32) (result i32))) - (type $3 (func (param i32) (result i32))) - (type $4 (func (param f32) (result f32))) - (type $5 (func (param i32 i32))) - (type $6 (func (param f64 f64) (result f64))) - (type $7 (func (param i32 i32) (result i32))) - (type $8 (func (param i32))) - (type $9 (func (param f64 f64 f64 f64 i32) (result i32))) - (type $10 (func (param f32 f32 f32 f32 i32) (result i32))) - (type $11 (func)) - (type $12 (func (param f32 f32) (result f32))) - (type $13 (func (param i32 i32 i32))) - (type $14 (func (result f64))) - (type $15 (func (param f64) (result i32))) - (type $16 (func (param f64 i32) (result f64))) - (type $17 (func (param f64 f64 f64) (result f64))) - (type $18 (func (param i32 i32 i64) (result i32))) - (type $19 (func (result i32))) - (type $20 (func (param i32 i64 i32))) - (type $21 (func (param i64 i32) (result i32))) - (type $22 (func (param i32 i64 i32 i32))) - (type $23 (func (param f32) (result i32))) - (type $24 (func (param f32 i32) (result f32))) - (type $25 (func (param f32 f32 f32) (result f32))) - (type $26 (func (param f64 i32 f64 f64 i32) (result i32))) - (type $27 (func (param f32 i32 f32 f32 i32) (result i32))) - (type $28 (func (param f64 i64) (result i32))) - (type $29 (func (param f64 f64) (result i32))) - (type $30 (func (param i64) (result i64))) - (type $31 (func (param i64))) - (type $32 (func (result f32))) - (type $33 (func (param f64 f64 i32) (result f64))) - (type $34 (func (param f64))) - (type $35 (func (param i64 i64 i64 i64 i64 i32) (result i32))) - (type $36 (func (param i64 i64) (result i64))) - (type $37 (func (param i32 i32 i32 i32))) + (type $3 (func (param f32) (result f32))) + (type $4 (func (param f64 f64) (result f64))) + (type $5 (func (param f64 f64 f64 f64 i32) (result i32))) + (type $6 (func (param f32 f32 f32 f32 i32) (result i32))) + (type $7 (func (param f32 f32) (result f32))) + (type $8 (func (result f64))) + (type $9 (func)) + (type $10 (func (param f64) (result i32))) + (type $11 (func (param i32 i32 i32 i32))) + (type $12 (func (param f64 i32) (result f64))) + (type $13 (func (param f64 f64 f64) (result f64))) + (type $14 (func (param f32) (result i32))) + (type $15 (func (param f32 i32) (result f32))) + (type $16 (func (param f32 f32 f32) (result f32))) + (type $17 (func (param f64 i32 f64 f64 i32) (result i32))) + (type $18 (func (param f32 i32 f32 f32 i32) (result i32))) + (type $19 (func (param f64 i64) (result i32))) + (type $20 (func (param f64 f64) (result i32))) + (type $21 (func (param i64) (result i64))) + (type $22 (func (param i32) (result i32))) + (type $23 (func (param i64))) + (type $24 (func (result f32))) + (type $25 (func (param f64 f64 i32) (result f64))) + (type $26 (func (param f64))) + (type $27 (func (param i64 i64 i64 i64 i64 i32) (result i32))) + (type $28 (func (param i64 i64) (result i64))) + (type $29 (func (param i32 i32) (result i32))) (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64)) (import "env" "Math.LN2" (global $~lib/bindings/dom/Math.LN2 f64)) (import "env" "Math.LN10" (global $~lib/bindings/dom/Math.LN10 f64)) @@ -44,6 +36,7 @@ (import "env" "Math.PI" (global $~lib/bindings/dom/Math.PI f64)) (import "env" "Math.SQRT1_2" (global $~lib/bindings/dom/Math.SQRT1_2 f64)) (import "env" "Math.SQRT2" (global $~lib/bindings/dom/Math.SQRT2 f64)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "env" "Math.abs" (func $~lib/bindings/dom/Math.abs (param f64) (result f64))) (import "env" "Math.acos" (func $~lib/bindings/dom/Math.acos (param f64) (result f64))) (import "env" "Math.acosh" (func $~lib/bindings/dom/Math.acosh (param f64) (result f64))) @@ -86,21 +79,7 @@ (global $std/math/kTwo120 f64 (f64.const 1329227995784915872903807e12)) (global $~lib/math/NativeMath.E f64 (f64.const 2.718281828459045)) (global $~lib/math/NativeMathf.E f32 (f32.const 2.7182817459106445)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $~lib/math/NativeMath.LN2 f64 (f64.const 0.6931471805599453)) (global $~lib/math/NativeMath.LN10 f64 (f64.const 2.302585092994046)) (global $~lib/math/NativeMath.LOG2E f64 (f64.const 1.4426950408889634)) @@ -113,6 +92,7 @@ (global $~lib/math/NativeMathf.PI f32 (f32.const 3.1415927410125732)) (global $~lib/math/NativeMathf.SQRT1_2 f32 (f32.const 0.7071067690849304)) (global $~lib/math/NativeMathf.SQRT2 f32 (f32.const 1.4142135381698608)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/math/rempio2_y0 (mut f64) (f64.const 0)) (global $~lib/math/rempio2_y1 (mut f64) (f64.const 0)) (global $~lib/math/res128_hi (mut i64) (i64.const 0)) @@ -130,43 +110,22 @@ (global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284)) (global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991)) (global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16)) - (global $~lib/rt/__rtti_base i32 (i32.const 15712)) - (global $~lib/memory/__data_end i32 (i32.const 15732)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 48500)) - (global $~lib/memory/__heap_base i32 (i32.const 48500)) + (global $~lib/memory/__data_end i32 (i32.const 13344)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 46112)) + (global $~lib/memory/__heap_base i32 (i32.const 46112)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\9f\de\e0\c3\f04\f7?\00\90\e6y\7f\cc\d7\bf\1f\e9,jx\13\f7?\00\00\r\c2\eeo\d7\bf\a0\b5\fa\08`\f2\f6?\00\e0Q\13\e3\13\d7\bf}\8c\13\1f\a6\d1\f6?\00x(8[\b8\d6\bf\d1\b4\c5\0bI\b1\f6?\00x\80\90U]\d6\bf\ba\0c/3G\91\f6?\00\00\18v\d0\02\d6\bf#B\"\18\9fq\f6?\00\90\90\86\ca\a8\d5\bf\d9\1e\a5\99OR\f6?\00P\03VCO\d5\bf\c4$\8f\aaV3\f6?\00@k\c37\f6\d4\bf\14\dc\9dk\b3\14\f6?\00P\a8\fd\a7\9d\d4\bfL\\\c6Rd\f6\f5?\00\a8\899\92E\d4\bfO,\91\b5g\d8\f5?\00\b8\b09\f4\ed\d3\bf\de\90[\cb\bc\ba\f5?\00p\8fD\ce\96\d3\bfx\1a\d9\f2a\9d\f5?\00\a0\bd\17\1e@\d3\bf\87VF\12V\80\f5?\00\80F\ef\e2\e9\d2\bf\d3k\e7\ce\97c\f5?\00\e008\1b\94\d2\bf\93\7f\a7\e2%G\f5?\00\88\da\8c\c5>\d2\bf\83E\06B\ff*\f5?\00\90\')\e1\e9\d1\bf\df\bd\b2\db\"\0f\f5?\00\f8H+m\95\d1\bf\d7\de4G\8f\f3\f4?\00\f8\b9\9agA\d1\bf@(\de\cfC\d8\f4?\00\98\ef\94\d0\ed\d0\bf\c8\a3x\c0>\bd\f4?\00\10\db\18\a5\9a\d0\bf\8a%\e0\c3\7f\a2\f4?\00\b8cR\e6G\d0\bf4\84\d4$\05\88\f4?\00\f0\86E\"\eb\cf\bf\0b-\19\1b\cem\f4?\00\b0\17uJG\cf\bfT\189\d3\d9S\f4?\000\10=D\a4\ce\bfZ\84\b4D\':\f4?\00\b0\e9D\r\02\ce\bf\fb\f8\15A\b5 \f4?\00\f0w)\a2`\cd\bf\b1\f4>\da\82\07\f4?\00\90\95\04\01\c0\cc\bf\8f\feW]\8f\ee\f3?\00\10\89V) \cc\bf\e9L\0b\a0\d9\d5\f3?\00\10\81\8d\17\81\cb\bf+\c1\10\c0`\bd\f3?\00\d0\d3\cc\c9\e2\ca\bf\b8\dau+$\a5\f3?\00\90\12.@E\ca\bf\02\d0\9f\cd\"\8d\f3?\00\f0\1dhw\a8\c9\bf\1cz\84\c5[u\f3?\000Him\0c\c9\bf\e26\adI\ce]\f3?\00\c0E\a6 q\c8\bf@\d4M\98yF\f3?\000\14\b4\8f\d6\c7\bf$\cb\ff\ce\\/\f3?\00pb<\b8<\c7\bfI\r\a1uw\18\f3?\00`7\9b\9a\a3\c6\bf\909>7\c8\01\f3?\00\a0\b7T1\0b\c6\bfA\f8\95\bbN\eb\f2?\000$v}s\c5\bf\d1\a9\19\02\n\d5\f2?\000\c2\8f{\dc\c4\bf*\fd\b7\a8\f9\be\f2?\00\00\d2Q,F\c4\bf\ab\1b\0cz\1c\a9\f2?\00\00\83\bc\8a\b0\c3\bf0\b5\14`r\93\f2?\00\00Ik\99\1b\c3\bf\f5\a1WW\fa}\f2?\00@\a4\90T\87\c2\bf\bf;\1d\9b\b3h\f2?\00\a0y\f8\b9\f3\c1\bf\bd\f5\8f\83\9dS\f2?\00\a0,%\c8`\c1\bf;\08\c9\aa\b7>\f2?\00 \f7W\7f\ce\c0\bf\b6@\a9+\01*\f2?\00\a0\feI\dc<\c0\bf2A\cc\96y\15\f2?\00\80K\bc\bdW\bf\bf\9b\fc\d2\1d \01\f2?\00@@\96\087\be\bf\0bHMI\f4\ec\f1?\00@\f9>\98\17\bd\bfie\8fR\f5\d8\f1?\00\a0\d8Ng\f9\bb\bf|~W\11#\c5\f1?\00`/ y\dc\ba\bf\e9&\cbt|\b1\f1?\00\80(\e7\c3\c0\b9\bf\b6\1a,\0c\01\9e\f1?\00\c0r\b3F\a6\b8\bf\bdp\b6{\b0\8a\f1?\00\00\ac\b3\01\8d\b7\bf\b6\bc\ef%\8aw\f1?\00\008E\f1t\b6\bf\da1L5\8dd\f1?\00\80\87m\0e^\b5\bf\dd_\'\90\b9Q\f1?\00\e0\a1\de\\H\b4\bfL\d22\a4\0e?\f1?\00\a0jM\d93\b3\bf\da\f9\10r\8b,\f1?\00`\c5\f8y \b2\bf1\b5\ec(0\1a\f1?\00 b\98F\0e\b1\bf\af4\84\da\fb\07\f1?\00\00\d2jl\fa\af\bf\b3kN\0f\ee\f5\f0?\00@wJ\8d\da\ad\bf\ce\9f*]\06\e4\f0?\00\00\85\e4\ec\bc\ab\bf!\a5,cD\d2\f0?\00\c0\12@\89\a1\a9\bf\1a\98\e2|\a7\c0\f0?\00\c0\023X\88\a7\bf\d16\c6\83/\af\f0?\00\80\d6g^q\a5\bf9\13\a0\98\db\9d\f0?\00\80eI\8a\\\a3\bf\df\e7R\af\ab\8c\f0?\00@\15d\e3I\a1\bf\fb(N/\9f{\f0?\00\80\eb\82\c0r\9e\bf\19\8f5\8c\b5j\f0?\00\80RR\f1U\9a\bf,\f9\ec\a5\eeY\f0?\00\80\81\cfb=\96\bf\90,\d1\cdII\f0?\00\00\aa\8c\fb(\92\bf\a9\ad\f0\c6\c68\f0?\00\00\f9 {1\8c\bf\a92y\13e(\f0?\00\00\aa]5\19\84\bfHs\ea\'$\18\f0?\00\00\ec\c2\03\12x\bf\95\b1\14\06\04\08\f0?\00\00$y\t\04`\bf\1a\fa&\f7\1f\e0\ef?\00\00\90\84\f3\efo?t\eaa\c2\1c\a1\ef?\00\00=5A\dc\87?.\99\81\b0\10c\ef?\00\80\c2\c4\a3\ce\93?\cd\ad\ee<\f6%\ef?\00\00\89\14\c1\9f\9b?\e7\13\91\03\c8\e9\ee?\00\00\11\ce\d8\b0\a1?\ab\b1\cbx\80\ae\ee?\00\c0\01\d0[\8a\a5?\9b\0c\9d\a2\1at\ee?\00\80\d8@\83\\\a9?\b5\99\n\83\91:\ee?\00\80W\efj\'\ad?V\9a`\t\e0\01\ee?\00\c0\98\e5\98u\b0?\98\bbw\e5\01\ca\ed?\00 \r\e3\f5S\b2?\03\91|\0b\f2\92\ed?\00\008\8b\dd.\b4?\ce\\\fbf\ac\\\ed?\00\c0W\87Y\06\b6?\9d\de^\aa,\'\ed?\00\00j5v\da\b7?\cd,k>n\f2\ec?\00`\1cNC\ab\b9?\02y\a7\a2m\be\ec?\00`\r\bb\c7x\bb?m\087m&\8b\ec?\00 \e72\13C\bd?\04X]\bd\94X\ec?\00`\deq1\n\bf?\8c\9f\bb3\b5&\ec?\00@\91+\15g\c0??\e7\ec\ee\83\f5\eb?\00\b0\92\82\85G\c1?\c1\96\dbu\fd\c4\eb?\000\ca\cdn&\c2?(J\86\0c\1e\95\eb?\00P\c5\a6\d7\03\c3?,>\ef\c5\e2e\eb?\00\103<\c3\df\c3?\8b\88\c9gH7\eb?\00\80zk6\ba\c4?J0\1d!K\t\eb?\00\f0\d1(9\93\c5?~\ef\f2\85\e8\db\ea?\00\f0\18$\cdj\c6?\a2=`1\1d\af\ea?\00\90f\ec\f8@\c7?\a7X\d3?\e6\82\ea?\00\f0\1a\f5\c0\15\c8?\8bs\t\ef@W\ea?\00\80\f6T)\e9\c8?\'K\ab\90*,\ea?\00@\f8\026\bb\c9?\d1\f2\93\13\a0\01\ea?\00\00,\1c\ed\8b\ca?\1b<\db$\9f\d7\e9?\00\d0\01\\Q[\cb?\90\b1\c7\05%\ae\e9?\00\c0\bc\ccg)\cc?/\ce\97\f2.\85\e9?\00`H\d55\f6\cc?uK\a4\ee\ba\\\e9?\00\c0F4\bd\c1\cd?8H\e7\9d\c64\e9?\00\e0\cf\b8\01\8c\ce?\e6Rg/O\r\e9?\00\90\17\c0\tU\cf?\9d\d7\ff\8eR\e6\e8?\00\b8\1f\12l\0e\d0?|\00\cc\9f\ce\bf\e8?\00\d0\93\0e\b8q\d0?\0e\c3\be\da\c0\99\e8?\00p\86\9ek\d4\d0?\fb\17#\aa\'t\e8?\00\d0K3\876\d1?\08\9a\b3\ac\00O\e8?\00H#g\r\98\d1?U>e\e8I*\e8?\00\80\cc\e0\ff\f8\d1?`\02\f4\95\01\06\e8?\00hc\d7_Y\d2?)\a3\e0c%\e2\e7?\00\a8\14\t0\b9\d2?\ad\b5\dcw\b3\be\e7?\00`C\10r\18\d3?\c2%\97g\aa\9b\e7?\00\18\ecm&w\d3?W\06\17\f2\07y\e7?\000\af\fbO\d5\d3?\0c\13\d6\db\caV\e7?\00\e0/\e3\ee2\d4?") - (data $21 (i32.const 4480) "k\b6O\01\00\10\e6?<[B\91l\02~<\95\b4M\03\000\e6?A]\00H\ea\bf\8d\f6\05\eb\ff\ef\e6?S-\e2\1a\04\80~\bc\80\97\86\0e\00\10\e7?Ry\tqf\ff{<\12\e9g\fc\ff/\e7?$\87\bd&\e2\00\8c\89<\b9{F\13\000\e9?v\02\98KN\80\7f.\98\dd\ff\af\e9?7\93Z\8a\e0@\87\bcf\fbI\ed\ff\cf\e9?\00\e0\9b\c1\08\ce?O*\00\b0\ea?_?\ff<\04\fdi\bc\d1\1e\ae\d7\ff\cf\ea?\b4p\90\12\e7>\82\bcx\04Q\ee\ff\ef\ea?\a3\de\0e\e0>\06j<[\re\db\ff\0f\eb?\b9\n\1f8\c8\06ZO\86\d0E\ff\8a<@\16\87\f9\ff\8f\eb?\f9\c3\c2\96w\fe|\f0\0f\00\f0\f4?\1cS\85\0b\89\7f\97<\d1K\dc\12\00\10\f5?6\a4fqe\04`\c9\03\00\b0\f5?\c0\0c\bf\n\08A\9f\bc\bc\19I\1d\00\d0\f5?)G%\fb*\81\98\bc\89z\b8\e7\ff\ef\f5?\04i\ed\80\b7~\94\bc") - (data $22 (i32.const 6528) "\be\f3\f8y\eca\f6?\de\aa\8c\80\f7{\d5\bf=\88\afJ\edq\f5?\dbm\c0\a7\f0\be\d2\bf\b0\10\f0\f09\95\f4?g:Q\7f\ae\1e\d0\bf\85\03\b8\b0\95\c9\f3?\e9$\82\a6\d81\cb\bf\a5d\88\0c\19\r\f3?Xw\c0\nOW\c6\bf\a0\8e\0b{\"^\f2?\00\81\9c\c7+\aa\c1\bf?4\1aJJ\bb\f1?^\0e\8c\cevN\ba\bf\ba\e5\8a\f0X#\f1?\cc\1caZ<\97\b1\bf\a7\00\99A?\95\f0?\1e\0c\e18\f4R\a2\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?\84Y\f2]\aa\a5\aa?\a0j\02\1f\b3\a4\ec?\b4.6\aaS^\bc?\e6\fcjW6 \eb?\08\db w\e5&\c5?-\aa\a1c\d1\c2\e9?pG\"\r\86\c2\cb?\edAx\03\e6\86\e8?\e1~\a0\c8\8b\05\d1?bHS\f5\dcg\e7?\t\ee\b6W0\04\d4?") - (data $23 (i32.const 6784) "n\83\f9\a2\00\00\00\00\d1W\'\fc)\15DN\99\95b\db\c0\dd4\f5\abcQ\feA\90C<:n$\b7a\c5\bb\de\ea.I\06\e0\d2MB\1c\eb\1d\fe\1c\92\d1\t\f55\82\e8>\a7)\b1&p\9c\e9\84D\bb.9\d6\919A~_\b4\8b_\84\9c\f49S\83\ff\97\f8\1f;(\f9\bd\8b\11/\ef\0f\98\05\de\cf~6m\1fm\nZf?FO\b7\t\cb\'\c7\ba\'u-\ea_\9e\f79\07={\f1\e5\eb\b1_\fbk\ea\92R\8aF0\03V\08]\8d\1f \bc\cf\f0\abk{\fca\91\e3\a9\1d6\f4\9a_\85\99e\08\1b\e6^\80\d8\ff\8d@h\a0\14W\15\06\061\'sM") - (data $24 (i32.const 6976) ")\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe") - (data $25 (i32.const 7008) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?n\bf\88\1aO;\9b<53\fb\a9=\f6\ef?]\dc\d8\9c\13`q\bca\80w>\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\rG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") - (data $26 (i32.const 9056) "\00\00\00\00\00\00\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") - (data $27 (i32.const 9312) "\f8\ac\b1k($\f7?\00\b0\cd\ee_\t\e1\bf\a1\cc\d2f\f7\e1\f6?\00\d0v\bd\94\84\e0\bf\8a\d40\0e=\a1\f6?\00\f8\e8\aeC\01\e0\bf\85l\d02\eca\f6?\00@\0b6\c5\fe\de\bf\f8\98\11\95\fa#\f6?\00\e0\b7\1a\d9\fd\dd\bfl\02\cf\a4[\e7\f5?\00\90\c7\0c\ae\ff\dc\bf\b8O!Z\05\ac\f5?\00\a0\fd\118\04\dc\bf\1en\16\0f\edq\f5?\00\e0:2g\0b\db\bf5\f8\0bY\t9\f5?\00\b0-Z/\15\da\bf\dd\ada\edO\01\f5?\00`\f8Z\7f!\d9\bf\d0{H\8e\b8\ca\f4?\00\90q\b0M0\d8\bf\eeO3\b49\95\f4?\00\e0\a9\f9\89A\d7\bfi\d5\af\df\cb`\f4?\00\90\19\b5+U\d6\bfS\b9\e4Nf-\f4?\00\10\9b\a2#k\d5\bf\a6\d8\1d\11\01\fb\f3?\00\a0_\0fe\83\d4\bf6X\0c\b7\95\c9\f3?\00\a0\f67\e9\9d\d3\bfJ\fd\b6J\1c\99\f3?\00`\8dS\a1\ba\d2\bf\b5\99\e0\0c\8ei\f3?\00@\ca@\83\d9\d1\bf\b2\e7\13\82\e4:\f3?\00\e0@:\85\fa\d0\bf\b1\bd\85\19\19\r\f3?\000\e72\9c\1d\d0\bf\d7q\b2\ca%\e0\f2?\00`\fa\a2}\85\ce\bf\82\cd\13\cf\04\b4\f2?\00\80=c\c8\d3\cc\bfP\cb|,\b0\88\f2?\00\a0\14L\03&\cb\bf\e5M\94c\"^\f2?\00\e0O/\1c|\c9\bf\b1\15\86=V4\f2?\00\00\80?\02\d6\c7\bf8\af>\e3F\0b\f2?\00\e0\05\1a\a73\c6\bf\dd\a3\cd\fd\ee\e2\f1?\00\00W\e9\f5\94\c4\bf09\0bXJ\bb\f1?\00\a0\e0$\e4\f9\c2\bf\00\"\7f\84S\94\f1?\00\c0\fdZYb\c1\bf<\d7\d5\c0\06n\f1?\00\80\bdu\9a\9c\bf\bf\c2\e4\b7G_H\f1?\00\c0\f9[W{\bc\bf\d1\85\00\adX#\f1?\00\80\f4\0f\c6`\b9\bf\'\"S\0f\f0\fe\f0?\00\00\b6G\e2L\b6\bf\8f:\d0w \db\f0?\00@\01\b2x?\b3\bf\d9\80Y\d6\e6\b7\f0?\00\c0B\1a}8\b0\bf\8d@{\fe>\95\f0?\00\00\b5\08\92o\aa\bf\83;\c5\ca%s\f0?\00\00wO\95z\a4\bf\\\1b\r\e4\97Q\f0?\00\00\0c\c5\a8#\9d\bf\a2\8e \c1\910\f0?\00\00x)&j\91\bf!~\b3%\10\10\f0?\00\00\e8\d8\f8 w\bfk\a7\ca\f9~\c0\ef?\00\00P\b1S\fe\86?\84\f1\f6\d3eD\ef?\00\80\0f\e1\cc\1c\a1?\7f\10\84\9f\07\cc\ee?\00\80\8b\8c\fcM\ac?\e8Z\97\99:W\ee?\00@W\1e2\aa\b3?\e6=\bd\f0\d6\e5\ed?\00\80\8b\d0\a0\18\b9?\b38\ff\81\b6w\ed?\00@\04\da\e9r\be?C\e9Mr\b5\0c\ed?\00`\7fP\d2\dc\c1?cu\0e\dc\b2\a4\ec?\00\a0\de\03\abv\c4?Q\cb\d6\e8\8e?\ec?\00 \e2wC\07\c7?L\0c\02O+\dd\eb?\00@\a9\8b\de\8e\c9?\ca\15`\00l}\eb?\00\e0\d2j\b8\r\cc?\8f3.n6 \eb?\00\e0\ce\af\n\84\ce?9P)&p\c5\ea?\00\80g\b4\ny\d0?\dd1\'\bc\01m\ea?\00\c0\01h\05\ac\d1?\8b\f1?\bc\d3\16\ea?\00\e0\fe\d4\11\db\d2?\ad\fegI\d1\c2\e9?\00\80\c5NF\06\d4?\02\99|\f4\e4p\e9?\00\f0:\t\be-\d5?\f2\bc\829\fb \e9?\00\d0P \90Q\d6?\f1Y\f7\87\01\d3\e8?\00\f0\ea\cd\d2q\d7?m\f6\b9\eb\e5\86\e8?\00\90}\85\9c\8e\d8?\94\b9X\b6\97<\e8?\00`\e1U\01\a8\d9?\"\10\c6\ff\05\f4\e7?\00\d0\d3n\18\be\da?\ca\15\14\18\"\ad\e7?\00\e0\a0\ae\f2\d0\db?\8c\ff\9e\f9\dcg\e7?\00@\bf=\a4\e0\dc?") - (data $28 (i32.const 10336) "\8e\n\b9\12\00 \e6?\05\b6D\06\ab\04\89<\a64W\04\00`\e6?\a9\f7b\ea\9b\ffa<\c5\f2%\c3\ff\9f\e6?\ba\90<\cb\cf~\82<\04Z\b98\00\e0\e6?&\93sV\88\ff\88<\e3\94\99\e0\ff\1f\e7?\b1\82_\'@\fd\8a<\10\0eY\15\00`\e7?A\83#\b4u\fdr\bc\d5[e\12\00\a0\e7?v+$|\e6\08x<\a6\e9Y2\00\e0\e7?\b7\"\f6&\e4\08b\bc\d2\b2\b4\ed\ff\1f\e8?/\c9\a5\1eF\02\84\bc\c3\fc\fa-\00`\e8?\1f\9a\f2\a2\f4\f7m)\e0\ff\df\f2?\f9\a6\b2\da9|\9b<\82\f0\dc\f7\ff\1f\f3?TR\dcn3\f1}<`\8bZ\f0\ff_\f3?\eb1\cdLV\03\9e\bc\cc\ae\0e.\00\a0\f3?w\a4\d3K\e7\f0u<6\b2;\04\00\e0\f3?3\88\9d\14\cb}\9c<\ff\87\d1\02\00 \f4?(=-\cf\af\08~<\b1|8\r\00`\f4?\a6\99e\857\08\82<\89\9fV\04\00\a0\f4?\d2\bcO\90\\\fa\89\bc\f3C5\04\00\e0\f4?)S\17\ed%\11x\bc\0f\7f\02\cc\ff\1f\f5?\dcTw\84\d8\83\98\e90.\90\80\91\bc") - (data $29 (i32.const 11360) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\r\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") - (data $30 (i32.const 11616) "\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\r=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\rV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8\d2\bf\83E\06B\ff*\f5?\00\90\')\e1\e9\d1\bf\df\bd\b2\db\"\0f\f5?\00\f8H+m\95\d1\bf\d7\de4G\8f\f3\f4?\00\f8\b9\9agA\d1\bf@(\de\cfC\d8\f4?\00\98\ef\94\d0\ed\d0\bf\c8\a3x\c0>\bd\f4?\00\10\db\18\a5\9a\d0\bf\8a%\e0\c3\7f\a2\f4?\00\b8cR\e6G\d0\bf4\84\d4$\05\88\f4?\00\f0\86E\"\eb\cf\bf\0b-\19\1b\cem\f4?\00\b0\17uJG\cf\bfT\189\d3\d9S\f4?\000\10=D\a4\ce\bfZ\84\b4D\':\f4?\00\b0\e9D\r\02\ce\bf\fb\f8\15A\b5 \f4?\00\f0w)\a2`\cd\bf\b1\f4>\da\82\07\f4?\00\90\95\04\01\c0\cc\bf\8f\feW]\8f\ee\f3?\00\10\89V) \cc\bf\e9L\0b\a0\d9\d5\f3?\00\10\81\8d\17\81\cb\bf+\c1\10\c0`\bd\f3?\00\d0\d3\cc\c9\e2\ca\bf\b8\dau+$\a5\f3?\00\90\12.@E\ca\bf\02\d0\9f\cd\"\8d\f3?\00\f0\1dhw\a8\c9\bf\1cz\84\c5[u\f3?\000Him\0c\c9\bf\e26\adI\ce]\f3?\00\c0E\a6 q\c8\bf@\d4M\98yF\f3?\000\14\b4\8f\d6\c7\bf$\cb\ff\ce\\/\f3?\00pb<\b8<\c7\bfI\r\a1uw\18\f3?\00`7\9b\9a\a3\c6\bf\909>7\c8\01\f3?\00\a0\b7T1\0b\c6\bfA\f8\95\bbN\eb\f2?\000$v}s\c5\bf\d1\a9\19\02\n\d5\f2?\000\c2\8f{\dc\c4\bf*\fd\b7\a8\f9\be\f2?\00\00\d2Q,F\c4\bf\ab\1b\0cz\1c\a9\f2?\00\00\83\bc\8a\b0\c3\bf0\b5\14`r\93\f2?\00\00Ik\99\1b\c3\bf\f5\a1WW\fa}\f2?\00@\a4\90T\87\c2\bf\bf;\1d\9b\b3h\f2?\00\a0y\f8\b9\f3\c1\bf\bd\f5\8f\83\9dS\f2?\00\a0,%\c8`\c1\bf;\08\c9\aa\b7>\f2?\00 \f7W\7f\ce\c0\bf\b6@\a9+\01*\f2?\00\a0\feI\dc<\c0\bf2A\cc\96y\15\f2?\00\80K\bc\bdW\bf\bf\9b\fc\d2\1d \01\f2?\00@@\96\087\be\bf\0bHMI\f4\ec\f1?\00@\f9>\98\17\bd\bfie\8fR\f5\d8\f1?\00\a0\d8Ng\f9\bb\bf|~W\11#\c5\f1?\00`/ y\dc\ba\bf\e9&\cbt|\b1\f1?\00\80(\e7\c3\c0\b9\bf\b6\1a,\0c\01\9e\f1?\00\c0r\b3F\a6\b8\bf\bdp\b6{\b0\8a\f1?\00\00\ac\b3\01\8d\b7\bf\b6\bc\ef%\8aw\f1?\00\008E\f1t\b6\bf\da1L5\8dd\f1?\00\80\87m\0e^\b5\bf\dd_\'\90\b9Q\f1?\00\e0\a1\de\\H\b4\bfL\d22\a4\0e?\f1?\00\a0jM\d93\b3\bf\da\f9\10r\8b,\f1?\00`\c5\f8y \b2\bf1\b5\ec(0\1a\f1?\00 b\98F\0e\b1\bf\af4\84\da\fb\07\f1?\00\00\d2jl\fa\af\bf\b3kN\0f\ee\f5\f0?\00@wJ\8d\da\ad\bf\ce\9f*]\06\e4\f0?\00\00\85\e4\ec\bc\ab\bf!\a5,cD\d2\f0?\00\c0\12@\89\a1\a9\bf\1a\98\e2|\a7\c0\f0?\00\c0\023X\88\a7\bf\d16\c6\83/\af\f0?\00\80\d6g^q\a5\bf9\13\a0\98\db\9d\f0?\00\80eI\8a\\\a3\bf\df\e7R\af\ab\8c\f0?\00@\15d\e3I\a1\bf\fb(N/\9f{\f0?\00\80\eb\82\c0r\9e\bf\19\8f5\8c\b5j\f0?\00\80RR\f1U\9a\bf,\f9\ec\a5\eeY\f0?\00\80\81\cfb=\96\bf\90,\d1\cdII\f0?\00\00\aa\8c\fb(\92\bf\a9\ad\f0\c6\c68\f0?\00\00\f9 {1\8c\bf\a92y\13e(\f0?\00\00\aa]5\19\84\bfHs\ea\'$\18\f0?\00\00\ec\c2\03\12x\bf\95\b1\14\06\04\08\f0?\00\00$y\t\04`\bf\1a\fa&\f7\1f\e0\ef?\00\00\90\84\f3\efo?t\eaa\c2\1c\a1\ef?\00\00=5A\dc\87?.\99\81\b0\10c\ef?\00\80\c2\c4\a3\ce\93?\cd\ad\ee<\f6%\ef?\00\00\89\14\c1\9f\9b?\e7\13\91\03\c8\e9\ee?\00\00\11\ce\d8\b0\a1?\ab\b1\cbx\80\ae\ee?\00\c0\01\d0[\8a\a5?\9b\0c\9d\a2\1at\ee?\00\80\d8@\83\\\a9?\b5\99\n\83\91:\ee?\00\80W\efj\'\ad?V\9a`\t\e0\01\ee?\00\c0\98\e5\98u\b0?\98\bbw\e5\01\ca\ed?\00 \r\e3\f5S\b2?\03\91|\0b\f2\92\ed?\00\008\8b\dd.\b4?\ce\\\fbf\ac\\\ed?\00\c0W\87Y\06\b6?\9d\de^\aa,\'\ed?\00\00j5v\da\b7?\cd,k>n\f2\ec?\00`\1cNC\ab\b9?\02y\a7\a2m\be\ec?\00`\r\bb\c7x\bb?m\087m&\8b\ec?\00 \e72\13C\bd?\04X]\bd\94X\ec?\00`\deq1\n\bf?\8c\9f\bb3\b5&\ec?\00@\91+\15g\c0??\e7\ec\ee\83\f5\eb?\00\b0\92\82\85G\c1?\c1\96\dbu\fd\c4\eb?\000\ca\cdn&\c2?(J\86\0c\1e\95\eb?\00P\c5\a6\d7\03\c3?,>\ef\c5\e2e\eb?\00\103<\c3\df\c3?\8b\88\c9gH7\eb?\00\80zk6\ba\c4?J0\1d!K\t\eb?\00\f0\d1(9\93\c5?~\ef\f2\85\e8\db\ea?\00\f0\18$\cdj\c6?\a2=`1\1d\af\ea?\00\90f\ec\f8@\c7?\a7X\d3?\e6\82\ea?\00\f0\1a\f5\c0\15\c8?\8bs\t\ef@W\ea?\00\80\f6T)\e9\c8?\'K\ab\90*,\ea?\00@\f8\026\bb\c9?\d1\f2\93\13\a0\01\ea?\00\00,\1c\ed\8b\ca?\1b<\db$\9f\d7\e9?\00\d0\01\\Q[\cb?\90\b1\c7\05%\ae\e9?\00\c0\bc\ccg)\cc?/\ce\97\f2.\85\e9?\00`H\d55\f6\cc?uK\a4\ee\ba\\\e9?\00\c0F4\bd\c1\cd?8H\e7\9d\c64\e9?\00\e0\cf\b8\01\8c\ce?\e6Rg/O\r\e9?\00\90\17\c0\tU\cf?\9d\d7\ff\8eR\e6\e8?\00\b8\1f\12l\0e\d0?|\00\cc\9f\ce\bf\e8?\00\d0\93\0e\b8q\d0?\0e\c3\be\da\c0\99\e8?\00p\86\9ek\d4\d0?\fb\17#\aa\'t\e8?\00\d0K3\876\d1?\08\9a\b3\ac\00O\e8?\00H#g\r\98\d1?U>e\e8I*\e8?\00\80\cc\e0\ff\f8\d1?`\02\f4\95\01\06\e8?\00hc\d7_Y\d2?)\a3\e0c%\e2\e7?\00\a8\14\t0\b9\d2?\ad\b5\dcw\b3\be\e7?\00`C\10r\18\d3?\c2%\97g\aa\9b\e7?\00\18\ecm&w\d3?W\06\17\f2\07y\e7?\000\af\fbO\d5\d3?\0c\13\d6\db\caV\e7?\00\e0/\e3\ee2\d4?") + (data $2 (i32.const 2112) "k\b6O\01\00\10\e6?<[B\91l\02~<\95\b4M\03\000\e6?A]\00H\ea\bf\8d\f6\05\eb\ff\ef\e6?S-\e2\1a\04\80~\bc\80\97\86\0e\00\10\e7?Ry\tqf\ff{<\12\e9g\fc\ff/\e7?$\87\bd&\e2\00\8c\89<\b9{F\13\000\e9?v\02\98KN\80\7f.\98\dd\ff\af\e9?7\93Z\8a\e0@\87\bcf\fbI\ed\ff\cf\e9?\00\e0\9b\c1\08\ce?O*\00\b0\ea?_?\ff<\04\fdi\bc\d1\1e\ae\d7\ff\cf\ea?\b4p\90\12\e7>\82\bcx\04Q\ee\ff\ef\ea?\a3\de\0e\e0>\06j<[\re\db\ff\0f\eb?\b9\n\1f8\c8\06ZO\86\d0E\ff\8a<@\16\87\f9\ff\8f\eb?\f9\c3\c2\96w\fe|\f0\0f\00\f0\f4?\1cS\85\0b\89\7f\97<\d1K\dc\12\00\10\f5?6\a4fqe\04`\c9\03\00\b0\f5?\c0\0c\bf\n\08A\9f\bc\bc\19I\1d\00\d0\f5?)G%\fb*\81\98\bc\89z\b8\e7\ff\ef\f5?\04i\ed\80\b7~\94\bc") + (data $3 (i32.const 4160) "\be\f3\f8y\eca\f6?\de\aa\8c\80\f7{\d5\bf=\88\afJ\edq\f5?\dbm\c0\a7\f0\be\d2\bf\b0\10\f0\f09\95\f4?g:Q\7f\ae\1e\d0\bf\85\03\b8\b0\95\c9\f3?\e9$\82\a6\d81\cb\bf\a5d\88\0c\19\r\f3?Xw\c0\nOW\c6\bf\a0\8e\0b{\"^\f2?\00\81\9c\c7+\aa\c1\bf?4\1aJJ\bb\f1?^\0e\8c\cevN\ba\bf\ba\e5\8a\f0X#\f1?\cc\1caZ<\97\b1\bf\a7\00\99A?\95\f0?\1e\0c\e18\f4R\a2\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?\84Y\f2]\aa\a5\aa?\a0j\02\1f\b3\a4\ec?\b4.6\aaS^\bc?\e6\fcjW6 \eb?\08\db w\e5&\c5?-\aa\a1c\d1\c2\e9?pG\"\r\86\c2\cb?\edAx\03\e6\86\e8?\e1~\a0\c8\8b\05\d1?bHS\f5\dcg\e7?\t\ee\b6W0\04\d4?") + (data $4 (i32.const 4416) "n\83\f9\a2\00\00\00\00\d1W\'\fc)\15DN\99\95b\db\c0\dd4\f5\abcQ\feA\90C<:n$\b7a\c5\bb\de\ea.I\06\e0\d2MB\1c\eb\1d\fe\1c\92\d1\t\f55\82\e8>\a7)\b1&p\9c\e9\84D\bb.9\d6\919A~_\b4\8b_\84\9c\f49S\83\ff\97\f8\1f;(\f9\bd\8b\11/\ef\0f\98\05\de\cf~6m\1fm\nZf?FO\b7\t\cb\'\c7\ba\'u-\ea_\9e\f79\07={\f1\e5\eb\b1_\fbk\ea\92R\8aF0\03V\08]\8d\1f \bc\cf\f0\abk{\fca\91\e3\a9\1d6\f4\9a_\85\99e\08\1b\e6^\80\d8\ff\8d@h\a0\14W\15\06\061\'sM") + (data $5 (i32.const 4608) ")\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe") + (data $6 (i32.const 4640) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?n\bf\88\1aO;\9b<53\fb\a9=\f6\ef?]\dc\d8\9c\13`q\bca\80w>\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\rG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") + (data $7 (i32.const 6688) "\00\00\00\00\00\00\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") + (data $8 (i32.const 6944) "\f8\ac\b1k($\f7?\00\b0\cd\ee_\t\e1\bf\a1\cc\d2f\f7\e1\f6?\00\d0v\bd\94\84\e0\bf\8a\d40\0e=\a1\f6?\00\f8\e8\aeC\01\e0\bf\85l\d02\eca\f6?\00@\0b6\c5\fe\de\bf\f8\98\11\95\fa#\f6?\00\e0\b7\1a\d9\fd\dd\bfl\02\cf\a4[\e7\f5?\00\90\c7\0c\ae\ff\dc\bf\b8O!Z\05\ac\f5?\00\a0\fd\118\04\dc\bf\1en\16\0f\edq\f5?\00\e0:2g\0b\db\bf5\f8\0bY\t9\f5?\00\b0-Z/\15\da\bf\dd\ada\edO\01\f5?\00`\f8Z\7f!\d9\bf\d0{H\8e\b8\ca\f4?\00\90q\b0M0\d8\bf\eeO3\b49\95\f4?\00\e0\a9\f9\89A\d7\bfi\d5\af\df\cb`\f4?\00\90\19\b5+U\d6\bfS\b9\e4Nf-\f4?\00\10\9b\a2#k\d5\bf\a6\d8\1d\11\01\fb\f3?\00\a0_\0fe\83\d4\bf6X\0c\b7\95\c9\f3?\00\a0\f67\e9\9d\d3\bfJ\fd\b6J\1c\99\f3?\00`\8dS\a1\ba\d2\bf\b5\99\e0\0c\8ei\f3?\00@\ca@\83\d9\d1\bf\b2\e7\13\82\e4:\f3?\00\e0@:\85\fa\d0\bf\b1\bd\85\19\19\r\f3?\000\e72\9c\1d\d0\bf\d7q\b2\ca%\e0\f2?\00`\fa\a2}\85\ce\bf\82\cd\13\cf\04\b4\f2?\00\80=c\c8\d3\cc\bfP\cb|,\b0\88\f2?\00\a0\14L\03&\cb\bf\e5M\94c\"^\f2?\00\e0O/\1c|\c9\bf\b1\15\86=V4\f2?\00\00\80?\02\d6\c7\bf8\af>\e3F\0b\f2?\00\e0\05\1a\a73\c6\bf\dd\a3\cd\fd\ee\e2\f1?\00\00W\e9\f5\94\c4\bf09\0bXJ\bb\f1?\00\a0\e0$\e4\f9\c2\bf\00\"\7f\84S\94\f1?\00\c0\fdZYb\c1\bf<\d7\d5\c0\06n\f1?\00\80\bdu\9a\9c\bf\bf\c2\e4\b7G_H\f1?\00\c0\f9[W{\bc\bf\d1\85\00\adX#\f1?\00\80\f4\0f\c6`\b9\bf\'\"S\0f\f0\fe\f0?\00\00\b6G\e2L\b6\bf\8f:\d0w \db\f0?\00@\01\b2x?\b3\bf\d9\80Y\d6\e6\b7\f0?\00\c0B\1a}8\b0\bf\8d@{\fe>\95\f0?\00\00\b5\08\92o\aa\bf\83;\c5\ca%s\f0?\00\00wO\95z\a4\bf\\\1b\r\e4\97Q\f0?\00\00\0c\c5\a8#\9d\bf\a2\8e \c1\910\f0?\00\00x)&j\91\bf!~\b3%\10\10\f0?\00\00\e8\d8\f8 w\bfk\a7\ca\f9~\c0\ef?\00\00P\b1S\fe\86?\84\f1\f6\d3eD\ef?\00\80\0f\e1\cc\1c\a1?\7f\10\84\9f\07\cc\ee?\00\80\8b\8c\fcM\ac?\e8Z\97\99:W\ee?\00@W\1e2\aa\b3?\e6=\bd\f0\d6\e5\ed?\00\80\8b\d0\a0\18\b9?\b38\ff\81\b6w\ed?\00@\04\da\e9r\be?C\e9Mr\b5\0c\ed?\00`\7fP\d2\dc\c1?cu\0e\dc\b2\a4\ec?\00\a0\de\03\abv\c4?Q\cb\d6\e8\8e?\ec?\00 \e2wC\07\c7?L\0c\02O+\dd\eb?\00@\a9\8b\de\8e\c9?\ca\15`\00l}\eb?\00\e0\d2j\b8\r\cc?\8f3.n6 \eb?\00\e0\ce\af\n\84\ce?9P)&p\c5\ea?\00\80g\b4\ny\d0?\dd1\'\bc\01m\ea?\00\c0\01h\05\ac\d1?\8b\f1?\bc\d3\16\ea?\00\e0\fe\d4\11\db\d2?\ad\fegI\d1\c2\e9?\00\80\c5NF\06\d4?\02\99|\f4\e4p\e9?\00\f0:\t\be-\d5?\f2\bc\829\fb \e9?\00\d0P \90Q\d6?\f1Y\f7\87\01\d3\e8?\00\f0\ea\cd\d2q\d7?m\f6\b9\eb\e5\86\e8?\00\90}\85\9c\8e\d8?\94\b9X\b6\97<\e8?\00`\e1U\01\a8\d9?\"\10\c6\ff\05\f4\e7?\00\d0\d3n\18\be\da?\ca\15\14\18\"\ad\e7?\00\e0\a0\ae\f2\d0\db?\8c\ff\9e\f9\dcg\e7?\00@\bf=\a4\e0\dc?") + (data $9 (i32.const 7968) "\8e\n\b9\12\00 \e6?\05\b6D\06\ab\04\89<\a64W\04\00`\e6?\a9\f7b\ea\9b\ffa<\c5\f2%\c3\ff\9f\e6?\ba\90<\cb\cf~\82<\04Z\b98\00\e0\e6?&\93sV\88\ff\88<\e3\94\99\e0\ff\1f\e7?\b1\82_\'@\fd\8a<\10\0eY\15\00`\e7?A\83#\b4u\fdr\bc\d5[e\12\00\a0\e7?v+$|\e6\08x<\a6\e9Y2\00\e0\e7?\b7\"\f6&\e4\08b\bc\d2\b2\b4\ed\ff\1f\e8?/\c9\a5\1eF\02\84\bc\c3\fc\fa-\00`\e8?\1f\9a\f2\a2\f4\f7m)\e0\ff\df\f2?\f9\a6\b2\da9|\9b<\82\f0\dc\f7\ff\1f\f3?TR\dcn3\f1}<`\8bZ\f0\ff_\f3?\eb1\cdLV\03\9e\bc\cc\ae\0e.\00\a0\f3?w\a4\d3K\e7\f0u<6\b2;\04\00\e0\f3?3\88\9d\14\cb}\9c<\ff\87\d1\02\00 \f4?(=-\cf\af\08~<\b1|8\r\00`\f4?\a6\99e\857\08\82<\89\9fV\04\00\a0\f4?\d2\bcO\90\\\fa\89\bc\f3C5\04\00\e0\f4?)S\17\ed%\11x\bc\0f\7f\02\cc\ff\1f\f5?\dcTw\84\d8\83\98\e90.\90\80\91\bc") + (data $10 (i32.const 8992) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\r\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") + (data $11 (i32.const 9248) "\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\r=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\rV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8 (param $actual f64) (param $expected f64) (param $dy f64) (param $flags i32) (result i32) - (local $d f64) - local.get $actual - local.get $expected - f64.eq - if - i32.const 1 - return - end - local.get $expected - local.get $expected - f64.ne - if - local.get $actual - local.get $actual - f64.ne - return - end - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $actual - local.get $expected - local.get $dy - call $std/math/ulperr - local.set $d - local.get $d - f64.abs - f64.const 1.5 - f64.ge - if - i32.const 0 - return - end - i32.const 1 - return - ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz + i32.wrap_i64 + local.set $e + local.get $e i32.eqz if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block + local.get $e i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - call $~lib/rt/itcms/interrupt + i32.add + local.set $e end - i32.const 16 - local.get $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 + local.get $e + i32.const 1023 + i32.sub + i32.const 52 i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u + (func $~lib/math/NativeMath.scalbn (param $x f64) (param $n i32) (result f64) + (local $y f64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $x + local.set $y + local.get $n + i32.const 1023 + i32.gt_s if - local.get $value - i32.const 100 - i32.lt_u + local.get $y + f64.const 8988465674311579538646525e283 + f64.mul + local.set $y + local.get $n + i32.const 1023 + i32.sub + local.set $n + local.get $n + i32.const 1023 + i32.gt_s if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return + local.get $y + f64.const 8988465674311579538646525e283 + f64.mul + local.set $y + local.get $n + i32.const 1023 + i32.sub + local.tee $3 + i32.const 1023 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $n end - unreachable else - local.get $value - i32.const 10000000 - i32.lt_u + local.get $n + i32.const -1022 + i32.lt_s if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u + local.get $y + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + local.set $y + local.get $n + i32.const 1022 + i32.const 53 + i32.sub i32.add - return + local.set $n + local.get $n + i32.const -1022 + i32.lt_s + if + local.get $y + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + local.set $y + local.get $n + i32.const 1022 + i32.add + i32.const 53 + i32.sub + local.tee $5 + i32.const -1022 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $n + end end - unreachable end - unreachable + local.get $y + i64.const 1023 + local.get $n + i64.extend_i32_s + i64.add + i64.const 52 + i64.shl + f64.reinterpret_i64 + f64.mul + return ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + (func $std/math/ulperr (param $got f64) (param $want f64) (param $dwant f64) (result f64) + (local $x f64) + (local $x|4 f64) + local.get $got + local.get $got + f64.ne + if (result i32) + local.get $want + local.get $want + f64.ne + else + i32.const 0 end - local.get $num - i32.const 100 - i32.ge_u if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store + f64.const 0 + return end - local.get $num - i32.const 10 - i32.ge_u + local.get $got + local.get $want + f64.eq if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 + block $~lib/math/NativeMath.signbit|inlined.0 (result i32) + local.get $got + local.set $x + local.get $x + i64.reinterpret_f64 + i64.const 63 i64.shr_u - local.set $num - br $while-continue|0 + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.0 + end + i32.const 0 + i32.ne + block $~lib/math/NativeMath.signbit|inlined.1 (result i32) + local.get $want + local.set $x|4 + local.get $x|4 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.1 + end + i32.const 0 + i32.ne + i32.eq + if + local.get $dwant + return end + f64.const inf + return end - local.get $offset - i32.const 1 - i32.and + local.get $got + local.get $got + f64.sub + f64.const 0 + f64.eq + i32.eqz if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 + f64.const 8988465674311579538646525e283 + local.get $got + f64.copysign + local.set $got + local.get $want + f64.const 0.5 + f64.mul + local.set $want end + local.get $got + local.get $want + f64.sub + i32.const 0 + local.get $want + call $std/math/eulp + i32.sub + call $~lib/math/NativeMath.scalbn + local.get $dwant + f64.add + return ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end + (func $std/math/check (param $actual f64) (param $expected f64) (param $dy f64) (param $flags i32) (result i32) + (local $d f64) + local.get $actual + local.get $expected + f64.eq if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u i32.const 1 - i32.add return end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $expected + local.get $expected + f64.ne + if + local.get $actual + local.get $actual + f64.ne + return end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 + i32.const 8 + i32.const 8 i32.eq + drop + local.get $actual + local.get $expected + local.get $dy + call $std/math/ulperr + local.set $d + local.get $d + f64.abs + f64.const 1.5 + f64.ge if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end + i32.const 0 + return end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 + i32.const 1 return ) (func $std/math/eulpf (param $x f32) (result i32) @@ -4228,7 +1555,7 @@ i64.and i64.sub local.set $iz - i32.const 2432 + i32.const 64 local.get $i i32.const 1 i32.const 3 @@ -4237,7 +1564,7 @@ i32.add f64.load local.set $invc - i32.const 2432 + i32.const 64 local.get $i i32.const 1 i32.const 3 @@ -4249,7 +1576,7 @@ local.get $iz f64.reinterpret_i64 local.set $z - i32.const 4480 + i32.const 2112 local.get $i i32.const 1 i32.const 3 @@ -4258,7 +1585,7 @@ i32.add f64.load local.set $chi - i32.const 4480 + i32.const 2112 local.get $i i32.const 1 i32.const 3 @@ -4748,7 +2075,7 @@ i32.and i32.sub local.set $iz - i32.const 6528 + i32.const 4160 local.get $i i32.const 1 i32.const 3 @@ -4757,7 +2084,7 @@ i32.add f64.load local.set $invc - i32.const 6528 + i32.const 4160 local.get $i i32.const 1 i32.const 3 @@ -7037,7 +4364,7 @@ i64.const 63 i64.and local.set $shift - i32.const 6784 + i32.const 4416 local.get $offset i64.const 6 i64.shr_s @@ -8457,7 +5784,7 @@ i32.and i64.extend_i32_s local.set $shift - i32.const 6976 + i32.const 4608 local.get $offset i32.const 6 i32.shr_s @@ -9109,7 +6436,7 @@ i64.sub i64.shl local.set $top - i32.const 7008 + i32.const 4640 local.get $idx i32.const 3 i32.shl @@ -9117,7 +6444,7 @@ i64.load f64.reinterpret_i64 local.set $tail - i32.const 7008 + i32.const 4640 local.get $idx i32.const 3 i32.shl @@ -9770,7 +7097,7 @@ f64.sub f64.sub local.set $r - i32.const 9056 + i32.const 6688 local.get $ki i32.wrap_i64 i32.const 31 @@ -10104,7 +7431,7 @@ i64.sub i64.shl local.set $top - i32.const 7008 + i32.const 4640 local.get $idx i32.const 3 i32.shl @@ -10112,7 +7439,7 @@ i64.load f64.reinterpret_i64 local.set $tail - i32.const 7008 + i32.const 4640 local.get $idx i32.const 3 i32.shl @@ -10345,7 +7672,7 @@ f64.sub f64.sub local.set $r - i32.const 9056 + i32.const 6688 local.get $ki i32.wrap_i64 i32.const 31 @@ -11580,7 +8907,7 @@ i64.and i64.sub local.set $iz - i32.const 9312 + i32.const 6944 local.get $i i32.const 1 i32.const 3 @@ -11589,7 +8916,7 @@ i32.add f64.load local.set $invc - i32.const 9312 + i32.const 6944 local.get $i i32.const 1 i32.const 3 @@ -11604,7 +8931,7 @@ local.get $k f64.convert_i64_s local.set $kd - i32.const 10336 + i32.const 7968 local.get $i i32.const 1 i32.const 3 @@ -11613,7 +8940,7 @@ i32.add f64.load local.set $chi - i32.const 10336 + i32.const 7968 local.get $i i32.const 1 i32.const 3 @@ -11835,7 +9162,7 @@ i32.const 23 i32.shr_s local.set $k - i32.const 11360 + i32.const 8992 local.get $i i32.const 1 i32.const 3 @@ -11844,7 +9171,7 @@ i32.add f64.load local.set $invc - i32.const 11360 + i32.const 8992 local.get $i i32.const 1 i32.const 3 @@ -13097,7 +10424,7 @@ local.get $k f64.convert_i64_s local.set $kd - i32.const 11616 + i32.const 9248 local.get $i i32.const 2 i32.const 3 @@ -13106,7 +10433,7 @@ i32.add f64.load local.set $invc - i32.const 11616 + i32.const 9248 local.get $i i32.const 2 i32.const 3 @@ -13115,7 +10442,7 @@ i32.add f64.load offset=16 local.set $logc - i32.const 11616 + i32.const 9248 local.get $i i32.const 2 i32.const 3 @@ -13427,7 +10754,7 @@ i64.sub i64.shl local.set $top - i32.const 7008 + i32.const 4640 local.get $idx i32.const 3 i32.shl @@ -13435,7 +10762,7 @@ i64.load f64.reinterpret_i64 local.set $tail - i32.const 7008 + i32.const 4640 local.get $idx i32.const 3 i32.shl @@ -14080,7 +11407,7 @@ i32.const 23 i32.shr_s local.set $k - i32.const 11360 + i32.const 8992 local.get $i i32.const 1 i32.const 3 @@ -14089,7 +11416,7 @@ i32.add f64.load local.set $invc - i32.const 11360 + i32.const 8992 local.get $i i32.const 1 i32.const 3 @@ -14238,7 +11565,7 @@ f64.sub f64.sub local.set $r|42 - i32.const 9056 + i32.const 6688 local.get $ki i32.wrap_i64 i32.const 31 @@ -16325,7 +13652,7 @@ i32.and i64.extend_i32_s local.set $shift - i32.const 6976 + i32.const 4608 local.get $offset i32.const 6 i32.shr_s @@ -17908,7 +15235,7 @@ i32.and i64.extend_i32_s local.set $shift - i32.const 6976 + i32.const 4608 local.get $offset i32.const 6 i32.shr_s @@ -19674,23 +17001,6 @@ global.get $~lib/math/NativeMathf.E f32.eq drop - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $~lib/math/NativeMath.E global.get $~lib/bindings/dom/Math.E f64.const 0 @@ -19699,7 +17009,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -19713,7 +17023,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -19727,7 +17037,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 113 i32.const 1 call $~lib/builtins/abort @@ -19741,7 +17051,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 114 i32.const 1 call $~lib/builtins/abort @@ -19755,7 +17065,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -19769,7 +17079,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 116 i32.const 1 call $~lib/builtins/abort @@ -19783,7 +17093,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 117 i32.const 1 call $~lib/builtins/abort @@ -19798,7 +17108,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 119 i32.const 1 call $~lib/builtins/abort @@ -19813,7 +17123,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -19828,7 +17138,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 121 i32.const 1 call $~lib/builtins/abort @@ -19843,7 +17153,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 122 i32.const 1 call $~lib/builtins/abort @@ -19858,7 +17168,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 123 i32.const 1 call $~lib/builtins/abort @@ -19873,7 +17183,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 124 i32.const 1 call $~lib/builtins/abort @@ -19888,7 +17198,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 125 i32.const 1 call $~lib/builtins/abort @@ -19903,7 +17213,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 136 i32.const 1 call $~lib/builtins/abort @@ -19918,7 +17228,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 137 i32.const 1 call $~lib/builtins/abort @@ -19933,7 +17243,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 138 i32.const 1 call $~lib/builtins/abort @@ -19948,7 +17258,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 139 i32.const 1 call $~lib/builtins/abort @@ -19963,7 +17273,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 140 i32.const 1 call $~lib/builtins/abort @@ -19978,7 +17288,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 141 i32.const 1 call $~lib/builtins/abort @@ -19993,7 +17303,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 142 i32.const 1 call $~lib/builtins/abort @@ -20008,7 +17318,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 143 i32.const 1 call $~lib/builtins/abort @@ -20023,7 +17333,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 144 i32.const 1 call $~lib/builtins/abort @@ -20038,7 +17348,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 145 i32.const 1 call $~lib/builtins/abort @@ -20053,7 +17363,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 148 i32.const 1 call $~lib/builtins/abort @@ -20068,7 +17378,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 149 i32.const 1 call $~lib/builtins/abort @@ -20083,7 +17393,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 150 i32.const 1 call $~lib/builtins/abort @@ -20098,7 +17408,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -20113,7 +17423,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 152 i32.const 1 call $~lib/builtins/abort @@ -20130,7 +17440,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 153 i32.const 1 call $~lib/builtins/abort @@ -20145,7 +17455,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 154 i32.const 1 call $~lib/builtins/abort @@ -20160,7 +17470,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 155 i32.const 1 call $~lib/builtins/abort @@ -20175,7 +17485,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 156 i32.const 1 call $~lib/builtins/abort @@ -20192,7 +17502,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 157 i32.const 1 call $~lib/builtins/abort @@ -20207,7 +17517,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 158 i32.const 1 call $~lib/builtins/abort @@ -20222,7 +17532,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 159 i32.const 1 call $~lib/builtins/abort @@ -20237,7 +17547,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 160 i32.const 1 call $~lib/builtins/abort @@ -20254,7 +17564,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -20269,7 +17579,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -20284,7 +17594,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -20301,7 +17611,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 164 i32.const 1 call $~lib/builtins/abort @@ -20318,7 +17628,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 165 i32.const 1 call $~lib/builtins/abort @@ -20335,7 +17645,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 166 i32.const 1 call $~lib/builtins/abort @@ -20350,7 +17660,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 175 i32.const 1 call $~lib/builtins/abort @@ -20365,7 +17675,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 176 i32.const 1 call $~lib/builtins/abort @@ -20380,7 +17690,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 177 i32.const 1 call $~lib/builtins/abort @@ -20395,7 +17705,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 178 i32.const 1 call $~lib/builtins/abort @@ -20410,7 +17720,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 179 i32.const 1 call $~lib/builtins/abort @@ -20425,7 +17735,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 180 i32.const 1 call $~lib/builtins/abort @@ -20440,7 +17750,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 181 i32.const 1 call $~lib/builtins/abort @@ -20455,7 +17765,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 182 i32.const 1 call $~lib/builtins/abort @@ -20470,7 +17780,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 183 i32.const 1 call $~lib/builtins/abort @@ -20485,7 +17795,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 184 i32.const 1 call $~lib/builtins/abort @@ -20500,7 +17810,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 187 i32.const 1 call $~lib/builtins/abort @@ -20515,7 +17825,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 188 i32.const 1 call $~lib/builtins/abort @@ -20530,7 +17840,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 189 i32.const 1 call $~lib/builtins/abort @@ -20545,7 +17855,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 190 i32.const 1 call $~lib/builtins/abort @@ -20560,7 +17870,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 191 i32.const 1 call $~lib/builtins/abort @@ -20577,7 +17887,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 192 i32.const 1 call $~lib/builtins/abort @@ -20592,7 +17902,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 193 i32.const 1 call $~lib/builtins/abort @@ -20607,7 +17917,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 194 i32.const 1 call $~lib/builtins/abort @@ -20622,7 +17932,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 195 i32.const 1 call $~lib/builtins/abort @@ -20639,7 +17949,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 196 i32.const 1 call $~lib/builtins/abort @@ -20654,7 +17964,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 197 i32.const 1 call $~lib/builtins/abort @@ -20669,7 +17979,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 198 i32.const 1 call $~lib/builtins/abort @@ -20684,7 +17994,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 199 i32.const 1 call $~lib/builtins/abort @@ -20701,7 +18011,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 200 i32.const 1 call $~lib/builtins/abort @@ -20716,7 +18026,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 201 i32.const 1 call $~lib/builtins/abort @@ -20731,7 +18041,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 202 i32.const 1 call $~lib/builtins/abort @@ -20748,7 +18058,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 203 i32.const 1 call $~lib/builtins/abort @@ -20765,7 +18075,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 204 i32.const 1 call $~lib/builtins/abort @@ -20782,7 +18092,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 205 i32.const 1 call $~lib/builtins/abort @@ -20796,7 +18106,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 217 i32.const 1 call $~lib/builtins/abort @@ -20810,7 +18120,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 218 i32.const 1 call $~lib/builtins/abort @@ -20824,7 +18134,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 219 i32.const 1 call $~lib/builtins/abort @@ -20838,7 +18148,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 220 i32.const 1 call $~lib/builtins/abort @@ -20852,7 +18162,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 221 i32.const 1 call $~lib/builtins/abort @@ -20866,7 +18176,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 222 i32.const 1 call $~lib/builtins/abort @@ -20880,7 +18190,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 223 i32.const 1 call $~lib/builtins/abort @@ -20894,7 +18204,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 224 i32.const 1 call $~lib/builtins/abort @@ -20908,7 +18218,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 225 i32.const 1 call $~lib/builtins/abort @@ -20922,7 +18232,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 226 i32.const 1 call $~lib/builtins/abort @@ -20936,7 +18246,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 229 i32.const 1 call $~lib/builtins/abort @@ -20950,7 +18260,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 230 i32.const 1 call $~lib/builtins/abort @@ -20964,7 +18274,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 231 i32.const 1 call $~lib/builtins/abort @@ -20978,7 +18288,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 232 i32.const 1 call $~lib/builtins/abort @@ -20992,7 +18302,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 233 i32.const 1 call $~lib/builtins/abort @@ -21007,7 +18317,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 234 i32.const 1 call $~lib/builtins/abort @@ -21021,7 +18331,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 235 i32.const 1 call $~lib/builtins/abort @@ -21035,7 +18345,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 244 i32.const 1 call $~lib/builtins/abort @@ -21049,7 +18359,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 245 i32.const 1 call $~lib/builtins/abort @@ -21063,7 +18373,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 246 i32.const 1 call $~lib/builtins/abort @@ -21077,7 +18387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 247 i32.const 1 call $~lib/builtins/abort @@ -21091,7 +18401,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 248 i32.const 1 call $~lib/builtins/abort @@ -21105,7 +18415,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 249 i32.const 1 call $~lib/builtins/abort @@ -21119,7 +18429,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 250 i32.const 1 call $~lib/builtins/abort @@ -21133,7 +18443,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 251 i32.const 1 call $~lib/builtins/abort @@ -21147,7 +18457,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 252 i32.const 1 call $~lib/builtins/abort @@ -21161,7 +18471,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 253 i32.const 1 call $~lib/builtins/abort @@ -21175,7 +18485,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 256 i32.const 1 call $~lib/builtins/abort @@ -21189,7 +18499,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 257 i32.const 1 call $~lib/builtins/abort @@ -21203,7 +18513,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 258 i32.const 1 call $~lib/builtins/abort @@ -21217,7 +18527,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 259 i32.const 1 call $~lib/builtins/abort @@ -21231,7 +18541,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 260 i32.const 1 call $~lib/builtins/abort @@ -21246,7 +18556,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 261 i32.const 1 call $~lib/builtins/abort @@ -21260,7 +18570,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 262 i32.const 1 call $~lib/builtins/abort @@ -21274,7 +18584,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 274 i32.const 1 call $~lib/builtins/abort @@ -21288,7 +18598,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 275 i32.const 1 call $~lib/builtins/abort @@ -21302,7 +18612,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 276 i32.const 1 call $~lib/builtins/abort @@ -21316,7 +18626,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 277 i32.const 1 call $~lib/builtins/abort @@ -21330,7 +18640,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 278 i32.const 1 call $~lib/builtins/abort @@ -21344,7 +18654,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 279 i32.const 1 call $~lib/builtins/abort @@ -21358,7 +18668,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 280 i32.const 1 call $~lib/builtins/abort @@ -21372,7 +18682,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 281 i32.const 1 call $~lib/builtins/abort @@ -21386,7 +18696,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 282 i32.const 1 call $~lib/builtins/abort @@ -21400,7 +18710,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 283 i32.const 1 call $~lib/builtins/abort @@ -21414,7 +18724,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 286 i32.const 1 call $~lib/builtins/abort @@ -21428,7 +18738,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 287 i32.const 1 call $~lib/builtins/abort @@ -21442,7 +18752,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 288 i32.const 1 call $~lib/builtins/abort @@ -21456,7 +18766,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 289 i32.const 1 call $~lib/builtins/abort @@ -21470,7 +18780,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 290 i32.const 1 call $~lib/builtins/abort @@ -21484,7 +18794,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 291 i32.const 1 call $~lib/builtins/abort @@ -21499,7 +18809,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 292 i32.const 1 call $~lib/builtins/abort @@ -21513,7 +18823,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 293 i32.const 1 call $~lib/builtins/abort @@ -21527,7 +18837,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 294 i32.const 1 call $~lib/builtins/abort @@ -21541,7 +18851,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 295 i32.const 1 call $~lib/builtins/abort @@ -21555,7 +18865,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 304 i32.const 1 call $~lib/builtins/abort @@ -21569,7 +18879,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 305 i32.const 1 call $~lib/builtins/abort @@ -21583,7 +18893,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 306 i32.const 1 call $~lib/builtins/abort @@ -21597,7 +18907,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 307 i32.const 1 call $~lib/builtins/abort @@ -21611,7 +18921,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 308 i32.const 1 call $~lib/builtins/abort @@ -21625,7 +18935,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 309 i32.const 1 call $~lib/builtins/abort @@ -21639,7 +18949,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 310 i32.const 1 call $~lib/builtins/abort @@ -21653,7 +18963,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 311 i32.const 1 call $~lib/builtins/abort @@ -21667,7 +18977,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 312 i32.const 1 call $~lib/builtins/abort @@ -21681,7 +18991,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 313 i32.const 1 call $~lib/builtins/abort @@ -21695,7 +19005,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 316 i32.const 1 call $~lib/builtins/abort @@ -21709,7 +19019,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 317 i32.const 1 call $~lib/builtins/abort @@ -21723,7 +19033,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 318 i32.const 1 call $~lib/builtins/abort @@ -21737,7 +19047,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 319 i32.const 1 call $~lib/builtins/abort @@ -21751,7 +19061,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 320 i32.const 1 call $~lib/builtins/abort @@ -21765,7 +19075,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 321 i32.const 1 call $~lib/builtins/abort @@ -21780,7 +19090,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 322 i32.const 1 call $~lib/builtins/abort @@ -21794,7 +19104,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 323 i32.const 1 call $~lib/builtins/abort @@ -21808,7 +19118,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 324 i32.const 1 call $~lib/builtins/abort @@ -21822,7 +19132,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 325 i32.const 1 call $~lib/builtins/abort @@ -21836,7 +19146,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 326 i32.const 1 call $~lib/builtins/abort @@ -21850,7 +19160,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 338 i32.const 1 call $~lib/builtins/abort @@ -21864,7 +19174,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 339 i32.const 1 call $~lib/builtins/abort @@ -21878,7 +19188,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 340 i32.const 1 call $~lib/builtins/abort @@ -21892,7 +19202,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 341 i32.const 1 call $~lib/builtins/abort @@ -21906,7 +19216,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 342 i32.const 1 call $~lib/builtins/abort @@ -21920,7 +19230,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 343 i32.const 1 call $~lib/builtins/abort @@ -21934,7 +19244,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 344 i32.const 1 call $~lib/builtins/abort @@ -21948,7 +19258,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 345 i32.const 1 call $~lib/builtins/abort @@ -21962,7 +19272,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 346 i32.const 1 call $~lib/builtins/abort @@ -21976,7 +19286,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 347 i32.const 1 call $~lib/builtins/abort @@ -21990,7 +19300,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 350 i32.const 1 call $~lib/builtins/abort @@ -22004,7 +19314,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 351 i32.const 1 call $~lib/builtins/abort @@ -22018,7 +19328,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 352 i32.const 1 call $~lib/builtins/abort @@ -22032,7 +19342,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 353 i32.const 1 call $~lib/builtins/abort @@ -22046,7 +19356,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 354 i32.const 1 call $~lib/builtins/abort @@ -22060,7 +19370,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 355 i32.const 1 call $~lib/builtins/abort @@ -22074,7 +19384,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 356 i32.const 1 call $~lib/builtins/abort @@ -22089,7 +19399,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 357 i32.const 1 call $~lib/builtins/abort @@ -22103,7 +19413,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 373 i32.const 1 call $~lib/builtins/abort @@ -22117,7 +19427,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 375 i32.const 1 call $~lib/builtins/abort @@ -22131,7 +19441,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 376 i32.const 1 call $~lib/builtins/abort @@ -22145,7 +19455,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 385 i32.const 1 call $~lib/builtins/abort @@ -22159,7 +19469,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 386 i32.const 1 call $~lib/builtins/abort @@ -22173,7 +19483,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 387 i32.const 1 call $~lib/builtins/abort @@ -22187,7 +19497,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 388 i32.const 1 call $~lib/builtins/abort @@ -22201,7 +19511,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 389 i32.const 1 call $~lib/builtins/abort @@ -22215,7 +19525,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 390 i32.const 1 call $~lib/builtins/abort @@ -22229,7 +19539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 391 i32.const 1 call $~lib/builtins/abort @@ -22243,7 +19553,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 392 i32.const 1 call $~lib/builtins/abort @@ -22257,7 +19567,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 393 i32.const 1 call $~lib/builtins/abort @@ -22271,7 +19581,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 394 i32.const 1 call $~lib/builtins/abort @@ -22285,7 +19595,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 397 i32.const 1 call $~lib/builtins/abort @@ -22299,7 +19609,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 398 i32.const 1 call $~lib/builtins/abort @@ -22313,7 +19623,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 399 i32.const 1 call $~lib/builtins/abort @@ -22327,7 +19637,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 400 i32.const 1 call $~lib/builtins/abort @@ -22341,7 +19651,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 401 i32.const 1 call $~lib/builtins/abort @@ -22355,7 +19665,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 402 i32.const 1 call $~lib/builtins/abort @@ -22370,7 +19680,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 403 i32.const 1 call $~lib/builtins/abort @@ -22384,7 +19694,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 404 i32.const 1 call $~lib/builtins/abort @@ -22398,7 +19708,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 416 i32.const 1 call $~lib/builtins/abort @@ -22412,7 +19722,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 417 i32.const 1 call $~lib/builtins/abort @@ -22426,7 +19736,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 418 i32.const 1 call $~lib/builtins/abort @@ -22440,7 +19750,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 419 i32.const 1 call $~lib/builtins/abort @@ -22454,7 +19764,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 420 i32.const 1 call $~lib/builtins/abort @@ -22468,7 +19778,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 421 i32.const 1 call $~lib/builtins/abort @@ -22482,7 +19792,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 422 i32.const 1 call $~lib/builtins/abort @@ -22496,7 +19806,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 423 i32.const 1 call $~lib/builtins/abort @@ -22510,7 +19820,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 424 i32.const 1 call $~lib/builtins/abort @@ -22524,7 +19834,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 425 i32.const 1 call $~lib/builtins/abort @@ -22538,7 +19848,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 428 i32.const 1 call $~lib/builtins/abort @@ -22552,7 +19862,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 429 i32.const 1 call $~lib/builtins/abort @@ -22566,7 +19876,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 430 i32.const 1 call $~lib/builtins/abort @@ -22580,7 +19890,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 431 i32.const 1 call $~lib/builtins/abort @@ -22594,7 +19904,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 432 i32.const 1 call $~lib/builtins/abort @@ -22608,7 +19918,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 433 i32.const 1 call $~lib/builtins/abort @@ -22622,7 +19932,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 434 i32.const 1 call $~lib/builtins/abort @@ -22637,7 +19947,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 435 i32.const 1 call $~lib/builtins/abort @@ -22651,7 +19961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 436 i32.const 1 call $~lib/builtins/abort @@ -22665,7 +19975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 437 i32.const 1 call $~lib/builtins/abort @@ -22679,7 +19989,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 446 i32.const 1 call $~lib/builtins/abort @@ -22693,7 +20003,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 447 i32.const 1 call $~lib/builtins/abort @@ -22707,7 +20017,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 448 i32.const 1 call $~lib/builtins/abort @@ -22721,7 +20031,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 449 i32.const 1 call $~lib/builtins/abort @@ -22735,7 +20045,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 450 i32.const 1 call $~lib/builtins/abort @@ -22749,7 +20059,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 451 i32.const 1 call $~lib/builtins/abort @@ -22763,7 +20073,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 452 i32.const 1 call $~lib/builtins/abort @@ -22777,7 +20087,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 453 i32.const 1 call $~lib/builtins/abort @@ -22791,7 +20101,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 454 i32.const 1 call $~lib/builtins/abort @@ -22805,7 +20115,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 455 i32.const 1 call $~lib/builtins/abort @@ -22819,7 +20129,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 458 i32.const 1 call $~lib/builtins/abort @@ -22833,7 +20143,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 459 i32.const 1 call $~lib/builtins/abort @@ -22847,7 +20157,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 460 i32.const 1 call $~lib/builtins/abort @@ -22861,7 +20171,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 461 i32.const 1 call $~lib/builtins/abort @@ -22875,7 +20185,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 462 i32.const 1 call $~lib/builtins/abort @@ -22889,7 +20199,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 463 i32.const 1 call $~lib/builtins/abort @@ -22903,7 +20213,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 464 i32.const 1 call $~lib/builtins/abort @@ -22918,7 +20228,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 465 i32.const 1 call $~lib/builtins/abort @@ -22932,7 +20242,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 466 i32.const 1 call $~lib/builtins/abort @@ -22946,7 +20256,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 467 i32.const 1 call $~lib/builtins/abort @@ -22960,7 +20270,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 479 i32.const 1 call $~lib/builtins/abort @@ -22974,7 +20284,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 480 i32.const 1 call $~lib/builtins/abort @@ -22988,7 +20298,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 481 i32.const 1 call $~lib/builtins/abort @@ -23002,7 +20312,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 482 i32.const 1 call $~lib/builtins/abort @@ -23016,7 +20326,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 483 i32.const 1 call $~lib/builtins/abort @@ -23030,7 +20340,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 484 i32.const 1 call $~lib/builtins/abort @@ -23044,7 +20354,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 485 i32.const 1 call $~lib/builtins/abort @@ -23058,7 +20368,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 486 i32.const 1 call $~lib/builtins/abort @@ -23072,7 +20382,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 487 i32.const 1 call $~lib/builtins/abort @@ -23086,7 +20396,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 488 i32.const 1 call $~lib/builtins/abort @@ -23100,7 +20410,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 491 i32.const 1 call $~lib/builtins/abort @@ -23114,7 +20424,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 492 i32.const 1 call $~lib/builtins/abort @@ -23130,7 +20440,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 493 i32.const 1 call $~lib/builtins/abort @@ -23144,7 +20454,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 494 i32.const 1 call $~lib/builtins/abort @@ -23158,7 +20468,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 495 i32.const 1 call $~lib/builtins/abort @@ -23172,7 +20482,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 524 i32.const 1 call $~lib/builtins/abort @@ -23186,7 +20496,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 525 i32.const 1 call $~lib/builtins/abort @@ -23200,7 +20510,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 526 i32.const 1 call $~lib/builtins/abort @@ -23214,7 +20524,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 527 i32.const 1 call $~lib/builtins/abort @@ -23228,7 +20538,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 528 i32.const 1 call $~lib/builtins/abort @@ -23242,7 +20552,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 529 i32.const 1 call $~lib/builtins/abort @@ -23256,7 +20566,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 530 i32.const 1 call $~lib/builtins/abort @@ -23270,7 +20580,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 531 i32.const 1 call $~lib/builtins/abort @@ -23284,7 +20594,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 532 i32.const 1 call $~lib/builtins/abort @@ -23298,7 +20608,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 533 i32.const 1 call $~lib/builtins/abort @@ -23312,7 +20622,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 536 i32.const 1 call $~lib/builtins/abort @@ -23326,7 +20636,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 537 i32.const 1 call $~lib/builtins/abort @@ -23342,7 +20652,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 538 i32.const 1 call $~lib/builtins/abort @@ -23356,7 +20666,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 539 i32.const 1 call $~lib/builtins/abort @@ -23370,7 +20680,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 540 i32.const 1 call $~lib/builtins/abort @@ -23384,7 +20694,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 552 i32.const 1 call $~lib/builtins/abort @@ -23398,7 +20708,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 553 i32.const 1 call $~lib/builtins/abort @@ -23412,7 +20722,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 554 i32.const 1 call $~lib/builtins/abort @@ -23426,7 +20736,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 555 i32.const 1 call $~lib/builtins/abort @@ -23440,7 +20750,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 556 i32.const 1 call $~lib/builtins/abort @@ -23454,7 +20764,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 557 i32.const 1 call $~lib/builtins/abort @@ -23468,7 +20778,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 558 i32.const 1 call $~lib/builtins/abort @@ -23482,7 +20792,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 559 i32.const 1 call $~lib/builtins/abort @@ -23496,7 +20806,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 560 i32.const 1 call $~lib/builtins/abort @@ -23510,7 +20820,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 561 i32.const 1 call $~lib/builtins/abort @@ -23524,7 +20834,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 564 i32.const 1 call $~lib/builtins/abort @@ -23538,7 +20848,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 565 i32.const 1 call $~lib/builtins/abort @@ -23552,7 +20862,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 566 i32.const 1 call $~lib/builtins/abort @@ -23566,7 +20876,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 567 i32.const 1 call $~lib/builtins/abort @@ -23580,7 +20890,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 568 i32.const 1 call $~lib/builtins/abort @@ -23595,7 +20905,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 569 i32.const 1 call $~lib/builtins/abort @@ -23609,7 +20919,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 570 i32.const 1 call $~lib/builtins/abort @@ -23623,7 +20933,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 571 i32.const 1 call $~lib/builtins/abort @@ -23637,7 +20947,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 580 i32.const 1 call $~lib/builtins/abort @@ -23651,7 +20961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 581 i32.const 1 call $~lib/builtins/abort @@ -23665,7 +20975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 582 i32.const 1 call $~lib/builtins/abort @@ -23679,7 +20989,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 583 i32.const 1 call $~lib/builtins/abort @@ -23693,7 +21003,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 584 i32.const 1 call $~lib/builtins/abort @@ -23707,7 +21017,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 585 i32.const 1 call $~lib/builtins/abort @@ -23721,7 +21031,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 586 i32.const 1 call $~lib/builtins/abort @@ -23735,7 +21045,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 587 i32.const 1 call $~lib/builtins/abort @@ -23749,7 +21059,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 588 i32.const 1 call $~lib/builtins/abort @@ -23763,7 +21073,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 589 i32.const 1 call $~lib/builtins/abort @@ -23777,7 +21087,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 592 i32.const 1 call $~lib/builtins/abort @@ -23791,7 +21101,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 593 i32.const 1 call $~lib/builtins/abort @@ -23805,7 +21115,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 594 i32.const 1 call $~lib/builtins/abort @@ -23819,7 +21129,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 595 i32.const 1 call $~lib/builtins/abort @@ -23833,7 +21143,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 596 i32.const 1 call $~lib/builtins/abort @@ -23848,7 +21158,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 597 i32.const 1 call $~lib/builtins/abort @@ -23862,7 +21172,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 598 i32.const 1 call $~lib/builtins/abort @@ -23876,7 +21186,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 610 i32.const 1 call $~lib/builtins/abort @@ -23890,7 +21200,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 611 i32.const 1 call $~lib/builtins/abort @@ -23904,7 +21214,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 612 i32.const 1 call $~lib/builtins/abort @@ -23918,7 +21228,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 613 i32.const 1 call $~lib/builtins/abort @@ -23932,7 +21242,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 614 i32.const 1 call $~lib/builtins/abort @@ -23946,7 +21256,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 615 i32.const 1 call $~lib/builtins/abort @@ -23960,7 +21270,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 616 i32.const 1 call $~lib/builtins/abort @@ -23974,7 +21284,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 617 i32.const 1 call $~lib/builtins/abort @@ -23988,7 +21298,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 618 i32.const 1 call $~lib/builtins/abort @@ -24002,7 +21312,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 619 i32.const 1 call $~lib/builtins/abort @@ -24016,7 +21326,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 622 i32.const 1 call $~lib/builtins/abort @@ -24030,7 +21340,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 623 i32.const 1 call $~lib/builtins/abort @@ -24045,7 +21355,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 624 i32.const 1 call $~lib/builtins/abort @@ -24059,7 +21369,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 625 i32.const 1 call $~lib/builtins/abort @@ -24073,7 +21383,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 626 i32.const 1 call $~lib/builtins/abort @@ -24087,7 +21397,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 627 i32.const 1 call $~lib/builtins/abort @@ -24102,7 +21412,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 628 i32.const 1 call $~lib/builtins/abort @@ -24116,7 +21426,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 629 i32.const 1 call $~lib/builtins/abort @@ -24130,7 +21440,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 630 i32.const 1 call $~lib/builtins/abort @@ -24144,7 +21454,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 631 i32.const 1 call $~lib/builtins/abort @@ -24158,7 +21468,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 632 i32.const 1 call $~lib/builtins/abort @@ -24174,7 +21484,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 633 i32.const 1 call $~lib/builtins/abort @@ -24190,7 +21500,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 634 i32.const 1 call $~lib/builtins/abort @@ -24204,7 +21514,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 635 i32.const 1 call $~lib/builtins/abort @@ -24218,7 +21528,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 644 i32.const 1 call $~lib/builtins/abort @@ -24232,7 +21542,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 645 i32.const 1 call $~lib/builtins/abort @@ -24246,7 +21556,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 646 i32.const 1 call $~lib/builtins/abort @@ -24260,7 +21570,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 647 i32.const 1 call $~lib/builtins/abort @@ -24274,7 +21584,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 648 i32.const 1 call $~lib/builtins/abort @@ -24288,7 +21598,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 649 i32.const 1 call $~lib/builtins/abort @@ -24302,7 +21612,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 650 i32.const 1 call $~lib/builtins/abort @@ -24316,7 +21626,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 651 i32.const 1 call $~lib/builtins/abort @@ -24330,7 +21640,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 652 i32.const 1 call $~lib/builtins/abort @@ -24344,7 +21654,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 653 i32.const 1 call $~lib/builtins/abort @@ -24358,7 +21668,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 656 i32.const 1 call $~lib/builtins/abort @@ -24372,7 +21682,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 657 i32.const 1 call $~lib/builtins/abort @@ -24387,7 +21697,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 658 i32.const 1 call $~lib/builtins/abort @@ -24401,7 +21711,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 659 i32.const 1 call $~lib/builtins/abort @@ -24415,7 +21725,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 660 i32.const 1 call $~lib/builtins/abort @@ -24429,7 +21739,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 661 i32.const 1 call $~lib/builtins/abort @@ -24444,7 +21754,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 662 i32.const 1 call $~lib/builtins/abort @@ -24458,7 +21768,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 663 i32.const 1 call $~lib/builtins/abort @@ -24472,7 +21782,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 664 i32.const 1 call $~lib/builtins/abort @@ -24486,7 +21796,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 665 i32.const 1 call $~lib/builtins/abort @@ -24500,7 +21810,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 666 i32.const 1 call $~lib/builtins/abort @@ -24516,7 +21826,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 667 i32.const 1 call $~lib/builtins/abort @@ -24532,7 +21842,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 668 i32.const 1 call $~lib/builtins/abort @@ -24546,7 +21856,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 669 i32.const 1 call $~lib/builtins/abort @@ -24561,7 +21871,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 681 i32.const 1 call $~lib/builtins/abort @@ -24576,7 +21886,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 682 i32.const 1 call $~lib/builtins/abort @@ -24591,7 +21901,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 683 i32.const 1 call $~lib/builtins/abort @@ -24606,7 +21916,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 684 i32.const 1 call $~lib/builtins/abort @@ -24621,7 +21931,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 685 i32.const 1 call $~lib/builtins/abort @@ -24636,7 +21946,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 686 i32.const 1 call $~lib/builtins/abort @@ -24651,7 +21961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 687 i32.const 1 call $~lib/builtins/abort @@ -24666,7 +21976,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 688 i32.const 1 call $~lib/builtins/abort @@ -24681,7 +21991,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 689 i32.const 1 call $~lib/builtins/abort @@ -24696,7 +22006,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 690 i32.const 1 call $~lib/builtins/abort @@ -24711,7 +22021,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 693 i32.const 1 call $~lib/builtins/abort @@ -24726,7 +22036,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 694 i32.const 1 call $~lib/builtins/abort @@ -24741,7 +22051,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 695 i32.const 1 call $~lib/builtins/abort @@ -24757,7 +22067,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 696 i32.const 1 call $~lib/builtins/abort @@ -24772,7 +22082,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 697 i32.const 1 call $~lib/builtins/abort @@ -24787,7 +22097,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 698 i32.const 1 call $~lib/builtins/abort @@ -24802,7 +22112,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 699 i32.const 1 call $~lib/builtins/abort @@ -24817,7 +22127,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 700 i32.const 1 call $~lib/builtins/abort @@ -24832,7 +22142,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 701 i32.const 1 call $~lib/builtins/abort @@ -24848,7 +22158,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 702 i32.const 1 call $~lib/builtins/abort @@ -24863,7 +22173,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 703 i32.const 1 call $~lib/builtins/abort @@ -24878,7 +22188,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 704 i32.const 1 call $~lib/builtins/abort @@ -24893,7 +22203,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 705 i32.const 1 call $~lib/builtins/abort @@ -24908,7 +22218,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 706 i32.const 1 call $~lib/builtins/abort @@ -24923,7 +22233,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 707 i32.const 1 call $~lib/builtins/abort @@ -24938,7 +22248,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 708 i32.const 1 call $~lib/builtins/abort @@ -24953,7 +22263,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 709 i32.const 1 call $~lib/builtins/abort @@ -24968,7 +22278,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 710 i32.const 1 call $~lib/builtins/abort @@ -24984,7 +22294,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 711 i32.const 1 call $~lib/builtins/abort @@ -25000,7 +22310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 712 i32.const 1 call $~lib/builtins/abort @@ -25015,7 +22325,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 713 i32.const 1 call $~lib/builtins/abort @@ -25031,7 +22341,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 714 i32.const 1 call $~lib/builtins/abort @@ -25046,7 +22356,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 715 i32.const 1 call $~lib/builtins/abort @@ -25062,7 +22372,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 716 i32.const 1 call $~lib/builtins/abort @@ -25078,7 +22388,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 717 i32.const 1 call $~lib/builtins/abort @@ -25095,7 +22405,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 718 i32.const 1 call $~lib/builtins/abort @@ -25112,7 +22422,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 719 i32.const 1 call $~lib/builtins/abort @@ -25129,7 +22439,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 720 i32.const 1 call $~lib/builtins/abort @@ -25146,7 +22456,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 721 i32.const 1 call $~lib/builtins/abort @@ -25161,7 +22471,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 722 i32.const 1 call $~lib/builtins/abort @@ -25176,7 +22486,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 731 i32.const 1 call $~lib/builtins/abort @@ -25191,7 +22501,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 732 i32.const 1 call $~lib/builtins/abort @@ -25206,7 +22516,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 733 i32.const 1 call $~lib/builtins/abort @@ -25221,7 +22531,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 734 i32.const 1 call $~lib/builtins/abort @@ -25236,7 +22546,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 735 i32.const 1 call $~lib/builtins/abort @@ -25251,7 +22561,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 736 i32.const 1 call $~lib/builtins/abort @@ -25266,7 +22576,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 737 i32.const 1 call $~lib/builtins/abort @@ -25281,7 +22591,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 738 i32.const 1 call $~lib/builtins/abort @@ -25296,7 +22606,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 739 i32.const 1 call $~lib/builtins/abort @@ -25311,7 +22621,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 740 i32.const 1 call $~lib/builtins/abort @@ -25326,7 +22636,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 743 i32.const 1 call $~lib/builtins/abort @@ -25341,7 +22651,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 744 i32.const 1 call $~lib/builtins/abort @@ -25356,7 +22666,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 745 i32.const 1 call $~lib/builtins/abort @@ -25372,7 +22682,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 746 i32.const 1 call $~lib/builtins/abort @@ -25387,7 +22697,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 747 i32.const 1 call $~lib/builtins/abort @@ -25402,7 +22712,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 748 i32.const 1 call $~lib/builtins/abort @@ -25417,7 +22727,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 749 i32.const 1 call $~lib/builtins/abort @@ -25432,7 +22742,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 750 i32.const 1 call $~lib/builtins/abort @@ -25447,7 +22757,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 751 i32.const 1 call $~lib/builtins/abort @@ -25463,7 +22773,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 752 i32.const 1 call $~lib/builtins/abort @@ -25478,7 +22788,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 753 i32.const 1 call $~lib/builtins/abort @@ -25493,7 +22803,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 754 i32.const 1 call $~lib/builtins/abort @@ -25508,7 +22818,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 755 i32.const 1 call $~lib/builtins/abort @@ -25523,7 +22833,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 756 i32.const 1 call $~lib/builtins/abort @@ -25538,7 +22848,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 757 i32.const 1 call $~lib/builtins/abort @@ -25553,7 +22863,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 758 i32.const 1 call $~lib/builtins/abort @@ -25568,7 +22878,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 759 i32.const 1 call $~lib/builtins/abort @@ -25583,7 +22893,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 760 i32.const 1 call $~lib/builtins/abort @@ -25599,7 +22909,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 761 i32.const 1 call $~lib/builtins/abort @@ -25615,7 +22925,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 762 i32.const 1 call $~lib/builtins/abort @@ -25630,7 +22940,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 763 i32.const 1 call $~lib/builtins/abort @@ -25646,7 +22956,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 764 i32.const 1 call $~lib/builtins/abort @@ -25661,7 +22971,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 765 i32.const 1 call $~lib/builtins/abort @@ -25677,7 +22987,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 766 i32.const 1 call $~lib/builtins/abort @@ -25693,7 +23003,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 767 i32.const 1 call $~lib/builtins/abort @@ -25710,7 +23020,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 768 i32.const 1 call $~lib/builtins/abort @@ -25727,7 +23037,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 769 i32.const 1 call $~lib/builtins/abort @@ -25744,7 +23054,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 770 i32.const 1 call $~lib/builtins/abort @@ -25758,7 +23068,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 782 i32.const 1 call $~lib/builtins/abort @@ -25772,7 +23082,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 783 i32.const 1 call $~lib/builtins/abort @@ -25786,7 +23096,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 784 i32.const 1 call $~lib/builtins/abort @@ -25800,7 +23110,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 785 i32.const 1 call $~lib/builtins/abort @@ -25814,7 +23124,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 786 i32.const 1 call $~lib/builtins/abort @@ -25828,7 +23138,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 787 i32.const 1 call $~lib/builtins/abort @@ -25842,7 +23152,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 788 i32.const 1 call $~lib/builtins/abort @@ -25856,7 +23166,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 789 i32.const 1 call $~lib/builtins/abort @@ -25870,7 +23180,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 790 i32.const 1 call $~lib/builtins/abort @@ -25884,7 +23194,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 791 i32.const 1 call $~lib/builtins/abort @@ -25898,7 +23208,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 794 i32.const 1 call $~lib/builtins/abort @@ -25912,7 +23222,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 795 i32.const 1 call $~lib/builtins/abort @@ -25928,7 +23238,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 796 i32.const 1 call $~lib/builtins/abort @@ -25942,7 +23252,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 797 i32.const 1 call $~lib/builtins/abort @@ -25956,7 +23266,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 798 i32.const 1 call $~lib/builtins/abort @@ -25970,7 +23280,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 799 i32.const 1 call $~lib/builtins/abort @@ -25984,7 +23294,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 800 i32.const 1 call $~lib/builtins/abort @@ -25998,7 +23308,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 801 i32.const 1 call $~lib/builtins/abort @@ -26012,7 +23322,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 802 i32.const 1 call $~lib/builtins/abort @@ -26026,7 +23336,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 803 i32.const 1 call $~lib/builtins/abort @@ -26040,7 +23350,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 812 i32.const 1 call $~lib/builtins/abort @@ -26054,7 +23364,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 813 i32.const 1 call $~lib/builtins/abort @@ -26068,7 +23378,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 814 i32.const 1 call $~lib/builtins/abort @@ -26082,7 +23392,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 815 i32.const 1 call $~lib/builtins/abort @@ -26096,7 +23406,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 816 i32.const 1 call $~lib/builtins/abort @@ -26110,7 +23420,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 817 i32.const 1 call $~lib/builtins/abort @@ -26124,7 +23434,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 818 i32.const 1 call $~lib/builtins/abort @@ -26138,7 +23448,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 819 i32.const 1 call $~lib/builtins/abort @@ -26152,7 +23462,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 820 i32.const 1 call $~lib/builtins/abort @@ -26166,7 +23476,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 821 i32.const 1 call $~lib/builtins/abort @@ -26180,7 +23490,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 824 i32.const 1 call $~lib/builtins/abort @@ -26194,7 +23504,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 825 i32.const 1 call $~lib/builtins/abort @@ -26210,7 +23520,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 826 i32.const 1 call $~lib/builtins/abort @@ -26224,7 +23534,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 827 i32.const 1 call $~lib/builtins/abort @@ -26238,7 +23548,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 828 i32.const 1 call $~lib/builtins/abort @@ -26252,7 +23562,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 829 i32.const 1 call $~lib/builtins/abort @@ -26266,7 +23576,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 830 i32.const 1 call $~lib/builtins/abort @@ -26280,7 +23590,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 831 i32.const 1 call $~lib/builtins/abort @@ -26294,7 +23604,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 832 i32.const 1 call $~lib/builtins/abort @@ -26308,7 +23618,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 833 i32.const 1 call $~lib/builtins/abort @@ -26322,7 +23632,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 845 i32.const 1 call $~lib/builtins/abort @@ -26336,7 +23646,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 846 i32.const 1 call $~lib/builtins/abort @@ -26350,7 +23660,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 847 i32.const 1 call $~lib/builtins/abort @@ -26364,7 +23674,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 848 i32.const 1 call $~lib/builtins/abort @@ -26378,7 +23688,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 849 i32.const 1 call $~lib/builtins/abort @@ -26392,7 +23702,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 850 i32.const 1 call $~lib/builtins/abort @@ -26406,7 +23716,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 851 i32.const 1 call $~lib/builtins/abort @@ -26420,7 +23730,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 852 i32.const 1 call $~lib/builtins/abort @@ -26434,7 +23744,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 853 i32.const 1 call $~lib/builtins/abort @@ -26448,7 +23758,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 854 i32.const 1 call $~lib/builtins/abort @@ -26462,7 +23772,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 857 i32.const 1 call $~lib/builtins/abort @@ -26476,7 +23786,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 858 i32.const 1 call $~lib/builtins/abort @@ -26492,7 +23802,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 859 i32.const 1 call $~lib/builtins/abort @@ -26506,7 +23816,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 860 i32.const 1 call $~lib/builtins/abort @@ -26520,7 +23830,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 861 i32.const 1 call $~lib/builtins/abort @@ -26534,7 +23844,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 862 i32.const 1 call $~lib/builtins/abort @@ -26548,7 +23858,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 863 i32.const 1 call $~lib/builtins/abort @@ -26562,7 +23872,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 864 i32.const 1 call $~lib/builtins/abort @@ -26576,7 +23886,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 865 i32.const 1 call $~lib/builtins/abort @@ -26590,7 +23900,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 866 i32.const 1 call $~lib/builtins/abort @@ -26604,7 +23914,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 867 i32.const 1 call $~lib/builtins/abort @@ -26618,7 +23928,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 868 i32.const 1 call $~lib/builtins/abort @@ -26632,7 +23942,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 869 i32.const 1 call $~lib/builtins/abort @@ -26646,7 +23956,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 870 i32.const 1 call $~lib/builtins/abort @@ -26660,7 +23970,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 871 i32.const 1 call $~lib/builtins/abort @@ -26674,7 +23984,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 872 i32.const 1 call $~lib/builtins/abort @@ -26688,7 +23998,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 873 i32.const 1 call $~lib/builtins/abort @@ -26704,7 +24014,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 874 i32.const 1 call $~lib/builtins/abort @@ -26718,7 +24028,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 875 i32.const 1 call $~lib/builtins/abort @@ -26732,7 +24042,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 876 i32.const 1 call $~lib/builtins/abort @@ -26746,7 +24056,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 877 i32.const 1 call $~lib/builtins/abort @@ -26760,7 +24070,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 878 i32.const 1 call $~lib/builtins/abort @@ -26774,7 +24084,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 879 i32.const 1 call $~lib/builtins/abort @@ -26788,7 +24098,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 880 i32.const 1 call $~lib/builtins/abort @@ -26802,7 +24112,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 881 i32.const 1 call $~lib/builtins/abort @@ -26816,7 +24126,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 882 i32.const 1 call $~lib/builtins/abort @@ -26830,7 +24140,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 883 i32.const 1 call $~lib/builtins/abort @@ -26844,7 +24154,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 884 i32.const 1 call $~lib/builtins/abort @@ -26858,7 +24168,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 885 i32.const 1 call $~lib/builtins/abort @@ -26872,7 +24182,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 886 i32.const 1 call $~lib/builtins/abort @@ -26886,7 +24196,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 887 i32.const 1 call $~lib/builtins/abort @@ -26900,7 +24210,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 888 i32.const 1 call $~lib/builtins/abort @@ -26916,7 +24226,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 889 i32.const 1 call $~lib/builtins/abort @@ -26930,7 +24240,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 890 i32.const 1 call $~lib/builtins/abort @@ -26944,7 +24254,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 891 i32.const 1 call $~lib/builtins/abort @@ -26958,7 +24268,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 892 i32.const 1 call $~lib/builtins/abort @@ -26972,7 +24282,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 893 i32.const 1 call $~lib/builtins/abort @@ -26986,7 +24296,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 894 i32.const 1 call $~lib/builtins/abort @@ -27000,7 +24310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 895 i32.const 1 call $~lib/builtins/abort @@ -27014,7 +24324,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 896 i32.const 1 call $~lib/builtins/abort @@ -27028,7 +24338,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 897 i32.const 1 call $~lib/builtins/abort @@ -27042,7 +24352,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 898 i32.const 1 call $~lib/builtins/abort @@ -27056,7 +24366,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 899 i32.const 1 call $~lib/builtins/abort @@ -27070,7 +24380,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 900 i32.const 1 call $~lib/builtins/abort @@ -27084,7 +24394,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 901 i32.const 1 call $~lib/builtins/abort @@ -27098,7 +24408,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 910 i32.const 1 call $~lib/builtins/abort @@ -27112,7 +24422,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 911 i32.const 1 call $~lib/builtins/abort @@ -27126,7 +24436,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 912 i32.const 1 call $~lib/builtins/abort @@ -27140,7 +24450,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 913 i32.const 1 call $~lib/builtins/abort @@ -27154,7 +24464,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 914 i32.const 1 call $~lib/builtins/abort @@ -27168,7 +24478,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 915 i32.const 1 call $~lib/builtins/abort @@ -27182,7 +24492,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 916 i32.const 1 call $~lib/builtins/abort @@ -27196,7 +24506,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 917 i32.const 1 call $~lib/builtins/abort @@ -27210,7 +24520,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 918 i32.const 1 call $~lib/builtins/abort @@ -27224,7 +24534,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 919 i32.const 1 call $~lib/builtins/abort @@ -27238,7 +24548,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 922 i32.const 1 call $~lib/builtins/abort @@ -27252,7 +24562,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 923 i32.const 1 call $~lib/builtins/abort @@ -27268,7 +24578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 924 i32.const 1 call $~lib/builtins/abort @@ -27282,7 +24592,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 925 i32.const 1 call $~lib/builtins/abort @@ -27296,7 +24606,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 926 i32.const 1 call $~lib/builtins/abort @@ -27310,7 +24620,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 927 i32.const 1 call $~lib/builtins/abort @@ -27324,7 +24634,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 928 i32.const 1 call $~lib/builtins/abort @@ -27338,7 +24648,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 929 i32.const 1 call $~lib/builtins/abort @@ -27352,7 +24662,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 930 i32.const 1 call $~lib/builtins/abort @@ -27366,7 +24676,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 931 i32.const 1 call $~lib/builtins/abort @@ -27380,7 +24690,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 932 i32.const 1 call $~lib/builtins/abort @@ -27394,7 +24704,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 933 i32.const 1 call $~lib/builtins/abort @@ -27408,7 +24718,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 934 i32.const 1 call $~lib/builtins/abort @@ -27422,7 +24732,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 935 i32.const 1 call $~lib/builtins/abort @@ -27436,7 +24746,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 936 i32.const 1 call $~lib/builtins/abort @@ -27450,7 +24760,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 937 i32.const 1 call $~lib/builtins/abort @@ -27464,7 +24774,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 938 i32.const 1 call $~lib/builtins/abort @@ -27480,7 +24790,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 939 i32.const 1 call $~lib/builtins/abort @@ -27494,7 +24804,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 940 i32.const 1 call $~lib/builtins/abort @@ -27508,7 +24818,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 941 i32.const 1 call $~lib/builtins/abort @@ -27522,7 +24832,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 942 i32.const 1 call $~lib/builtins/abort @@ -27536,7 +24846,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 943 i32.const 1 call $~lib/builtins/abort @@ -27550,7 +24860,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 944 i32.const 1 call $~lib/builtins/abort @@ -27564,7 +24874,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 945 i32.const 1 call $~lib/builtins/abort @@ -27578,7 +24888,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 946 i32.const 1 call $~lib/builtins/abort @@ -27592,7 +24902,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 947 i32.const 1 call $~lib/builtins/abort @@ -27606,7 +24916,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 948 i32.const 1 call $~lib/builtins/abort @@ -27620,7 +24930,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 949 i32.const 1 call $~lib/builtins/abort @@ -27634,7 +24944,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 950 i32.const 1 call $~lib/builtins/abort @@ -27648,7 +24958,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 951 i32.const 1 call $~lib/builtins/abort @@ -27662,7 +24972,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 952 i32.const 1 call $~lib/builtins/abort @@ -27676,7 +24986,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 953 i32.const 1 call $~lib/builtins/abort @@ -27692,7 +25002,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 954 i32.const 1 call $~lib/builtins/abort @@ -27706,7 +25016,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 955 i32.const 1 call $~lib/builtins/abort @@ -27720,7 +25030,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 956 i32.const 1 call $~lib/builtins/abort @@ -27734,7 +25044,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 957 i32.const 1 call $~lib/builtins/abort @@ -27748,7 +25058,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 958 i32.const 1 call $~lib/builtins/abort @@ -27762,7 +25072,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 959 i32.const 1 call $~lib/builtins/abort @@ -27776,7 +25086,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 960 i32.const 1 call $~lib/builtins/abort @@ -27790,7 +25100,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 961 i32.const 1 call $~lib/builtins/abort @@ -27804,7 +25114,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 962 i32.const 1 call $~lib/builtins/abort @@ -27818,7 +25128,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 963 i32.const 1 call $~lib/builtins/abort @@ -27832,7 +25142,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 964 i32.const 1 call $~lib/builtins/abort @@ -27846,7 +25156,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 965 i32.const 1 call $~lib/builtins/abort @@ -27860,7 +25170,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 966 i32.const 1 call $~lib/builtins/abort @@ -27874,7 +25184,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 977 i32.const 1 call $~lib/builtins/abort @@ -27888,7 +25198,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 978 i32.const 1 call $~lib/builtins/abort @@ -27902,7 +25212,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 979 i32.const 1 call $~lib/builtins/abort @@ -27916,7 +25226,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 980 i32.const 1 call $~lib/builtins/abort @@ -27930,7 +25240,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 981 i32.const 1 call $~lib/builtins/abort @@ -27944,7 +25254,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 982 i32.const 1 call $~lib/builtins/abort @@ -27958,7 +25268,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 983 i32.const 1 call $~lib/builtins/abort @@ -27972,7 +25282,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 984 i32.const 1 call $~lib/builtins/abort @@ -27986,7 +25296,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 985 i32.const 1 call $~lib/builtins/abort @@ -28000,7 +25310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 986 i32.const 1 call $~lib/builtins/abort @@ -28014,7 +25324,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 989 i32.const 1 call $~lib/builtins/abort @@ -28028,7 +25338,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 990 i32.const 1 call $~lib/builtins/abort @@ -28042,7 +25352,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 991 i32.const 1 call $~lib/builtins/abort @@ -28057,7 +25367,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 992 i32.const 1 call $~lib/builtins/abort @@ -28071,7 +25381,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 993 i32.const 1 call $~lib/builtins/abort @@ -28085,7 +25395,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 994 i32.const 1 call $~lib/builtins/abort @@ -28099,7 +25409,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 995 i32.const 1 call $~lib/builtins/abort @@ -28113,7 +25423,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 996 i32.const 1 call $~lib/builtins/abort @@ -28127,7 +25437,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 997 i32.const 1 call $~lib/builtins/abort @@ -28141,7 +25451,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 998 i32.const 1 call $~lib/builtins/abort @@ -28155,7 +25465,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 999 i32.const 1 call $~lib/builtins/abort @@ -28169,7 +25479,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1000 i32.const 1 call $~lib/builtins/abort @@ -28183,7 +25493,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1001 i32.const 1 call $~lib/builtins/abort @@ -28197,7 +25507,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1002 i32.const 1 call $~lib/builtins/abort @@ -28211,7 +25521,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1003 i32.const 1 call $~lib/builtins/abort @@ -28225,7 +25535,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1004 i32.const 1 call $~lib/builtins/abort @@ -28239,7 +25549,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1005 i32.const 1 call $~lib/builtins/abort @@ -28253,7 +25563,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1006 i32.const 1 call $~lib/builtins/abort @@ -28267,7 +25577,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1007 i32.const 1 call $~lib/builtins/abort @@ -28281,7 +25591,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1008 i32.const 1 call $~lib/builtins/abort @@ -28295,7 +25605,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1009 i32.const 1 call $~lib/builtins/abort @@ -28309,7 +25619,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1010 i32.const 1 call $~lib/builtins/abort @@ -28323,7 +25633,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1011 i32.const 1 call $~lib/builtins/abort @@ -28337,7 +25647,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1012 i32.const 1 call $~lib/builtins/abort @@ -28351,7 +25661,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1013 i32.const 1 call $~lib/builtins/abort @@ -28365,7 +25675,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1014 i32.const 1 call $~lib/builtins/abort @@ -28379,7 +25689,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1015 i32.const 1 call $~lib/builtins/abort @@ -28393,7 +25703,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1016 i32.const 1 call $~lib/builtins/abort @@ -28407,7 +25717,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1017 i32.const 1 call $~lib/builtins/abort @@ -28421,7 +25731,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1018 i32.const 1 call $~lib/builtins/abort @@ -28435,7 +25745,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1019 i32.const 1 call $~lib/builtins/abort @@ -28449,7 +25759,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1020 i32.const 1 call $~lib/builtins/abort @@ -28463,7 +25773,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1021 i32.const 1 call $~lib/builtins/abort @@ -28477,7 +25787,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1022 i32.const 1 call $~lib/builtins/abort @@ -28491,7 +25801,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1023 i32.const 1 call $~lib/builtins/abort @@ -28505,7 +25815,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1024 i32.const 1 call $~lib/builtins/abort @@ -28519,7 +25829,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1025 i32.const 1 call $~lib/builtins/abort @@ -28533,7 +25843,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1026 i32.const 1 call $~lib/builtins/abort @@ -28547,7 +25857,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1027 i32.const 1 call $~lib/builtins/abort @@ -28561,7 +25871,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1028 i32.const 1 call $~lib/builtins/abort @@ -28575,7 +25885,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1029 i32.const 1 call $~lib/builtins/abort @@ -28589,7 +25899,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1030 i32.const 1 call $~lib/builtins/abort @@ -28603,7 +25913,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1031 i32.const 1 call $~lib/builtins/abort @@ -28617,7 +25927,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1032 i32.const 1 call $~lib/builtins/abort @@ -28631,7 +25941,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1033 i32.const 1 call $~lib/builtins/abort @@ -28645,7 +25955,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1034 i32.const 1 call $~lib/builtins/abort @@ -28659,7 +25969,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1035 i32.const 1 call $~lib/builtins/abort @@ -28673,7 +25983,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1036 i32.const 1 call $~lib/builtins/abort @@ -28687,7 +25997,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1037 i32.const 1 call $~lib/builtins/abort @@ -28701,7 +26011,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1038 i32.const 1 call $~lib/builtins/abort @@ -28715,7 +26025,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1039 i32.const 1 call $~lib/builtins/abort @@ -28729,7 +26039,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1040 i32.const 1 call $~lib/builtins/abort @@ -28743,7 +26053,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1041 i32.const 1 call $~lib/builtins/abort @@ -28757,7 +26067,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1042 i32.const 1 call $~lib/builtins/abort @@ -28771,7 +26081,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1043 i32.const 1 call $~lib/builtins/abort @@ -28785,7 +26095,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1044 i32.const 1 call $~lib/builtins/abort @@ -28799,7 +26109,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1045 i32.const 1 call $~lib/builtins/abort @@ -28813,7 +26123,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1046 i32.const 1 call $~lib/builtins/abort @@ -28827,7 +26137,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1047 i32.const 1 call $~lib/builtins/abort @@ -28841,7 +26151,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1048 i32.const 1 call $~lib/builtins/abort @@ -28855,7 +26165,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1049 i32.const 1 call $~lib/builtins/abort @@ -28869,7 +26179,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1050 i32.const 1 call $~lib/builtins/abort @@ -28883,7 +26193,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1051 i32.const 1 call $~lib/builtins/abort @@ -28897,7 +26207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1052 i32.const 1 call $~lib/builtins/abort @@ -28911,7 +26221,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1053 i32.const 1 call $~lib/builtins/abort @@ -28925,7 +26235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1054 i32.const 1 call $~lib/builtins/abort @@ -28939,7 +26249,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1055 i32.const 1 call $~lib/builtins/abort @@ -28953,7 +26263,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1056 i32.const 1 call $~lib/builtins/abort @@ -28967,7 +26277,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1057 i32.const 1 call $~lib/builtins/abort @@ -28981,7 +26291,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1058 i32.const 1 call $~lib/builtins/abort @@ -28995,7 +26305,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1059 i32.const 1 call $~lib/builtins/abort @@ -29009,7 +26319,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1060 i32.const 1 call $~lib/builtins/abort @@ -29023,7 +26333,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1061 i32.const 1 call $~lib/builtins/abort @@ -29037,7 +26347,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1062 i32.const 1 call $~lib/builtins/abort @@ -29051,7 +26361,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1063 i32.const 1 call $~lib/builtins/abort @@ -29065,7 +26375,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1064 i32.const 1 call $~lib/builtins/abort @@ -29079,7 +26389,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1065 i32.const 1 call $~lib/builtins/abort @@ -29093,7 +26403,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1066 i32.const 1 call $~lib/builtins/abort @@ -29107,7 +26417,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1069 i32.const 1 call $~lib/builtins/abort @@ -29121,7 +26431,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1070 i32.const 1 call $~lib/builtins/abort @@ -29135,7 +26445,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1071 i32.const 1 call $~lib/builtins/abort @@ -29149,7 +26459,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1072 i32.const 1 call $~lib/builtins/abort @@ -29163,7 +26473,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1073 i32.const 1 call $~lib/builtins/abort @@ -29177,7 +26487,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1074 i32.const 1 call $~lib/builtins/abort @@ -29191,7 +26501,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1075 i32.const 1 call $~lib/builtins/abort @@ -29205,7 +26515,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1076 i32.const 1 call $~lib/builtins/abort @@ -29219,7 +26529,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1077 i32.const 1 call $~lib/builtins/abort @@ -29233,7 +26543,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1078 i32.const 1 call $~lib/builtins/abort @@ -29247,7 +26557,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1079 i32.const 1 call $~lib/builtins/abort @@ -29261,7 +26571,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1080 i32.const 1 call $~lib/builtins/abort @@ -29275,7 +26585,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1081 i32.const 1 call $~lib/builtins/abort @@ -29289,7 +26599,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1082 i32.const 1 call $~lib/builtins/abort @@ -29303,7 +26613,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1083 i32.const 1 call $~lib/builtins/abort @@ -29317,7 +26627,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1084 i32.const 1 call $~lib/builtins/abort @@ -29331,7 +26641,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1085 i32.const 1 call $~lib/builtins/abort @@ -29345,7 +26655,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1086 i32.const 1 call $~lib/builtins/abort @@ -29359,7 +26669,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1087 i32.const 1 call $~lib/builtins/abort @@ -29373,7 +26683,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1088 i32.const 1 call $~lib/builtins/abort @@ -29387,7 +26697,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1089 i32.const 1 call $~lib/builtins/abort @@ -29401,7 +26711,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1090 i32.const 1 call $~lib/builtins/abort @@ -29415,7 +26725,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1091 i32.const 1 call $~lib/builtins/abort @@ -29429,7 +26739,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1092 i32.const 1 call $~lib/builtins/abort @@ -29443,7 +26753,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1093 i32.const 1 call $~lib/builtins/abort @@ -29457,7 +26767,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1094 i32.const 1 call $~lib/builtins/abort @@ -29471,7 +26781,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1095 i32.const 1 call $~lib/builtins/abort @@ -29485,7 +26795,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1096 i32.const 1 call $~lib/builtins/abort @@ -29499,7 +26809,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1097 i32.const 1 call $~lib/builtins/abort @@ -29513,7 +26823,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1098 i32.const 1 call $~lib/builtins/abort @@ -29527,7 +26837,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1099 i32.const 1 call $~lib/builtins/abort @@ -29541,7 +26851,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1100 i32.const 1 call $~lib/builtins/abort @@ -29555,7 +26865,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1101 i32.const 1 call $~lib/builtins/abort @@ -29569,7 +26879,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1102 i32.const 1 call $~lib/builtins/abort @@ -29583,7 +26893,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1103 i32.const 1 call $~lib/builtins/abort @@ -29597,7 +26907,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1104 i32.const 1 call $~lib/builtins/abort @@ -29611,7 +26921,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1105 i32.const 1 call $~lib/builtins/abort @@ -29625,7 +26935,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1106 i32.const 1 call $~lib/builtins/abort @@ -29643,7 +26953,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1108 i32.const 1 call $~lib/builtins/abort @@ -29665,7 +26975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1109 i32.const 1 call $~lib/builtins/abort @@ -29683,7 +26993,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1110 i32.const 1 call $~lib/builtins/abort @@ -29696,7 +27006,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1114 i32.const 1 call $~lib/builtins/abort @@ -29709,7 +27019,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1115 i32.const 1 call $~lib/builtins/abort @@ -29722,7 +27032,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1118 i32.const 1 call $~lib/builtins/abort @@ -29735,7 +27045,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1120 i32.const 1 call $~lib/builtins/abort @@ -29748,7 +27058,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1121 i32.const 1 call $~lib/builtins/abort @@ -29761,7 +27071,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1124 i32.const 1 call $~lib/builtins/abort @@ -29774,7 +27084,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1126 i32.const 1 call $~lib/builtins/abort @@ -29787,7 +27097,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1129 i32.const 1 call $~lib/builtins/abort @@ -29800,7 +27110,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1131 i32.const 1 call $~lib/builtins/abort @@ -29813,7 +27123,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1132 i32.const 1 call $~lib/builtins/abort @@ -29826,7 +27136,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1133 i32.const 1 call $~lib/builtins/abort @@ -29839,7 +27149,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1135 i32.const 1 call $~lib/builtins/abort @@ -29856,7 +27166,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1137 i32.const 1 call $~lib/builtins/abort @@ -29873,7 +27183,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1138 i32.const 1 call $~lib/builtins/abort @@ -29890,7 +27200,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1139 i32.const 1 call $~lib/builtins/abort @@ -29907,7 +27217,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1140 i32.const 1 call $~lib/builtins/abort @@ -29920,7 +27230,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1141 i32.const 1 call $~lib/builtins/abort @@ -29937,7 +27247,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1142 i32.const 1 call $~lib/builtins/abort @@ -29951,7 +27261,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1151 i32.const 1 call $~lib/builtins/abort @@ -29965,7 +27275,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1152 i32.const 1 call $~lib/builtins/abort @@ -29979,7 +27289,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1153 i32.const 1 call $~lib/builtins/abort @@ -29993,7 +27303,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1154 i32.const 1 call $~lib/builtins/abort @@ -30007,7 +27317,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1155 i32.const 1 call $~lib/builtins/abort @@ -30021,7 +27331,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1156 i32.const 1 call $~lib/builtins/abort @@ -30035,7 +27345,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1157 i32.const 1 call $~lib/builtins/abort @@ -30049,7 +27359,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1158 i32.const 1 call $~lib/builtins/abort @@ -30063,7 +27373,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1159 i32.const 1 call $~lib/builtins/abort @@ -30077,7 +27387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1160 i32.const 1 call $~lib/builtins/abort @@ -30091,7 +27401,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1163 i32.const 1 call $~lib/builtins/abort @@ -30105,7 +27415,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1164 i32.const 1 call $~lib/builtins/abort @@ -30119,7 +27429,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1165 i32.const 1 call $~lib/builtins/abort @@ -30134,7 +27444,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1166 i32.const 1 call $~lib/builtins/abort @@ -30148,7 +27458,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1167 i32.const 1 call $~lib/builtins/abort @@ -30162,7 +27472,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1170 i32.const 1 call $~lib/builtins/abort @@ -30176,7 +27486,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1171 i32.const 1 call $~lib/builtins/abort @@ -30190,7 +27500,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1172 i32.const 1 call $~lib/builtins/abort @@ -30204,7 +27514,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1173 i32.const 1 call $~lib/builtins/abort @@ -30218,7 +27528,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1174 i32.const 1 call $~lib/builtins/abort @@ -30232,7 +27542,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1175 i32.const 1 call $~lib/builtins/abort @@ -30246,7 +27556,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1176 i32.const 1 call $~lib/builtins/abort @@ -30260,7 +27570,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1177 i32.const 1 call $~lib/builtins/abort @@ -30274,7 +27584,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1178 i32.const 1 call $~lib/builtins/abort @@ -30288,7 +27598,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1179 i32.const 1 call $~lib/builtins/abort @@ -30302,7 +27612,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1180 i32.const 1 call $~lib/builtins/abort @@ -30316,7 +27626,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1181 i32.const 1 call $~lib/builtins/abort @@ -30330,7 +27640,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1182 i32.const 1 call $~lib/builtins/abort @@ -30344,7 +27654,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1183 i32.const 1 call $~lib/builtins/abort @@ -30358,7 +27668,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1184 i32.const 1 call $~lib/builtins/abort @@ -30372,7 +27682,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1185 i32.const 1 call $~lib/builtins/abort @@ -30386,7 +27696,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1186 i32.const 1 call $~lib/builtins/abort @@ -30400,7 +27710,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1187 i32.const 1 call $~lib/builtins/abort @@ -30414,7 +27724,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1188 i32.const 1 call $~lib/builtins/abort @@ -30428,7 +27738,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1189 i32.const 1 call $~lib/builtins/abort @@ -30442,7 +27752,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1190 i32.const 1 call $~lib/builtins/abort @@ -30456,7 +27766,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1191 i32.const 1 call $~lib/builtins/abort @@ -30470,7 +27780,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1192 i32.const 1 call $~lib/builtins/abort @@ -30484,7 +27794,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1193 i32.const 1 call $~lib/builtins/abort @@ -30498,7 +27808,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1194 i32.const 1 call $~lib/builtins/abort @@ -30512,7 +27822,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1195 i32.const 1 call $~lib/builtins/abort @@ -30526,7 +27836,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1196 i32.const 1 call $~lib/builtins/abort @@ -30540,7 +27850,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1197 i32.const 1 call $~lib/builtins/abort @@ -30554,7 +27864,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1198 i32.const 1 call $~lib/builtins/abort @@ -30568,7 +27878,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1199 i32.const 1 call $~lib/builtins/abort @@ -30582,7 +27892,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1200 i32.const 1 call $~lib/builtins/abort @@ -30596,7 +27906,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1201 i32.const 1 call $~lib/builtins/abort @@ -30610,7 +27920,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1202 i32.const 1 call $~lib/builtins/abort @@ -30624,7 +27934,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1203 i32.const 1 call $~lib/builtins/abort @@ -30638,7 +27948,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1204 i32.const 1 call $~lib/builtins/abort @@ -30652,7 +27962,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1205 i32.const 1 call $~lib/builtins/abort @@ -30666,7 +27976,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1206 i32.const 1 call $~lib/builtins/abort @@ -30680,7 +27990,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1207 i32.const 1 call $~lib/builtins/abort @@ -30694,7 +28004,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1210 i32.const 1 call $~lib/builtins/abort @@ -30708,7 +28018,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1211 i32.const 1 call $~lib/builtins/abort @@ -30722,7 +28032,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1212 i32.const 1 call $~lib/builtins/abort @@ -30736,7 +28046,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1213 i32.const 1 call $~lib/builtins/abort @@ -30750,7 +28060,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1214 i32.const 1 call $~lib/builtins/abort @@ -30764,7 +28074,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1215 i32.const 1 call $~lib/builtins/abort @@ -30778,7 +28088,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1216 i32.const 1 call $~lib/builtins/abort @@ -30792,7 +28102,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1217 i32.const 1 call $~lib/builtins/abort @@ -30806,7 +28116,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1218 i32.const 1 call $~lib/builtins/abort @@ -30820,7 +28130,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1219 i32.const 1 call $~lib/builtins/abort @@ -30834,7 +28144,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1220 i32.const 1 call $~lib/builtins/abort @@ -30848,7 +28158,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1221 i32.const 1 call $~lib/builtins/abort @@ -30862,7 +28172,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1222 i32.const 1 call $~lib/builtins/abort @@ -30877,7 +28187,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1223 i32.const 1 call $~lib/builtins/abort @@ -30891,7 +28201,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1234 i32.const 1 call $~lib/builtins/abort @@ -30905,7 +28215,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1235 i32.const 1 call $~lib/builtins/abort @@ -30919,7 +28229,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1236 i32.const 1 call $~lib/builtins/abort @@ -30933,7 +28243,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1237 i32.const 1 call $~lib/builtins/abort @@ -30947,7 +28257,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1238 i32.const 1 call $~lib/builtins/abort @@ -30961,7 +28271,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1239 i32.const 1 call $~lib/builtins/abort @@ -30975,7 +28285,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1240 i32.const 1 call $~lib/builtins/abort @@ -30989,7 +28299,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1241 i32.const 1 call $~lib/builtins/abort @@ -31003,7 +28313,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1242 i32.const 1 call $~lib/builtins/abort @@ -31017,7 +28327,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1243 i32.const 1 call $~lib/builtins/abort @@ -31031,7 +28341,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1246 i32.const 1 call $~lib/builtins/abort @@ -31045,7 +28355,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1247 i32.const 1 call $~lib/builtins/abort @@ -31059,7 +28369,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1248 i32.const 1 call $~lib/builtins/abort @@ -31074,7 +28384,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1249 i32.const 1 call $~lib/builtins/abort @@ -31088,7 +28398,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1250 i32.const 1 call $~lib/builtins/abort @@ -31102,7 +28412,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1259 i32.const 1 call $~lib/builtins/abort @@ -31116,7 +28426,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1260 i32.const 1 call $~lib/builtins/abort @@ -31130,7 +28440,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1261 i32.const 1 call $~lib/builtins/abort @@ -31144,7 +28454,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1262 i32.const 1 call $~lib/builtins/abort @@ -31158,7 +28468,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1263 i32.const 1 call $~lib/builtins/abort @@ -31172,7 +28482,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1264 i32.const 1 call $~lib/builtins/abort @@ -31186,7 +28496,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1265 i32.const 1 call $~lib/builtins/abort @@ -31200,7 +28510,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1266 i32.const 1 call $~lib/builtins/abort @@ -31214,7 +28524,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1267 i32.const 1 call $~lib/builtins/abort @@ -31228,7 +28538,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1268 i32.const 1 call $~lib/builtins/abort @@ -31242,7 +28552,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1271 i32.const 1 call $~lib/builtins/abort @@ -31256,7 +28566,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1272 i32.const 1 call $~lib/builtins/abort @@ -31270,7 +28580,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1273 i32.const 1 call $~lib/builtins/abort @@ -31285,7 +28595,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1274 i32.const 1 call $~lib/builtins/abort @@ -31299,7 +28609,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1275 i32.const 1 call $~lib/builtins/abort @@ -31313,7 +28623,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1287 i32.const 1 call $~lib/builtins/abort @@ -31327,7 +28637,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1288 i32.const 1 call $~lib/builtins/abort @@ -31341,7 +28651,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1289 i32.const 1 call $~lib/builtins/abort @@ -31355,7 +28665,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1290 i32.const 1 call $~lib/builtins/abort @@ -31369,7 +28679,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1291 i32.const 1 call $~lib/builtins/abort @@ -31383,7 +28693,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1292 i32.const 1 call $~lib/builtins/abort @@ -31397,7 +28707,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1293 i32.const 1 call $~lib/builtins/abort @@ -31411,7 +28721,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1294 i32.const 1 call $~lib/builtins/abort @@ -31425,7 +28735,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1295 i32.const 1 call $~lib/builtins/abort @@ -31439,7 +28749,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1296 i32.const 1 call $~lib/builtins/abort @@ -31453,7 +28763,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1299 i32.const 1 call $~lib/builtins/abort @@ -31467,7 +28777,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1300 i32.const 1 call $~lib/builtins/abort @@ -31481,7 +28791,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1301 i32.const 1 call $~lib/builtins/abort @@ -31495,7 +28805,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1302 i32.const 1 call $~lib/builtins/abort @@ -31509,7 +28819,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1303 i32.const 1 call $~lib/builtins/abort @@ -31524,7 +28834,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1304 i32.const 1 call $~lib/builtins/abort @@ -31538,7 +28848,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1305 i32.const 1 call $~lib/builtins/abort @@ -31552,7 +28862,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1306 i32.const 1 call $~lib/builtins/abort @@ -31566,7 +28876,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1307 i32.const 1 call $~lib/builtins/abort @@ -31580,7 +28890,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1308 i32.const 1 call $~lib/builtins/abort @@ -31594,7 +28904,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1309 i32.const 1 call $~lib/builtins/abort @@ -31608,7 +28918,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1312 i32.const 1 call $~lib/builtins/abort @@ -31623,7 +28933,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1313 i32.const 1 call $~lib/builtins/abort @@ -31640,7 +28950,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1315 i32.const 1 call $~lib/builtins/abort @@ -31657,7 +28967,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1322 i32.const 1 call $~lib/builtins/abort @@ -31675,7 +28985,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1323 i32.const 1 call $~lib/builtins/abort @@ -31693,7 +29003,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1330 i32.const 1 call $~lib/builtins/abort @@ -31710,7 +29020,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1337 i32.const 1 call $~lib/builtins/abort @@ -31729,7 +29039,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1344 i32.const 1 call $~lib/builtins/abort @@ -31746,7 +29056,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1351 i32.const 1 call $~lib/builtins/abort @@ -31763,7 +29073,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1358 i32.const 1 call $~lib/builtins/abort @@ -31780,7 +29090,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1365 i32.const 1 call $~lib/builtins/abort @@ -31797,7 +29107,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1371 i32.const 1 call $~lib/builtins/abort @@ -31814,7 +29124,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1377 i32.const 1 call $~lib/builtins/abort @@ -31831,7 +29141,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1383 i32.const 1 call $~lib/builtins/abort @@ -31848,7 +29158,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1390 i32.const 1 call $~lib/builtins/abort @@ -31865,7 +29175,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1397 i32.const 1 call $~lib/builtins/abort @@ -31882,7 +29192,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1404 i32.const 1 call $~lib/builtins/abort @@ -31899,7 +29209,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1411 i32.const 1 call $~lib/builtins/abort @@ -31916,7 +29226,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1418 i32.const 1 call $~lib/builtins/abort @@ -31933,7 +29243,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1425 i32.const 1 call $~lib/builtins/abort @@ -31950,7 +29260,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1432 i32.const 1 call $~lib/builtins/abort @@ -31967,7 +29277,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1439 i32.const 1 call $~lib/builtins/abort @@ -31981,7 +29291,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1453 i32.const 1 call $~lib/builtins/abort @@ -31995,7 +29305,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1454 i32.const 1 call $~lib/builtins/abort @@ -32009,7 +29319,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1455 i32.const 1 call $~lib/builtins/abort @@ -32023,7 +29333,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1456 i32.const 1 call $~lib/builtins/abort @@ -32037,7 +29347,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1457 i32.const 1 call $~lib/builtins/abort @@ -32051,7 +29361,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1458 i32.const 1 call $~lib/builtins/abort @@ -32065,7 +29375,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1459 i32.const 1 call $~lib/builtins/abort @@ -32079,7 +29389,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1460 i32.const 1 call $~lib/builtins/abort @@ -32093,7 +29403,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1461 i32.const 1 call $~lib/builtins/abort @@ -32107,7 +29417,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1462 i32.const 1 call $~lib/builtins/abort @@ -32121,7 +29431,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1465 i32.const 1 call $~lib/builtins/abort @@ -32135,7 +29445,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1466 i32.const 1 call $~lib/builtins/abort @@ -32149,7 +29459,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1467 i32.const 1 call $~lib/builtins/abort @@ -32163,7 +29473,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1468 i32.const 1 call $~lib/builtins/abort @@ -32177,7 +29487,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1469 i32.const 1 call $~lib/builtins/abort @@ -32192,7 +29502,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1470 i32.const 1 call $~lib/builtins/abort @@ -32206,7 +29516,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1471 i32.const 1 call $~lib/builtins/abort @@ -32220,7 +29530,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1472 i32.const 1 call $~lib/builtins/abort @@ -32236,7 +29546,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1473 i32.const 1 call $~lib/builtins/abort @@ -32252,7 +29562,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1474 i32.const 1 call $~lib/builtins/abort @@ -32268,7 +29578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1475 i32.const 1 call $~lib/builtins/abort @@ -32282,7 +29592,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1476 i32.const 1 call $~lib/builtins/abort @@ -32296,7 +29606,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1477 i32.const 1 call $~lib/builtins/abort @@ -32310,7 +29620,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1478 i32.const 1 call $~lib/builtins/abort @@ -32324,7 +29634,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1490 i32.const 1 call $~lib/builtins/abort @@ -32338,7 +29648,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1491 i32.const 1 call $~lib/builtins/abort @@ -32352,7 +29662,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1492 i32.const 1 call $~lib/builtins/abort @@ -32366,7 +29676,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1493 i32.const 1 call $~lib/builtins/abort @@ -32380,7 +29690,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1494 i32.const 1 call $~lib/builtins/abort @@ -32394,7 +29704,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1495 i32.const 1 call $~lib/builtins/abort @@ -32408,7 +29718,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1496 i32.const 1 call $~lib/builtins/abort @@ -32422,7 +29732,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1497 i32.const 1 call $~lib/builtins/abort @@ -32436,7 +29746,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1498 i32.const 1 call $~lib/builtins/abort @@ -32450,7 +29760,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1499 i32.const 1 call $~lib/builtins/abort @@ -32464,7 +29774,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1502 i32.const 1 call $~lib/builtins/abort @@ -32478,7 +29788,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1503 i32.const 1 call $~lib/builtins/abort @@ -32492,7 +29802,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1504 i32.const 1 call $~lib/builtins/abort @@ -32506,7 +29816,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1505 i32.const 1 call $~lib/builtins/abort @@ -32520,7 +29830,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1506 i32.const 1 call $~lib/builtins/abort @@ -32535,7 +29845,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1507 i32.const 1 call $~lib/builtins/abort @@ -32549,7 +29859,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1508 i32.const 1 call $~lib/builtins/abort @@ -32565,7 +29875,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1509 i32.const 1 call $~lib/builtins/abort @@ -32581,7 +29891,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1510 i32.const 1 call $~lib/builtins/abort @@ -32595,7 +29905,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1519 i32.const 1 call $~lib/builtins/abort @@ -32609,7 +29919,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1520 i32.const 1 call $~lib/builtins/abort @@ -32623,7 +29933,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1521 i32.const 1 call $~lib/builtins/abort @@ -32637,7 +29947,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1522 i32.const 1 call $~lib/builtins/abort @@ -32651,7 +29961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1523 i32.const 1 call $~lib/builtins/abort @@ -32665,7 +29975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1524 i32.const 1 call $~lib/builtins/abort @@ -32679,7 +29989,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1525 i32.const 1 call $~lib/builtins/abort @@ -32693,7 +30003,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1526 i32.const 1 call $~lib/builtins/abort @@ -32707,7 +30017,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1527 i32.const 1 call $~lib/builtins/abort @@ -32721,7 +30031,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1528 i32.const 1 call $~lib/builtins/abort @@ -32735,7 +30045,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1531 i32.const 1 call $~lib/builtins/abort @@ -32749,7 +30059,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1532 i32.const 1 call $~lib/builtins/abort @@ -32763,7 +30073,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1533 i32.const 1 call $~lib/builtins/abort @@ -32777,7 +30087,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1534 i32.const 1 call $~lib/builtins/abort @@ -32791,7 +30101,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1535 i32.const 1 call $~lib/builtins/abort @@ -32806,7 +30116,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1536 i32.const 1 call $~lib/builtins/abort @@ -32820,7 +30130,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1537 i32.const 1 call $~lib/builtins/abort @@ -32837,7 +30147,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1549 i32.const 1 call $~lib/builtins/abort @@ -32854,7 +30164,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1550 i32.const 1 call $~lib/builtins/abort @@ -32871,7 +30181,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1551 i32.const 1 call $~lib/builtins/abort @@ -32888,7 +30198,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1552 i32.const 1 call $~lib/builtins/abort @@ -32905,7 +30215,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1553 i32.const 1 call $~lib/builtins/abort @@ -32922,7 +30232,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1554 i32.const 1 call $~lib/builtins/abort @@ -32939,7 +30249,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1555 i32.const 1 call $~lib/builtins/abort @@ -32956,7 +30266,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1556 i32.const 1 call $~lib/builtins/abort @@ -32973,7 +30283,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1557 i32.const 1 call $~lib/builtins/abort @@ -32990,7 +30300,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1558 i32.const 1 call $~lib/builtins/abort @@ -33005,7 +30315,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1561 i32.const 1 call $~lib/builtins/abort @@ -33020,7 +30330,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1562 i32.const 1 call $~lib/builtins/abort @@ -33035,7 +30345,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1563 i32.const 1 call $~lib/builtins/abort @@ -33050,7 +30360,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1564 i32.const 1 call $~lib/builtins/abort @@ -33064,7 +30374,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1565 i32.const 1 call $~lib/builtins/abort @@ -33079,7 +30389,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1566 i32.const 1 call $~lib/builtins/abort @@ -33093,7 +30403,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1567 i32.const 1 call $~lib/builtins/abort @@ -33110,7 +30420,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1568 i32.const 1 call $~lib/builtins/abort @@ -33127,7 +30437,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1569 i32.const 1 call $~lib/builtins/abort @@ -33143,7 +30453,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1570 i32.const 1 call $~lib/builtins/abort @@ -33162,7 +30472,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1571 i32.const 1 call $~lib/builtins/abort @@ -33178,7 +30488,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1572 i32.const 1 call $~lib/builtins/abort @@ -33195,7 +30505,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1573 i32.const 1 call $~lib/builtins/abort @@ -33212,7 +30522,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1574 i32.const 1 call $~lib/builtins/abort @@ -33229,7 +30539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1575 i32.const 1 call $~lib/builtins/abort @@ -33246,7 +30556,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1576 i32.const 1 call $~lib/builtins/abort @@ -33265,7 +30575,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1577 i32.const 1 call $~lib/builtins/abort @@ -33281,7 +30591,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1578 i32.const 1 call $~lib/builtins/abort @@ -33300,7 +30610,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1579 i32.const 1 call $~lib/builtins/abort @@ -33316,7 +30626,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1580 i32.const 1 call $~lib/builtins/abort @@ -33332,7 +30642,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1581 i32.const 1 call $~lib/builtins/abort @@ -33348,7 +30658,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1582 i32.const 1 call $~lib/builtins/abort @@ -33367,7 +30677,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1583 i32.const 1 call $~lib/builtins/abort @@ -33385,7 +30695,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1584 i32.const 1 call $~lib/builtins/abort @@ -33402,7 +30712,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1585 i32.const 1 call $~lib/builtins/abort @@ -33422,7 +30732,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1596 i32.const 1 call $~lib/builtins/abort @@ -33442,7 +30752,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1597 i32.const 1 call $~lib/builtins/abort @@ -33462,7 +30772,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1598 i32.const 1 call $~lib/builtins/abort @@ -33482,7 +30792,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1599 i32.const 1 call $~lib/builtins/abort @@ -33502,7 +30812,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1600 i32.const 1 call $~lib/builtins/abort @@ -33522,7 +30832,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1601 i32.const 1 call $~lib/builtins/abort @@ -33542,7 +30852,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1602 i32.const 1 call $~lib/builtins/abort @@ -33562,7 +30872,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1603 i32.const 1 call $~lib/builtins/abort @@ -33582,7 +30892,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1604 i32.const 1 call $~lib/builtins/abort @@ -33602,7 +30912,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1605 i32.const 1 call $~lib/builtins/abort @@ -33616,7 +30926,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1617 i32.const 1 call $~lib/builtins/abort @@ -33630,7 +30940,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1618 i32.const 1 call $~lib/builtins/abort @@ -33644,7 +30954,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1619 i32.const 1 call $~lib/builtins/abort @@ -33658,7 +30968,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1620 i32.const 1 call $~lib/builtins/abort @@ -33672,7 +30982,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1621 i32.const 1 call $~lib/builtins/abort @@ -33686,7 +30996,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1622 i32.const 1 call $~lib/builtins/abort @@ -33700,7 +31010,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1623 i32.const 1 call $~lib/builtins/abort @@ -33714,7 +31024,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1624 i32.const 1 call $~lib/builtins/abort @@ -33728,7 +31038,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1625 i32.const 1 call $~lib/builtins/abort @@ -33742,7 +31052,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1626 i32.const 1 call $~lib/builtins/abort @@ -33756,7 +31066,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1629 i32.const 1 call $~lib/builtins/abort @@ -33770,7 +31080,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1630 i32.const 1 call $~lib/builtins/abort @@ -33786,7 +31096,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1631 i32.const 1 call $~lib/builtins/abort @@ -33800,7 +31110,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1632 i32.const 1 call $~lib/builtins/abort @@ -33814,7 +31124,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1633 i32.const 1 call $~lib/builtins/abort @@ -33828,7 +31138,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1634 i32.const 1 call $~lib/builtins/abort @@ -33842,7 +31152,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1635 i32.const 1 call $~lib/builtins/abort @@ -33856,7 +31166,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1636 i32.const 1 call $~lib/builtins/abort @@ -33870,7 +31180,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1637 i32.const 1 call $~lib/builtins/abort @@ -33884,7 +31194,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1638 i32.const 1 call $~lib/builtins/abort @@ -33898,7 +31208,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1639 i32.const 1 call $~lib/builtins/abort @@ -33912,7 +31222,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1640 i32.const 1 call $~lib/builtins/abort @@ -33926,7 +31236,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1641 i32.const 1 call $~lib/builtins/abort @@ -33940,7 +31250,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1642 i32.const 1 call $~lib/builtins/abort @@ -33954,7 +31264,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1643 i32.const 1 call $~lib/builtins/abort @@ -33968,7 +31278,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1652 i32.const 1 call $~lib/builtins/abort @@ -33982,7 +31292,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1653 i32.const 1 call $~lib/builtins/abort @@ -33996,7 +31306,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1654 i32.const 1 call $~lib/builtins/abort @@ -34010,7 +31320,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1655 i32.const 1 call $~lib/builtins/abort @@ -34024,7 +31334,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1656 i32.const 1 call $~lib/builtins/abort @@ -34038,7 +31348,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1657 i32.const 1 call $~lib/builtins/abort @@ -34052,7 +31362,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1658 i32.const 1 call $~lib/builtins/abort @@ -34066,7 +31376,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1659 i32.const 1 call $~lib/builtins/abort @@ -34080,7 +31390,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1660 i32.const 1 call $~lib/builtins/abort @@ -34094,7 +31404,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1661 i32.const 1 call $~lib/builtins/abort @@ -34108,7 +31418,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1664 i32.const 1 call $~lib/builtins/abort @@ -34122,7 +31432,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1665 i32.const 1 call $~lib/builtins/abort @@ -34138,7 +31448,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1666 i32.const 1 call $~lib/builtins/abort @@ -34152,7 +31462,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1667 i32.const 1 call $~lib/builtins/abort @@ -34166,7 +31476,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1668 i32.const 1 call $~lib/builtins/abort @@ -34180,7 +31490,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1669 i32.const 1 call $~lib/builtins/abort @@ -34194,7 +31504,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1670 i32.const 1 call $~lib/builtins/abort @@ -34208,7 +31518,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1671 i32.const 1 call $~lib/builtins/abort @@ -34222,7 +31532,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1672 i32.const 1 call $~lib/builtins/abort @@ -34236,7 +31546,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1673 i32.const 1 call $~lib/builtins/abort @@ -34250,7 +31560,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1674 i32.const 1 call $~lib/builtins/abort @@ -34264,7 +31574,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1675 i32.const 1 call $~lib/builtins/abort @@ -34278,7 +31588,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1676 i32.const 1 call $~lib/builtins/abort @@ -34292,7 +31602,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1677 i32.const 1 call $~lib/builtins/abort @@ -34306,7 +31616,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1678 i32.const 1 call $~lib/builtins/abort @@ -34321,7 +31631,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1692 i32.const 1 call $~lib/builtins/abort @@ -34336,7 +31646,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1693 i32.const 1 call $~lib/builtins/abort @@ -34351,7 +31661,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1694 i32.const 1 call $~lib/builtins/abort @@ -34366,7 +31676,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1695 i32.const 1 call $~lib/builtins/abort @@ -34381,7 +31691,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1696 i32.const 1 call $~lib/builtins/abort @@ -34396,7 +31706,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1697 i32.const 1 call $~lib/builtins/abort @@ -34411,7 +31721,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1698 i32.const 1 call $~lib/builtins/abort @@ -34426,7 +31736,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1699 i32.const 1 call $~lib/builtins/abort @@ -34441,7 +31751,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1700 i32.const 1 call $~lib/builtins/abort @@ -34456,7 +31766,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1701 i32.const 1 call $~lib/builtins/abort @@ -34471,7 +31781,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1704 i32.const 1 call $~lib/builtins/abort @@ -34486,7 +31796,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1705 i32.const 1 call $~lib/builtins/abort @@ -34501,7 +31811,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1706 i32.const 1 call $~lib/builtins/abort @@ -34516,7 +31826,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1707 i32.const 1 call $~lib/builtins/abort @@ -34531,7 +31841,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1708 i32.const 1 call $~lib/builtins/abort @@ -34546,7 +31856,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1709 i32.const 1 call $~lib/builtins/abort @@ -34561,7 +31871,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1710 i32.const 1 call $~lib/builtins/abort @@ -34576,7 +31886,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1711 i32.const 1 call $~lib/builtins/abort @@ -34591,7 +31901,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1712 i32.const 1 call $~lib/builtins/abort @@ -34606,7 +31916,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1713 i32.const 1 call $~lib/builtins/abort @@ -34621,7 +31931,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1714 i32.const 1 call $~lib/builtins/abort @@ -34636,7 +31946,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1715 i32.const 1 call $~lib/builtins/abort @@ -34651,7 +31961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1716 i32.const 1 call $~lib/builtins/abort @@ -34667,7 +31977,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1717 i32.const 1 call $~lib/builtins/abort @@ -34683,7 +31993,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1718 i32.const 1 call $~lib/builtins/abort @@ -34699,7 +32009,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1719 i32.const 1 call $~lib/builtins/abort @@ -34715,7 +32025,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1720 i32.const 1 call $~lib/builtins/abort @@ -34730,7 +32040,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1721 i32.const 1 call $~lib/builtins/abort @@ -34745,7 +32055,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1722 i32.const 1 call $~lib/builtins/abort @@ -34760,7 +32070,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1723 i32.const 1 call $~lib/builtins/abort @@ -34775,7 +32085,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1724 i32.const 1 call $~lib/builtins/abort @@ -34790,7 +32100,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1733 i32.const 1 call $~lib/builtins/abort @@ -34805,7 +32115,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1734 i32.const 1 call $~lib/builtins/abort @@ -34820,7 +32130,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1735 i32.const 1 call $~lib/builtins/abort @@ -34835,7 +32145,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1736 i32.const 1 call $~lib/builtins/abort @@ -34850,7 +32160,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1737 i32.const 1 call $~lib/builtins/abort @@ -34865,7 +32175,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1738 i32.const 1 call $~lib/builtins/abort @@ -34880,7 +32190,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1739 i32.const 1 call $~lib/builtins/abort @@ -34895,7 +32205,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1740 i32.const 1 call $~lib/builtins/abort @@ -34910,7 +32220,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1741 i32.const 1 call $~lib/builtins/abort @@ -34925,7 +32235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1742 i32.const 1 call $~lib/builtins/abort @@ -34940,7 +32250,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1745 i32.const 1 call $~lib/builtins/abort @@ -34955,7 +32265,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1746 i32.const 1 call $~lib/builtins/abort @@ -34970,7 +32280,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1747 i32.const 1 call $~lib/builtins/abort @@ -34985,7 +32295,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1748 i32.const 1 call $~lib/builtins/abort @@ -35000,7 +32310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1749 i32.const 1 call $~lib/builtins/abort @@ -35015,7 +32325,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1750 i32.const 1 call $~lib/builtins/abort @@ -35030,7 +32340,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1751 i32.const 1 call $~lib/builtins/abort @@ -35045,7 +32355,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1752 i32.const 1 call $~lib/builtins/abort @@ -35060,7 +32370,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1753 i32.const 1 call $~lib/builtins/abort @@ -35075,7 +32385,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1754 i32.const 1 call $~lib/builtins/abort @@ -35090,7 +32400,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1755 i32.const 1 call $~lib/builtins/abort @@ -35105,7 +32415,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1756 i32.const 1 call $~lib/builtins/abort @@ -35120,7 +32430,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1757 i32.const 1 call $~lib/builtins/abort @@ -35136,7 +32446,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1758 i32.const 1 call $~lib/builtins/abort @@ -35152,7 +32462,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1759 i32.const 1 call $~lib/builtins/abort @@ -35168,7 +32478,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1760 i32.const 1 call $~lib/builtins/abort @@ -35184,7 +32494,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1761 i32.const 1 call $~lib/builtins/abort @@ -35199,7 +32509,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1762 i32.const 1 call $~lib/builtins/abort @@ -35214,7 +32524,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1763 i32.const 1 call $~lib/builtins/abort @@ -35228,7 +32538,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1775 i32.const 1 call $~lib/builtins/abort @@ -35242,7 +32552,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1776 i32.const 1 call $~lib/builtins/abort @@ -35256,7 +32566,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1777 i32.const 1 call $~lib/builtins/abort @@ -35270,7 +32580,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1778 i32.const 1 call $~lib/builtins/abort @@ -35284,7 +32594,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1779 i32.const 1 call $~lib/builtins/abort @@ -35298,7 +32608,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1780 i32.const 1 call $~lib/builtins/abort @@ -35312,7 +32622,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1781 i32.const 1 call $~lib/builtins/abort @@ -35326,7 +32636,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1782 i32.const 1 call $~lib/builtins/abort @@ -35340,7 +32650,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1783 i32.const 1 call $~lib/builtins/abort @@ -35354,7 +32664,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1784 i32.const 1 call $~lib/builtins/abort @@ -35369,7 +32679,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1787 i32.const 1 call $~lib/builtins/abort @@ -35384,7 +32694,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1788 i32.const 1 call $~lib/builtins/abort @@ -35398,7 +32708,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1789 i32.const 1 call $~lib/builtins/abort @@ -35412,7 +32722,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1790 i32.const 1 call $~lib/builtins/abort @@ -35426,7 +32736,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1791 i32.const 1 call $~lib/builtins/abort @@ -35440,7 +32750,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1792 i32.const 1 call $~lib/builtins/abort @@ -35455,7 +32765,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1793 i32.const 1 call $~lib/builtins/abort @@ -35469,7 +32779,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1794 i32.const 1 call $~lib/builtins/abort @@ -35484,7 +32794,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1803 i32.const 1 call $~lib/builtins/abort @@ -35499,7 +32809,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1804 i32.const 1 call $~lib/builtins/abort @@ -35513,7 +32823,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1805 i32.const 1 call $~lib/builtins/abort @@ -35527,7 +32837,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1806 i32.const 1 call $~lib/builtins/abort @@ -35541,7 +32851,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1807 i32.const 1 call $~lib/builtins/abort @@ -35555,7 +32865,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1808 i32.const 1 call $~lib/builtins/abort @@ -35570,7 +32880,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1809 i32.const 1 call $~lib/builtins/abort @@ -35584,7 +32894,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1810 i32.const 1 call $~lib/builtins/abort @@ -35599,7 +32909,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1813 i32.const 1 call $~lib/builtins/abort @@ -35614,7 +32924,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1814 i32.const 1 call $~lib/builtins/abort @@ -35628,7 +32938,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1815 i32.const 1 call $~lib/builtins/abort @@ -35642,7 +32952,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1816 i32.const 1 call $~lib/builtins/abort @@ -35656,7 +32966,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1817 i32.const 1 call $~lib/builtins/abort @@ -35670,7 +32980,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1818 i32.const 1 call $~lib/builtins/abort @@ -35685,7 +32995,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1819 i32.const 1 call $~lib/builtins/abort @@ -35699,7 +33009,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1820 i32.const 1 call $~lib/builtins/abort @@ -35713,7 +33023,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1832 i32.const 1 call $~lib/builtins/abort @@ -35727,7 +33037,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1833 i32.const 1 call $~lib/builtins/abort @@ -35741,7 +33051,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1834 i32.const 1 call $~lib/builtins/abort @@ -35755,7 +33065,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1835 i32.const 1 call $~lib/builtins/abort @@ -35769,7 +33079,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1836 i32.const 1 call $~lib/builtins/abort @@ -35783,7 +33093,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1837 i32.const 1 call $~lib/builtins/abort @@ -35797,7 +33107,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1838 i32.const 1 call $~lib/builtins/abort @@ -35811,7 +33121,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1839 i32.const 1 call $~lib/builtins/abort @@ -35825,7 +33135,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1840 i32.const 1 call $~lib/builtins/abort @@ -35839,7 +33149,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1841 i32.const 1 call $~lib/builtins/abort @@ -35854,7 +33164,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1844 i32.const 1 call $~lib/builtins/abort @@ -35869,7 +33179,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1845 i32.const 1 call $~lib/builtins/abort @@ -35883,7 +33193,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1846 i32.const 1 call $~lib/builtins/abort @@ -35897,7 +33207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1847 i32.const 1 call $~lib/builtins/abort @@ -35911,7 +33221,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1848 i32.const 1 call $~lib/builtins/abort @@ -35925,7 +33235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1849 i32.const 1 call $~lib/builtins/abort @@ -35940,7 +33250,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1850 i32.const 1 call $~lib/builtins/abort @@ -35954,7 +33264,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1851 i32.const 1 call $~lib/builtins/abort @@ -35968,7 +33278,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1860 i32.const 1 call $~lib/builtins/abort @@ -35982,7 +33292,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1861 i32.const 1 call $~lib/builtins/abort @@ -35996,7 +33306,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1862 i32.const 1 call $~lib/builtins/abort @@ -36010,7 +33320,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1863 i32.const 1 call $~lib/builtins/abort @@ -36024,7 +33334,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1864 i32.const 1 call $~lib/builtins/abort @@ -36038,7 +33348,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1865 i32.const 1 call $~lib/builtins/abort @@ -36052,7 +33362,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1866 i32.const 1 call $~lib/builtins/abort @@ -36066,7 +33376,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1867 i32.const 1 call $~lib/builtins/abort @@ -36080,7 +33390,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1868 i32.const 1 call $~lib/builtins/abort @@ -36094,7 +33404,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1869 i32.const 1 call $~lib/builtins/abort @@ -36109,7 +33419,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1872 i32.const 1 call $~lib/builtins/abort @@ -36124,7 +33434,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1873 i32.const 1 call $~lib/builtins/abort @@ -36138,7 +33448,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1874 i32.const 1 call $~lib/builtins/abort @@ -36152,7 +33462,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1875 i32.const 1 call $~lib/builtins/abort @@ -36166,7 +33476,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1876 i32.const 1 call $~lib/builtins/abort @@ -36180,7 +33490,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1877 i32.const 1 call $~lib/builtins/abort @@ -36195,7 +33505,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1878 i32.const 1 call $~lib/builtins/abort @@ -36209,7 +33519,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1879 i32.const 1 call $~lib/builtins/abort @@ -36223,7 +33533,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1891 i32.const 1 call $~lib/builtins/abort @@ -36237,7 +33547,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1892 i32.const 1 call $~lib/builtins/abort @@ -36251,7 +33561,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1893 i32.const 1 call $~lib/builtins/abort @@ -36265,7 +33575,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1894 i32.const 1 call $~lib/builtins/abort @@ -36279,7 +33589,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1895 i32.const 1 call $~lib/builtins/abort @@ -36293,7 +33603,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1896 i32.const 1 call $~lib/builtins/abort @@ -36307,7 +33617,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1897 i32.const 1 call $~lib/builtins/abort @@ -36321,7 +33631,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1898 i32.const 1 call $~lib/builtins/abort @@ -36335,7 +33645,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1899 i32.const 1 call $~lib/builtins/abort @@ -36349,7 +33659,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1900 i32.const 1 call $~lib/builtins/abort @@ -36363,7 +33673,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1903 i32.const 1 call $~lib/builtins/abort @@ -36377,7 +33687,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1904 i32.const 1 call $~lib/builtins/abort @@ -36391,7 +33701,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1905 i32.const 1 call $~lib/builtins/abort @@ -36405,7 +33715,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1906 i32.const 1 call $~lib/builtins/abort @@ -36420,7 +33730,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1907 i32.const 1 call $~lib/builtins/abort @@ -36434,7 +33744,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1908 i32.const 1 call $~lib/builtins/abort @@ -36449,7 +33759,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1909 i32.const 1 call $~lib/builtins/abort @@ -36463,7 +33773,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1910 i32.const 1 call $~lib/builtins/abort @@ -36477,7 +33787,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1919 i32.const 1 call $~lib/builtins/abort @@ -36491,7 +33801,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1920 i32.const 1 call $~lib/builtins/abort @@ -36505,7 +33815,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1921 i32.const 1 call $~lib/builtins/abort @@ -36519,7 +33829,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1922 i32.const 1 call $~lib/builtins/abort @@ -36533,7 +33843,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1923 i32.const 1 call $~lib/builtins/abort @@ -36547,7 +33857,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1924 i32.const 1 call $~lib/builtins/abort @@ -36561,7 +33871,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1925 i32.const 1 call $~lib/builtins/abort @@ -36575,7 +33885,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1926 i32.const 1 call $~lib/builtins/abort @@ -36589,7 +33899,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1927 i32.const 1 call $~lib/builtins/abort @@ -36603,7 +33913,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1928 i32.const 1 call $~lib/builtins/abort @@ -36617,7 +33927,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1931 i32.const 1 call $~lib/builtins/abort @@ -36631,7 +33941,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1932 i32.const 1 call $~lib/builtins/abort @@ -36645,7 +33955,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1933 i32.const 1 call $~lib/builtins/abort @@ -36659,7 +33969,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1934 i32.const 1 call $~lib/builtins/abort @@ -36674,7 +33984,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1935 i32.const 1 call $~lib/builtins/abort @@ -36688,7 +33998,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1936 i32.const 1 call $~lib/builtins/abort @@ -36703,7 +34013,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1937 i32.const 1 call $~lib/builtins/abort @@ -36717,7 +34027,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1938 i32.const 1 call $~lib/builtins/abort @@ -36733,7 +34043,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1939 i32.const 1 call $~lib/builtins/abort @@ -36747,7 +34057,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1951 i32.const 1 call $~lib/builtins/abort @@ -36761,7 +34071,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1952 i32.const 1 call $~lib/builtins/abort @@ -36775,7 +34085,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1953 i32.const 1 call $~lib/builtins/abort @@ -36789,7 +34099,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1954 i32.const 1 call $~lib/builtins/abort @@ -36803,7 +34113,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1955 i32.const 1 call $~lib/builtins/abort @@ -36817,7 +34127,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1956 i32.const 1 call $~lib/builtins/abort @@ -36831,7 +34141,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1957 i32.const 1 call $~lib/builtins/abort @@ -36845,7 +34155,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1958 i32.const 1 call $~lib/builtins/abort @@ -36859,7 +34169,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1959 i32.const 1 call $~lib/builtins/abort @@ -36873,7 +34183,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1960 i32.const 1 call $~lib/builtins/abort @@ -36888,7 +34198,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1963 i32.const 1 call $~lib/builtins/abort @@ -36903,7 +34213,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1964 i32.const 1 call $~lib/builtins/abort @@ -36917,7 +34227,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1965 i32.const 1 call $~lib/builtins/abort @@ -36931,7 +34241,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1966 i32.const 1 call $~lib/builtins/abort @@ -36945,7 +34255,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1967 i32.const 1 call $~lib/builtins/abort @@ -36959,7 +34269,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1968 i32.const 1 call $~lib/builtins/abort @@ -36974,7 +34284,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1969 i32.const 1 call $~lib/builtins/abort @@ -36988,7 +34298,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1970 i32.const 1 call $~lib/builtins/abort @@ -37002,7 +34312,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1979 i32.const 1 call $~lib/builtins/abort @@ -37016,7 +34326,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1980 i32.const 1 call $~lib/builtins/abort @@ -37030,7 +34340,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1981 i32.const 1 call $~lib/builtins/abort @@ -37044,7 +34354,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1982 i32.const 1 call $~lib/builtins/abort @@ -37058,7 +34368,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1983 i32.const 1 call $~lib/builtins/abort @@ -37072,7 +34382,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1984 i32.const 1 call $~lib/builtins/abort @@ -37086,7 +34396,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1985 i32.const 1 call $~lib/builtins/abort @@ -37100,7 +34410,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1986 i32.const 1 call $~lib/builtins/abort @@ -37114,7 +34424,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1987 i32.const 1 call $~lib/builtins/abort @@ -37128,7 +34438,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1988 i32.const 1 call $~lib/builtins/abort @@ -37143,7 +34453,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1991 i32.const 1 call $~lib/builtins/abort @@ -37158,7 +34468,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1992 i32.const 1 call $~lib/builtins/abort @@ -37172,7 +34482,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1993 i32.const 1 call $~lib/builtins/abort @@ -37186,7 +34496,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1994 i32.const 1 call $~lib/builtins/abort @@ -37200,7 +34510,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1995 i32.const 1 call $~lib/builtins/abort @@ -37214,7 +34524,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1996 i32.const 1 call $~lib/builtins/abort @@ -37229,7 +34539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1997 i32.const 1 call $~lib/builtins/abort @@ -37243,7 +34553,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 1998 i32.const 1 call $~lib/builtins/abort @@ -37258,7 +34568,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2010 i32.const 1 call $~lib/builtins/abort @@ -37273,7 +34583,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2011 i32.const 1 call $~lib/builtins/abort @@ -37288,7 +34598,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2012 i32.const 1 call $~lib/builtins/abort @@ -37303,7 +34613,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2013 i32.const 1 call $~lib/builtins/abort @@ -37318,7 +34628,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2014 i32.const 1 call $~lib/builtins/abort @@ -37333,7 +34643,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2015 i32.const 1 call $~lib/builtins/abort @@ -37348,7 +34658,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2016 i32.const 1 call $~lib/builtins/abort @@ -37363,7 +34673,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2017 i32.const 1 call $~lib/builtins/abort @@ -37378,7 +34688,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2018 i32.const 1 call $~lib/builtins/abort @@ -37393,7 +34703,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2019 i32.const 1 call $~lib/builtins/abort @@ -37408,7 +34718,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2022 i32.const 1 call $~lib/builtins/abort @@ -37423,7 +34733,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2023 i32.const 1 call $~lib/builtins/abort @@ -37438,7 +34748,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2024 i32.const 1 call $~lib/builtins/abort @@ -37453,7 +34763,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2025 i32.const 1 call $~lib/builtins/abort @@ -37468,7 +34778,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2026 i32.const 1 call $~lib/builtins/abort @@ -37483,7 +34793,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2027 i32.const 1 call $~lib/builtins/abort @@ -37498,7 +34808,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2028 i32.const 1 call $~lib/builtins/abort @@ -37514,7 +34824,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2029 i32.const 1 call $~lib/builtins/abort @@ -37529,7 +34839,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2030 i32.const 1 call $~lib/builtins/abort @@ -37544,7 +34854,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2031 i32.const 1 call $~lib/builtins/abort @@ -37559,7 +34869,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2032 i32.const 1 call $~lib/builtins/abort @@ -37574,7 +34884,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2033 i32.const 1 call $~lib/builtins/abort @@ -37589,7 +34899,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2034 i32.const 1 call $~lib/builtins/abort @@ -37604,7 +34914,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2035 i32.const 1 call $~lib/builtins/abort @@ -37619,7 +34929,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2036 i32.const 1 call $~lib/builtins/abort @@ -37634,7 +34944,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2037 i32.const 1 call $~lib/builtins/abort @@ -37650,7 +34960,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2038 i32.const 1 call $~lib/builtins/abort @@ -37665,7 +34975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2039 i32.const 1 call $~lib/builtins/abort @@ -37680,7 +34990,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2040 i32.const 1 call $~lib/builtins/abort @@ -37695,7 +35005,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2041 i32.const 1 call $~lib/builtins/abort @@ -37710,7 +35020,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2042 i32.const 1 call $~lib/builtins/abort @@ -37726,7 +35036,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2043 i32.const 1 call $~lib/builtins/abort @@ -37741,7 +35051,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2044 i32.const 1 call $~lib/builtins/abort @@ -37756,7 +35066,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2045 i32.const 1 call $~lib/builtins/abort @@ -37771,7 +35081,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2046 i32.const 1 call $~lib/builtins/abort @@ -37786,7 +35096,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2047 i32.const 1 call $~lib/builtins/abort @@ -37802,7 +35112,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2048 i32.const 1 call $~lib/builtins/abort @@ -37817,7 +35127,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2049 i32.const 1 call $~lib/builtins/abort @@ -37832,7 +35142,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2050 i32.const 1 call $~lib/builtins/abort @@ -37847,7 +35157,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2051 i32.const 1 call $~lib/builtins/abort @@ -37862,7 +35172,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2052 i32.const 1 call $~lib/builtins/abort @@ -37878,7 +35188,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2053 i32.const 1 call $~lib/builtins/abort @@ -37893,7 +35203,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2054 i32.const 1 call $~lib/builtins/abort @@ -37908,7 +35218,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2055 i32.const 1 call $~lib/builtins/abort @@ -37923,7 +35233,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2056 i32.const 1 call $~lib/builtins/abort @@ -37939,7 +35249,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2057 i32.const 1 call $~lib/builtins/abort @@ -37954,7 +35264,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2058 i32.const 1 call $~lib/builtins/abort @@ -37969,7 +35279,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2059 i32.const 1 call $~lib/builtins/abort @@ -37984,7 +35294,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2060 i32.const 1 call $~lib/builtins/abort @@ -37999,7 +35309,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2061 i32.const 1 call $~lib/builtins/abort @@ -38015,7 +35325,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2062 i32.const 1 call $~lib/builtins/abort @@ -38031,7 +35341,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2063 i32.const 1 call $~lib/builtins/abort @@ -38047,7 +35357,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2064 i32.const 1 call $~lib/builtins/abort @@ -38062,7 +35372,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2065 i32.const 1 call $~lib/builtins/abort @@ -38077,7 +35387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2066 i32.const 1 call $~lib/builtins/abort @@ -38092,7 +35402,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2067 i32.const 1 call $~lib/builtins/abort @@ -38107,7 +35417,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2068 i32.const 1 call $~lib/builtins/abort @@ -38122,7 +35432,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2069 i32.const 1 call $~lib/builtins/abort @@ -38137,7 +35447,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2070 i32.const 1 call $~lib/builtins/abort @@ -38153,7 +35463,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2071 i32.const 1 call $~lib/builtins/abort @@ -38169,7 +35479,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2072 i32.const 1 call $~lib/builtins/abort @@ -38185,7 +35495,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2073 i32.const 1 call $~lib/builtins/abort @@ -38201,7 +35511,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2074 i32.const 1 call $~lib/builtins/abort @@ -38219,7 +35529,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2075 i32.const 1 call $~lib/builtins/abort @@ -38234,7 +35544,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2076 i32.const 1 call $~lib/builtins/abort @@ -38249,7 +35559,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2077 i32.const 1 call $~lib/builtins/abort @@ -38264,7 +35574,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2078 i32.const 1 call $~lib/builtins/abort @@ -38279,7 +35589,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2079 i32.const 1 call $~lib/builtins/abort @@ -38294,7 +35604,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2088 i32.const 1 call $~lib/builtins/abort @@ -38309,7 +35619,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2089 i32.const 1 call $~lib/builtins/abort @@ -38324,7 +35634,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2090 i32.const 1 call $~lib/builtins/abort @@ -38339,7 +35649,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2091 i32.const 1 call $~lib/builtins/abort @@ -38354,7 +35664,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2092 i32.const 1 call $~lib/builtins/abort @@ -38369,7 +35679,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2093 i32.const 1 call $~lib/builtins/abort @@ -38384,7 +35694,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2094 i32.const 1 call $~lib/builtins/abort @@ -38399,7 +35709,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2095 i32.const 1 call $~lib/builtins/abort @@ -38414,7 +35724,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2096 i32.const 1 call $~lib/builtins/abort @@ -38429,7 +35739,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2097 i32.const 1 call $~lib/builtins/abort @@ -38444,7 +35754,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2100 i32.const 1 call $~lib/builtins/abort @@ -38459,7 +35769,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2101 i32.const 1 call $~lib/builtins/abort @@ -38474,7 +35784,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2102 i32.const 1 call $~lib/builtins/abort @@ -38489,7 +35799,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2103 i32.const 1 call $~lib/builtins/abort @@ -38504,7 +35814,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2104 i32.const 1 call $~lib/builtins/abort @@ -38519,7 +35829,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2105 i32.const 1 call $~lib/builtins/abort @@ -38534,7 +35844,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2106 i32.const 1 call $~lib/builtins/abort @@ -38550,7 +35860,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2107 i32.const 1 call $~lib/builtins/abort @@ -38565,7 +35875,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2108 i32.const 1 call $~lib/builtins/abort @@ -38580,7 +35890,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2109 i32.const 1 call $~lib/builtins/abort @@ -38595,7 +35905,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2110 i32.const 1 call $~lib/builtins/abort @@ -38610,7 +35920,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2111 i32.const 1 call $~lib/builtins/abort @@ -38625,7 +35935,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2112 i32.const 1 call $~lib/builtins/abort @@ -38640,7 +35950,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2113 i32.const 1 call $~lib/builtins/abort @@ -38655,7 +35965,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2114 i32.const 1 call $~lib/builtins/abort @@ -38670,7 +35980,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2115 i32.const 1 call $~lib/builtins/abort @@ -38686,7 +35996,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2116 i32.const 1 call $~lib/builtins/abort @@ -38701,7 +36011,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2117 i32.const 1 call $~lib/builtins/abort @@ -38716,7 +36026,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2118 i32.const 1 call $~lib/builtins/abort @@ -38731,7 +36041,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2119 i32.const 1 call $~lib/builtins/abort @@ -38746,7 +36056,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2120 i32.const 1 call $~lib/builtins/abort @@ -38762,7 +36072,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2121 i32.const 1 call $~lib/builtins/abort @@ -38777,7 +36087,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2122 i32.const 1 call $~lib/builtins/abort @@ -38792,7 +36102,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2123 i32.const 1 call $~lib/builtins/abort @@ -38807,7 +36117,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2124 i32.const 1 call $~lib/builtins/abort @@ -38822,7 +36132,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2125 i32.const 1 call $~lib/builtins/abort @@ -38838,7 +36148,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2126 i32.const 1 call $~lib/builtins/abort @@ -38853,7 +36163,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2127 i32.const 1 call $~lib/builtins/abort @@ -38868,7 +36178,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2128 i32.const 1 call $~lib/builtins/abort @@ -38883,7 +36193,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2129 i32.const 1 call $~lib/builtins/abort @@ -38898,7 +36208,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2130 i32.const 1 call $~lib/builtins/abort @@ -38914,7 +36224,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2131 i32.const 1 call $~lib/builtins/abort @@ -38929,7 +36239,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2132 i32.const 1 call $~lib/builtins/abort @@ -38944,7 +36254,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2133 i32.const 1 call $~lib/builtins/abort @@ -38959,7 +36269,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2134 i32.const 1 call $~lib/builtins/abort @@ -38975,7 +36285,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2135 i32.const 1 call $~lib/builtins/abort @@ -38990,7 +36300,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2136 i32.const 1 call $~lib/builtins/abort @@ -39005,7 +36315,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2137 i32.const 1 call $~lib/builtins/abort @@ -39020,7 +36330,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2138 i32.const 1 call $~lib/builtins/abort @@ -39035,7 +36345,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2139 i32.const 1 call $~lib/builtins/abort @@ -39051,7 +36361,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2140 i32.const 1 call $~lib/builtins/abort @@ -39067,7 +36377,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2141 i32.const 1 call $~lib/builtins/abort @@ -39083,7 +36393,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2142 i32.const 1 call $~lib/builtins/abort @@ -39098,7 +36408,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2143 i32.const 1 call $~lib/builtins/abort @@ -39113,7 +36423,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2144 i32.const 1 call $~lib/builtins/abort @@ -39128,7 +36438,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2145 i32.const 1 call $~lib/builtins/abort @@ -39143,7 +36453,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2146 i32.const 1 call $~lib/builtins/abort @@ -39158,7 +36468,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2147 i32.const 1 call $~lib/builtins/abort @@ -39173,7 +36483,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2148 i32.const 1 call $~lib/builtins/abort @@ -39189,7 +36499,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2149 i32.const 1 call $~lib/builtins/abort @@ -39205,7 +36515,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2150 i32.const 1 call $~lib/builtins/abort @@ -39221,7 +36531,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2151 i32.const 1 call $~lib/builtins/abort @@ -39237,7 +36547,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2152 i32.const 1 call $~lib/builtins/abort @@ -39255,7 +36565,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2153 i32.const 1 call $~lib/builtins/abort @@ -39270,7 +36580,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2154 i32.const 1 call $~lib/builtins/abort @@ -39285,7 +36595,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2155 i32.const 1 call $~lib/builtins/abort @@ -39300,7 +36610,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2156 i32.const 1 call $~lib/builtins/abort @@ -39315,7 +36625,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2157 i32.const 1 call $~lib/builtins/abort @@ -39330,7 +36640,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2169 i32.const 1 call $~lib/builtins/abort @@ -39345,7 +36655,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2170 i32.const 1 call $~lib/builtins/abort @@ -39360,7 +36670,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2171 i32.const 1 call $~lib/builtins/abort @@ -39375,7 +36685,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2172 i32.const 1 call $~lib/builtins/abort @@ -39390,7 +36700,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2173 i32.const 1 call $~lib/builtins/abort @@ -39405,7 +36715,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2174 i32.const 1 call $~lib/builtins/abort @@ -39420,7 +36730,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2175 i32.const 1 call $~lib/builtins/abort @@ -39435,7 +36745,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2176 i32.const 1 call $~lib/builtins/abort @@ -39450,7 +36760,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2177 i32.const 1 call $~lib/builtins/abort @@ -39465,7 +36775,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2178 i32.const 1 call $~lib/builtins/abort @@ -39480,7 +36790,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2181 i32.const 1 call $~lib/builtins/abort @@ -39495,7 +36805,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2182 i32.const 1 call $~lib/builtins/abort @@ -39510,7 +36820,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2183 i32.const 1 call $~lib/builtins/abort @@ -39525,7 +36835,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2184 i32.const 1 call $~lib/builtins/abort @@ -39540,7 +36850,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2185 i32.const 1 call $~lib/builtins/abort @@ -39555,7 +36865,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2186 i32.const 1 call $~lib/builtins/abort @@ -39570,7 +36880,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2187 i32.const 1 call $~lib/builtins/abort @@ -39587,7 +36897,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2188 i32.const 1 call $~lib/builtins/abort @@ -39602,7 +36912,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2189 i32.const 1 call $~lib/builtins/abort @@ -39617,7 +36927,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2190 i32.const 1 call $~lib/builtins/abort @@ -39632,7 +36942,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2191 i32.const 1 call $~lib/builtins/abort @@ -39647,7 +36957,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2192 i32.const 1 call $~lib/builtins/abort @@ -39662,7 +36972,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2193 i32.const 1 call $~lib/builtins/abort @@ -39677,7 +36987,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2194 i32.const 1 call $~lib/builtins/abort @@ -39692,7 +37002,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2195 i32.const 1 call $~lib/builtins/abort @@ -39707,7 +37017,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2196 i32.const 1 call $~lib/builtins/abort @@ -39724,7 +37034,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2197 i32.const 1 call $~lib/builtins/abort @@ -39739,7 +37049,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2198 i32.const 1 call $~lib/builtins/abort @@ -39754,7 +37064,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2199 i32.const 1 call $~lib/builtins/abort @@ -39769,7 +37079,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2200 i32.const 1 call $~lib/builtins/abort @@ -39784,7 +37094,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2201 i32.const 1 call $~lib/builtins/abort @@ -39801,7 +37111,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2202 i32.const 1 call $~lib/builtins/abort @@ -39816,7 +37126,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2203 i32.const 1 call $~lib/builtins/abort @@ -39831,7 +37141,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2204 i32.const 1 call $~lib/builtins/abort @@ -39846,7 +37156,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2205 i32.const 1 call $~lib/builtins/abort @@ -39861,7 +37171,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2206 i32.const 1 call $~lib/builtins/abort @@ -39878,7 +37188,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2207 i32.const 1 call $~lib/builtins/abort @@ -39893,7 +37203,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2208 i32.const 1 call $~lib/builtins/abort @@ -39908,7 +37218,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2209 i32.const 1 call $~lib/builtins/abort @@ -39923,7 +37233,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2210 i32.const 1 call $~lib/builtins/abort @@ -39938,7 +37248,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2211 i32.const 1 call $~lib/builtins/abort @@ -39955,7 +37265,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2212 i32.const 1 call $~lib/builtins/abort @@ -39970,7 +37280,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2213 i32.const 1 call $~lib/builtins/abort @@ -39985,7 +37295,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2214 i32.const 1 call $~lib/builtins/abort @@ -40000,7 +37310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2215 i32.const 1 call $~lib/builtins/abort @@ -40017,7 +37327,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2216 i32.const 1 call $~lib/builtins/abort @@ -40032,7 +37342,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2217 i32.const 1 call $~lib/builtins/abort @@ -40047,7 +37357,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2218 i32.const 1 call $~lib/builtins/abort @@ -40062,7 +37372,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2219 i32.const 1 call $~lib/builtins/abort @@ -40077,7 +37387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2220 i32.const 1 call $~lib/builtins/abort @@ -40094,7 +37404,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2221 i32.const 1 call $~lib/builtins/abort @@ -40111,7 +37421,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2222 i32.const 1 call $~lib/builtins/abort @@ -40127,7 +37437,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2223 i32.const 1 call $~lib/builtins/abort @@ -40142,7 +37452,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2224 i32.const 1 call $~lib/builtins/abort @@ -40157,7 +37467,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2225 i32.const 1 call $~lib/builtins/abort @@ -40172,7 +37482,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2226 i32.const 1 call $~lib/builtins/abort @@ -40187,7 +37497,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2227 i32.const 1 call $~lib/builtins/abort @@ -40202,7 +37512,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2228 i32.const 1 call $~lib/builtins/abort @@ -40217,7 +37527,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2229 i32.const 1 call $~lib/builtins/abort @@ -40234,7 +37544,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2230 i32.const 1 call $~lib/builtins/abort @@ -40251,7 +37561,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2231 i32.const 1 call $~lib/builtins/abort @@ -40268,7 +37578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2232 i32.const 1 call $~lib/builtins/abort @@ -40285,7 +37595,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2233 i32.const 1 call $~lib/builtins/abort @@ -40303,7 +37613,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2234 i32.const 1 call $~lib/builtins/abort @@ -40318,7 +37628,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2235 i32.const 1 call $~lib/builtins/abort @@ -40333,7 +37643,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2236 i32.const 1 call $~lib/builtins/abort @@ -40348,7 +37658,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2237 i32.const 1 call $~lib/builtins/abort @@ -40363,7 +37673,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2238 i32.const 1 call $~lib/builtins/abort @@ -40378,7 +37688,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2247 i32.const 1 call $~lib/builtins/abort @@ -40393,7 +37703,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2248 i32.const 1 call $~lib/builtins/abort @@ -40408,7 +37718,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2249 i32.const 1 call $~lib/builtins/abort @@ -40423,7 +37733,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2250 i32.const 1 call $~lib/builtins/abort @@ -40438,7 +37748,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2251 i32.const 1 call $~lib/builtins/abort @@ -40453,7 +37763,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2252 i32.const 1 call $~lib/builtins/abort @@ -40468,7 +37778,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2253 i32.const 1 call $~lib/builtins/abort @@ -40483,7 +37793,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2254 i32.const 1 call $~lib/builtins/abort @@ -40498,7 +37808,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2255 i32.const 1 call $~lib/builtins/abort @@ -40513,7 +37823,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2256 i32.const 1 call $~lib/builtins/abort @@ -40528,7 +37838,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2259 i32.const 1 call $~lib/builtins/abort @@ -40543,7 +37853,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2260 i32.const 1 call $~lib/builtins/abort @@ -40558,7 +37868,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2261 i32.const 1 call $~lib/builtins/abort @@ -40573,7 +37883,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2262 i32.const 1 call $~lib/builtins/abort @@ -40588,7 +37898,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2263 i32.const 1 call $~lib/builtins/abort @@ -40603,7 +37913,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2264 i32.const 1 call $~lib/builtins/abort @@ -40618,7 +37928,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2265 i32.const 1 call $~lib/builtins/abort @@ -40635,7 +37945,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2266 i32.const 1 call $~lib/builtins/abort @@ -40650,7 +37960,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2267 i32.const 1 call $~lib/builtins/abort @@ -40665,7 +37975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2268 i32.const 1 call $~lib/builtins/abort @@ -40680,7 +37990,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2269 i32.const 1 call $~lib/builtins/abort @@ -40695,7 +38005,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2270 i32.const 1 call $~lib/builtins/abort @@ -40710,7 +38020,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2271 i32.const 1 call $~lib/builtins/abort @@ -40725,7 +38035,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2272 i32.const 1 call $~lib/builtins/abort @@ -40740,7 +38050,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2273 i32.const 1 call $~lib/builtins/abort @@ -40755,7 +38065,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2274 i32.const 1 call $~lib/builtins/abort @@ -40772,7 +38082,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2275 i32.const 1 call $~lib/builtins/abort @@ -40787,7 +38097,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2276 i32.const 1 call $~lib/builtins/abort @@ -40802,7 +38112,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2277 i32.const 1 call $~lib/builtins/abort @@ -40817,7 +38127,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2278 i32.const 1 call $~lib/builtins/abort @@ -40832,7 +38142,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2279 i32.const 1 call $~lib/builtins/abort @@ -40849,7 +38159,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2280 i32.const 1 call $~lib/builtins/abort @@ -40864,7 +38174,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2281 i32.const 1 call $~lib/builtins/abort @@ -40879,7 +38189,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2282 i32.const 1 call $~lib/builtins/abort @@ -40894,7 +38204,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2283 i32.const 1 call $~lib/builtins/abort @@ -40909,7 +38219,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2284 i32.const 1 call $~lib/builtins/abort @@ -40926,7 +38236,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2285 i32.const 1 call $~lib/builtins/abort @@ -40941,7 +38251,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2286 i32.const 1 call $~lib/builtins/abort @@ -40956,7 +38266,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2287 i32.const 1 call $~lib/builtins/abort @@ -40971,7 +38281,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2288 i32.const 1 call $~lib/builtins/abort @@ -40986,7 +38296,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2289 i32.const 1 call $~lib/builtins/abort @@ -41003,7 +38313,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2290 i32.const 1 call $~lib/builtins/abort @@ -41018,7 +38328,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2291 i32.const 1 call $~lib/builtins/abort @@ -41033,7 +38343,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2292 i32.const 1 call $~lib/builtins/abort @@ -41048,7 +38358,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2293 i32.const 1 call $~lib/builtins/abort @@ -41065,7 +38375,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2294 i32.const 1 call $~lib/builtins/abort @@ -41080,7 +38390,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2295 i32.const 1 call $~lib/builtins/abort @@ -41095,7 +38405,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2296 i32.const 1 call $~lib/builtins/abort @@ -41110,7 +38420,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2297 i32.const 1 call $~lib/builtins/abort @@ -41125,7 +38435,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2298 i32.const 1 call $~lib/builtins/abort @@ -41142,7 +38452,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2299 i32.const 1 call $~lib/builtins/abort @@ -41159,7 +38469,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2300 i32.const 1 call $~lib/builtins/abort @@ -41175,7 +38485,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2301 i32.const 1 call $~lib/builtins/abort @@ -41190,7 +38500,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2302 i32.const 1 call $~lib/builtins/abort @@ -41205,7 +38515,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2303 i32.const 1 call $~lib/builtins/abort @@ -41220,7 +38530,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2304 i32.const 1 call $~lib/builtins/abort @@ -41235,7 +38545,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2305 i32.const 1 call $~lib/builtins/abort @@ -41250,7 +38560,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2306 i32.const 1 call $~lib/builtins/abort @@ -41265,7 +38575,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2307 i32.const 1 call $~lib/builtins/abort @@ -41282,7 +38592,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2308 i32.const 1 call $~lib/builtins/abort @@ -41299,7 +38609,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2309 i32.const 1 call $~lib/builtins/abort @@ -41316,7 +38626,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2310 i32.const 1 call $~lib/builtins/abort @@ -41333,7 +38643,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2311 i32.const 1 call $~lib/builtins/abort @@ -41351,7 +38661,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2312 i32.const 1 call $~lib/builtins/abort @@ -41366,7 +38676,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2313 i32.const 1 call $~lib/builtins/abort @@ -41381,7 +38691,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2314 i32.const 1 call $~lib/builtins/abort @@ -41396,7 +38706,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2315 i32.const 1 call $~lib/builtins/abort @@ -41411,7 +38721,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2316 i32.const 1 call $~lib/builtins/abort @@ -41426,7 +38736,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2330 i32.const 1 call $~lib/builtins/abort @@ -41441,7 +38751,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2331 i32.const 1 call $~lib/builtins/abort @@ -41456,7 +38766,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2332 i32.const 1 call $~lib/builtins/abort @@ -41471,7 +38781,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2333 i32.const 1 call $~lib/builtins/abort @@ -41486,7 +38796,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2334 i32.const 1 call $~lib/builtins/abort @@ -41501,7 +38811,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2335 i32.const 1 call $~lib/builtins/abort @@ -41516,7 +38826,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2336 i32.const 1 call $~lib/builtins/abort @@ -41531,7 +38841,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2337 i32.const 1 call $~lib/builtins/abort @@ -41546,7 +38856,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2338 i32.const 1 call $~lib/builtins/abort @@ -41561,7 +38871,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2339 i32.const 1 call $~lib/builtins/abort @@ -41576,7 +38886,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2342 i32.const 1 call $~lib/builtins/abort @@ -41591,7 +38901,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2343 i32.const 1 call $~lib/builtins/abort @@ -41606,7 +38916,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2344 i32.const 1 call $~lib/builtins/abort @@ -41621,7 +38931,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2345 i32.const 1 call $~lib/builtins/abort @@ -41636,7 +38946,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2346 i32.const 1 call $~lib/builtins/abort @@ -41651,7 +38961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2347 i32.const 1 call $~lib/builtins/abort @@ -41666,7 +38976,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2348 i32.const 1 call $~lib/builtins/abort @@ -41681,7 +38991,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2349 i32.const 1 call $~lib/builtins/abort @@ -41696,7 +39006,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2350 i32.const 1 call $~lib/builtins/abort @@ -41711,7 +39021,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2351 i32.const 1 call $~lib/builtins/abort @@ -41726,7 +39036,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2352 i32.const 1 call $~lib/builtins/abort @@ -41742,7 +39052,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2353 i32.const 1 call $~lib/builtins/abort @@ -41757,7 +39067,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2354 i32.const 1 call $~lib/builtins/abort @@ -41772,7 +39082,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2355 i32.const 1 call $~lib/builtins/abort @@ -41787,7 +39097,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2356 i32.const 1 call $~lib/builtins/abort @@ -41802,7 +39112,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2357 i32.const 1 call $~lib/builtins/abort @@ -41817,7 +39127,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2358 i32.const 1 call $~lib/builtins/abort @@ -41832,7 +39142,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2359 i32.const 1 call $~lib/builtins/abort @@ -41847,7 +39157,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2360 i32.const 1 call $~lib/builtins/abort @@ -41862,7 +39172,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2361 i32.const 1 call $~lib/builtins/abort @@ -41877,7 +39187,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2362 i32.const 1 call $~lib/builtins/abort @@ -41892,7 +39202,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2363 i32.const 1 call $~lib/builtins/abort @@ -41907,7 +39217,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2364 i32.const 1 call $~lib/builtins/abort @@ -41922,7 +39232,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2365 i32.const 1 call $~lib/builtins/abort @@ -41938,7 +39248,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2366 i32.const 1 call $~lib/builtins/abort @@ -41953,7 +39263,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2367 i32.const 1 call $~lib/builtins/abort @@ -41968,7 +39278,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2368 i32.const 1 call $~lib/builtins/abort @@ -41983,7 +39293,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2369 i32.const 1 call $~lib/builtins/abort @@ -41998,7 +39308,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2370 i32.const 1 call $~lib/builtins/abort @@ -42014,7 +39324,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2371 i32.const 1 call $~lib/builtins/abort @@ -42029,7 +39339,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2372 i32.const 1 call $~lib/builtins/abort @@ -42044,7 +39354,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2373 i32.const 1 call $~lib/builtins/abort @@ -42059,7 +39369,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2374 i32.const 1 call $~lib/builtins/abort @@ -42074,7 +39384,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2375 i32.const 1 call $~lib/builtins/abort @@ -42090,7 +39400,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2376 i32.const 1 call $~lib/builtins/abort @@ -42105,7 +39415,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2377 i32.const 1 call $~lib/builtins/abort @@ -42120,7 +39430,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2378 i32.const 1 call $~lib/builtins/abort @@ -42135,7 +39445,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2379 i32.const 1 call $~lib/builtins/abort @@ -42150,7 +39460,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2380 i32.const 1 call $~lib/builtins/abort @@ -42166,7 +39476,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2381 i32.const 1 call $~lib/builtins/abort @@ -42181,7 +39491,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2382 i32.const 1 call $~lib/builtins/abort @@ -42196,7 +39506,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2383 i32.const 1 call $~lib/builtins/abort @@ -42211,7 +39521,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2384 i32.const 1 call $~lib/builtins/abort @@ -42227,7 +39537,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2385 i32.const 1 call $~lib/builtins/abort @@ -42242,7 +39552,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2386 i32.const 1 call $~lib/builtins/abort @@ -42257,7 +39567,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2387 i32.const 1 call $~lib/builtins/abort @@ -42272,7 +39582,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2388 i32.const 1 call $~lib/builtins/abort @@ -42287,7 +39597,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2389 i32.const 1 call $~lib/builtins/abort @@ -42303,7 +39613,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2390 i32.const 1 call $~lib/builtins/abort @@ -42319,7 +39629,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2391 i32.const 1 call $~lib/builtins/abort @@ -42335,7 +39645,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2392 i32.const 1 call $~lib/builtins/abort @@ -42350,7 +39660,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2393 i32.const 1 call $~lib/builtins/abort @@ -42365,7 +39675,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2394 i32.const 1 call $~lib/builtins/abort @@ -42380,7 +39690,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2395 i32.const 1 call $~lib/builtins/abort @@ -42395,7 +39705,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2396 i32.const 1 call $~lib/builtins/abort @@ -42410,7 +39720,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2397 i32.const 1 call $~lib/builtins/abort @@ -42425,7 +39735,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2398 i32.const 1 call $~lib/builtins/abort @@ -42441,7 +39751,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2399 i32.const 1 call $~lib/builtins/abort @@ -42457,7 +39767,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2400 i32.const 1 call $~lib/builtins/abort @@ -42473,7 +39783,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2401 i32.const 1 call $~lib/builtins/abort @@ -42489,7 +39799,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2402 i32.const 1 call $~lib/builtins/abort @@ -42506,7 +39816,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2403 i32.const 1 call $~lib/builtins/abort @@ -42521,7 +39831,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2404 i32.const 1 call $~lib/builtins/abort @@ -42536,7 +39846,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2405 i32.const 1 call $~lib/builtins/abort @@ -42551,7 +39861,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2406 i32.const 1 call $~lib/builtins/abort @@ -42566,7 +39876,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2407 i32.const 1 call $~lib/builtins/abort @@ -42583,7 +39893,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2410 i32.const 1 call $~lib/builtins/abort @@ -42600,7 +39910,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2411 i32.const 1 call $~lib/builtins/abort @@ -42617,7 +39927,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2412 i32.const 1 call $~lib/builtins/abort @@ -42634,7 +39944,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2413 i32.const 1 call $~lib/builtins/abort @@ -42651,7 +39961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2414 i32.const 1 call $~lib/builtins/abort @@ -42668,7 +39978,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2415 i32.const 1 call $~lib/builtins/abort @@ -42685,7 +39995,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2416 i32.const 1 call $~lib/builtins/abort @@ -42702,7 +40012,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2417 i32.const 1 call $~lib/builtins/abort @@ -42719,7 +40029,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2420 i32.const 1 call $~lib/builtins/abort @@ -42736,7 +40046,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2421 i32.const 1 call $~lib/builtins/abort @@ -42753,7 +40063,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2422 i32.const 1 call $~lib/builtins/abort @@ -42770,7 +40080,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2423 i32.const 1 call $~lib/builtins/abort @@ -42787,7 +40097,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2424 i32.const 1 call $~lib/builtins/abort @@ -42804,7 +40114,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2425 i32.const 1 call $~lib/builtins/abort @@ -42821,7 +40131,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2426 i32.const 1 call $~lib/builtins/abort @@ -42838,7 +40148,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2427 i32.const 1 call $~lib/builtins/abort @@ -42856,7 +40166,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2430 i32.const 1 call $~lib/builtins/abort @@ -42874,7 +40184,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2431 i32.const 1 call $~lib/builtins/abort @@ -42892,7 +40202,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2433 i32.const 1 call $~lib/builtins/abort @@ -42910,7 +40220,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2434 i32.const 1 call $~lib/builtins/abort @@ -42928,7 +40238,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2436 i32.const 1 call $~lib/builtins/abort @@ -42946,7 +40256,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2437 i32.const 1 call $~lib/builtins/abort @@ -42964,7 +40274,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2439 i32.const 1 call $~lib/builtins/abort @@ -42982,7 +40292,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2440 i32.const 1 call $~lib/builtins/abort @@ -43000,7 +40310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2442 i32.const 1 call $~lib/builtins/abort @@ -43018,7 +40328,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2443 i32.const 1 call $~lib/builtins/abort @@ -43036,7 +40346,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2445 i32.const 1 call $~lib/builtins/abort @@ -43054,7 +40364,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2446 i32.const 1 call $~lib/builtins/abort @@ -43072,7 +40382,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2448 i32.const 1 call $~lib/builtins/abort @@ -43090,7 +40400,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2449 i32.const 1 call $~lib/builtins/abort @@ -43108,7 +40418,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2451 i32.const 1 call $~lib/builtins/abort @@ -43126,7 +40436,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2452 i32.const 1 call $~lib/builtins/abort @@ -43144,7 +40454,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2454 i32.const 1 call $~lib/builtins/abort @@ -43162,7 +40472,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2455 i32.const 1 call $~lib/builtins/abort @@ -43178,7 +40488,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2457 i32.const 1 call $~lib/builtins/abort @@ -43194,7 +40504,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2458 i32.const 1 call $~lib/builtins/abort @@ -43210,7 +40520,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2459 i32.const 1 call $~lib/builtins/abort @@ -43226,7 +40536,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2460 i32.const 1 call $~lib/builtins/abort @@ -43242,7 +40552,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2461 i32.const 1 call $~lib/builtins/abort @@ -43258,7 +40568,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2462 i32.const 1 call $~lib/builtins/abort @@ -43274,7 +40584,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2463 i32.const 1 call $~lib/builtins/abort @@ -43290,7 +40600,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2464 i32.const 1 call $~lib/builtins/abort @@ -43308,7 +40618,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2466 i32.const 1 call $~lib/builtins/abort @@ -43326,7 +40636,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2467 i32.const 1 call $~lib/builtins/abort @@ -43344,7 +40654,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2468 i32.const 1 call $~lib/builtins/abort @@ -43362,7 +40672,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2469 i32.const 1 call $~lib/builtins/abort @@ -43380,7 +40690,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2470 i32.const 1 call $~lib/builtins/abort @@ -43398,7 +40708,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2471 i32.const 1 call $~lib/builtins/abort @@ -43416,7 +40726,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2472 i32.const 1 call $~lib/builtins/abort @@ -43434,7 +40744,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2473 i32.const 1 call $~lib/builtins/abort @@ -43452,7 +40762,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2474 i32.const 1 call $~lib/builtins/abort @@ -43470,7 +40780,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2475 i32.const 1 call $~lib/builtins/abort @@ -43488,7 +40798,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2476 i32.const 1 call $~lib/builtins/abort @@ -43506,7 +40816,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2477 i32.const 1 call $~lib/builtins/abort @@ -43524,7 +40834,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2478 i32.const 1 call $~lib/builtins/abort @@ -43542,7 +40852,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2479 i32.const 1 call $~lib/builtins/abort @@ -43560,7 +40870,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2480 i32.const 1 call $~lib/builtins/abort @@ -43578,7 +40888,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2481 i32.const 1 call $~lib/builtins/abort @@ -43596,7 +40906,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2482 i32.const 1 call $~lib/builtins/abort @@ -43614,7 +40924,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2483 i32.const 1 call $~lib/builtins/abort @@ -43632,7 +40942,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2484 i32.const 1 call $~lib/builtins/abort @@ -43650,7 +40960,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2485 i32.const 1 call $~lib/builtins/abort @@ -43665,7 +40975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2494 i32.const 1 call $~lib/builtins/abort @@ -43680,7 +40990,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2495 i32.const 1 call $~lib/builtins/abort @@ -43695,7 +41005,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2496 i32.const 1 call $~lib/builtins/abort @@ -43710,7 +41020,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2497 i32.const 1 call $~lib/builtins/abort @@ -43725,7 +41035,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2498 i32.const 1 call $~lib/builtins/abort @@ -43740,7 +41050,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2499 i32.const 1 call $~lib/builtins/abort @@ -43755,7 +41065,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2500 i32.const 1 call $~lib/builtins/abort @@ -43770,7 +41080,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2501 i32.const 1 call $~lib/builtins/abort @@ -43785,7 +41095,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2502 i32.const 1 call $~lib/builtins/abort @@ -43800,7 +41110,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2503 i32.const 1 call $~lib/builtins/abort @@ -43815,7 +41125,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2506 i32.const 1 call $~lib/builtins/abort @@ -43830,7 +41140,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2507 i32.const 1 call $~lib/builtins/abort @@ -43845,7 +41155,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2508 i32.const 1 call $~lib/builtins/abort @@ -43860,7 +41170,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2509 i32.const 1 call $~lib/builtins/abort @@ -43875,7 +41185,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2510 i32.const 1 call $~lib/builtins/abort @@ -43890,7 +41200,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2511 i32.const 1 call $~lib/builtins/abort @@ -43905,7 +41215,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2512 i32.const 1 call $~lib/builtins/abort @@ -43920,7 +41230,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2513 i32.const 1 call $~lib/builtins/abort @@ -43935,7 +41245,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2514 i32.const 1 call $~lib/builtins/abort @@ -43950,7 +41260,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2515 i32.const 1 call $~lib/builtins/abort @@ -43965,7 +41275,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2516 i32.const 1 call $~lib/builtins/abort @@ -43981,7 +41291,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2517 i32.const 1 call $~lib/builtins/abort @@ -43996,7 +41306,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2518 i32.const 1 call $~lib/builtins/abort @@ -44011,7 +41321,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2519 i32.const 1 call $~lib/builtins/abort @@ -44026,7 +41336,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2520 i32.const 1 call $~lib/builtins/abort @@ -44041,7 +41351,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2521 i32.const 1 call $~lib/builtins/abort @@ -44056,7 +41366,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2522 i32.const 1 call $~lib/builtins/abort @@ -44071,7 +41381,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2523 i32.const 1 call $~lib/builtins/abort @@ -44086,7 +41396,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2524 i32.const 1 call $~lib/builtins/abort @@ -44101,7 +41411,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2525 i32.const 1 call $~lib/builtins/abort @@ -44116,7 +41426,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2526 i32.const 1 call $~lib/builtins/abort @@ -44131,7 +41441,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2527 i32.const 1 call $~lib/builtins/abort @@ -44146,7 +41456,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2528 i32.const 1 call $~lib/builtins/abort @@ -44161,7 +41471,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2529 i32.const 1 call $~lib/builtins/abort @@ -44177,7 +41487,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2530 i32.const 1 call $~lib/builtins/abort @@ -44192,7 +41502,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2531 i32.const 1 call $~lib/builtins/abort @@ -44207,7 +41517,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2532 i32.const 1 call $~lib/builtins/abort @@ -44222,7 +41532,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2533 i32.const 1 call $~lib/builtins/abort @@ -44237,7 +41547,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2534 i32.const 1 call $~lib/builtins/abort @@ -44253,7 +41563,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2535 i32.const 1 call $~lib/builtins/abort @@ -44268,7 +41578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2536 i32.const 1 call $~lib/builtins/abort @@ -44283,7 +41593,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2537 i32.const 1 call $~lib/builtins/abort @@ -44298,7 +41608,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2538 i32.const 1 call $~lib/builtins/abort @@ -44313,7 +41623,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2539 i32.const 1 call $~lib/builtins/abort @@ -44329,7 +41639,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2540 i32.const 1 call $~lib/builtins/abort @@ -44344,7 +41654,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2541 i32.const 1 call $~lib/builtins/abort @@ -44359,7 +41669,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2542 i32.const 1 call $~lib/builtins/abort @@ -44374,7 +41684,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2543 i32.const 1 call $~lib/builtins/abort @@ -44389,7 +41699,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2544 i32.const 1 call $~lib/builtins/abort @@ -44405,7 +41715,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2545 i32.const 1 call $~lib/builtins/abort @@ -44420,7 +41730,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2546 i32.const 1 call $~lib/builtins/abort @@ -44435,7 +41745,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2547 i32.const 1 call $~lib/builtins/abort @@ -44450,7 +41760,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2548 i32.const 1 call $~lib/builtins/abort @@ -44466,7 +41776,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2549 i32.const 1 call $~lib/builtins/abort @@ -44481,7 +41791,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2550 i32.const 1 call $~lib/builtins/abort @@ -44496,7 +41806,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2551 i32.const 1 call $~lib/builtins/abort @@ -44511,7 +41821,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2552 i32.const 1 call $~lib/builtins/abort @@ -44526,7 +41836,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2553 i32.const 1 call $~lib/builtins/abort @@ -44542,7 +41852,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2554 i32.const 1 call $~lib/builtins/abort @@ -44558,7 +41868,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2555 i32.const 1 call $~lib/builtins/abort @@ -44574,7 +41884,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2556 i32.const 1 call $~lib/builtins/abort @@ -44589,7 +41899,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2557 i32.const 1 call $~lib/builtins/abort @@ -44604,7 +41914,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2558 i32.const 1 call $~lib/builtins/abort @@ -44619,7 +41929,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2559 i32.const 1 call $~lib/builtins/abort @@ -44634,7 +41944,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2560 i32.const 1 call $~lib/builtins/abort @@ -44649,7 +41959,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2561 i32.const 1 call $~lib/builtins/abort @@ -44664,7 +41974,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2562 i32.const 1 call $~lib/builtins/abort @@ -44680,7 +41990,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2563 i32.const 1 call $~lib/builtins/abort @@ -44696,7 +42006,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2564 i32.const 1 call $~lib/builtins/abort @@ -44712,7 +42022,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2565 i32.const 1 call $~lib/builtins/abort @@ -44728,7 +42038,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2566 i32.const 1 call $~lib/builtins/abort @@ -44745,7 +42055,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2567 i32.const 1 call $~lib/builtins/abort @@ -44760,7 +42070,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2568 i32.const 1 call $~lib/builtins/abort @@ -44775,7 +42085,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2569 i32.const 1 call $~lib/builtins/abort @@ -44790,7 +42100,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2570 i32.const 1 call $~lib/builtins/abort @@ -44805,7 +42115,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2571 i32.const 1 call $~lib/builtins/abort @@ -44820,7 +42130,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2583 i32.const 1 call $~lib/builtins/abort @@ -44835,7 +42145,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2584 i32.const 1 call $~lib/builtins/abort @@ -44850,7 +42160,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2585 i32.const 1 call $~lib/builtins/abort @@ -44865,7 +42175,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2586 i32.const 1 call $~lib/builtins/abort @@ -44880,7 +42190,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2587 i32.const 1 call $~lib/builtins/abort @@ -44895,7 +42205,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2588 i32.const 1 call $~lib/builtins/abort @@ -44910,7 +42220,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2589 i32.const 1 call $~lib/builtins/abort @@ -44925,7 +42235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2590 i32.const 1 call $~lib/builtins/abort @@ -44940,7 +42250,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2591 i32.const 1 call $~lib/builtins/abort @@ -44955,7 +42265,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2592 i32.const 1 call $~lib/builtins/abort @@ -44970,7 +42280,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2595 i32.const 1 call $~lib/builtins/abort @@ -44985,7 +42295,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2596 i32.const 1 call $~lib/builtins/abort @@ -45000,7 +42310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2597 i32.const 1 call $~lib/builtins/abort @@ -45015,7 +42325,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2598 i32.const 1 call $~lib/builtins/abort @@ -45030,7 +42340,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2599 i32.const 1 call $~lib/builtins/abort @@ -45045,7 +42355,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2600 i32.const 1 call $~lib/builtins/abort @@ -45060,7 +42370,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2601 i32.const 1 call $~lib/builtins/abort @@ -45075,7 +42385,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2602 i32.const 1 call $~lib/builtins/abort @@ -45090,7 +42400,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2603 i32.const 1 call $~lib/builtins/abort @@ -45105,7 +42415,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2604 i32.const 1 call $~lib/builtins/abort @@ -45120,7 +42430,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2605 i32.const 1 call $~lib/builtins/abort @@ -45135,7 +42445,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2606 i32.const 1 call $~lib/builtins/abort @@ -45150,7 +42460,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2607 i32.const 1 call $~lib/builtins/abort @@ -45166,7 +42476,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2608 i32.const 1 call $~lib/builtins/abort @@ -45181,7 +42491,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2609 i32.const 1 call $~lib/builtins/abort @@ -45196,7 +42506,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2610 i32.const 1 call $~lib/builtins/abort @@ -45211,7 +42521,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2611 i32.const 1 call $~lib/builtins/abort @@ -45226,7 +42536,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2612 i32.const 1 call $~lib/builtins/abort @@ -45241,7 +42551,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2613 i32.const 1 call $~lib/builtins/abort @@ -45256,7 +42566,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2614 i32.const 1 call $~lib/builtins/abort @@ -45271,7 +42581,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2615 i32.const 1 call $~lib/builtins/abort @@ -45286,7 +42596,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2616 i32.const 1 call $~lib/builtins/abort @@ -45301,7 +42611,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2617 i32.const 1 call $~lib/builtins/abort @@ -45317,7 +42627,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2618 i32.const 1 call $~lib/builtins/abort @@ -45332,7 +42642,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2619 i32.const 1 call $~lib/builtins/abort @@ -45348,7 +42658,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2620 i32.const 1 call $~lib/builtins/abort @@ -45363,7 +42673,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2621 i32.const 1 call $~lib/builtins/abort @@ -45379,7 +42689,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2622 i32.const 1 call $~lib/builtins/abort @@ -45394,7 +42704,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2623 i32.const 1 call $~lib/builtins/abort @@ -45409,7 +42719,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2624 i32.const 1 call $~lib/builtins/abort @@ -45425,7 +42735,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2625 i32.const 1 call $~lib/builtins/abort @@ -45440,7 +42750,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2626 i32.const 1 call $~lib/builtins/abort @@ -45455,7 +42765,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2627 i32.const 1 call $~lib/builtins/abort @@ -45470,7 +42780,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2628 i32.const 1 call $~lib/builtins/abort @@ -45485,7 +42795,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2629 i32.const 1 call $~lib/builtins/abort @@ -45500,7 +42810,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2630 i32.const 1 call $~lib/builtins/abort @@ -45516,7 +42826,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2631 i32.const 1 call $~lib/builtins/abort @@ -45531,7 +42841,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2632 i32.const 1 call $~lib/builtins/abort @@ -45546,7 +42856,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2633 i32.const 1 call $~lib/builtins/abort @@ -45561,7 +42871,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2634 i32.const 1 call $~lib/builtins/abort @@ -45576,7 +42886,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2635 i32.const 1 call $~lib/builtins/abort @@ -45591,7 +42901,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2636 i32.const 1 call $~lib/builtins/abort @@ -45607,7 +42917,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2637 i32.const 1 call $~lib/builtins/abort @@ -45622,7 +42932,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2638 i32.const 1 call $~lib/builtins/abort @@ -45637,7 +42947,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2639 i32.const 1 call $~lib/builtins/abort @@ -45652,7 +42962,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2640 i32.const 1 call $~lib/builtins/abort @@ -45667,7 +42977,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2641 i32.const 1 call $~lib/builtins/abort @@ -45682,7 +42992,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2642 i32.const 1 call $~lib/builtins/abort @@ -45697,7 +43007,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2643 i32.const 1 call $~lib/builtins/abort @@ -45712,7 +43022,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2644 i32.const 1 call $~lib/builtins/abort @@ -45728,7 +43038,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2645 i32.const 1 call $~lib/builtins/abort @@ -45743,7 +43053,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2646 i32.const 1 call $~lib/builtins/abort @@ -45758,7 +43068,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2647 i32.const 1 call $~lib/builtins/abort @@ -45773,7 +43083,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2648 i32.const 1 call $~lib/builtins/abort @@ -45788,7 +43098,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2649 i32.const 1 call $~lib/builtins/abort @@ -45803,7 +43113,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2650 i32.const 1 call $~lib/builtins/abort @@ -45818,7 +43128,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2651 i32.const 1 call $~lib/builtins/abort @@ -45833,7 +43143,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2652 i32.const 1 call $~lib/builtins/abort @@ -45848,7 +43158,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2653 i32.const 1 call $~lib/builtins/abort @@ -45863,7 +43173,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2654 i32.const 1 call $~lib/builtins/abort @@ -45879,7 +43189,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2655 i32.const 1 call $~lib/builtins/abort @@ -45894,7 +43204,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2656 i32.const 1 call $~lib/builtins/abort @@ -45909,7 +43219,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2657 i32.const 1 call $~lib/builtins/abort @@ -45925,7 +43235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2658 i32.const 1 call $~lib/builtins/abort @@ -45940,7 +43250,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2659 i32.const 1 call $~lib/builtins/abort @@ -45955,7 +43265,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2660 i32.const 1 call $~lib/builtins/abort @@ -45971,7 +43281,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2661 i32.const 1 call $~lib/builtins/abort @@ -45986,7 +43296,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2662 i32.const 1 call $~lib/builtins/abort @@ -46001,7 +43311,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2663 i32.const 1 call $~lib/builtins/abort @@ -46016,7 +43326,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2664 i32.const 1 call $~lib/builtins/abort @@ -46032,7 +43342,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2665 i32.const 1 call $~lib/builtins/abort @@ -46047,7 +43357,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2666 i32.const 1 call $~lib/builtins/abort @@ -46062,7 +43372,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2667 i32.const 1 call $~lib/builtins/abort @@ -46077,7 +43387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2668 i32.const 1 call $~lib/builtins/abort @@ -46092,7 +43402,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2669 i32.const 1 call $~lib/builtins/abort @@ -46107,7 +43417,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2670 i32.const 1 call $~lib/builtins/abort @@ -46122,7 +43432,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2671 i32.const 1 call $~lib/builtins/abort @@ -46137,7 +43447,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2672 i32.const 1 call $~lib/builtins/abort @@ -46153,7 +43463,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2673 i32.const 1 call $~lib/builtins/abort @@ -46169,7 +43479,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2674 i32.const 1 call $~lib/builtins/abort @@ -46186,7 +43496,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2675 i32.const 1 call $~lib/builtins/abort @@ -46203,7 +43513,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2676 i32.const 1 call $~lib/builtins/abort @@ -46219,7 +43529,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2677 i32.const 1 call $~lib/builtins/abort @@ -46236,7 +43546,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2678 i32.const 1 call $~lib/builtins/abort @@ -46252,7 +43562,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2679 i32.const 1 call $~lib/builtins/abort @@ -46268,7 +43578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2680 i32.const 1 call $~lib/builtins/abort @@ -46284,7 +43594,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2681 i32.const 1 call $~lib/builtins/abort @@ -46300,7 +43610,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2682 i32.const 1 call $~lib/builtins/abort @@ -46315,7 +43625,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2683 i32.const 1 call $~lib/builtins/abort @@ -46330,7 +43640,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2684 i32.const 1 call $~lib/builtins/abort @@ -46345,7 +43655,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2685 i32.const 1 call $~lib/builtins/abort @@ -46360,7 +43670,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2686 i32.const 1 call $~lib/builtins/abort @@ -46374,7 +43684,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2689 i32.const 1 call $~lib/builtins/abort @@ -46388,7 +43698,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2690 i32.const 1 call $~lib/builtins/abort @@ -46402,7 +43712,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2691 i32.const 1 call $~lib/builtins/abort @@ -46416,7 +43726,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2692 i32.const 1 call $~lib/builtins/abort @@ -46430,7 +43740,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2693 i32.const 1 call $~lib/builtins/abort @@ -46444,7 +43754,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2694 i32.const 1 call $~lib/builtins/abort @@ -46459,7 +43769,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2695 i32.const 1 call $~lib/builtins/abort @@ -46473,7 +43783,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2696 i32.const 1 call $~lib/builtins/abort @@ -46489,7 +43799,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2698 i32.const 1 call $~lib/builtins/abort @@ -46505,7 +43815,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2699 i32.const 1 call $~lib/builtins/abort @@ -46519,7 +43829,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2700 i32.const 1 call $~lib/builtins/abort @@ -46533,7 +43843,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2701 i32.const 1 call $~lib/builtins/abort @@ -46549,7 +43859,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2702 i32.const 1 call $~lib/builtins/abort @@ -46564,7 +43874,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2703 i32.const 1 call $~lib/builtins/abort @@ -46578,7 +43888,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2705 i32.const 1 call $~lib/builtins/abort @@ -46593,7 +43903,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2706 i32.const 1 call $~lib/builtins/abort @@ -46607,7 +43917,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2707 i32.const 1 call $~lib/builtins/abort @@ -46621,7 +43931,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2708 i32.const 1 call $~lib/builtins/abort @@ -46635,7 +43945,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2709 i32.const 1 call $~lib/builtins/abort @@ -46651,7 +43961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2710 i32.const 1 call $~lib/builtins/abort @@ -46668,7 +43978,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2711 i32.const 1 call $~lib/builtins/abort @@ -46683,7 +43993,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2712 i32.const 1 call $~lib/builtins/abort @@ -46697,7 +44007,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2714 i32.const 1 call $~lib/builtins/abort @@ -46711,7 +44021,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2715 i32.const 1 call $~lib/builtins/abort @@ -46725,7 +44035,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2716 i32.const 1 call $~lib/builtins/abort @@ -46739,7 +44049,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2717 i32.const 1 call $~lib/builtins/abort @@ -46753,7 +44063,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2718 i32.const 1 call $~lib/builtins/abort @@ -46767,7 +44077,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2719 i32.const 1 call $~lib/builtins/abort @@ -46782,7 +44092,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2720 i32.const 1 call $~lib/builtins/abort @@ -46797,7 +44107,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2721 i32.const 1 call $~lib/builtins/abort @@ -46811,7 +44121,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2723 i32.const 1 call $~lib/builtins/abort @@ -46825,7 +44135,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2724 i32.const 1 call $~lib/builtins/abort @@ -46840,7 +44150,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2725 i32.const 1 call $~lib/builtins/abort @@ -46854,7 +44164,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2726 i32.const 1 call $~lib/builtins/abort @@ -46868,7 +44178,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2727 i32.const 1 call $~lib/builtins/abort @@ -46882,7 +44192,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2728 i32.const 1 call $~lib/builtins/abort @@ -46897,7 +44207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2729 i32.const 1 call $~lib/builtins/abort @@ -46912,7 +44222,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2730 i32.const 1 call $~lib/builtins/abort @@ -46927,7 +44237,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2739 i32.const 1 call $~lib/builtins/abort @@ -46942,7 +44252,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2740 i32.const 1 call $~lib/builtins/abort @@ -46957,7 +44267,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2741 i32.const 1 call $~lib/builtins/abort @@ -46972,7 +44282,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2742 i32.const 1 call $~lib/builtins/abort @@ -46987,7 +44297,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2743 i32.const 1 call $~lib/builtins/abort @@ -47002,7 +44312,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2744 i32.const 1 call $~lib/builtins/abort @@ -47017,7 +44327,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2745 i32.const 1 call $~lib/builtins/abort @@ -47032,7 +44342,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2746 i32.const 1 call $~lib/builtins/abort @@ -47047,7 +44357,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2747 i32.const 1 call $~lib/builtins/abort @@ -47062,7 +44372,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2748 i32.const 1 call $~lib/builtins/abort @@ -47077,7 +44387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2751 i32.const 1 call $~lib/builtins/abort @@ -47092,7 +44402,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2752 i32.const 1 call $~lib/builtins/abort @@ -47107,7 +44417,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2753 i32.const 1 call $~lib/builtins/abort @@ -47122,7 +44432,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2754 i32.const 1 call $~lib/builtins/abort @@ -47137,7 +44447,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2755 i32.const 1 call $~lib/builtins/abort @@ -47152,7 +44462,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2756 i32.const 1 call $~lib/builtins/abort @@ -47167,7 +44477,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2757 i32.const 1 call $~lib/builtins/abort @@ -47182,7 +44492,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2758 i32.const 1 call $~lib/builtins/abort @@ -47197,7 +44507,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2759 i32.const 1 call $~lib/builtins/abort @@ -47212,7 +44522,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2760 i32.const 1 call $~lib/builtins/abort @@ -47227,7 +44537,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2761 i32.const 1 call $~lib/builtins/abort @@ -47242,7 +44552,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2762 i32.const 1 call $~lib/builtins/abort @@ -47257,7 +44567,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2763 i32.const 1 call $~lib/builtins/abort @@ -47273,7 +44583,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2764 i32.const 1 call $~lib/builtins/abort @@ -47288,7 +44598,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2765 i32.const 1 call $~lib/builtins/abort @@ -47303,7 +44613,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2766 i32.const 1 call $~lib/builtins/abort @@ -47318,7 +44628,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2767 i32.const 1 call $~lib/builtins/abort @@ -47333,7 +44643,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2768 i32.const 1 call $~lib/builtins/abort @@ -47348,7 +44658,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2769 i32.const 1 call $~lib/builtins/abort @@ -47363,7 +44673,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2770 i32.const 1 call $~lib/builtins/abort @@ -47378,7 +44688,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2771 i32.const 1 call $~lib/builtins/abort @@ -47393,7 +44703,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2772 i32.const 1 call $~lib/builtins/abort @@ -47408,7 +44718,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2773 i32.const 1 call $~lib/builtins/abort @@ -47424,7 +44734,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2774 i32.const 1 call $~lib/builtins/abort @@ -47439,7 +44749,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2775 i32.const 1 call $~lib/builtins/abort @@ -47455,7 +44765,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2776 i32.const 1 call $~lib/builtins/abort @@ -47470,7 +44780,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2777 i32.const 1 call $~lib/builtins/abort @@ -47486,7 +44796,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2778 i32.const 1 call $~lib/builtins/abort @@ -47501,7 +44811,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2779 i32.const 1 call $~lib/builtins/abort @@ -47516,7 +44826,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2780 i32.const 1 call $~lib/builtins/abort @@ -47532,7 +44842,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2781 i32.const 1 call $~lib/builtins/abort @@ -47547,7 +44857,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2782 i32.const 1 call $~lib/builtins/abort @@ -47562,7 +44872,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2783 i32.const 1 call $~lib/builtins/abort @@ -47577,7 +44887,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2784 i32.const 1 call $~lib/builtins/abort @@ -47592,7 +44902,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2785 i32.const 1 call $~lib/builtins/abort @@ -47607,7 +44917,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2786 i32.const 1 call $~lib/builtins/abort @@ -47623,7 +44933,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2787 i32.const 1 call $~lib/builtins/abort @@ -47638,7 +44948,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2788 i32.const 1 call $~lib/builtins/abort @@ -47653,7 +44963,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2789 i32.const 1 call $~lib/builtins/abort @@ -47668,7 +44978,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2790 i32.const 1 call $~lib/builtins/abort @@ -47683,7 +44993,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2791 i32.const 1 call $~lib/builtins/abort @@ -47698,7 +45008,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2792 i32.const 1 call $~lib/builtins/abort @@ -47714,7 +45024,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2793 i32.const 1 call $~lib/builtins/abort @@ -47729,7 +45039,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2794 i32.const 1 call $~lib/builtins/abort @@ -47744,7 +45054,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2795 i32.const 1 call $~lib/builtins/abort @@ -47759,7 +45069,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2796 i32.const 1 call $~lib/builtins/abort @@ -47774,7 +45084,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2797 i32.const 1 call $~lib/builtins/abort @@ -47789,7 +45099,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2798 i32.const 1 call $~lib/builtins/abort @@ -47804,7 +45114,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2799 i32.const 1 call $~lib/builtins/abort @@ -47819,7 +45129,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2800 i32.const 1 call $~lib/builtins/abort @@ -47835,7 +45145,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2801 i32.const 1 call $~lib/builtins/abort @@ -47850,7 +45160,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2802 i32.const 1 call $~lib/builtins/abort @@ -47865,7 +45175,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2803 i32.const 1 call $~lib/builtins/abort @@ -47880,7 +45190,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2804 i32.const 1 call $~lib/builtins/abort @@ -47895,7 +45205,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2805 i32.const 1 call $~lib/builtins/abort @@ -47910,7 +45220,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2806 i32.const 1 call $~lib/builtins/abort @@ -47925,7 +45235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2807 i32.const 1 call $~lib/builtins/abort @@ -47940,7 +45250,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2808 i32.const 1 call $~lib/builtins/abort @@ -47955,7 +45265,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2809 i32.const 1 call $~lib/builtins/abort @@ -47970,7 +45280,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2810 i32.const 1 call $~lib/builtins/abort @@ -47986,7 +45296,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2811 i32.const 1 call $~lib/builtins/abort @@ -48001,7 +45311,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2812 i32.const 1 call $~lib/builtins/abort @@ -48016,7 +45326,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2813 i32.const 1 call $~lib/builtins/abort @@ -48032,7 +45342,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2814 i32.const 1 call $~lib/builtins/abort @@ -48047,7 +45357,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2815 i32.const 1 call $~lib/builtins/abort @@ -48062,7 +45372,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2816 i32.const 1 call $~lib/builtins/abort @@ -48078,7 +45388,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2817 i32.const 1 call $~lib/builtins/abort @@ -48093,7 +45403,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2818 i32.const 1 call $~lib/builtins/abort @@ -48108,7 +45418,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2819 i32.const 1 call $~lib/builtins/abort @@ -48123,7 +45433,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2820 i32.const 1 call $~lib/builtins/abort @@ -48139,7 +45449,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2821 i32.const 1 call $~lib/builtins/abort @@ -48154,7 +45464,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2822 i32.const 1 call $~lib/builtins/abort @@ -48169,7 +45479,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2823 i32.const 1 call $~lib/builtins/abort @@ -48184,7 +45494,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2824 i32.const 1 call $~lib/builtins/abort @@ -48199,7 +45509,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2825 i32.const 1 call $~lib/builtins/abort @@ -48214,7 +45524,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2826 i32.const 1 call $~lib/builtins/abort @@ -48229,7 +45539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2827 i32.const 1 call $~lib/builtins/abort @@ -48244,7 +45554,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2828 i32.const 1 call $~lib/builtins/abort @@ -48260,7 +45570,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2829 i32.const 1 call $~lib/builtins/abort @@ -48276,7 +45586,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2830 i32.const 1 call $~lib/builtins/abort @@ -48293,7 +45603,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2831 i32.const 1 call $~lib/builtins/abort @@ -48310,7 +45620,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2832 i32.const 1 call $~lib/builtins/abort @@ -48326,7 +45636,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2833 i32.const 1 call $~lib/builtins/abort @@ -48343,7 +45653,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2834 i32.const 1 call $~lib/builtins/abort @@ -48359,7 +45669,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2835 i32.const 1 call $~lib/builtins/abort @@ -48375,7 +45685,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2836 i32.const 1 call $~lib/builtins/abort @@ -48391,7 +45701,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2837 i32.const 1 call $~lib/builtins/abort @@ -48407,7 +45717,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2838 i32.const 1 call $~lib/builtins/abort @@ -48422,7 +45732,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2839 i32.const 1 call $~lib/builtins/abort @@ -48437,7 +45747,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2840 i32.const 1 call $~lib/builtins/abort @@ -48452,7 +45762,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2841 i32.const 1 call $~lib/builtins/abort @@ -48467,7 +45777,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2842 i32.const 1 call $~lib/builtins/abort @@ -48482,7 +45792,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2845 i32.const 1 call $~lib/builtins/abort @@ -48497,7 +45807,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2846 i32.const 1 call $~lib/builtins/abort @@ -48514,7 +45824,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2847 i32.const 1 call $~lib/builtins/abort @@ -48531,7 +45841,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2848 i32.const 1 call $~lib/builtins/abort @@ -48548,7 +45858,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2849 i32.const 1 call $~lib/builtins/abort @@ -48565,7 +45875,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2850 i32.const 1 call $~lib/builtins/abort @@ -48581,7 +45891,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2852 i32.const 1 call $~lib/builtins/abort @@ -48597,7 +45907,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2853 i32.const 1 call $~lib/builtins/abort @@ -48613,7 +45923,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2854 i32.const 1 call $~lib/builtins/abort @@ -48629,7 +45939,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2855 i32.const 1 call $~lib/builtins/abort @@ -48644,7 +45954,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2856 i32.const 1 call $~lib/builtins/abort @@ -48660,7 +45970,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2857 i32.const 1 call $~lib/builtins/abort @@ -48679,7 +45989,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2859 i32.const 1 call $~lib/builtins/abort @@ -48697,7 +46007,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2861 i32.const 1 call $~lib/builtins/abort @@ -48715,7 +46025,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2862 i32.const 1 call $~lib/builtins/abort @@ -48733,7 +46043,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2863 i32.const 1 call $~lib/builtins/abort @@ -48751,7 +46061,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2864 i32.const 1 call $~lib/builtins/abort @@ -48770,7 +46080,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2866 i32.const 1 call $~lib/builtins/abort @@ -48789,7 +46099,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2867 i32.const 1 call $~lib/builtins/abort @@ -48808,7 +46118,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2868 i32.const 1 call $~lib/builtins/abort @@ -48827,7 +46137,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2869 i32.const 1 call $~lib/builtins/abort @@ -48846,7 +46156,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2870 i32.const 1 call $~lib/builtins/abort @@ -48865,7 +46175,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2871 i32.const 1 call $~lib/builtins/abort @@ -48884,7 +46194,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2872 i32.const 1 call $~lib/builtins/abort @@ -48903,7 +46213,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2873 i32.const 1 call $~lib/builtins/abort @@ -48922,7 +46232,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2874 i32.const 1 call $~lib/builtins/abort @@ -48941,7 +46251,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2875 i32.const 1 call $~lib/builtins/abort @@ -48956,7 +46266,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2877 i32.const 1 call $~lib/builtins/abort @@ -48971,7 +46281,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2878 i32.const 1 call $~lib/builtins/abort @@ -48986,7 +46296,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2879 i32.const 1 call $~lib/builtins/abort @@ -49002,7 +46312,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2880 i32.const 1 call $~lib/builtins/abort @@ -49018,7 +46328,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2881 i32.const 1 call $~lib/builtins/abort @@ -49034,7 +46344,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2882 i32.const 1 call $~lib/builtins/abort @@ -49049,7 +46359,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2884 i32.const 1 call $~lib/builtins/abort @@ -49064,7 +46374,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2885 i32.const 1 call $~lib/builtins/abort @@ -49079,7 +46389,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2886 i32.const 1 call $~lib/builtins/abort @@ -49096,7 +46406,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2887 i32.const 1 call $~lib/builtins/abort @@ -49111,7 +46421,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2889 i32.const 1 call $~lib/builtins/abort @@ -49126,7 +46436,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2890 i32.const 1 call $~lib/builtins/abort @@ -49142,7 +46452,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2891 i32.const 1 call $~lib/builtins/abort @@ -49157,7 +46467,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2892 i32.const 1 call $~lib/builtins/abort @@ -49172,7 +46482,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2893 i32.const 1 call $~lib/builtins/abort @@ -49187,7 +46497,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2894 i32.const 1 call $~lib/builtins/abort @@ -49202,7 +46512,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2895 i32.const 1 call $~lib/builtins/abort @@ -49218,7 +46528,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2897 i32.const 1 call $~lib/builtins/abort @@ -49233,7 +46543,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2898 i32.const 1 call $~lib/builtins/abort @@ -49249,7 +46559,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2899 i32.const 1 call $~lib/builtins/abort @@ -49265,7 +46575,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2900 i32.const 1 call $~lib/builtins/abort @@ -49282,7 +46592,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2902 i32.const 1 call $~lib/builtins/abort @@ -49298,7 +46608,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2903 i32.const 1 call $~lib/builtins/abort @@ -49315,7 +46625,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2904 i32.const 1 call $~lib/builtins/abort @@ -49332,7 +46642,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2905 i32.const 1 call $~lib/builtins/abort @@ -49348,7 +46658,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2907 i32.const 1 call $~lib/builtins/abort @@ -49364,7 +46674,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2908 i32.const 1 call $~lib/builtins/abort @@ -49379,7 +46689,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2909 i32.const 1 call $~lib/builtins/abort @@ -49395,7 +46705,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2910 i32.const 1 call $~lib/builtins/abort @@ -49411,7 +46721,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2911 i32.const 1 call $~lib/builtins/abort @@ -49426,7 +46736,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2912 i32.const 1 call $~lib/builtins/abort @@ -49442,7 +46752,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2914 i32.const 1 call $~lib/builtins/abort @@ -49458,7 +46768,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2915 i32.const 1 call $~lib/builtins/abort @@ -49474,7 +46784,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2917 i32.const 1 call $~lib/builtins/abort @@ -49490,7 +46800,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2918 i32.const 1 call $~lib/builtins/abort @@ -49506,7 +46816,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2919 i32.const 1 call $~lib/builtins/abort @@ -49521,7 +46831,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2920 i32.const 1 call $~lib/builtins/abort @@ -49537,7 +46847,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2921 i32.const 1 call $~lib/builtins/abort @@ -49553,7 +46863,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2922 i32.const 1 call $~lib/builtins/abort @@ -49570,7 +46880,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2923 i32.const 1 call $~lib/builtins/abort @@ -49586,7 +46896,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2925 i32.const 1 call $~lib/builtins/abort @@ -49602,7 +46912,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2926 i32.const 1 call $~lib/builtins/abort @@ -49619,7 +46929,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2928 i32.const 1 call $~lib/builtins/abort @@ -49636,7 +46946,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2929 i32.const 1 call $~lib/builtins/abort @@ -49653,7 +46963,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2930 i32.const 1 call $~lib/builtins/abort @@ -49670,7 +46980,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2931 i32.const 1 call $~lib/builtins/abort @@ -49688,7 +46998,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2932 i32.const 1 call $~lib/builtins/abort @@ -49705,7 +47015,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2933 i32.const 1 call $~lib/builtins/abort @@ -49722,7 +47032,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2934 i32.const 1 call $~lib/builtins/abort @@ -49739,7 +47049,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2935 i32.const 1 call $~lib/builtins/abort @@ -49756,7 +47066,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2937 i32.const 1 call $~lib/builtins/abort @@ -49772,7 +47082,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2938 i32.const 1 call $~lib/builtins/abort @@ -49789,7 +47099,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2939 i32.const 1 call $~lib/builtins/abort @@ -49809,7 +47119,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2941 i32.const 1 call $~lib/builtins/abort @@ -49825,7 +47135,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2942 i32.const 1 call $~lib/builtins/abort @@ -49842,7 +47152,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2944 i32.const 1 call $~lib/builtins/abort @@ -49859,7 +47169,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2945 i32.const 1 call $~lib/builtins/abort @@ -49876,7 +47186,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2946 i32.const 1 call $~lib/builtins/abort @@ -49893,7 +47203,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2947 i32.const 1 call $~lib/builtins/abort @@ -49910,7 +47220,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2948 i32.const 1 call $~lib/builtins/abort @@ -49927,7 +47237,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2949 i32.const 1 call $~lib/builtins/abort @@ -49944,7 +47254,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2950 i32.const 1 call $~lib/builtins/abort @@ -49961,7 +47271,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2951 i32.const 1 call $~lib/builtins/abort @@ -49978,7 +47288,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2952 i32.const 1 call $~lib/builtins/abort @@ -49995,7 +47305,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2953 i32.const 1 call $~lib/builtins/abort @@ -50012,7 +47322,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2954 i32.const 1 call $~lib/builtins/abort @@ -50029,7 +47339,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2955 i32.const 1 call $~lib/builtins/abort @@ -50046,7 +47356,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2956 i32.const 1 call $~lib/builtins/abort @@ -50063,7 +47373,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2957 i32.const 1 call $~lib/builtins/abort @@ -50080,7 +47390,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2958 i32.const 1 call $~lib/builtins/abort @@ -50097,7 +47407,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2959 i32.const 1 call $~lib/builtins/abort @@ -50114,7 +47424,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2960 i32.const 1 call $~lib/builtins/abort @@ -50131,7 +47441,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2961 i32.const 1 call $~lib/builtins/abort @@ -50146,7 +47456,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2962 i32.const 1 call $~lib/builtins/abort @@ -50161,7 +47471,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2963 i32.const 1 call $~lib/builtins/abort @@ -50178,7 +47488,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2965 i32.const 1 call $~lib/builtins/abort @@ -50195,7 +47505,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2966 i32.const 1 call $~lib/builtins/abort @@ -50211,7 +47521,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2967 i32.const 1 call $~lib/builtins/abort @@ -50228,7 +47538,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2968 i32.const 1 call $~lib/builtins/abort @@ -50245,7 +47555,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2969 i32.const 1 call $~lib/builtins/abort @@ -50262,7 +47572,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2970 i32.const 1 call $~lib/builtins/abort @@ -50279,7 +47589,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2971 i32.const 1 call $~lib/builtins/abort @@ -50295,7 +47605,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2973 i32.const 1 call $~lib/builtins/abort @@ -50312,7 +47622,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2974 i32.const 1 call $~lib/builtins/abort @@ -50331,7 +47641,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2976 i32.const 1 call $~lib/builtins/abort @@ -50350,7 +47660,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2977 i32.const 1 call $~lib/builtins/abort @@ -50369,7 +47679,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2978 i32.const 1 call $~lib/builtins/abort @@ -50387,7 +47697,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2979 i32.const 1 call $~lib/builtins/abort @@ -50406,7 +47716,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2980 i32.const 1 call $~lib/builtins/abort @@ -50425,7 +47735,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2981 i32.const 1 call $~lib/builtins/abort @@ -50444,7 +47754,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2982 i32.const 1 call $~lib/builtins/abort @@ -50463,7 +47773,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2983 i32.const 1 call $~lib/builtins/abort @@ -50481,7 +47791,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2984 i32.const 1 call $~lib/builtins/abort @@ -50501,7 +47811,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2985 i32.const 1 call $~lib/builtins/abort @@ -50520,7 +47830,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2986 i32.const 1 call $~lib/builtins/abort @@ -50539,7 +47849,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2988 i32.const 1 call $~lib/builtins/abort @@ -50557,7 +47867,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2989 i32.const 1 call $~lib/builtins/abort @@ -50577,7 +47887,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2990 i32.const 1 call $~lib/builtins/abort @@ -50596,7 +47906,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 2991 i32.const 1 call $~lib/builtins/abort @@ -50628,7 +47938,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3000 i32.const 3 call $~lib/builtins/abort @@ -50669,7 +47979,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3008 i32.const 3 call $~lib/builtins/abort @@ -50690,7 +48000,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3022 i32.const 1 call $~lib/builtins/abort @@ -50704,7 +48014,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3023 i32.const 1 call $~lib/builtins/abort @@ -50718,7 +48028,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3024 i32.const 1 call $~lib/builtins/abort @@ -50732,7 +48042,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3025 i32.const 1 call $~lib/builtins/abort @@ -50746,7 +48056,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3026 i32.const 1 call $~lib/builtins/abort @@ -50760,7 +48070,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3027 i32.const 1 call $~lib/builtins/abort @@ -50774,7 +48084,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3028 i32.const 1 call $~lib/builtins/abort @@ -50788,7 +48098,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3029 i32.const 1 call $~lib/builtins/abort @@ -50802,7 +48112,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3030 i32.const 1 call $~lib/builtins/abort @@ -50816,7 +48126,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3031 i32.const 1 call $~lib/builtins/abort @@ -50830,7 +48140,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3034 i32.const 1 call $~lib/builtins/abort @@ -50844,7 +48154,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3035 i32.const 1 call $~lib/builtins/abort @@ -50860,7 +48170,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3036 i32.const 1 call $~lib/builtins/abort @@ -50874,7 +48184,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3037 i32.const 1 call $~lib/builtins/abort @@ -50888,7 +48198,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3038 i32.const 1 call $~lib/builtins/abort @@ -50902,7 +48212,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3039 i32.const 1 call $~lib/builtins/abort @@ -50916,7 +48226,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3040 i32.const 1 call $~lib/builtins/abort @@ -50930,7 +48240,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3041 i32.const 1 call $~lib/builtins/abort @@ -50944,7 +48254,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3042 i32.const 1 call $~lib/builtins/abort @@ -50958,7 +48268,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3043 i32.const 1 call $~lib/builtins/abort @@ -50972,7 +48282,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3044 i32.const 1 call $~lib/builtins/abort @@ -50986,7 +48296,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3045 i32.const 1 call $~lib/builtins/abort @@ -51000,7 +48310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3046 i32.const 1 call $~lib/builtins/abort @@ -51014,7 +48324,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3047 i32.const 1 call $~lib/builtins/abort @@ -51028,7 +48338,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3048 i32.const 1 call $~lib/builtins/abort @@ -51042,7 +48352,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3049 i32.const 1 call $~lib/builtins/abort @@ -51056,7 +48366,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3050 i32.const 1 call $~lib/builtins/abort @@ -51069,7 +48379,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3052 i32.const 1 call $~lib/builtins/abort @@ -51082,7 +48392,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3053 i32.const 1 call $~lib/builtins/abort @@ -51095,7 +48405,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3054 i32.const 1 call $~lib/builtins/abort @@ -51108,7 +48418,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3055 i32.const 1 call $~lib/builtins/abort @@ -51121,7 +48431,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3056 i32.const 1 call $~lib/builtins/abort @@ -51135,7 +48445,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3065 i32.const 1 call $~lib/builtins/abort @@ -51149,7 +48459,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3066 i32.const 1 call $~lib/builtins/abort @@ -51163,7 +48473,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3067 i32.const 1 call $~lib/builtins/abort @@ -51177,7 +48487,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3068 i32.const 1 call $~lib/builtins/abort @@ -51191,7 +48501,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3069 i32.const 1 call $~lib/builtins/abort @@ -51205,7 +48515,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3070 i32.const 1 call $~lib/builtins/abort @@ -51219,7 +48529,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3071 i32.const 1 call $~lib/builtins/abort @@ -51233,7 +48543,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3072 i32.const 1 call $~lib/builtins/abort @@ -51247,7 +48557,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3073 i32.const 1 call $~lib/builtins/abort @@ -51261,7 +48571,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3074 i32.const 1 call $~lib/builtins/abort @@ -51275,7 +48585,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3077 i32.const 1 call $~lib/builtins/abort @@ -51289,7 +48599,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3078 i32.const 1 call $~lib/builtins/abort @@ -51305,7 +48615,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3079 i32.const 1 call $~lib/builtins/abort @@ -51319,7 +48629,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3080 i32.const 1 call $~lib/builtins/abort @@ -51333,7 +48643,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3081 i32.const 1 call $~lib/builtins/abort @@ -51347,7 +48657,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3082 i32.const 1 call $~lib/builtins/abort @@ -51361,7 +48671,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3083 i32.const 1 call $~lib/builtins/abort @@ -51375,7 +48685,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3084 i32.const 1 call $~lib/builtins/abort @@ -51389,7 +48699,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3085 i32.const 1 call $~lib/builtins/abort @@ -51403,7 +48713,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3086 i32.const 1 call $~lib/builtins/abort @@ -51417,7 +48727,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3087 i32.const 1 call $~lib/builtins/abort @@ -51431,7 +48741,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3088 i32.const 1 call $~lib/builtins/abort @@ -51445,7 +48755,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3089 i32.const 1 call $~lib/builtins/abort @@ -51459,7 +48769,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3090 i32.const 1 call $~lib/builtins/abort @@ -51473,7 +48783,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3091 i32.const 1 call $~lib/builtins/abort @@ -51487,7 +48797,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3092 i32.const 1 call $~lib/builtins/abort @@ -51501,7 +48811,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3093 i32.const 1 call $~lib/builtins/abort @@ -51515,7 +48825,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3104 i32.const 1 call $~lib/builtins/abort @@ -51529,7 +48839,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3105 i32.const 1 call $~lib/builtins/abort @@ -51543,7 +48853,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3106 i32.const 1 call $~lib/builtins/abort @@ -51557,7 +48867,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3107 i32.const 1 call $~lib/builtins/abort @@ -51571,7 +48881,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3108 i32.const 1 call $~lib/builtins/abort @@ -51585,7 +48895,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3109 i32.const 1 call $~lib/builtins/abort @@ -51599,7 +48909,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3110 i32.const 1 call $~lib/builtins/abort @@ -51614,7 +48924,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3111 i32.const 1 call $~lib/builtins/abort @@ -51628,7 +48938,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3112 i32.const 1 call $~lib/builtins/abort @@ -51642,7 +48952,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3120 i32.const 1 call $~lib/builtins/abort @@ -51656,7 +48966,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3121 i32.const 1 call $~lib/builtins/abort @@ -51670,7 +48980,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3122 i32.const 1 call $~lib/builtins/abort @@ -51684,7 +48994,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3123 i32.const 1 call $~lib/builtins/abort @@ -51698,7 +49008,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3124 i32.const 1 call $~lib/builtins/abort @@ -51712,7 +49022,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3125 i32.const 1 call $~lib/builtins/abort @@ -51726,7 +49036,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3126 i32.const 1 call $~lib/builtins/abort @@ -51741,7 +49051,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3127 i32.const 1 call $~lib/builtins/abort @@ -51755,7 +49065,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3128 i32.const 1 call $~lib/builtins/abort @@ -52014,7 +49324,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3165 i32.const 1 call $~lib/builtins/abort @@ -52029,7 +49339,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3166 i32.const 1 call $~lib/builtins/abort @@ -52044,7 +49354,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3167 i32.const 1 call $~lib/builtins/abort @@ -52059,7 +49369,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3168 i32.const 1 call $~lib/builtins/abort @@ -52074,7 +49384,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3169 i32.const 1 call $~lib/builtins/abort @@ -52089,7 +49399,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3170 i32.const 1 call $~lib/builtins/abort @@ -52104,7 +49414,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3171 i32.const 1 call $~lib/builtins/abort @@ -52119,7 +49429,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3172 i32.const 1 call $~lib/builtins/abort @@ -52134,7 +49444,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3173 i32.const 1 call $~lib/builtins/abort @@ -52149,7 +49459,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3174 i32.const 1 call $~lib/builtins/abort @@ -52164,7 +49474,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3177 i32.const 1 call $~lib/builtins/abort @@ -52179,7 +49489,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3178 i32.const 1 call $~lib/builtins/abort @@ -52194,7 +49504,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3179 i32.const 1 call $~lib/builtins/abort @@ -52209,7 +49519,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3180 i32.const 1 call $~lib/builtins/abort @@ -52224,7 +49534,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3181 i32.const 1 call $~lib/builtins/abort @@ -52239,7 +49549,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3182 i32.const 1 call $~lib/builtins/abort @@ -52254,7 +49564,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3183 i32.const 1 call $~lib/builtins/abort @@ -52269,7 +49579,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3184 i32.const 1 call $~lib/builtins/abort @@ -52284,7 +49594,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3185 i32.const 1 call $~lib/builtins/abort @@ -52299,7 +49609,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3186 i32.const 1 call $~lib/builtins/abort @@ -52314,7 +49624,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3187 i32.const 1 call $~lib/builtins/abort @@ -52330,7 +49640,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3188 i32.const 1 call $~lib/builtins/abort @@ -52345,7 +49655,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3189 i32.const 1 call $~lib/builtins/abort @@ -52360,7 +49670,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3190 i32.const 1 call $~lib/builtins/abort @@ -52375,7 +49685,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3191 i32.const 1 call $~lib/builtins/abort @@ -52390,7 +49700,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3192 i32.const 1 call $~lib/builtins/abort @@ -52405,7 +49715,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3193 i32.const 1 call $~lib/builtins/abort @@ -52420,7 +49730,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3194 i32.const 1 call $~lib/builtins/abort @@ -52435,7 +49745,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3195 i32.const 1 call $~lib/builtins/abort @@ -52450,7 +49760,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3196 i32.const 1 call $~lib/builtins/abort @@ -52465,7 +49775,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3197 i32.const 1 call $~lib/builtins/abort @@ -52480,7 +49790,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3198 i32.const 1 call $~lib/builtins/abort @@ -52495,7 +49805,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3199 i32.const 1 call $~lib/builtins/abort @@ -52510,7 +49820,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3200 i32.const 1 call $~lib/builtins/abort @@ -52526,7 +49836,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3201 i32.const 1 call $~lib/builtins/abort @@ -52541,7 +49851,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3202 i32.const 1 call $~lib/builtins/abort @@ -52556,7 +49866,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3203 i32.const 1 call $~lib/builtins/abort @@ -52571,7 +49881,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3204 i32.const 1 call $~lib/builtins/abort @@ -52586,7 +49896,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3205 i32.const 1 call $~lib/builtins/abort @@ -52602,7 +49912,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3206 i32.const 1 call $~lib/builtins/abort @@ -52617,7 +49927,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3207 i32.const 1 call $~lib/builtins/abort @@ -52632,7 +49942,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3208 i32.const 1 call $~lib/builtins/abort @@ -52647,7 +49957,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3209 i32.const 1 call $~lib/builtins/abort @@ -52662,7 +49972,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3210 i32.const 1 call $~lib/builtins/abort @@ -52678,7 +49988,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3211 i32.const 1 call $~lib/builtins/abort @@ -52693,7 +50003,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3212 i32.const 1 call $~lib/builtins/abort @@ -52708,7 +50018,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3213 i32.const 1 call $~lib/builtins/abort @@ -52723,7 +50033,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3214 i32.const 1 call $~lib/builtins/abort @@ -52738,7 +50048,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3215 i32.const 1 call $~lib/builtins/abort @@ -52754,7 +50064,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3216 i32.const 1 call $~lib/builtins/abort @@ -52769,7 +50079,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3217 i32.const 1 call $~lib/builtins/abort @@ -52784,7 +50094,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3218 i32.const 1 call $~lib/builtins/abort @@ -52799,7 +50109,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3219 i32.const 1 call $~lib/builtins/abort @@ -52815,7 +50125,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3220 i32.const 1 call $~lib/builtins/abort @@ -52830,7 +50140,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3221 i32.const 1 call $~lib/builtins/abort @@ -52845,7 +50155,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3222 i32.const 1 call $~lib/builtins/abort @@ -52860,7 +50170,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3223 i32.const 1 call $~lib/builtins/abort @@ -52875,7 +50185,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3224 i32.const 1 call $~lib/builtins/abort @@ -52891,7 +50201,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3225 i32.const 1 call $~lib/builtins/abort @@ -52907,7 +50217,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3226 i32.const 1 call $~lib/builtins/abort @@ -52923,7 +50233,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3227 i32.const 1 call $~lib/builtins/abort @@ -52938,7 +50248,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3228 i32.const 1 call $~lib/builtins/abort @@ -52953,7 +50263,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3229 i32.const 1 call $~lib/builtins/abort @@ -52968,7 +50278,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3230 i32.const 1 call $~lib/builtins/abort @@ -52983,7 +50293,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3231 i32.const 1 call $~lib/builtins/abort @@ -52998,7 +50308,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3232 i32.const 1 call $~lib/builtins/abort @@ -53013,7 +50323,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3233 i32.const 1 call $~lib/builtins/abort @@ -53029,7 +50339,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3234 i32.const 1 call $~lib/builtins/abort @@ -53045,7 +50355,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3235 i32.const 1 call $~lib/builtins/abort @@ -53061,7 +50371,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3236 i32.const 1 call $~lib/builtins/abort @@ -53077,7 +50387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3237 i32.const 1 call $~lib/builtins/abort @@ -53094,7 +50404,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3238 i32.const 1 call $~lib/builtins/abort @@ -53109,7 +50419,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3239 i32.const 1 call $~lib/builtins/abort @@ -53124,7 +50434,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3240 i32.const 1 call $~lib/builtins/abort @@ -53139,7 +50449,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3241 i32.const 1 call $~lib/builtins/abort @@ -53154,7 +50464,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3242 i32.const 1 call $~lib/builtins/abort @@ -53169,7 +50479,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3243 i32.const 1 call $~lib/builtins/abort @@ -53184,7 +50494,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3252 i32.const 1 call $~lib/builtins/abort @@ -53199,7 +50509,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3253 i32.const 1 call $~lib/builtins/abort @@ -53214,7 +50524,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3254 i32.const 1 call $~lib/builtins/abort @@ -53229,7 +50539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3255 i32.const 1 call $~lib/builtins/abort @@ -53244,7 +50554,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3256 i32.const 1 call $~lib/builtins/abort @@ -53259,7 +50569,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3257 i32.const 1 call $~lib/builtins/abort @@ -53274,7 +50584,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3258 i32.const 1 call $~lib/builtins/abort @@ -53289,7 +50599,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3259 i32.const 1 call $~lib/builtins/abort @@ -53304,7 +50614,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3260 i32.const 1 call $~lib/builtins/abort @@ -53319,7 +50629,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3261 i32.const 1 call $~lib/builtins/abort @@ -53334,7 +50644,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3264 i32.const 1 call $~lib/builtins/abort @@ -53349,7 +50659,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3265 i32.const 1 call $~lib/builtins/abort @@ -53364,7 +50674,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3266 i32.const 1 call $~lib/builtins/abort @@ -53379,7 +50689,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3267 i32.const 1 call $~lib/builtins/abort @@ -53394,7 +50704,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3268 i32.const 1 call $~lib/builtins/abort @@ -53409,7 +50719,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3269 i32.const 1 call $~lib/builtins/abort @@ -53424,7 +50734,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3270 i32.const 1 call $~lib/builtins/abort @@ -53439,7 +50749,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3271 i32.const 1 call $~lib/builtins/abort @@ -53454,7 +50764,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3272 i32.const 1 call $~lib/builtins/abort @@ -53469,7 +50779,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3273 i32.const 1 call $~lib/builtins/abort @@ -53484,7 +50794,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3274 i32.const 1 call $~lib/builtins/abort @@ -53500,7 +50810,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3275 i32.const 1 call $~lib/builtins/abort @@ -53515,7 +50825,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3276 i32.const 1 call $~lib/builtins/abort @@ -53530,7 +50840,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3277 i32.const 1 call $~lib/builtins/abort @@ -53545,7 +50855,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3278 i32.const 1 call $~lib/builtins/abort @@ -53560,7 +50870,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3279 i32.const 1 call $~lib/builtins/abort @@ -53575,7 +50885,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3280 i32.const 1 call $~lib/builtins/abort @@ -53590,7 +50900,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3281 i32.const 1 call $~lib/builtins/abort @@ -53605,7 +50915,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3282 i32.const 1 call $~lib/builtins/abort @@ -53620,7 +50930,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3283 i32.const 1 call $~lib/builtins/abort @@ -53635,7 +50945,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3284 i32.const 1 call $~lib/builtins/abort @@ -53650,7 +50960,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3285 i32.const 1 call $~lib/builtins/abort @@ -53665,7 +50975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3286 i32.const 1 call $~lib/builtins/abort @@ -53680,7 +50990,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3287 i32.const 1 call $~lib/builtins/abort @@ -53696,7 +51006,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3288 i32.const 1 call $~lib/builtins/abort @@ -53711,7 +51021,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3289 i32.const 1 call $~lib/builtins/abort @@ -53726,7 +51036,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3290 i32.const 1 call $~lib/builtins/abort @@ -53741,7 +51051,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3291 i32.const 1 call $~lib/builtins/abort @@ -53756,7 +51066,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3292 i32.const 1 call $~lib/builtins/abort @@ -53772,7 +51082,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3293 i32.const 1 call $~lib/builtins/abort @@ -53787,7 +51097,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3294 i32.const 1 call $~lib/builtins/abort @@ -53802,7 +51112,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3295 i32.const 1 call $~lib/builtins/abort @@ -53817,7 +51127,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3296 i32.const 1 call $~lib/builtins/abort @@ -53832,7 +51142,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3297 i32.const 1 call $~lib/builtins/abort @@ -53848,7 +51158,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3298 i32.const 1 call $~lib/builtins/abort @@ -53863,7 +51173,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3299 i32.const 1 call $~lib/builtins/abort @@ -53878,7 +51188,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3300 i32.const 1 call $~lib/builtins/abort @@ -53893,7 +51203,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3301 i32.const 1 call $~lib/builtins/abort @@ -53908,7 +51218,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3302 i32.const 1 call $~lib/builtins/abort @@ -53924,7 +51234,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3303 i32.const 1 call $~lib/builtins/abort @@ -53939,7 +51249,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3304 i32.const 1 call $~lib/builtins/abort @@ -53954,7 +51264,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3305 i32.const 1 call $~lib/builtins/abort @@ -53969,7 +51279,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3306 i32.const 1 call $~lib/builtins/abort @@ -53985,7 +51295,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3307 i32.const 1 call $~lib/builtins/abort @@ -54000,7 +51310,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3308 i32.const 1 call $~lib/builtins/abort @@ -54015,7 +51325,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3309 i32.const 1 call $~lib/builtins/abort @@ -54030,7 +51340,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3310 i32.const 1 call $~lib/builtins/abort @@ -54045,7 +51355,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3311 i32.const 1 call $~lib/builtins/abort @@ -54061,7 +51371,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3312 i32.const 1 call $~lib/builtins/abort @@ -54077,7 +51387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3313 i32.const 1 call $~lib/builtins/abort @@ -54093,7 +51403,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3314 i32.const 1 call $~lib/builtins/abort @@ -54108,7 +51418,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3315 i32.const 1 call $~lib/builtins/abort @@ -54123,7 +51433,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3316 i32.const 1 call $~lib/builtins/abort @@ -54138,7 +51448,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3317 i32.const 1 call $~lib/builtins/abort @@ -54153,7 +51463,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3318 i32.const 1 call $~lib/builtins/abort @@ -54168,7 +51478,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3319 i32.const 1 call $~lib/builtins/abort @@ -54183,7 +51493,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3320 i32.const 1 call $~lib/builtins/abort @@ -54199,7 +51509,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3321 i32.const 1 call $~lib/builtins/abort @@ -54215,7 +51525,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3322 i32.const 1 call $~lib/builtins/abort @@ -54231,7 +51541,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3323 i32.const 1 call $~lib/builtins/abort @@ -54247,7 +51557,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3324 i32.const 1 call $~lib/builtins/abort @@ -54264,7 +51574,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3325 i32.const 1 call $~lib/builtins/abort @@ -54279,7 +51589,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3326 i32.const 1 call $~lib/builtins/abort @@ -54294,7 +51604,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3327 i32.const 1 call $~lib/builtins/abort @@ -54309,7 +51619,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3328 i32.const 1 call $~lib/builtins/abort @@ -54324,7 +51634,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3329 i32.const 1 call $~lib/builtins/abort @@ -54339,7 +51649,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3330 i32.const 1 call $~lib/builtins/abort @@ -54353,7 +51663,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3342 i32.const 1 call $~lib/builtins/abort @@ -54367,7 +51677,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3343 i32.const 1 call $~lib/builtins/abort @@ -54381,7 +51691,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3344 i32.const 1 call $~lib/builtins/abort @@ -54395,7 +51705,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3345 i32.const 1 call $~lib/builtins/abort @@ -54409,7 +51719,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3346 i32.const 1 call $~lib/builtins/abort @@ -54423,7 +51733,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3347 i32.const 1 call $~lib/builtins/abort @@ -54437,7 +51747,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3348 i32.const 1 call $~lib/builtins/abort @@ -54451,7 +51761,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3349 i32.const 1 call $~lib/builtins/abort @@ -54465,7 +51775,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3350 i32.const 1 call $~lib/builtins/abort @@ -54479,7 +51789,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3351 i32.const 1 call $~lib/builtins/abort @@ -54493,7 +51803,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3354 i32.const 1 call $~lib/builtins/abort @@ -54507,7 +51817,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3355 i32.const 1 call $~lib/builtins/abort @@ -54521,7 +51831,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3356 i32.const 1 call $~lib/builtins/abort @@ -54535,7 +51845,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3357 i32.const 1 call $~lib/builtins/abort @@ -54551,7 +51861,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3358 i32.const 1 call $~lib/builtins/abort @@ -54567,7 +51877,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3359 i32.const 1 call $~lib/builtins/abort @@ -54581,7 +51891,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3360 i32.const 1 call $~lib/builtins/abort @@ -54595,7 +51905,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3361 i32.const 1 call $~lib/builtins/abort @@ -54609,7 +51919,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3362 i32.const 1 call $~lib/builtins/abort @@ -54623,7 +51933,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3363 i32.const 1 call $~lib/builtins/abort @@ -54637,7 +51947,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3364 i32.const 1 call $~lib/builtins/abort @@ -54651,7 +51961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3365 i32.const 1 call $~lib/builtins/abort @@ -54665,7 +51975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3366 i32.const 1 call $~lib/builtins/abort @@ -54679,7 +51989,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3367 i32.const 1 call $~lib/builtins/abort @@ -54693,7 +52003,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3368 i32.const 1 call $~lib/builtins/abort @@ -54707,7 +52017,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3369 i32.const 1 call $~lib/builtins/abort @@ -54721,7 +52031,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3370 i32.const 1 call $~lib/builtins/abort @@ -54735,7 +52045,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3371 i32.const 1 call $~lib/builtins/abort @@ -54749,7 +52059,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3372 i32.const 1 call $~lib/builtins/abort @@ -54763,7 +52073,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3373 i32.const 1 call $~lib/builtins/abort @@ -54777,7 +52087,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3374 i32.const 1 call $~lib/builtins/abort @@ -54791,7 +52101,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3375 i32.const 1 call $~lib/builtins/abort @@ -54805,7 +52115,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3376 i32.const 1 call $~lib/builtins/abort @@ -54819,7 +52129,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3377 i32.const 1 call $~lib/builtins/abort @@ -54833,7 +52143,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3378 i32.const 1 call $~lib/builtins/abort @@ -54849,7 +52159,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3379 i32.const 1 call $~lib/builtins/abort @@ -54865,7 +52175,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3380 i32.const 1 call $~lib/builtins/abort @@ -54881,7 +52191,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3381 i32.const 1 call $~lib/builtins/abort @@ -54897,7 +52207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3382 i32.const 1 call $~lib/builtins/abort @@ -54913,7 +52223,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3383 i32.const 1 call $~lib/builtins/abort @@ -54929,7 +52239,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3384 i32.const 1 call $~lib/builtins/abort @@ -54945,7 +52255,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3385 i32.const 1 call $~lib/builtins/abort @@ -54961,7 +52271,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3386 i32.const 1 call $~lib/builtins/abort @@ -54977,7 +52287,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3387 i32.const 1 call $~lib/builtins/abort @@ -54993,7 +52303,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3388 i32.const 1 call $~lib/builtins/abort @@ -55009,7 +52319,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3389 i32.const 1 call $~lib/builtins/abort @@ -55025,7 +52335,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3390 i32.const 1 call $~lib/builtins/abort @@ -55039,7 +52349,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3393 i32.const 1 call $~lib/builtins/abort @@ -55053,7 +52363,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3394 i32.const 1 call $~lib/builtins/abort @@ -55067,7 +52377,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3395 i32.const 1 call $~lib/builtins/abort @@ -55082,7 +52392,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3396 i32.const 1 call $~lib/builtins/abort @@ -55096,7 +52406,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3397 i32.const 1 call $~lib/builtins/abort @@ -55114,7 +52424,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3400 i32.const 1 call $~lib/builtins/abort @@ -55136,7 +52446,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3401 i32.const 1 call $~lib/builtins/abort @@ -55149,7 +52459,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3404 i32.const 1 call $~lib/builtins/abort @@ -55162,7 +52472,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3405 i32.const 1 call $~lib/builtins/abort @@ -55175,7 +52485,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3407 i32.const 1 call $~lib/builtins/abort @@ -55188,7 +52498,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3408 i32.const 1 call $~lib/builtins/abort @@ -55201,7 +52511,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3411 i32.const 1 call $~lib/builtins/abort @@ -55214,7 +52524,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3412 i32.const 1 call $~lib/builtins/abort @@ -55229,7 +52539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3413 i32.const 1 call $~lib/builtins/abort @@ -55245,7 +52555,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3414 i32.const 1 call $~lib/builtins/abort @@ -55258,7 +52568,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3416 i32.const 1 call $~lib/builtins/abort @@ -55273,7 +52583,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3417 i32.const 1 call $~lib/builtins/abort @@ -55290,7 +52600,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3419 i32.const 1 call $~lib/builtins/abort @@ -55307,7 +52617,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3420 i32.const 1 call $~lib/builtins/abort @@ -55324,7 +52634,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3421 i32.const 1 call $~lib/builtins/abort @@ -55341,7 +52651,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3422 i32.const 1 call $~lib/builtins/abort @@ -55358,7 +52668,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3423 i32.const 1 call $~lib/builtins/abort @@ -55371,7 +52681,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3426 i32.const 1 call $~lib/builtins/abort @@ -55385,7 +52695,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3427 i32.const 1 call $~lib/builtins/abort @@ -55399,7 +52709,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3436 i32.const 1 call $~lib/builtins/abort @@ -55413,7 +52723,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3437 i32.const 1 call $~lib/builtins/abort @@ -55427,7 +52737,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3438 i32.const 1 call $~lib/builtins/abort @@ -55441,7 +52751,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3439 i32.const 1 call $~lib/builtins/abort @@ -55455,7 +52765,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3440 i32.const 1 call $~lib/builtins/abort @@ -55469,7 +52779,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3441 i32.const 1 call $~lib/builtins/abort @@ -55483,7 +52793,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3442 i32.const 1 call $~lib/builtins/abort @@ -55497,7 +52807,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3443 i32.const 1 call $~lib/builtins/abort @@ -55511,7 +52821,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3444 i32.const 1 call $~lib/builtins/abort @@ -55525,7 +52835,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3445 i32.const 1 call $~lib/builtins/abort @@ -55539,7 +52849,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3448 i32.const 1 call $~lib/builtins/abort @@ -55553,7 +52863,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3449 i32.const 1 call $~lib/builtins/abort @@ -55567,7 +52877,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3450 i32.const 1 call $~lib/builtins/abort @@ -55582,7 +52892,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3451 i32.const 1 call $~lib/builtins/abort @@ -55596,7 +52906,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3452 i32.const 1 call $~lib/builtins/abort @@ -55610,7 +52920,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3455 i32.const 1 call $~lib/builtins/abort @@ -55624,7 +52934,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3456 i32.const 1 call $~lib/builtins/abort @@ -55638,7 +52948,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3457 i32.const 1 call $~lib/builtins/abort @@ -55652,7 +52962,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3458 i32.const 1 call $~lib/builtins/abort @@ -55668,7 +52978,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3459 i32.const 1 call $~lib/builtins/abort @@ -55684,7 +52994,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3460 i32.const 1 call $~lib/builtins/abort @@ -55698,7 +53008,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3461 i32.const 1 call $~lib/builtins/abort @@ -55712,7 +53022,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3462 i32.const 1 call $~lib/builtins/abort @@ -55726,7 +53036,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3463 i32.const 1 call $~lib/builtins/abort @@ -55740,7 +53050,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3464 i32.const 1 call $~lib/builtins/abort @@ -55754,7 +53064,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3465 i32.const 1 call $~lib/builtins/abort @@ -55768,7 +53078,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3466 i32.const 1 call $~lib/builtins/abort @@ -55782,7 +53092,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3467 i32.const 1 call $~lib/builtins/abort @@ -55796,7 +53106,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3468 i32.const 1 call $~lib/builtins/abort @@ -55810,7 +53120,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3469 i32.const 1 call $~lib/builtins/abort @@ -55824,7 +53134,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3470 i32.const 1 call $~lib/builtins/abort @@ -55838,7 +53148,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3471 i32.const 1 call $~lib/builtins/abort @@ -55852,7 +53162,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3472 i32.const 1 call $~lib/builtins/abort @@ -55866,7 +53176,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3473 i32.const 1 call $~lib/builtins/abort @@ -55880,7 +53190,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3474 i32.const 1 call $~lib/builtins/abort @@ -55894,7 +53204,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3475 i32.const 1 call $~lib/builtins/abort @@ -55908,7 +53218,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3476 i32.const 1 call $~lib/builtins/abort @@ -55922,7 +53232,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3477 i32.const 1 call $~lib/builtins/abort @@ -55936,7 +53246,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3478 i32.const 1 call $~lib/builtins/abort @@ -55950,7 +53260,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3479 i32.const 1 call $~lib/builtins/abort @@ -55964,7 +53274,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3480 i32.const 1 call $~lib/builtins/abort @@ -55980,7 +53290,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3481 i32.const 1 call $~lib/builtins/abort @@ -55996,7 +53306,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3482 i32.const 1 call $~lib/builtins/abort @@ -56012,7 +53322,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3483 i32.const 1 call $~lib/builtins/abort @@ -56028,7 +53338,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3484 i32.const 1 call $~lib/builtins/abort @@ -56044,7 +53354,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3485 i32.const 1 call $~lib/builtins/abort @@ -56060,7 +53370,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3486 i32.const 1 call $~lib/builtins/abort @@ -56076,7 +53386,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3487 i32.const 1 call $~lib/builtins/abort @@ -56092,7 +53402,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3488 i32.const 1 call $~lib/builtins/abort @@ -56108,7 +53418,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3489 i32.const 1 call $~lib/builtins/abort @@ -56124,7 +53434,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3490 i32.const 1 call $~lib/builtins/abort @@ -56140,7 +53450,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3491 i32.const 1 call $~lib/builtins/abort @@ -56156,7 +53466,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3492 i32.const 1 call $~lib/builtins/abort @@ -56170,7 +53480,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3495 i32.const 1 call $~lib/builtins/abort @@ -56184,7 +53494,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3496 i32.const 1 call $~lib/builtins/abort @@ -56198,7 +53508,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3497 i32.const 1 call $~lib/builtins/abort @@ -56212,7 +53522,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3498 i32.const 1 call $~lib/builtins/abort @@ -56226,7 +53536,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3499 i32.const 1 call $~lib/builtins/abort @@ -56240,7 +53550,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3500 i32.const 1 call $~lib/builtins/abort @@ -56254,7 +53564,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3501 i32.const 1 call $~lib/builtins/abort @@ -56268,7 +53578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3502 i32.const 1 call $~lib/builtins/abort @@ -56282,7 +53592,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3503 i32.const 1 call $~lib/builtins/abort @@ -56296,7 +53606,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3504 i32.const 1 call $~lib/builtins/abort @@ -56310,7 +53620,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3505 i32.const 1 call $~lib/builtins/abort @@ -56324,7 +53634,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3506 i32.const 1 call $~lib/builtins/abort @@ -56338,7 +53648,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3507 i32.const 1 call $~lib/builtins/abort @@ -56353,7 +53663,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3508 i32.const 1 call $~lib/builtins/abort @@ -56367,7 +53677,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3520 i32.const 1 call $~lib/builtins/abort @@ -56381,7 +53691,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3521 i32.const 1 call $~lib/builtins/abort @@ -56395,7 +53705,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3522 i32.const 1 call $~lib/builtins/abort @@ -56409,7 +53719,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3523 i32.const 1 call $~lib/builtins/abort @@ -56423,7 +53733,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3524 i32.const 1 call $~lib/builtins/abort @@ -56437,7 +53747,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3525 i32.const 1 call $~lib/builtins/abort @@ -56451,7 +53761,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3526 i32.const 1 call $~lib/builtins/abort @@ -56465,7 +53775,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3527 i32.const 1 call $~lib/builtins/abort @@ -56479,7 +53789,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3528 i32.const 1 call $~lib/builtins/abort @@ -56493,7 +53803,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3529 i32.const 1 call $~lib/builtins/abort @@ -56507,7 +53817,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3532 i32.const 1 call $~lib/builtins/abort @@ -56521,7 +53831,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3533 i32.const 1 call $~lib/builtins/abort @@ -56535,7 +53845,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3534 i32.const 1 call $~lib/builtins/abort @@ -56551,7 +53861,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3535 i32.const 1 call $~lib/builtins/abort @@ -56565,7 +53875,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3536 i32.const 1 call $~lib/builtins/abort @@ -56579,7 +53889,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3545 i32.const 1 call $~lib/builtins/abort @@ -56593,7 +53903,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3546 i32.const 1 call $~lib/builtins/abort @@ -56607,7 +53917,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3547 i32.const 1 call $~lib/builtins/abort @@ -56621,7 +53931,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3548 i32.const 1 call $~lib/builtins/abort @@ -56635,7 +53945,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3549 i32.const 1 call $~lib/builtins/abort @@ -56649,7 +53959,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3550 i32.const 1 call $~lib/builtins/abort @@ -56663,7 +53973,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3551 i32.const 1 call $~lib/builtins/abort @@ -56677,7 +53987,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3552 i32.const 1 call $~lib/builtins/abort @@ -56691,7 +54001,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3553 i32.const 1 call $~lib/builtins/abort @@ -56705,7 +54015,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3554 i32.const 1 call $~lib/builtins/abort @@ -56719,7 +54029,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3557 i32.const 1 call $~lib/builtins/abort @@ -56733,7 +54043,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3558 i32.const 1 call $~lib/builtins/abort @@ -56747,7 +54057,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3559 i32.const 1 call $~lib/builtins/abort @@ -56763,7 +54073,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3560 i32.const 1 call $~lib/builtins/abort @@ -56777,7 +54087,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3561 i32.const 1 call $~lib/builtins/abort @@ -56791,7 +54101,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3573 i32.const 1 call $~lib/builtins/abort @@ -56805,7 +54115,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3574 i32.const 1 call $~lib/builtins/abort @@ -56819,7 +54129,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3575 i32.const 1 call $~lib/builtins/abort @@ -56833,7 +54143,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3576 i32.const 1 call $~lib/builtins/abort @@ -56847,7 +54157,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3577 i32.const 1 call $~lib/builtins/abort @@ -56861,7 +54171,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3578 i32.const 1 call $~lib/builtins/abort @@ -56875,7 +54185,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3579 i32.const 1 call $~lib/builtins/abort @@ -56889,7 +54199,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3580 i32.const 1 call $~lib/builtins/abort @@ -56903,7 +54213,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3581 i32.const 1 call $~lib/builtins/abort @@ -56917,7 +54227,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3582 i32.const 1 call $~lib/builtins/abort @@ -56931,7 +54241,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3585 i32.const 1 call $~lib/builtins/abort @@ -56945,7 +54255,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3586 i32.const 1 call $~lib/builtins/abort @@ -56960,7 +54270,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3587 i32.const 1 call $~lib/builtins/abort @@ -56974,7 +54284,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3588 i32.const 1 call $~lib/builtins/abort @@ -56988,7 +54298,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3589 i32.const 1 call $~lib/builtins/abort @@ -57002,7 +54312,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3590 i32.const 1 call $~lib/builtins/abort @@ -57016,7 +54326,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3591 i32.const 1 call $~lib/builtins/abort @@ -57030,7 +54340,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3592 i32.const 1 call $~lib/builtins/abort @@ -57044,7 +54354,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3593 i32.const 1 call $~lib/builtins/abort @@ -57058,7 +54368,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3594 i32.const 1 call $~lib/builtins/abort @@ -57072,7 +54382,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3595 i32.const 1 call $~lib/builtins/abort @@ -57086,7 +54396,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3596 i32.const 1 call $~lib/builtins/abort @@ -57100,7 +54410,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3597 i32.const 1 call $~lib/builtins/abort @@ -57114,7 +54424,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3598 i32.const 1 call $~lib/builtins/abort @@ -57128,7 +54438,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3599 i32.const 1 call $~lib/builtins/abort @@ -57142,7 +54452,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3600 i32.const 1 call $~lib/builtins/abort @@ -57156,7 +54466,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3601 i32.const 1 call $~lib/builtins/abort @@ -57170,7 +54480,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3602 i32.const 1 call $~lib/builtins/abort @@ -57184,7 +54494,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3603 i32.const 1 call $~lib/builtins/abort @@ -57198,7 +54508,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3604 i32.const 1 call $~lib/builtins/abort @@ -57212,7 +54522,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3605 i32.const 1 call $~lib/builtins/abort @@ -57226,7 +54536,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3606 i32.const 1 call $~lib/builtins/abort @@ -57240,7 +54550,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3607 i32.const 1 call $~lib/builtins/abort @@ -57254,7 +54564,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3608 i32.const 1 call $~lib/builtins/abort @@ -57268,7 +54578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3609 i32.const 1 call $~lib/builtins/abort @@ -57282,7 +54592,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3610 i32.const 1 call $~lib/builtins/abort @@ -57296,7 +54606,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3611 i32.const 1 call $~lib/builtins/abort @@ -57310,7 +54620,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3612 i32.const 1 call $~lib/builtins/abort @@ -57324,7 +54634,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3613 i32.const 1 call $~lib/builtins/abort @@ -57338,7 +54648,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3614 i32.const 1 call $~lib/builtins/abort @@ -57352,7 +54662,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3615 i32.const 1 call $~lib/builtins/abort @@ -57366,7 +54676,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3616 i32.const 1 call $~lib/builtins/abort @@ -57380,7 +54690,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3617 i32.const 1 call $~lib/builtins/abort @@ -57394,7 +54704,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3618 i32.const 1 call $~lib/builtins/abort @@ -57408,7 +54718,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3619 i32.const 1 call $~lib/builtins/abort @@ -57422,7 +54732,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3620 i32.const 1 call $~lib/builtins/abort @@ -57436,7 +54746,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3621 i32.const 1 call $~lib/builtins/abort @@ -57450,7 +54760,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3622 i32.const 1 call $~lib/builtins/abort @@ -57464,7 +54774,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3623 i32.const 1 call $~lib/builtins/abort @@ -57478,7 +54788,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3624 i32.const 1 call $~lib/builtins/abort @@ -57492,7 +54802,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3625 i32.const 1 call $~lib/builtins/abort @@ -57506,7 +54816,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3626 i32.const 1 call $~lib/builtins/abort @@ -57520,7 +54830,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3627 i32.const 1 call $~lib/builtins/abort @@ -57534,7 +54844,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3628 i32.const 1 call $~lib/builtins/abort @@ -57548,7 +54858,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3629 i32.const 1 call $~lib/builtins/abort @@ -57562,7 +54872,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3630 i32.const 1 call $~lib/builtins/abort @@ -57576,7 +54886,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3631 i32.const 1 call $~lib/builtins/abort @@ -57590,7 +54900,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3632 i32.const 1 call $~lib/builtins/abort @@ -57604,7 +54914,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3633 i32.const 1 call $~lib/builtins/abort @@ -57618,7 +54928,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3634 i32.const 1 call $~lib/builtins/abort @@ -57632,7 +54942,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3635 i32.const 1 call $~lib/builtins/abort @@ -57646,7 +54956,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3636 i32.const 1 call $~lib/builtins/abort @@ -57660,7 +54970,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3637 i32.const 1 call $~lib/builtins/abort @@ -57674,7 +54984,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3638 i32.const 1 call $~lib/builtins/abort @@ -57688,7 +54998,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3639 i32.const 1 call $~lib/builtins/abort @@ -57702,7 +55012,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3640 i32.const 1 call $~lib/builtins/abort @@ -57716,7 +55026,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3641 i32.const 1 call $~lib/builtins/abort @@ -57730,7 +55040,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3642 i32.const 1 call $~lib/builtins/abort @@ -57744,7 +55054,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3643 i32.const 1 call $~lib/builtins/abort @@ -57758,7 +55068,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3644 i32.const 1 call $~lib/builtins/abort @@ -57772,7 +55082,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3645 i32.const 1 call $~lib/builtins/abort @@ -57786,7 +55096,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3646 i32.const 1 call $~lib/builtins/abort @@ -57800,7 +55110,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3647 i32.const 1 call $~lib/builtins/abort @@ -57814,7 +55124,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3648 i32.const 1 call $~lib/builtins/abort @@ -57828,7 +55138,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3649 i32.const 1 call $~lib/builtins/abort @@ -57842,7 +55152,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3650 i32.const 1 call $~lib/builtins/abort @@ -57856,7 +55166,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3651 i32.const 1 call $~lib/builtins/abort @@ -57870,7 +55180,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3652 i32.const 1 call $~lib/builtins/abort @@ -57884,7 +55194,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3653 i32.const 1 call $~lib/builtins/abort @@ -57898,7 +55208,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3654 i32.const 1 call $~lib/builtins/abort @@ -57912,7 +55222,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3655 i32.const 1 call $~lib/builtins/abort @@ -57926,7 +55236,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3656 i32.const 1 call $~lib/builtins/abort @@ -57940,7 +55250,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3657 i32.const 1 call $~lib/builtins/abort @@ -57954,7 +55264,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3658 i32.const 1 call $~lib/builtins/abort @@ -57968,7 +55278,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3667 i32.const 1 call $~lib/builtins/abort @@ -57982,7 +55292,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3668 i32.const 1 call $~lib/builtins/abort @@ -57996,7 +55306,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3669 i32.const 1 call $~lib/builtins/abort @@ -58010,7 +55320,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3670 i32.const 1 call $~lib/builtins/abort @@ -58024,7 +55334,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3671 i32.const 1 call $~lib/builtins/abort @@ -58038,7 +55348,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3672 i32.const 1 call $~lib/builtins/abort @@ -58052,7 +55362,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3673 i32.const 1 call $~lib/builtins/abort @@ -58066,7 +55376,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3674 i32.const 1 call $~lib/builtins/abort @@ -58080,7 +55390,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3675 i32.const 1 call $~lib/builtins/abort @@ -58094,7 +55404,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3676 i32.const 1 call $~lib/builtins/abort @@ -58108,7 +55418,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3679 i32.const 1 call $~lib/builtins/abort @@ -58122,7 +55432,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3680 i32.const 1 call $~lib/builtins/abort @@ -58137,7 +55447,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3681 i32.const 1 call $~lib/builtins/abort @@ -58151,7 +55461,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3682 i32.const 1 call $~lib/builtins/abort @@ -58165,7 +55475,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3683 i32.const 1 call $~lib/builtins/abort @@ -58179,7 +55489,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3684 i32.const 1 call $~lib/builtins/abort @@ -58193,7 +55503,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3685 i32.const 1 call $~lib/builtins/abort @@ -58207,7 +55517,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3686 i32.const 1 call $~lib/builtins/abort @@ -58221,7 +55531,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3687 i32.const 1 call $~lib/builtins/abort @@ -58235,7 +55545,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3688 i32.const 1 call $~lib/builtins/abort @@ -58249,7 +55559,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3689 i32.const 1 call $~lib/builtins/abort @@ -58263,7 +55573,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3690 i32.const 1 call $~lib/builtins/abort @@ -58277,7 +55587,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3691 i32.const 1 call $~lib/builtins/abort @@ -58291,7 +55601,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3692 i32.const 1 call $~lib/builtins/abort @@ -58305,7 +55615,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3693 i32.const 1 call $~lib/builtins/abort @@ -58319,7 +55629,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3694 i32.const 1 call $~lib/builtins/abort @@ -58333,7 +55643,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3695 i32.const 1 call $~lib/builtins/abort @@ -58347,7 +55657,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3696 i32.const 1 call $~lib/builtins/abort @@ -58361,7 +55671,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3697 i32.const 1 call $~lib/builtins/abort @@ -58375,7 +55685,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3698 i32.const 1 call $~lib/builtins/abort @@ -58389,7 +55699,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3699 i32.const 1 call $~lib/builtins/abort @@ -58403,7 +55713,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3700 i32.const 1 call $~lib/builtins/abort @@ -58417,7 +55727,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3712 i32.const 1 call $~lib/builtins/abort @@ -58431,7 +55741,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3713 i32.const 1 call $~lib/builtins/abort @@ -58445,7 +55755,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3714 i32.const 1 call $~lib/builtins/abort @@ -58459,7 +55769,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3715 i32.const 1 call $~lib/builtins/abort @@ -58473,7 +55783,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3716 i32.const 1 call $~lib/builtins/abort @@ -58487,7 +55797,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3717 i32.const 1 call $~lib/builtins/abort @@ -58501,7 +55811,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3718 i32.const 1 call $~lib/builtins/abort @@ -58515,7 +55825,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3719 i32.const 1 call $~lib/builtins/abort @@ -58529,7 +55839,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3720 i32.const 1 call $~lib/builtins/abort @@ -58543,7 +55853,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3721 i32.const 1 call $~lib/builtins/abort @@ -58557,7 +55867,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3724 i32.const 1 call $~lib/builtins/abort @@ -58571,7 +55881,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3725 i32.const 1 call $~lib/builtins/abort @@ -58585,7 +55895,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3726 i32.const 1 call $~lib/builtins/abort @@ -58599,7 +55909,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3727 i32.const 1 call $~lib/builtins/abort @@ -58615,7 +55925,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3728 i32.const 1 call $~lib/builtins/abort @@ -58631,7 +55941,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3729 i32.const 1 call $~lib/builtins/abort @@ -58645,7 +55955,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3730 i32.const 1 call $~lib/builtins/abort @@ -58659,7 +55969,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3731 i32.const 1 call $~lib/builtins/abort @@ -58673,7 +55983,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3732 i32.const 1 call $~lib/builtins/abort @@ -58687,7 +55997,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3733 i32.const 1 call $~lib/builtins/abort @@ -58701,7 +56011,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3734 i32.const 1 call $~lib/builtins/abort @@ -58715,7 +56025,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3735 i32.const 1 call $~lib/builtins/abort @@ -58729,7 +56039,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3736 i32.const 1 call $~lib/builtins/abort @@ -58743,7 +56053,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3737 i32.const 1 call $~lib/builtins/abort @@ -58757,7 +56067,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3738 i32.const 1 call $~lib/builtins/abort @@ -58771,7 +56081,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3739 i32.const 1 call $~lib/builtins/abort @@ -58785,7 +56095,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3740 i32.const 1 call $~lib/builtins/abort @@ -58799,7 +56109,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3741 i32.const 1 call $~lib/builtins/abort @@ -58813,7 +56123,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3742 i32.const 1 call $~lib/builtins/abort @@ -58827,7 +56137,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3743 i32.const 1 call $~lib/builtins/abort @@ -58841,7 +56151,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3744 i32.const 1 call $~lib/builtins/abort @@ -58855,7 +56165,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3745 i32.const 1 call $~lib/builtins/abort @@ -58869,7 +56179,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3746 i32.const 1 call $~lib/builtins/abort @@ -58883,7 +56193,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3747 i32.const 1 call $~lib/builtins/abort @@ -58897,7 +56207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3748 i32.const 1 call $~lib/builtins/abort @@ -58911,7 +56221,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3749 i32.const 1 call $~lib/builtins/abort @@ -58927,7 +56237,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3750 i32.const 1 call $~lib/builtins/abort @@ -58943,7 +56253,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3751 i32.const 1 call $~lib/builtins/abort @@ -58959,7 +56269,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3752 i32.const 1 call $~lib/builtins/abort @@ -58975,7 +56285,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3753 i32.const 1 call $~lib/builtins/abort @@ -58991,7 +56301,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3754 i32.const 1 call $~lib/builtins/abort @@ -59007,7 +56317,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3755 i32.const 1 call $~lib/builtins/abort @@ -59023,7 +56333,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3756 i32.const 1 call $~lib/builtins/abort @@ -59039,7 +56349,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3757 i32.const 1 call $~lib/builtins/abort @@ -59055,7 +56365,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3758 i32.const 1 call $~lib/builtins/abort @@ -59071,7 +56381,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3759 i32.const 1 call $~lib/builtins/abort @@ -59087,7 +56397,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3760 i32.const 1 call $~lib/builtins/abort @@ -59103,7 +56413,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3761 i32.const 1 call $~lib/builtins/abort @@ -59117,7 +56427,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3764 i32.const 1 call $~lib/builtins/abort @@ -59131,7 +56441,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3765 i32.const 1 call $~lib/builtins/abort @@ -59149,7 +56459,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3766 i32.const 1 call $~lib/builtins/abort @@ -59167,7 +56477,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3767 i32.const 1 call $~lib/builtins/abort @@ -59181,7 +56491,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3768 i32.const 1 call $~lib/builtins/abort @@ -59195,7 +56505,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3769 i32.const 1 call $~lib/builtins/abort @@ -59209,7 +56519,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3770 i32.const 1 call $~lib/builtins/abort @@ -59227,7 +56537,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3771 i32.const 1 call $~lib/builtins/abort @@ -59241,7 +56551,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3773 i32.const 1 call $~lib/builtins/abort @@ -59255,7 +56565,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3774 i32.const 1 call $~lib/builtins/abort @@ -59277,7 +56587,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3775 i32.const 1 call $~lib/builtins/abort @@ -59299,7 +56609,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3776 i32.const 1 call $~lib/builtins/abort @@ -59321,7 +56631,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3777 i32.const 1 call $~lib/builtins/abort @@ -59343,7 +56653,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3778 i32.const 1 call $~lib/builtins/abort @@ -59357,7 +56667,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3779 i32.const 1 call $~lib/builtins/abort @@ -59373,7 +56683,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3780 i32.const 1 call $~lib/builtins/abort @@ -59387,7 +56697,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3783 i32.const 1 call $~lib/builtins/abort @@ -59401,7 +56711,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3784 i32.const 1 call $~lib/builtins/abort @@ -59415,7 +56725,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3785 i32.const 1 call $~lib/builtins/abort @@ -59430,7 +56740,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3786 i32.const 1 call $~lib/builtins/abort @@ -59444,7 +56754,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3787 i32.const 1 call $~lib/builtins/abort @@ -59458,7 +56768,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3796 i32.const 1 call $~lib/builtins/abort @@ -59472,7 +56782,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3797 i32.const 1 call $~lib/builtins/abort @@ -59486,7 +56796,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3798 i32.const 1 call $~lib/builtins/abort @@ -59500,7 +56810,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3799 i32.const 1 call $~lib/builtins/abort @@ -59514,7 +56824,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3800 i32.const 1 call $~lib/builtins/abort @@ -59528,7 +56838,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3801 i32.const 1 call $~lib/builtins/abort @@ -59542,7 +56852,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3802 i32.const 1 call $~lib/builtins/abort @@ -59556,7 +56866,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3803 i32.const 1 call $~lib/builtins/abort @@ -59570,7 +56880,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3804 i32.const 1 call $~lib/builtins/abort @@ -59584,7 +56894,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3805 i32.const 1 call $~lib/builtins/abort @@ -59598,7 +56908,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3808 i32.const 1 call $~lib/builtins/abort @@ -59612,7 +56922,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3809 i32.const 1 call $~lib/builtins/abort @@ -59626,7 +56936,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3810 i32.const 1 call $~lib/builtins/abort @@ -59641,7 +56951,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3811 i32.const 1 call $~lib/builtins/abort @@ -59655,7 +56965,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3812 i32.const 1 call $~lib/builtins/abort @@ -59669,7 +56979,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3815 i32.const 1 call $~lib/builtins/abort @@ -59683,7 +56993,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3816 i32.const 1 call $~lib/builtins/abort @@ -59697,7 +57007,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3817 i32.const 1 call $~lib/builtins/abort @@ -59711,7 +57021,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3818 i32.const 1 call $~lib/builtins/abort @@ -59727,7 +57037,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3819 i32.const 1 call $~lib/builtins/abort @@ -59743,7 +57053,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3820 i32.const 1 call $~lib/builtins/abort @@ -59757,7 +57067,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3821 i32.const 1 call $~lib/builtins/abort @@ -59771,7 +57081,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3822 i32.const 1 call $~lib/builtins/abort @@ -59785,7 +57095,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3823 i32.const 1 call $~lib/builtins/abort @@ -59799,7 +57109,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3824 i32.const 1 call $~lib/builtins/abort @@ -59813,7 +57123,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3825 i32.const 1 call $~lib/builtins/abort @@ -59827,7 +57137,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3826 i32.const 1 call $~lib/builtins/abort @@ -59841,7 +57151,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3827 i32.const 1 call $~lib/builtins/abort @@ -59855,7 +57165,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3828 i32.const 1 call $~lib/builtins/abort @@ -59869,7 +57179,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3829 i32.const 1 call $~lib/builtins/abort @@ -59883,7 +57193,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3830 i32.const 1 call $~lib/builtins/abort @@ -59897,7 +57207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3831 i32.const 1 call $~lib/builtins/abort @@ -59911,7 +57221,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3832 i32.const 1 call $~lib/builtins/abort @@ -59925,7 +57235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3833 i32.const 1 call $~lib/builtins/abort @@ -59939,7 +57249,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3834 i32.const 1 call $~lib/builtins/abort @@ -59953,7 +57263,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3835 i32.const 1 call $~lib/builtins/abort @@ -59967,7 +57277,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3836 i32.const 1 call $~lib/builtins/abort @@ -59981,7 +57291,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3837 i32.const 1 call $~lib/builtins/abort @@ -59995,7 +57305,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3838 i32.const 1 call $~lib/builtins/abort @@ -60011,7 +57321,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3839 i32.const 1 call $~lib/builtins/abort @@ -60027,7 +57337,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3840 i32.const 1 call $~lib/builtins/abort @@ -60043,7 +57353,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3841 i32.const 1 call $~lib/builtins/abort @@ -60059,7 +57369,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3842 i32.const 1 call $~lib/builtins/abort @@ -60075,7 +57385,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3843 i32.const 1 call $~lib/builtins/abort @@ -60091,7 +57401,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3844 i32.const 1 call $~lib/builtins/abort @@ -60107,7 +57417,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3845 i32.const 1 call $~lib/builtins/abort @@ -60123,7 +57433,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3846 i32.const 1 call $~lib/builtins/abort @@ -60139,7 +57449,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3847 i32.const 1 call $~lib/builtins/abort @@ -60155,7 +57465,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3848 i32.const 1 call $~lib/builtins/abort @@ -60171,7 +57481,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3849 i32.const 1 call $~lib/builtins/abort @@ -60187,7 +57497,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3850 i32.const 1 call $~lib/builtins/abort @@ -60201,7 +57511,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3862 i32.const 1 call $~lib/builtins/abort @@ -60215,7 +57525,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3863 i32.const 1 call $~lib/builtins/abort @@ -60229,7 +57539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3864 i32.const 1 call $~lib/builtins/abort @@ -60243,7 +57553,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3865 i32.const 1 call $~lib/builtins/abort @@ -60257,7 +57567,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3866 i32.const 1 call $~lib/builtins/abort @@ -60271,7 +57581,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3867 i32.const 1 call $~lib/builtins/abort @@ -60285,7 +57595,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3868 i32.const 1 call $~lib/builtins/abort @@ -60299,7 +57609,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3869 i32.const 1 call $~lib/builtins/abort @@ -60313,7 +57623,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3870 i32.const 1 call $~lib/builtins/abort @@ -60327,7 +57637,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3871 i32.const 1 call $~lib/builtins/abort @@ -60341,7 +57651,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3874 i32.const 1 call $~lib/builtins/abort @@ -60355,7 +57665,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3875 i32.const 1 call $~lib/builtins/abort @@ -60369,7 +57679,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3876 i32.const 1 call $~lib/builtins/abort @@ -60384,7 +57694,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3877 i32.const 1 call $~lib/builtins/abort @@ -60398,7 +57708,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3878 i32.const 1 call $~lib/builtins/abort @@ -60412,7 +57722,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3887 i32.const 1 call $~lib/builtins/abort @@ -60426,7 +57736,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3888 i32.const 1 call $~lib/builtins/abort @@ -60440,7 +57750,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3889 i32.const 1 call $~lib/builtins/abort @@ -60454,7 +57764,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3890 i32.const 1 call $~lib/builtins/abort @@ -60468,7 +57778,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3891 i32.const 1 call $~lib/builtins/abort @@ -60482,7 +57792,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3892 i32.const 1 call $~lib/builtins/abort @@ -60496,7 +57806,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3893 i32.const 1 call $~lib/builtins/abort @@ -60510,7 +57820,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3894 i32.const 1 call $~lib/builtins/abort @@ -60524,7 +57834,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3895 i32.const 1 call $~lib/builtins/abort @@ -60538,7 +57848,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3896 i32.const 1 call $~lib/builtins/abort @@ -60552,7 +57862,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3899 i32.const 1 call $~lib/builtins/abort @@ -60566,7 +57876,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3900 i32.const 1 call $~lib/builtins/abort @@ -60580,7 +57890,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3901 i32.const 1 call $~lib/builtins/abort @@ -60595,7 +57905,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3902 i32.const 1 call $~lib/builtins/abort @@ -60609,7 +57919,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3903 i32.const 1 call $~lib/builtins/abort @@ -60623,7 +57933,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3915 i32.const 1 call $~lib/builtins/abort @@ -60637,7 +57947,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3916 i32.const 1 call $~lib/builtins/abort @@ -60651,7 +57961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3917 i32.const 1 call $~lib/builtins/abort @@ -60665,7 +57975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3918 i32.const 1 call $~lib/builtins/abort @@ -60679,7 +57989,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3919 i32.const 1 call $~lib/builtins/abort @@ -60693,7 +58003,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3920 i32.const 1 call $~lib/builtins/abort @@ -60707,7 +58017,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3921 i32.const 1 call $~lib/builtins/abort @@ -60721,7 +58031,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3922 i32.const 1 call $~lib/builtins/abort @@ -60735,7 +58045,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3923 i32.const 1 call $~lib/builtins/abort @@ -60749,7 +58059,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3924 i32.const 1 call $~lib/builtins/abort @@ -60763,7 +58073,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3927 i32.const 1 call $~lib/builtins/abort @@ -60777,7 +58087,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3928 i32.const 1 call $~lib/builtins/abort @@ -60793,7 +58103,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3929 i32.const 1 call $~lib/builtins/abort @@ -60807,7 +58117,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3930 i32.const 1 call $~lib/builtins/abort @@ -60821,7 +58131,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3931 i32.const 1 call $~lib/builtins/abort @@ -60835,7 +58145,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3932 i32.const 1 call $~lib/builtins/abort @@ -60849,7 +58159,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3933 i32.const 1 call $~lib/builtins/abort @@ -60863,7 +58173,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3934 i32.const 1 call $~lib/builtins/abort @@ -60877,7 +58187,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3935 i32.const 1 call $~lib/builtins/abort @@ -60891,7 +58201,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3936 i32.const 1 call $~lib/builtins/abort @@ -60905,7 +58215,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3937 i32.const 1 call $~lib/builtins/abort @@ -60919,7 +58229,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3938 i32.const 1 call $~lib/builtins/abort @@ -60933,7 +58243,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3939 i32.const 1 call $~lib/builtins/abort @@ -60947,7 +58257,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3940 i32.const 1 call $~lib/builtins/abort @@ -60961,7 +58271,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3941 i32.const 1 call $~lib/builtins/abort @@ -60975,7 +58285,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3950 i32.const 1 call $~lib/builtins/abort @@ -60989,7 +58299,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3951 i32.const 1 call $~lib/builtins/abort @@ -61003,7 +58313,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3952 i32.const 1 call $~lib/builtins/abort @@ -61017,7 +58327,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3953 i32.const 1 call $~lib/builtins/abort @@ -61031,7 +58341,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3954 i32.const 1 call $~lib/builtins/abort @@ -61045,7 +58355,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3955 i32.const 1 call $~lib/builtins/abort @@ -61059,7 +58369,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3956 i32.const 1 call $~lib/builtins/abort @@ -61073,7 +58383,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3957 i32.const 1 call $~lib/builtins/abort @@ -61087,7 +58397,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3958 i32.const 1 call $~lib/builtins/abort @@ -61101,7 +58411,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3959 i32.const 1 call $~lib/builtins/abort @@ -61115,7 +58425,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3962 i32.const 1 call $~lib/builtins/abort @@ -61129,7 +58439,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3963 i32.const 1 call $~lib/builtins/abort @@ -61145,7 +58455,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3964 i32.const 1 call $~lib/builtins/abort @@ -61159,7 +58469,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3965 i32.const 1 call $~lib/builtins/abort @@ -61173,7 +58483,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3966 i32.const 1 call $~lib/builtins/abort @@ -61187,7 +58497,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3967 i32.const 1 call $~lib/builtins/abort @@ -61201,7 +58511,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3968 i32.const 1 call $~lib/builtins/abort @@ -61215,7 +58525,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3969 i32.const 1 call $~lib/builtins/abort @@ -61229,7 +58539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3970 i32.const 1 call $~lib/builtins/abort @@ -61243,7 +58553,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3971 i32.const 1 call $~lib/builtins/abort @@ -61257,7 +58567,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3972 i32.const 1 call $~lib/builtins/abort @@ -61271,7 +58581,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3973 i32.const 1 call $~lib/builtins/abort @@ -61285,7 +58595,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3974 i32.const 1 call $~lib/builtins/abort @@ -61299,7 +58609,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3975 i32.const 1 call $~lib/builtins/abort @@ -61313,7 +58623,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 3976 i32.const 1 call $~lib/builtins/abort @@ -61407,7 +58717,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4017 i32.const 1 call $~lib/builtins/abort @@ -61421,7 +58731,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4018 i32.const 1 call $~lib/builtins/abort @@ -61435,7 +58745,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4019 i32.const 1 call $~lib/builtins/abort @@ -61449,7 +58759,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4020 i32.const 1 call $~lib/builtins/abort @@ -61463,7 +58773,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4021 i32.const 1 call $~lib/builtins/abort @@ -61477,7 +58787,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4022 i32.const 1 call $~lib/builtins/abort @@ -61491,7 +58801,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4023 i32.const 1 call $~lib/builtins/abort @@ -61505,7 +58815,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4024 i32.const 1 call $~lib/builtins/abort @@ -61519,7 +58829,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4025 i32.const 1 call $~lib/builtins/abort @@ -61533,7 +58843,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4026 i32.const 1 call $~lib/builtins/abort @@ -61547,7 +58857,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4027 i32.const 1 call $~lib/builtins/abort @@ -61561,7 +58871,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4028 i32.const 1 call $~lib/builtins/abort @@ -61574,7 +58884,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4032 i32.const 1 call $~lib/builtins/abort @@ -61587,7 +58897,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4033 i32.const 1 call $~lib/builtins/abort @@ -61600,7 +58910,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4034 i32.const 1 call $~lib/builtins/abort @@ -61613,7 +58923,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4035 i32.const 1 call $~lib/builtins/abort @@ -61626,7 +58936,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4036 i32.const 1 call $~lib/builtins/abort @@ -61639,7 +58949,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4037 i32.const 1 call $~lib/builtins/abort @@ -61652,7 +58962,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4038 i32.const 1 call $~lib/builtins/abort @@ -61665,7 +58975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4039 i32.const 1 call $~lib/builtins/abort @@ -61678,7 +58988,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4040 i32.const 1 call $~lib/builtins/abort @@ -61691,7 +59001,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4041 i32.const 1 call $~lib/builtins/abort @@ -61704,7 +59014,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4042 i32.const 1 call $~lib/builtins/abort @@ -61718,7 +59028,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4043 i32.const 1 call $~lib/builtins/abort @@ -61731,7 +59041,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4044 i32.const 1 call $~lib/builtins/abort @@ -61744,7 +59054,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4045 i32.const 1 call $~lib/builtins/abort @@ -61758,7 +59068,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4046 i32.const 1 call $~lib/builtins/abort @@ -61771,7 +59081,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4047 i32.const 1 call $~lib/builtins/abort @@ -61785,7 +59095,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4051 i32.const 1 call $~lib/builtins/abort @@ -61799,7 +59109,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4052 i32.const 1 call $~lib/builtins/abort @@ -61813,7 +59123,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4053 i32.const 1 call $~lib/builtins/abort @@ -61827,7 +59137,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4054 i32.const 1 call $~lib/builtins/abort @@ -61841,7 +59151,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4056 i32.const 1 call $~lib/builtins/abort @@ -61855,7 +59165,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4057 i32.const 1 call $~lib/builtins/abort @@ -61869,7 +59179,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4058 i32.const 1 call $~lib/builtins/abort @@ -61883,7 +59193,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4059 i32.const 1 call $~lib/builtins/abort @@ -61897,7 +59207,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4061 i32.const 1 call $~lib/builtins/abort @@ -61911,7 +59221,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4062 i32.const 1 call $~lib/builtins/abort @@ -61925,7 +59235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4063 i32.const 1 call $~lib/builtins/abort @@ -61939,7 +59249,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4064 i32.const 1 call $~lib/builtins/abort @@ -61953,7 +59263,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4066 i32.const 1 call $~lib/builtins/abort @@ -61967,7 +59277,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4067 i32.const 1 call $~lib/builtins/abort @@ -61981,7 +59291,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4068 i32.const 1 call $~lib/builtins/abort @@ -61995,7 +59305,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4069 i32.const 1 call $~lib/builtins/abort @@ -62009,7 +59319,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4071 i32.const 1 call $~lib/builtins/abort @@ -62023,7 +59333,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4072 i32.const 1 call $~lib/builtins/abort @@ -62037,7 +59347,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4073 i32.const 1 call $~lib/builtins/abort @@ -62051,7 +59361,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4074 i32.const 1 call $~lib/builtins/abort @@ -62065,7 +59375,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4076 i32.const 1 call $~lib/builtins/abort @@ -62079,7 +59389,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4077 i32.const 1 call $~lib/builtins/abort @@ -62093,7 +59403,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4078 i32.const 1 call $~lib/builtins/abort @@ -62107,7 +59417,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4079 i32.const 1 call $~lib/builtins/abort @@ -62121,7 +59431,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4080 i32.const 1 call $~lib/builtins/abort @@ -62135,7 +59445,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4082 i32.const 1 call $~lib/builtins/abort @@ -62149,7 +59459,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4083 i32.const 1 call $~lib/builtins/abort @@ -62163,7 +59473,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4084 i32.const 1 call $~lib/builtins/abort @@ -62177,7 +59487,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4085 i32.const 1 call $~lib/builtins/abort @@ -62209,7 +59519,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4091 i32.const 1 call $~lib/builtins/abort @@ -62223,7 +59533,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4092 i32.const 1 call $~lib/builtins/abort @@ -62237,7 +59547,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4093 i32.const 1 call $~lib/builtins/abort @@ -62251,7 +59561,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4094 i32.const 1 call $~lib/builtins/abort @@ -62265,7 +59575,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4095 i32.const 1 call $~lib/builtins/abort @@ -62279,7 +59589,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4096 i32.const 1 call $~lib/builtins/abort @@ -62293,7 +59603,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4098 i32.const 1 call $~lib/builtins/abort @@ -62307,7 +59617,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4099 i32.const 1 call $~lib/builtins/abort @@ -62339,7 +59649,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4102 i32.const 1 call $~lib/builtins/abort @@ -62353,7 +59663,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4104 i32.const 1 call $~lib/builtins/abort @@ -62367,7 +59677,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4105 i32.const 1 call $~lib/builtins/abort @@ -62399,7 +59709,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4108 i32.const 1 call $~lib/builtins/abort @@ -62414,7 +59724,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4110 i32.const 1 call $~lib/builtins/abort @@ -62429,7 +59739,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4111 i32.const 1 call $~lib/builtins/abort @@ -62445,7 +59755,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4112 i32.const 1 call $~lib/builtins/abort @@ -62461,7 +59771,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4113 i32.const 1 call $~lib/builtins/abort @@ -62477,7 +59787,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4114 i32.const 1 call $~lib/builtins/abort @@ -62491,7 +59801,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4116 i32.const 1 call $~lib/builtins/abort @@ -62505,7 +59815,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4117 i32.const 1 call $~lib/builtins/abort @@ -62519,7 +59829,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4118 i32.const 1 call $~lib/builtins/abort @@ -62533,7 +59843,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4119 i32.const 1 call $~lib/builtins/abort @@ -62547,7 +59857,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4120 i32.const 1 call $~lib/builtins/abort @@ -62561,7 +59871,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4121 i32.const 1 call $~lib/builtins/abort @@ -62575,7 +59885,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4122 i32.const 1 call $~lib/builtins/abort @@ -62589,7 +59899,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4123 i32.const 1 call $~lib/builtins/abort @@ -62603,7 +59913,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4124 i32.const 1 call $~lib/builtins/abort @@ -62623,7 +59933,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4126 i32.const 1 call $~lib/builtins/abort @@ -62641,7 +59951,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4127 i32.const 1 call $~lib/builtins/abort @@ -62656,7 +59966,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4129 i32.const 1 call $~lib/builtins/abort @@ -62671,7 +59981,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4130 i32.const 1 call $~lib/builtins/abort @@ -62686,7 +59996,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4131 i32.const 1 call $~lib/builtins/abort @@ -62700,7 +60010,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4132 i32.const 1 call $~lib/builtins/abort @@ -62714,7 +60024,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4133 i32.const 1 call $~lib/builtins/abort @@ -62728,7 +60038,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4136 i32.const 1 call $~lib/builtins/abort @@ -62742,7 +60052,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4137 i32.const 1 call $~lib/builtins/abort @@ -62756,7 +60066,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4138 i32.const 1 call $~lib/builtins/abort @@ -62770,7 +60080,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4139 i32.const 1 call $~lib/builtins/abort @@ -62784,7 +60094,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4140 i32.const 1 call $~lib/builtins/abort @@ -62798,7 +60108,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4141 i32.const 1 call $~lib/builtins/abort @@ -62812,7 +60122,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4142 i32.const 1 call $~lib/builtins/abort @@ -62826,7 +60136,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4143 i32.const 1 call $~lib/builtins/abort @@ -62840,7 +60150,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4144 i32.const 1 call $~lib/builtins/abort @@ -62854,7 +60164,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4145 i32.const 1 call $~lib/builtins/abort @@ -62868,7 +60178,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4146 i32.const 1 call $~lib/builtins/abort @@ -62882,7 +60192,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4147 i32.const 1 call $~lib/builtins/abort @@ -62896,7 +60206,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4148 i32.const 1 call $~lib/builtins/abort @@ -62910,7 +60220,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4149 i32.const 1 call $~lib/builtins/abort @@ -62924,7 +60234,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 4150 i32.const 1 call $~lib/builtins/abort @@ -62939,20 +60249,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 48528 - i32.const 48576 + i32.const 46144 + i32.const 46192 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -62961,394 +60267,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - (local $12 i32) + local.set $4 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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat index 7539b2afde..432d16ffda 100644 --- a/tests/compiler/std/math.release.wat +++ b/tests/compiler/std/math.release.wat @@ -4,27 +4,21 @@ (type $2 (func (param f32 f32 f32) (result i32))) (type $3 (func (param f32) (result f32))) (type $4 (func (param f64 f64) (result f64))) - (type $5 (func)) - (type $6 (func (param f32 f32) (result f32))) - (type $7 (func (param f64 f64 f64 f64) (result i32))) - (type $8 (func (param i32))) - (type $9 (func (param i32 i32))) - (type $10 (func (param i32 i32) (result i32))) - (type $11 (func (param i32) (result i32))) - (type $12 (func (result f64))) - (type $13 (func (param f64 f64) (result i32))) - (type $14 (func (param f32 f32) (result i32))) - (type $15 (func (param f64 i32) (result f64))) - (type $16 (func (param i32 i32 i64))) - (type $17 (func (result i32))) - (type $18 (func (param i64) (result i32))) - (type $19 (func (param f32 f32 f32 f32) (result i32))) - (type $20 (func (param i64))) - (type $21 (func (param f64 f64 i32) (result f64))) - (type $22 (func (param f64))) - (type $23 (func (param i64 i64 i64 i64 i64))) - (type $24 (func (param i64 i64) (result i64))) - (type $25 (func (param i32 i32 i32 i32))) + (type $5 (func (param f32 f32) (result f32))) + (type $6 (func (param f64 f64 f64 f64) (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (result f64))) + (type $9 (func (param f64 f64) (result i32))) + (type $10 (func (param f32 f32) (result i32))) + (type $11 (func)) + (type $12 (func (param f64 i32) (result f64))) + (type $13 (func (param i64) (result i32))) + (type $14 (func (param f32 f32 f32 f32) (result i32))) + (type $15 (func (param i64))) + (type $16 (func (param f64 f64 i32) (result f64))) + (type $17 (func (param f64))) + (type $18 (func (param i64 i64 i64 i64 i64))) + (type $19 (func (param i64 i64) (result i64))) (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64)) (import "env" "Math.LN2" (global $~lib/bindings/dom/Math.LN2 f64)) (import "env" "Math.LN10" (global $~lib/bindings/dom/Math.LN10 f64)) @@ -32,6 +26,7 @@ (import "env" "Math.PI" (global $~lib/bindings/dom/Math.PI f64)) (import "env" "Math.SQRT1_2" (global $~lib/bindings/dom/Math.SQRT1_2 f64)) (import "env" "Math.SQRT2" (global $~lib/bindings/dom/Math.SQRT2 f64)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "env" "Math.abs" (func $~lib/bindings/dom/Math.abs (param f64) (result f64))) (import "env" "Math.acos" (func $~lib/bindings/dom/Math.acos (param f64) (result f64))) (import "env" "Math.acosh" (func $~lib/bindings/dom/Math.acosh (param f64) (result f64))) @@ -64,16 +59,6 @@ (import "env" "Math.tan" (func $~lib/bindings/dom/Math.tan (param f64) (result f64))) (import "env" "Math.tanh" (func $~lib/bindings/dom/Math.tanh (param f64) (result f64))) (import "env" "Math.trunc" (func $~lib/bindings/dom/Math.trunc (param f64) (result f64))) - (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/math/rempio2_y0 (mut f64) (f64.const 0)) (global $~lib/math/rempio2_y1 (mut f64) (f64.const 0)) (global $~lib/math/res128_hi (mut i64) (i64.const 0)) @@ -86,181 +71,149 @@ (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/NativeMath.sincos_sin (mut f64) (f64.const 0)) (global $~lib/math/NativeMath.sincos_cos (mut f64) (f64.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 49524)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 47136)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\16\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s") - (data $20 (i32.const 3456) "\9f\de\e0\c3\f04\f7?\00\90\e6y\7f\cc\d7\bf\1f\e9,jx\13\f7?\00\00\r\c2\eeo\d7\bf\a0\b5\fa\08`\f2\f6?\00\e0Q\13\e3\13\d7\bf}\8c\13\1f\a6\d1\f6?\00x(8[\b8\d6\bf\d1\b4\c5\0bI\b1\f6?\00x\80\90U]\d6\bf\ba\0c/3G\91\f6?\00\00\18v\d0\02\d6\bf#B\"\18\9fq\f6?\00\90\90\86\ca\a8\d5\bf\d9\1e\a5\99OR\f6?\00P\03VCO\d5\bf\c4$\8f\aaV3\f6?\00@k\c37\f6\d4\bf\14\dc\9dk\b3\14\f6?\00P\a8\fd\a7\9d\d4\bfL\\\c6Rd\f6\f5?\00\a8\899\92E\d4\bfO,\91\b5g\d8\f5?\00\b8\b09\f4\ed\d3\bf\de\90[\cb\bc\ba\f5?\00p\8fD\ce\96\d3\bfx\1a\d9\f2a\9d\f5?\00\a0\bd\17\1e@\d3\bf\87VF\12V\80\f5?\00\80F\ef\e2\e9\d2\bf\d3k\e7\ce\97c\f5?\00\e008\1b\94\d2\bf\93\7f\a7\e2%G\f5?\00\88\da\8c\c5>\d2\bf\83E\06B\ff*\f5?\00\90\')\e1\e9\d1\bf\df\bd\b2\db\"\0f\f5?\00\f8H+m\95\d1\bf\d7\de4G\8f\f3\f4?\00\f8\b9\9agA\d1\bf@(\de\cfC\d8\f4?\00\98\ef\94\d0\ed\d0\bf\c8\a3x\c0>\bd\f4?\00\10\db\18\a5\9a\d0\bf\8a%\e0\c3\7f\a2\f4?\00\b8cR\e6G\d0\bf4\84\d4$\05\88\f4?\00\f0\86E\"\eb\cf\bf\0b-\19\1b\cem\f4?\00\b0\17uJG\cf\bfT\189\d3\d9S\f4?\000\10=D\a4\ce\bfZ\84\b4D\':\f4?\00\b0\e9D\r\02\ce\bf\fb\f8\15A\b5 \f4?\00\f0w)\a2`\cd\bf\b1\f4>\da\82\07\f4?\00\90\95\04\01\c0\cc\bf\8f\feW]\8f\ee\f3?\00\10\89V) \cc\bf\e9L\0b\a0\d9\d5\f3?\00\10\81\8d\17\81\cb\bf+\c1\10\c0`\bd\f3?\00\d0\d3\cc\c9\e2\ca\bf\b8\dau+$\a5\f3?\00\90\12.@E\ca\bf\02\d0\9f\cd\"\8d\f3?\00\f0\1dhw\a8\c9\bf\1cz\84\c5[u\f3?\000Him\0c\c9\bf\e26\adI\ce]\f3?\00\c0E\a6 q\c8\bf@\d4M\98yF\f3?\000\14\b4\8f\d6\c7\bf$\cb\ff\ce\\/\f3?\00pb<\b8<\c7\bfI\r\a1uw\18\f3?\00`7\9b\9a\a3\c6\bf\909>7\c8\01\f3?\00\a0\b7T1\0b\c6\bfA\f8\95\bbN\eb\f2?\000$v}s\c5\bf\d1\a9\19\02\n\d5\f2?\000\c2\8f{\dc\c4\bf*\fd\b7\a8\f9\be\f2?\00\00\d2Q,F\c4\bf\ab\1b\0cz\1c\a9\f2?\00\00\83\bc\8a\b0\c3\bf0\b5\14`r\93\f2?\00\00Ik\99\1b\c3\bf\f5\a1WW\fa}\f2?\00@\a4\90T\87\c2\bf\bf;\1d\9b\b3h\f2?\00\a0y\f8\b9\f3\c1\bf\bd\f5\8f\83\9dS\f2?\00\a0,%\c8`\c1\bf;\08\c9\aa\b7>\f2?\00 \f7W\7f\ce\c0\bf\b6@\a9+\01*\f2?\00\a0\feI\dc<\c0\bf2A\cc\96y\15\f2?\00\80K\bc\bdW\bf\bf\9b\fc\d2\1d \01\f2?\00@@\96\087\be\bf\0bHMI\f4\ec\f1?\00@\f9>\98\17\bd\bfie\8fR\f5\d8\f1?\00\a0\d8Ng\f9\bb\bf|~W\11#\c5\f1?\00`/ y\dc\ba\bf\e9&\cbt|\b1\f1?\00\80(\e7\c3\c0\b9\bf\b6\1a,\0c\01\9e\f1?\00\c0r\b3F\a6\b8\bf\bdp\b6{\b0\8a\f1?\00\00\ac\b3\01\8d\b7\bf\b6\bc\ef%\8aw\f1?\00\008E\f1t\b6\bf\da1L5\8dd\f1?\00\80\87m\0e^\b5\bf\dd_\'\90\b9Q\f1?\00\e0\a1\de\\H\b4\bfL\d22\a4\0e?\f1?\00\a0jM\d93\b3\bf\da\f9\10r\8b,\f1?\00`\c5\f8y \b2\bf1\b5\ec(0\1a\f1?\00 b\98F\0e\b1\bf\af4\84\da\fb\07\f1?\00\00\d2jl\fa\af\bf\b3kN\0f\ee\f5\f0?\00@wJ\8d\da\ad\bf\ce\9f*]\06\e4\f0?\00\00\85\e4\ec\bc\ab\bf!\a5,cD\d2\f0?\00\c0\12@\89\a1\a9\bf\1a\98\e2|\a7\c0\f0?\00\c0\023X\88\a7\bf\d16\c6\83/\af\f0?\00\80\d6g^q\a5\bf9\13\a0\98\db\9d\f0?\00\80eI\8a\\\a3\bf\df\e7R\af\ab\8c\f0?\00@\15d\e3I\a1\bf\fb(N/\9f{\f0?\00\80\eb\82\c0r\9e\bf\19\8f5\8c\b5j\f0?\00\80RR\f1U\9a\bf,\f9\ec\a5\eeY\f0?\00\80\81\cfb=\96\bf\90,\d1\cdII\f0?\00\00\aa\8c\fb(\92\bf\a9\ad\f0\c6\c68\f0?\00\00\f9 {1\8c\bf\a92y\13e(\f0?\00\00\aa]5\19\84\bfHs\ea\'$\18\f0?\00\00\ec\c2\03\12x\bf\95\b1\14\06\04\08\f0?\00\00$y\t\04`\bf\1a\fa&\f7\1f\e0\ef?\00\00\90\84\f3\efo?t\eaa\c2\1c\a1\ef?\00\00=5A\dc\87?.\99\81\b0\10c\ef?\00\80\c2\c4\a3\ce\93?\cd\ad\ee<\f6%\ef?\00\00\89\14\c1\9f\9b?\e7\13\91\03\c8\e9\ee?\00\00\11\ce\d8\b0\a1?\ab\b1\cbx\80\ae\ee?\00\c0\01\d0[\8a\a5?\9b\0c\9d\a2\1at\ee?\00\80\d8@\83\\\a9?\b5\99\n\83\91:\ee?\00\80W\efj\'\ad?V\9a`\t\e0\01\ee?\00\c0\98\e5\98u\b0?\98\bbw\e5\01\ca\ed?\00 \r\e3\f5S\b2?\03\91|\0b\f2\92\ed?\00\008\8b\dd.\b4?\ce\\\fbf\ac\\\ed?\00\c0W\87Y\06\b6?\9d\de^\aa,\'\ed?\00\00j5v\da\b7?\cd,k>n\f2\ec?\00`\1cNC\ab\b9?\02y\a7\a2m\be\ec?\00`\r\bb\c7x\bb?m\087m&\8b\ec?\00 \e72\13C\bd?\04X]\bd\94X\ec?\00`\deq1\n\bf?\8c\9f\bb3\b5&\ec?\00@\91+\15g\c0??\e7\ec\ee\83\f5\eb?\00\b0\92\82\85G\c1?\c1\96\dbu\fd\c4\eb?\000\ca\cdn&\c2?(J\86\0c\1e\95\eb?\00P\c5\a6\d7\03\c3?,>\ef\c5\e2e\eb?\00\103<\c3\df\c3?\8b\88\c9gH7\eb?\00\80zk6\ba\c4?J0\1d!K\t\eb?\00\f0\d1(9\93\c5?~\ef\f2\85\e8\db\ea?\00\f0\18$\cdj\c6?\a2=`1\1d\af\ea?\00\90f\ec\f8@\c7?\a7X\d3?\e6\82\ea?\00\f0\1a\f5\c0\15\c8?\8bs\t\ef@W\ea?\00\80\f6T)\e9\c8?\'K\ab\90*,\ea?\00@\f8\026\bb\c9?\d1\f2\93\13\a0\01\ea?\00\00,\1c\ed\8b\ca?\1b<\db$\9f\d7\e9?\00\d0\01\\Q[\cb?\90\b1\c7\05%\ae\e9?\00\c0\bc\ccg)\cc?/\ce\97\f2.\85\e9?\00`H\d55\f6\cc?uK\a4\ee\ba\\\e9?\00\c0F4\bd\c1\cd?8H\e7\9d\c64\e9?\00\e0\cf\b8\01\8c\ce?\e6Rg/O\r\e9?\00\90\17\c0\tU\cf?\9d\d7\ff\8eR\e6\e8?\00\b8\1f\12l\0e\d0?|\00\cc\9f\ce\bf\e8?\00\d0\93\0e\b8q\d0?\0e\c3\be\da\c0\99\e8?\00p\86\9ek\d4\d0?\fb\17#\aa\'t\e8?\00\d0K3\876\d1?\08\9a\b3\ac\00O\e8?\00H#g\r\98\d1?U>e\e8I*\e8?\00\80\cc\e0\ff\f8\d1?`\02\f4\95\01\06\e8?\00hc\d7_Y\d2?)\a3\e0c%\e2\e7?\00\a8\14\t0\b9\d2?\ad\b5\dcw\b3\be\e7?\00`C\10r\18\d3?\c2%\97g\aa\9b\e7?\00\18\ecm&w\d3?W\06\17\f2\07y\e7?\000\af\fbO\d5\d3?\0c\13\d6\db\caV\e7?\00\e0/\e3\ee2\d4?") - (data $21 (i32.const 5504) "k\b6O\01\00\10\e6?<[B\91l\02~<\95\b4M\03\000\e6?A]\00H\ea\bf\8d\f6\05\eb\ff\ef\e6?S-\e2\1a\04\80~\bc\80\97\86\0e\00\10\e7?Ry\tqf\ff{<\12\e9g\fc\ff/\e7?$\87\bd&\e2\00\8c\89<\b9{F\13\000\e9?v\02\98KN\80\7f.\98\dd\ff\af\e9?7\93Z\8a\e0@\87\bcf\fbI\ed\ff\cf\e9?\00\e0\9b\c1\08\ce?O*\00\b0\ea?_?\ff<\04\fdi\bc\d1\1e\ae\d7\ff\cf\ea?\b4p\90\12\e7>\82\bcx\04Q\ee\ff\ef\ea?\a3\de\0e\e0>\06j<[\re\db\ff\0f\eb?\b9\n\1f8\c8\06ZO\86\d0E\ff\8a<@\16\87\f9\ff\8f\eb?\f9\c3\c2\96w\fe|\f0\0f\00\f0\f4?\1cS\85\0b\89\7f\97<\d1K\dc\12\00\10\f5?6\a4fqe\04`\c9\03\00\b0\f5?\c0\0c\bf\n\08A\9f\bc\bc\19I\1d\00\d0\f5?)G%\fb*\81\98\bc\89z\b8\e7\ff\ef\f5?\04i\ed\80\b7~\94\bc") - (data $22 (i32.const 7552) "\be\f3\f8y\eca\f6?\de\aa\8c\80\f7{\d5\bf=\88\afJ\edq\f5?\dbm\c0\a7\f0\be\d2\bf\b0\10\f0\f09\95\f4?g:Q\7f\ae\1e\d0\bf\85\03\b8\b0\95\c9\f3?\e9$\82\a6\d81\cb\bf\a5d\88\0c\19\r\f3?Xw\c0\nOW\c6\bf\a0\8e\0b{\"^\f2?\00\81\9c\c7+\aa\c1\bf?4\1aJJ\bb\f1?^\0e\8c\cevN\ba\bf\ba\e5\8a\f0X#\f1?\cc\1caZ<\97\b1\bf\a7\00\99A?\95\f0?\1e\0c\e18\f4R\a2\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?\84Y\f2]\aa\a5\aa?\a0j\02\1f\b3\a4\ec?\b4.6\aaS^\bc?\e6\fcjW6 \eb?\08\db w\e5&\c5?-\aa\a1c\d1\c2\e9?pG\"\r\86\c2\cb?\edAx\03\e6\86\e8?\e1~\a0\c8\8b\05\d1?bHS\f5\dcg\e7?\t\ee\b6W0\04\d4?") - (data $23 (i32.const 7808) "n\83\f9\a2\00\00\00\00\d1W\'\fc)\15DN\99\95b\db\c0\dd4\f5\abcQ\feA\90C<:n$\b7a\c5\bb\de\ea.I\06\e0\d2MB\1c\eb\1d\fe\1c\92\d1\t\f55\82\e8>\a7)\b1&p\9c\e9\84D\bb.9\d6\919A~_\b4\8b_\84\9c\f49S\83\ff\97\f8\1f;(\f9\bd\8b\11/\ef\0f\98\05\de\cf~6m\1fm\nZf?FO\b7\t\cb\'\c7\ba\'u-\ea_\9e\f79\07={\f1\e5\eb\b1_\fbk\ea\92R\8aF0\03V\08]\8d\1f \bc\cf\f0\abk{\fca\91\e3\a9\1d6\f4\9a_\85\99e\08\1b\e6^\80\d8\ff\8d@h\a0\14W\15\06\061\'sM") - (data $24 (i32.const 8000) ")\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe") - (data $25 (i32.const 8046) "\f0?n\bf\88\1aO;\9b<53\fb\a9=\f6\ef?]\dc\d8\9c\13`q\bca\80w>\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\rG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") - (data $26 (i32.const 10086) "\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") - (data $27 (i32.const 10336) "\f8\ac\b1k($\f7?\00\b0\cd\ee_\t\e1\bf\a1\cc\d2f\f7\e1\f6?\00\d0v\bd\94\84\e0\bf\8a\d40\0e=\a1\f6?\00\f8\e8\aeC\01\e0\bf\85l\d02\eca\f6?\00@\0b6\c5\fe\de\bf\f8\98\11\95\fa#\f6?\00\e0\b7\1a\d9\fd\dd\bfl\02\cf\a4[\e7\f5?\00\90\c7\0c\ae\ff\dc\bf\b8O!Z\05\ac\f5?\00\a0\fd\118\04\dc\bf\1en\16\0f\edq\f5?\00\e0:2g\0b\db\bf5\f8\0bY\t9\f5?\00\b0-Z/\15\da\bf\dd\ada\edO\01\f5?\00`\f8Z\7f!\d9\bf\d0{H\8e\b8\ca\f4?\00\90q\b0M0\d8\bf\eeO3\b49\95\f4?\00\e0\a9\f9\89A\d7\bfi\d5\af\df\cb`\f4?\00\90\19\b5+U\d6\bfS\b9\e4Nf-\f4?\00\10\9b\a2#k\d5\bf\a6\d8\1d\11\01\fb\f3?\00\a0_\0fe\83\d4\bf6X\0c\b7\95\c9\f3?\00\a0\f67\e9\9d\d3\bfJ\fd\b6J\1c\99\f3?\00`\8dS\a1\ba\d2\bf\b5\99\e0\0c\8ei\f3?\00@\ca@\83\d9\d1\bf\b2\e7\13\82\e4:\f3?\00\e0@:\85\fa\d0\bf\b1\bd\85\19\19\r\f3?\000\e72\9c\1d\d0\bf\d7q\b2\ca%\e0\f2?\00`\fa\a2}\85\ce\bf\82\cd\13\cf\04\b4\f2?\00\80=c\c8\d3\cc\bfP\cb|,\b0\88\f2?\00\a0\14L\03&\cb\bf\e5M\94c\"^\f2?\00\e0O/\1c|\c9\bf\b1\15\86=V4\f2?\00\00\80?\02\d6\c7\bf8\af>\e3F\0b\f2?\00\e0\05\1a\a73\c6\bf\dd\a3\cd\fd\ee\e2\f1?\00\00W\e9\f5\94\c4\bf09\0bXJ\bb\f1?\00\a0\e0$\e4\f9\c2\bf\00\"\7f\84S\94\f1?\00\c0\fdZYb\c1\bf<\d7\d5\c0\06n\f1?\00\80\bdu\9a\9c\bf\bf\c2\e4\b7G_H\f1?\00\c0\f9[W{\bc\bf\d1\85\00\adX#\f1?\00\80\f4\0f\c6`\b9\bf\'\"S\0f\f0\fe\f0?\00\00\b6G\e2L\b6\bf\8f:\d0w \db\f0?\00@\01\b2x?\b3\bf\d9\80Y\d6\e6\b7\f0?\00\c0B\1a}8\b0\bf\8d@{\fe>\95\f0?\00\00\b5\08\92o\aa\bf\83;\c5\ca%s\f0?\00\00wO\95z\a4\bf\\\1b\r\e4\97Q\f0?\00\00\0c\c5\a8#\9d\bf\a2\8e \c1\910\f0?\00\00x)&j\91\bf!~\b3%\10\10\f0?\00\00\e8\d8\f8 w\bfk\a7\ca\f9~\c0\ef?\00\00P\b1S\fe\86?\84\f1\f6\d3eD\ef?\00\80\0f\e1\cc\1c\a1?\7f\10\84\9f\07\cc\ee?\00\80\8b\8c\fcM\ac?\e8Z\97\99:W\ee?\00@W\1e2\aa\b3?\e6=\bd\f0\d6\e5\ed?\00\80\8b\d0\a0\18\b9?\b38\ff\81\b6w\ed?\00@\04\da\e9r\be?C\e9Mr\b5\0c\ed?\00`\7fP\d2\dc\c1?cu\0e\dc\b2\a4\ec?\00\a0\de\03\abv\c4?Q\cb\d6\e8\8e?\ec?\00 \e2wC\07\c7?L\0c\02O+\dd\eb?\00@\a9\8b\de\8e\c9?\ca\15`\00l}\eb?\00\e0\d2j\b8\r\cc?\8f3.n6 \eb?\00\e0\ce\af\n\84\ce?9P)&p\c5\ea?\00\80g\b4\ny\d0?\dd1\'\bc\01m\ea?\00\c0\01h\05\ac\d1?\8b\f1?\bc\d3\16\ea?\00\e0\fe\d4\11\db\d2?\ad\fegI\d1\c2\e9?\00\80\c5NF\06\d4?\02\99|\f4\e4p\e9?\00\f0:\t\be-\d5?\f2\bc\829\fb \e9?\00\d0P \90Q\d6?\f1Y\f7\87\01\d3\e8?\00\f0\ea\cd\d2q\d7?m\f6\b9\eb\e5\86\e8?\00\90}\85\9c\8e\d8?\94\b9X\b6\97<\e8?\00`\e1U\01\a8\d9?\"\10\c6\ff\05\f4\e7?\00\d0\d3n\18\be\da?\ca\15\14\18\"\ad\e7?\00\e0\a0\ae\f2\d0\db?\8c\ff\9e\f9\dcg\e7?\00@\bf=\a4\e0\dc?") - (data $28 (i32.const 11360) "\8e\n\b9\12\00 \e6?\05\b6D\06\ab\04\89<\a64W\04\00`\e6?\a9\f7b\ea\9b\ffa<\c5\f2%\c3\ff\9f\e6?\ba\90<\cb\cf~\82<\04Z\b98\00\e0\e6?&\93sV\88\ff\88<\e3\94\99\e0\ff\1f\e7?\b1\82_\'@\fd\8a<\10\0eY\15\00`\e7?A\83#\b4u\fdr\bc\d5[e\12\00\a0\e7?v+$|\e6\08x<\a6\e9Y2\00\e0\e7?\b7\"\f6&\e4\08b\bc\d2\b2\b4\ed\ff\1f\e8?/\c9\a5\1eF\02\84\bc\c3\fc\fa-\00`\e8?\1f\9a\f2\a2\f4\f7m)\e0\ff\df\f2?\f9\a6\b2\da9|\9b<\82\f0\dc\f7\ff\1f\f3?TR\dcn3\f1}<`\8bZ\f0\ff_\f3?\eb1\cdLV\03\9e\bc\cc\ae\0e.\00\a0\f3?w\a4\d3K\e7\f0u<6\b2;\04\00\e0\f3?3\88\9d\14\cb}\9c<\ff\87\d1\02\00 \f4?(=-\cf\af\08~<\b1|8\r\00`\f4?\a6\99e\857\08\82<\89\9fV\04\00\a0\f4?\d2\bcO\90\\\fa\89\bc\f3C5\04\00\e0\f4?)S\17\ed%\11x\bc\0f\7f\02\cc\ff\1f\f5?\dcTw\84\d8\83\98\e90.\90\80\91\bc") - (data $29 (i32.const 12384) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\r\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") - (data $30 (i32.const 12645) "\a0\f6?") - (data $30.1 (i32.const 12657) "\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?") - (data $30.2 (i32.const 12689) "\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?") - (data $30.3 (i32.const 12721) "XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?") - (data $30.4 (i32.const 12753) "\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?") - (data $30.5 (i32.const 12785) "xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?") - (data $30.6 (i32.const 12817) "`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?") - (data $30.7 (i32.const 12849) "\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?") - (data $30.8 (i32.const 12881) "HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?") - (data $30.9 (i32.const 12913) "\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?") - (data $30.10 (i32.const 12945) " \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?") - (data $30.11 (i32.const 12977) "\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?") - (data $30.12 (i32.const 13009) "\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?") - (data $30.13 (i32.const 13041) "x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?") - (data $30.14 (i32.const 13073) "\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?") - (data $30.15 (i32.const 13105) "\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?") - (data $30.16 (i32.const 13137) "H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?") - (data $30.17 (i32.const 13169) "\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?") - (data $30.18 (i32.const 13201) "\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?") - (data $30.19 (i32.const 13233) "\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?") - (data $30.20 (i32.const 13265) "@^m\18\b9\cf\bf\87<\99\ab*W\r=\00\00\00\00\00`\f4?") - (data $30.21 (i32.const 13297) "`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?") - (data $30.22 (i32.const 13329) "\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?") - (data $30.23 (i32.const 13361) "\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?") - (data $30.24 (i32.const 13393) "\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?") - (data $30.25 (i32.const 13425) "\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?") - (data $30.26 (i32.const 13457) "\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?") - (data $30.27 (i32.const 13489) "\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?") - (data $30.28 (i32.const 13521) "\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?") - (data $30.29 (i32.const 13553) "\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?") - (data $30.30 (i32.const 13585) "P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?") - (data $30.31 (i32.const 13617) "\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?") - (data $30.32 (i32.const 13649) "\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?") - (data $30.33 (i32.const 13681) "\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?") - (data $30.34 (i32.const 13713) "\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?") - (data $30.35 (i32.const 13745) "\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?") - (data $30.36 (i32.const 13777) "\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?") - (data $30.37 (i32.const 13809) "\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?") - (data $30.38 (i32.const 13841) "\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?") - (data $30.85 (i32.const 15345) "`F\d1;\97\b1?\9b\9e\rV]2%\bd\00\00\00\00\00\a0\ed?") - (data $30.86 (i32.const 15377) "\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?") - (data $30.87 (i32.const 15409) "\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?") - (data $30.88 (i32.const 15441) "\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?") - (data $30.89 (i32.const 15473) "@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?") - (data $30.90 (i32.const 15505) "`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?") - (data $30.91 (i32.const 15537) "@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?") - (data $30.92 (i32.const 15569) " \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?") - (data $30.93 (i32.const 15601) "\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?") - (data $30.94 (i32.const 15633) "\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?") - (data $30.95 (i32.const 15665) "\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?") - (data $30.96 (i32.const 15697) "\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?") - (data $30.97 (i32.const 15729) "\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?") - (data $30.98 (i32.const 15761) "\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?") - (data $30.99 (i32.const 15793) "\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?") - (data $30.100 (i32.const 15825) "\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?") - (data $30.101 (i32.const 15857) "pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?") - (data $30.102 (i32.const 15889) "PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?") - (data $30.103 (i32.const 15922) "9\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?") - (data $30.104 (i32.const 15954) "\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?") - (data $30.105 (i32.const 15985) "\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?") - (data $30.106 (i32.const 16017) "\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?") - (data $30.107 (i32.const 16049) "\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?") - (data $30.108 (i32.const 16081) "\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?") - (data $30.109 (i32.const 16113) "\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?") - (data $30.110 (i32.const 16145) "\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?") - (data $30.111 (i32.const 16178) "\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?") - (data $30.112 (i32.const 16209) "\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?") - (data $30.113 (i32.const 16241) "XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?") - (data $30.114 (i32.const 16273) "`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?") - (data $30.115 (i32.const 16305) "\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?") - (data $30.116 (i32.const 16337) "\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?") - (data $30.117 (i32.const 16369) "hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?") - (data $30.118 (i32.const 16401) "\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?") - (data $30.119 (i32.const 16433) "\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?") - (data $30.120 (i32.const 16465) "`\d3\e1\f1\14\d3?\b8\d2\bf\83E\06B\ff*\f5?\00\90\')\e1\e9\d1\bf\df\bd\b2\db\"\0f\f5?\00\f8H+m\95\d1\bf\d7\de4G\8f\f3\f4?\00\f8\b9\9agA\d1\bf@(\de\cfC\d8\f4?\00\98\ef\94\d0\ed\d0\bf\c8\a3x\c0>\bd\f4?\00\10\db\18\a5\9a\d0\bf\8a%\e0\c3\7f\a2\f4?\00\b8cR\e6G\d0\bf4\84\d4$\05\88\f4?\00\f0\86E\"\eb\cf\bf\0b-\19\1b\cem\f4?\00\b0\17uJG\cf\bfT\189\d3\d9S\f4?\000\10=D\a4\ce\bfZ\84\b4D\':\f4?\00\b0\e9D\r\02\ce\bf\fb\f8\15A\b5 \f4?\00\f0w)\a2`\cd\bf\b1\f4>\da\82\07\f4?\00\90\95\04\01\c0\cc\bf\8f\feW]\8f\ee\f3?\00\10\89V) \cc\bf\e9L\0b\a0\d9\d5\f3?\00\10\81\8d\17\81\cb\bf+\c1\10\c0`\bd\f3?\00\d0\d3\cc\c9\e2\ca\bf\b8\dau+$\a5\f3?\00\90\12.@E\ca\bf\02\d0\9f\cd\"\8d\f3?\00\f0\1dhw\a8\c9\bf\1cz\84\c5[u\f3?\000Him\0c\c9\bf\e26\adI\ce]\f3?\00\c0E\a6 q\c8\bf@\d4M\98yF\f3?\000\14\b4\8f\d6\c7\bf$\cb\ff\ce\\/\f3?\00pb<\b8<\c7\bfI\r\a1uw\18\f3?\00`7\9b\9a\a3\c6\bf\909>7\c8\01\f3?\00\a0\b7T1\0b\c6\bfA\f8\95\bbN\eb\f2?\000$v}s\c5\bf\d1\a9\19\02\n\d5\f2?\000\c2\8f{\dc\c4\bf*\fd\b7\a8\f9\be\f2?\00\00\d2Q,F\c4\bf\ab\1b\0cz\1c\a9\f2?\00\00\83\bc\8a\b0\c3\bf0\b5\14`r\93\f2?\00\00Ik\99\1b\c3\bf\f5\a1WW\fa}\f2?\00@\a4\90T\87\c2\bf\bf;\1d\9b\b3h\f2?\00\a0y\f8\b9\f3\c1\bf\bd\f5\8f\83\9dS\f2?\00\a0,%\c8`\c1\bf;\08\c9\aa\b7>\f2?\00 \f7W\7f\ce\c0\bf\b6@\a9+\01*\f2?\00\a0\feI\dc<\c0\bf2A\cc\96y\15\f2?\00\80K\bc\bdW\bf\bf\9b\fc\d2\1d \01\f2?\00@@\96\087\be\bf\0bHMI\f4\ec\f1?\00@\f9>\98\17\bd\bfie\8fR\f5\d8\f1?\00\a0\d8Ng\f9\bb\bf|~W\11#\c5\f1?\00`/ y\dc\ba\bf\e9&\cbt|\b1\f1?\00\80(\e7\c3\c0\b9\bf\b6\1a,\0c\01\9e\f1?\00\c0r\b3F\a6\b8\bf\bdp\b6{\b0\8a\f1?\00\00\ac\b3\01\8d\b7\bf\b6\bc\ef%\8aw\f1?\00\008E\f1t\b6\bf\da1L5\8dd\f1?\00\80\87m\0e^\b5\bf\dd_\'\90\b9Q\f1?\00\e0\a1\de\\H\b4\bfL\d22\a4\0e?\f1?\00\a0jM\d93\b3\bf\da\f9\10r\8b,\f1?\00`\c5\f8y \b2\bf1\b5\ec(0\1a\f1?\00 b\98F\0e\b1\bf\af4\84\da\fb\07\f1?\00\00\d2jl\fa\af\bf\b3kN\0f\ee\f5\f0?\00@wJ\8d\da\ad\bf\ce\9f*]\06\e4\f0?\00\00\85\e4\ec\bc\ab\bf!\a5,cD\d2\f0?\00\c0\12@\89\a1\a9\bf\1a\98\e2|\a7\c0\f0?\00\c0\023X\88\a7\bf\d16\c6\83/\af\f0?\00\80\d6g^q\a5\bf9\13\a0\98\db\9d\f0?\00\80eI\8a\\\a3\bf\df\e7R\af\ab\8c\f0?\00@\15d\e3I\a1\bf\fb(N/\9f{\f0?\00\80\eb\82\c0r\9e\bf\19\8f5\8c\b5j\f0?\00\80RR\f1U\9a\bf,\f9\ec\a5\eeY\f0?\00\80\81\cfb=\96\bf\90,\d1\cdII\f0?\00\00\aa\8c\fb(\92\bf\a9\ad\f0\c6\c68\f0?\00\00\f9 {1\8c\bf\a92y\13e(\f0?\00\00\aa]5\19\84\bfHs\ea\'$\18\f0?\00\00\ec\c2\03\12x\bf\95\b1\14\06\04\08\f0?\00\00$y\t\04`\bf\1a\fa&\f7\1f\e0\ef?\00\00\90\84\f3\efo?t\eaa\c2\1c\a1\ef?\00\00=5A\dc\87?.\99\81\b0\10c\ef?\00\80\c2\c4\a3\ce\93?\cd\ad\ee<\f6%\ef?\00\00\89\14\c1\9f\9b?\e7\13\91\03\c8\e9\ee?\00\00\11\ce\d8\b0\a1?\ab\b1\cbx\80\ae\ee?\00\c0\01\d0[\8a\a5?\9b\0c\9d\a2\1at\ee?\00\80\d8@\83\\\a9?\b5\99\n\83\91:\ee?\00\80W\efj\'\ad?V\9a`\t\e0\01\ee?\00\c0\98\e5\98u\b0?\98\bbw\e5\01\ca\ed?\00 \r\e3\f5S\b2?\03\91|\0b\f2\92\ed?\00\008\8b\dd.\b4?\ce\\\fbf\ac\\\ed?\00\c0W\87Y\06\b6?\9d\de^\aa,\'\ed?\00\00j5v\da\b7?\cd,k>n\f2\ec?\00`\1cNC\ab\b9?\02y\a7\a2m\be\ec?\00`\r\bb\c7x\bb?m\087m&\8b\ec?\00 \e72\13C\bd?\04X]\bd\94X\ec?\00`\deq1\n\bf?\8c\9f\bb3\b5&\ec?\00@\91+\15g\c0??\e7\ec\ee\83\f5\eb?\00\b0\92\82\85G\c1?\c1\96\dbu\fd\c4\eb?\000\ca\cdn&\c2?(J\86\0c\1e\95\eb?\00P\c5\a6\d7\03\c3?,>\ef\c5\e2e\eb?\00\103<\c3\df\c3?\8b\88\c9gH7\eb?\00\80zk6\ba\c4?J0\1d!K\t\eb?\00\f0\d1(9\93\c5?~\ef\f2\85\e8\db\ea?\00\f0\18$\cdj\c6?\a2=`1\1d\af\ea?\00\90f\ec\f8@\c7?\a7X\d3?\e6\82\ea?\00\f0\1a\f5\c0\15\c8?\8bs\t\ef@W\ea?\00\80\f6T)\e9\c8?\'K\ab\90*,\ea?\00@\f8\026\bb\c9?\d1\f2\93\13\a0\01\ea?\00\00,\1c\ed\8b\ca?\1b<\db$\9f\d7\e9?\00\d0\01\\Q[\cb?\90\b1\c7\05%\ae\e9?\00\c0\bc\ccg)\cc?/\ce\97\f2.\85\e9?\00`H\d55\f6\cc?uK\a4\ee\ba\\\e9?\00\c0F4\bd\c1\cd?8H\e7\9d\c64\e9?\00\e0\cf\b8\01\8c\ce?\e6Rg/O\r\e9?\00\90\17\c0\tU\cf?\9d\d7\ff\8eR\e6\e8?\00\b8\1f\12l\0e\d0?|\00\cc\9f\ce\bf\e8?\00\d0\93\0e\b8q\d0?\0e\c3\be\da\c0\99\e8?\00p\86\9ek\d4\d0?\fb\17#\aa\'t\e8?\00\d0K3\876\d1?\08\9a\b3\ac\00O\e8?\00H#g\r\98\d1?U>e\e8I*\e8?\00\80\cc\e0\ff\f8\d1?`\02\f4\95\01\06\e8?\00hc\d7_Y\d2?)\a3\e0c%\e2\e7?\00\a8\14\t0\b9\d2?\ad\b5\dcw\b3\be\e7?\00`C\10r\18\d3?\c2%\97g\aa\9b\e7?\00\18\ecm&w\d3?W\06\17\f2\07y\e7?\000\af\fbO\d5\d3?\0c\13\d6\db\caV\e7?\00\e0/\e3\ee2\d4?") + (data $2 (i32.const 3136) "k\b6O\01\00\10\e6?<[B\91l\02~<\95\b4M\03\000\e6?A]\00H\ea\bf\8d\f6\05\eb\ff\ef\e6?S-\e2\1a\04\80~\bc\80\97\86\0e\00\10\e7?Ry\tqf\ff{<\12\e9g\fc\ff/\e7?$\87\bd&\e2\00\8c\89<\b9{F\13\000\e9?v\02\98KN\80\7f.\98\dd\ff\af\e9?7\93Z\8a\e0@\87\bcf\fbI\ed\ff\cf\e9?\00\e0\9b\c1\08\ce?O*\00\b0\ea?_?\ff<\04\fdi\bc\d1\1e\ae\d7\ff\cf\ea?\b4p\90\12\e7>\82\bcx\04Q\ee\ff\ef\ea?\a3\de\0e\e0>\06j<[\re\db\ff\0f\eb?\b9\n\1f8\c8\06ZO\86\d0E\ff\8a<@\16\87\f9\ff\8f\eb?\f9\c3\c2\96w\fe|\f0\0f\00\f0\f4?\1cS\85\0b\89\7f\97<\d1K\dc\12\00\10\f5?6\a4fqe\04`\c9\03\00\b0\f5?\c0\0c\bf\n\08A\9f\bc\bc\19I\1d\00\d0\f5?)G%\fb*\81\98\bc\89z\b8\e7\ff\ef\f5?\04i\ed\80\b7~\94\bc") + (data $3 (i32.const 5184) "\be\f3\f8y\eca\f6?\de\aa\8c\80\f7{\d5\bf=\88\afJ\edq\f5?\dbm\c0\a7\f0\be\d2\bf\b0\10\f0\f09\95\f4?g:Q\7f\ae\1e\d0\bf\85\03\b8\b0\95\c9\f3?\e9$\82\a6\d81\cb\bf\a5d\88\0c\19\r\f3?Xw\c0\nOW\c6\bf\a0\8e\0b{\"^\f2?\00\81\9c\c7+\aa\c1\bf?4\1aJJ\bb\f1?^\0e\8c\cevN\ba\bf\ba\e5\8a\f0X#\f1?\cc\1caZ<\97\b1\bf\a7\00\99A?\95\f0?\1e\0c\e18\f4R\a2\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?\84Y\f2]\aa\a5\aa?\a0j\02\1f\b3\a4\ec?\b4.6\aaS^\bc?\e6\fcjW6 \eb?\08\db w\e5&\c5?-\aa\a1c\d1\c2\e9?pG\"\r\86\c2\cb?\edAx\03\e6\86\e8?\e1~\a0\c8\8b\05\d1?bHS\f5\dcg\e7?\t\ee\b6W0\04\d4?") + (data $4 (i32.const 5440) "n\83\f9\a2\00\00\00\00\d1W\'\fc)\15DN\99\95b\db\c0\dd4\f5\abcQ\feA\90C<:n$\b7a\c5\bb\de\ea.I\06\e0\d2MB\1c\eb\1d\fe\1c\92\d1\t\f55\82\e8>\a7)\b1&p\9c\e9\84D\bb.9\d6\919A~_\b4\8b_\84\9c\f49S\83\ff\97\f8\1f;(\f9\bd\8b\11/\ef\0f\98\05\de\cf~6m\1fm\nZf?FO\b7\t\cb\'\c7\ba\'u-\ea_\9e\f79\07={\f1\e5\eb\b1_\fbk\ea\92R\8aF0\03V\08]\8d\1f \bc\cf\f0\abk{\fca\91\e3\a9\1d6\f4\9a_\85\99e\08\1b\e6^\80\d8\ff\8d@h\a0\14W\15\06\061\'sM") + (data $5 (i32.const 5632) ")\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe") + (data $6 (i32.const 5678) "\f0?n\bf\88\1aO;\9b<53\fb\a9=\f6\ef?]\dc\d8\9c\13`q\bca\80w>\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\rG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") + (data $7 (i32.const 7718) "\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") + (data $8 (i32.const 7968) "\f8\ac\b1k($\f7?\00\b0\cd\ee_\t\e1\bf\a1\cc\d2f\f7\e1\f6?\00\d0v\bd\94\84\e0\bf\8a\d40\0e=\a1\f6?\00\f8\e8\aeC\01\e0\bf\85l\d02\eca\f6?\00@\0b6\c5\fe\de\bf\f8\98\11\95\fa#\f6?\00\e0\b7\1a\d9\fd\dd\bfl\02\cf\a4[\e7\f5?\00\90\c7\0c\ae\ff\dc\bf\b8O!Z\05\ac\f5?\00\a0\fd\118\04\dc\bf\1en\16\0f\edq\f5?\00\e0:2g\0b\db\bf5\f8\0bY\t9\f5?\00\b0-Z/\15\da\bf\dd\ada\edO\01\f5?\00`\f8Z\7f!\d9\bf\d0{H\8e\b8\ca\f4?\00\90q\b0M0\d8\bf\eeO3\b49\95\f4?\00\e0\a9\f9\89A\d7\bfi\d5\af\df\cb`\f4?\00\90\19\b5+U\d6\bfS\b9\e4Nf-\f4?\00\10\9b\a2#k\d5\bf\a6\d8\1d\11\01\fb\f3?\00\a0_\0fe\83\d4\bf6X\0c\b7\95\c9\f3?\00\a0\f67\e9\9d\d3\bfJ\fd\b6J\1c\99\f3?\00`\8dS\a1\ba\d2\bf\b5\99\e0\0c\8ei\f3?\00@\ca@\83\d9\d1\bf\b2\e7\13\82\e4:\f3?\00\e0@:\85\fa\d0\bf\b1\bd\85\19\19\r\f3?\000\e72\9c\1d\d0\bf\d7q\b2\ca%\e0\f2?\00`\fa\a2}\85\ce\bf\82\cd\13\cf\04\b4\f2?\00\80=c\c8\d3\cc\bfP\cb|,\b0\88\f2?\00\a0\14L\03&\cb\bf\e5M\94c\"^\f2?\00\e0O/\1c|\c9\bf\b1\15\86=V4\f2?\00\00\80?\02\d6\c7\bf8\af>\e3F\0b\f2?\00\e0\05\1a\a73\c6\bf\dd\a3\cd\fd\ee\e2\f1?\00\00W\e9\f5\94\c4\bf09\0bXJ\bb\f1?\00\a0\e0$\e4\f9\c2\bf\00\"\7f\84S\94\f1?\00\c0\fdZYb\c1\bf<\d7\d5\c0\06n\f1?\00\80\bdu\9a\9c\bf\bf\c2\e4\b7G_H\f1?\00\c0\f9[W{\bc\bf\d1\85\00\adX#\f1?\00\80\f4\0f\c6`\b9\bf\'\"S\0f\f0\fe\f0?\00\00\b6G\e2L\b6\bf\8f:\d0w \db\f0?\00@\01\b2x?\b3\bf\d9\80Y\d6\e6\b7\f0?\00\c0B\1a}8\b0\bf\8d@{\fe>\95\f0?\00\00\b5\08\92o\aa\bf\83;\c5\ca%s\f0?\00\00wO\95z\a4\bf\\\1b\r\e4\97Q\f0?\00\00\0c\c5\a8#\9d\bf\a2\8e \c1\910\f0?\00\00x)&j\91\bf!~\b3%\10\10\f0?\00\00\e8\d8\f8 w\bfk\a7\ca\f9~\c0\ef?\00\00P\b1S\fe\86?\84\f1\f6\d3eD\ef?\00\80\0f\e1\cc\1c\a1?\7f\10\84\9f\07\cc\ee?\00\80\8b\8c\fcM\ac?\e8Z\97\99:W\ee?\00@W\1e2\aa\b3?\e6=\bd\f0\d6\e5\ed?\00\80\8b\d0\a0\18\b9?\b38\ff\81\b6w\ed?\00@\04\da\e9r\be?C\e9Mr\b5\0c\ed?\00`\7fP\d2\dc\c1?cu\0e\dc\b2\a4\ec?\00\a0\de\03\abv\c4?Q\cb\d6\e8\8e?\ec?\00 \e2wC\07\c7?L\0c\02O+\dd\eb?\00@\a9\8b\de\8e\c9?\ca\15`\00l}\eb?\00\e0\d2j\b8\r\cc?\8f3.n6 \eb?\00\e0\ce\af\n\84\ce?9P)&p\c5\ea?\00\80g\b4\ny\d0?\dd1\'\bc\01m\ea?\00\c0\01h\05\ac\d1?\8b\f1?\bc\d3\16\ea?\00\e0\fe\d4\11\db\d2?\ad\fegI\d1\c2\e9?\00\80\c5NF\06\d4?\02\99|\f4\e4p\e9?\00\f0:\t\be-\d5?\f2\bc\829\fb \e9?\00\d0P \90Q\d6?\f1Y\f7\87\01\d3\e8?\00\f0\ea\cd\d2q\d7?m\f6\b9\eb\e5\86\e8?\00\90}\85\9c\8e\d8?\94\b9X\b6\97<\e8?\00`\e1U\01\a8\d9?\"\10\c6\ff\05\f4\e7?\00\d0\d3n\18\be\da?\ca\15\14\18\"\ad\e7?\00\e0\a0\ae\f2\d0\db?\8c\ff\9e\f9\dcg\e7?\00@\bf=\a4\e0\dc?") + (data $9 (i32.const 8992) "\8e\n\b9\12\00 \e6?\05\b6D\06\ab\04\89<\a64W\04\00`\e6?\a9\f7b\ea\9b\ffa<\c5\f2%\c3\ff\9f\e6?\ba\90<\cb\cf~\82<\04Z\b98\00\e0\e6?&\93sV\88\ff\88<\e3\94\99\e0\ff\1f\e7?\b1\82_\'@\fd\8a<\10\0eY\15\00`\e7?A\83#\b4u\fdr\bc\d5[e\12\00\a0\e7?v+$|\e6\08x<\a6\e9Y2\00\e0\e7?\b7\"\f6&\e4\08b\bc\d2\b2\b4\ed\ff\1f\e8?/\c9\a5\1eF\02\84\bc\c3\fc\fa-\00`\e8?\1f\9a\f2\a2\f4\f7m)\e0\ff\df\f2?\f9\a6\b2\da9|\9b<\82\f0\dc\f7\ff\1f\f3?TR\dcn3\f1}<`\8bZ\f0\ff_\f3?\eb1\cdLV\03\9e\bc\cc\ae\0e.\00\a0\f3?w\a4\d3K\e7\f0u<6\b2;\04\00\e0\f3?3\88\9d\14\cb}\9c<\ff\87\d1\02\00 \f4?(=-\cf\af\08~<\b1|8\r\00`\f4?\a6\99e\857\08\82<\89\9fV\04\00\a0\f4?\d2\bcO\90\\\fa\89\bc\f3C5\04\00\e0\f4?)S\17\ed%\11x\bc\0f\7f\02\cc\ff\1f\f5?\dcTw\84\d8\83\98\e90.\90\80\91\bc") + (data $10 (i32.const 10016) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\r\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") + (data $11 (i32.const 10277) "\a0\f6?") + (data $11.1 (i32.const 10289) "\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?") + (data $11.2 (i32.const 10321) "\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?") + (data $11.3 (i32.const 10353) "XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?") + (data $11.4 (i32.const 10385) "\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?") + (data $11.5 (i32.const 10417) "xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?") + (data $11.6 (i32.const 10449) "`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?") + (data $11.7 (i32.const 10481) "\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?") + (data $11.8 (i32.const 10513) "HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?") + (data $11.9 (i32.const 10545) "\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?") + (data $11.10 (i32.const 10577) " \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?") + (data $11.11 (i32.const 10609) "\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?") + (data $11.12 (i32.const 10641) "\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?") + (data $11.13 (i32.const 10673) "x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?") + (data $11.14 (i32.const 10705) "\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?") + (data $11.15 (i32.const 10737) "\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?") + (data $11.16 (i32.const 10769) "H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?") + (data $11.17 (i32.const 10801) "\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?") + (data $11.18 (i32.const 10833) "\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?") + (data $11.19 (i32.const 10865) "\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?") + (data $11.20 (i32.const 10897) "@^m\18\b9\cf\bf\87<\99\ab*W\r=\00\00\00\00\00`\f4?") + (data $11.21 (i32.const 10929) "`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?") + (data $11.22 (i32.const 10961) "\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?") + (data $11.23 (i32.const 10993) "\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?") + (data $11.24 (i32.const 11025) "\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?") + (data $11.25 (i32.const 11057) "\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?") + (data $11.26 (i32.const 11089) "\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?") + (data $11.27 (i32.const 11121) "\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?") + (data $11.28 (i32.const 11153) "\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?") + (data $11.29 (i32.const 11185) "\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?") + (data $11.30 (i32.const 11217) "P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?") + (data $11.31 (i32.const 11249) "\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?") + (data $11.32 (i32.const 11281) "\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?") + (data $11.33 (i32.const 11313) "\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?") + (data $11.34 (i32.const 11345) "\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?") + (data $11.35 (i32.const 11377) "\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?") + (data $11.36 (i32.const 11409) "\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?") + (data $11.37 (i32.const 11441) "\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?") + (data $11.38 (i32.const 11473) "\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?") + (data $11.85 (i32.const 12977) "`F\d1;\97\b1?\9b\9e\rV]2%\bd\00\00\00\00\00\a0\ed?") + (data $11.86 (i32.const 13009) "\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?") + (data $11.87 (i32.const 13041) "\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?") + (data $11.88 (i32.const 13073) "\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?") + (data $11.89 (i32.const 13105) "@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?") + (data $11.90 (i32.const 13137) "`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?") + (data $11.91 (i32.const 13169) "@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?") + (data $11.92 (i32.const 13201) " \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?") + (data $11.93 (i32.const 13233) "\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?") + (data $11.94 (i32.const 13265) "\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?") + (data $11.95 (i32.const 13297) "\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?") + (data $11.96 (i32.const 13329) "\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?") + (data $11.97 (i32.const 13361) "\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?") + (data $11.98 (i32.const 13393) "\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?") + (data $11.99 (i32.const 13425) "\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?") + (data $11.100 (i32.const 13457) "\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?") + (data $11.101 (i32.const 13489) "pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?") + (data $11.102 (i32.const 13521) "PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?") + (data $11.103 (i32.const 13554) "9\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?") + (data $11.104 (i32.const 13586) "\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?") + (data $11.105 (i32.const 13617) "\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?") + (data $11.106 (i32.const 13649) "\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?") + (data $11.107 (i32.const 13681) "\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?") + (data $11.108 (i32.const 13713) "\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?") + (data $11.109 (i32.const 13745) "\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?") + (data $11.110 (i32.const 13777) "\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?") + (data $11.111 (i32.const 13810) "\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?") + (data $11.112 (i32.const 13841) "\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?") + (data $11.113 (i32.const 13873) "XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?") + (data $11.114 (i32.const 13905) "`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?") + (data $11.115 (i32.const 13937) "\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?") + (data $11.116 (i32.const 13969) "\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?") + (data $11.117 (i32.const 14001) "hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?") + (data $11.118 (i32.const 14033) "\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?") + (data $11.119 (i32.const 14065) "\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?") + (data $11.120 (i32.const 14097) "`\d3\e1\f1\14\d3?\b8 (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) local.get $0 @@ -2139,7 +407,7 @@ f32.ne return end - block $__inlined_func$std/math/ulperrf$1191 (result f32) + block $__inlined_func$std/math/ulperrf$1079 (result f32) f32.const 0 local.get $1 local.get $1 @@ -2148,7 +416,7 @@ local.get $0 f32.ne i32.and - br_if $__inlined_func$std/math/ulperrf$1191 + br_if $__inlined_func$std/math/ulperrf$1079 drop local.get $0 local.get $1 @@ -2164,10 +432,10 @@ i32.const 31 i32.shr_u i32.eq - br_if $__inlined_func$std/math/ulperrf$1191 + br_if $__inlined_func$std/math/ulperrf$1079 drop f32.const inf - br $__inlined_func$std/math/ulperrf$1191 + br $__inlined_func$std/math/ulperrf$1079 end local.get $0 local.get $0 @@ -3055,7 +1323,7 @@ i32.const 4 i32.shl local.tee $2 - i32.const 3456 + i32.const 1088 i32.add local.set $7 local.get $3 @@ -3076,7 +1344,7 @@ i64.sub f64.reinterpret_i64 local.get $2 - i32.const 5504 + i32.const 3136 i32.add local.tee $2 f64.load @@ -3131,7 +1399,7 @@ (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i64) - block $__inlined_func$~lib/math/NativeMath.acosh$83 (result f64) + block $__inlined_func$~lib/math/NativeMath.acosh$8 (result f64) local.get $0 local.get $0 f64.sub @@ -3142,7 +1410,7 @@ local.tee $4 i64.const 4607182418800017408 i64.lt_s - br_if $__inlined_func$~lib/math/NativeMath.acosh$83 + br_if $__inlined_func$~lib/math/NativeMath.acosh$8 drop local.get $4 i64.const 52 @@ -3167,7 +1435,7 @@ f64.sqrt f64.add call $~lib/math/NativeMath.log1p - br $__inlined_func$~lib/math/NativeMath.acosh$83 + br $__inlined_func$~lib/math/NativeMath.acosh$8 end local.get $4 i64.const 1049 @@ -3188,7 +1456,7 @@ f64.div f64.sub call $~lib/math/NativeMath.log - br $__inlined_func$~lib/math/NativeMath.acosh$83 + br $__inlined_func$~lib/math/NativeMath.acosh$8 end local.get $0 call $~lib/math/NativeMath.log @@ -3440,7 +1708,7 @@ i32.and i32.const 4 i32.shl - i32.const 7552 + i32.const 5184 i32.add local.set $5 local.get $1 @@ -3487,7 +1755,7 @@ ) (func $std/math/test_acoshf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) - block $__inlined_func$~lib/math/NativeMathf.acosh$84 (result f32) + block $__inlined_func$~lib/math/NativeMathf.acosh$9 (result f32) local.get $0 i32.reinterpret_f32 local.tee $3 @@ -3508,7 +1776,7 @@ f32.sqrt f32.add call $~lib/math/NativeMathf.log1p - br $__inlined_func$~lib/math/NativeMathf.acosh$84 + br $__inlined_func$~lib/math/NativeMathf.acosh$9 end local.get $3 i32.const 1166016512 @@ -3529,7 +1797,7 @@ f32.div f32.sub call $~lib/math/NativeMathf.log - br $__inlined_func$~lib/math/NativeMathf.acosh$84 + br $__inlined_func$~lib/math/NativeMathf.acosh$9 end local.get $0 call $~lib/math/NativeMathf.log @@ -4941,7 +3209,7 @@ local.get $0 f64.add local.set $3 - block $__inlined_func$~lib/math/NativeMath.cbrt$93 + block $__inlined_func$~lib/math/NativeMath.cbrt$18 local.get $0 i64.reinterpret_f64 local.tee $5 @@ -4953,7 +3221,7 @@ local.tee $4 i32.const 2146435072 i32.ge_u - br_if $__inlined_func$~lib/math/NativeMath.cbrt$93 + br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 local.get $4 i32.const 1048576 i32.lt_u @@ -4971,7 +3239,7 @@ i32.and local.tee $4 i32.eqz - br_if $__inlined_func$~lib/math/NativeMath.cbrt$93 + br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 local.get $4 i32.const 3 i32.div_u @@ -5073,7 +3341,7 @@ (local $6 i32) (local $7 f64) (local $8 f64) - block $__inlined_func$~lib/math/NativeMathf.cbrt$94 (result f32) + block $__inlined_func$~lib/math/NativeMathf.cbrt$19 (result f32) local.get $0 local.get $0 f32.add @@ -5085,7 +3353,7 @@ local.tee $6 i32.const 2139095040 i32.ge_u - br_if $__inlined_func$~lib/math/NativeMathf.cbrt$94 + br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 drop local.get $6 i32.const 8388608 @@ -5094,7 +3362,7 @@ local.get $0 local.get $6 i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.cbrt$94 + br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 drop local.get $0 f32.const 16777216 @@ -5195,7 +3463,7 @@ i32.wrap_i64 i32.const 3 i32.shl - i32.const 7808 + i32.const 5440 i32.add local.tee $4 i64.load @@ -6132,7 +4400,7 @@ i32.shr_s i32.const 3 i32.shl - i32.const 8000 + i32.const 5632 i32.add local.tee $7 i64.load offset=8 @@ -6651,7 +4919,7 @@ i32.wrap_i64 i32.const 3 i32.shl - i32.const 8032 + i32.const 5664 i32.add local.tee $5 i64.load offset=8 @@ -6791,7 +5059,7 @@ (local $3 i32) (local $4 i64) (local $5 f64) - block $__inlined_func$~lib/math/NativeMath.cosh$95 (result f64) + block $__inlined_func$~lib/math/NativeMath.cosh$20 (result f64) local.get $0 i64.reinterpret_f64 i64.const 9223372036854775807 @@ -6811,7 +5079,7 @@ local.get $3 i32.const 1045430272 i32.lt_u - br_if $__inlined_func$~lib/math/NativeMath.cosh$95 + br_if $__inlined_func$~lib/math/NativeMath.cosh$20 drop local.get $5 call $~lib/math/NativeMath.expm1 @@ -6826,7 +5094,7 @@ f64.div f64.const 1 f64.add - br $__inlined_func$~lib/math/NativeMath.cosh$95 + br $__inlined_func$~lib/math/NativeMath.cosh$20 end local.get $3 i32.const 1082535490 @@ -6841,7 +5109,7 @@ f64.add f64.const 0.5 f64.mul - br $__inlined_func$~lib/math/NativeMath.cosh$95 + br $__inlined_func$~lib/math/NativeMath.cosh$20 end local.get $5 f64.const -1416.0996898839683 @@ -7196,7 +5464,7 @@ i32.and i32.const 3 i32.shl - i32.const 10080 + i32.const 7712 i32.add i64.load local.get $2 @@ -7210,7 +5478,7 @@ ) (func $std/math/test_coshf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) - block $__inlined_func$~lib/math/NativeMathf.cosh$96 (result f32) + block $__inlined_func$~lib/math/NativeMathf.cosh$21 (result f32) local.get $0 i32.reinterpret_f32 i32.const 2147483647 @@ -7226,7 +5494,7 @@ local.get $3 i32.const 964689920 i32.lt_u - br_if $__inlined_func$~lib/math/NativeMathf.cosh$96 + br_if $__inlined_func$~lib/math/NativeMathf.cosh$21 drop local.get $0 call $~lib/math/NativeMathf.expm1 @@ -7241,7 +5509,7 @@ f32.div f32.const 1 f32.add - br $__inlined_func$~lib/math/NativeMathf.cosh$96 + br $__inlined_func$~lib/math/NativeMathf.cosh$21 end local.get $3 i32.const 1118925335 @@ -7256,7 +5524,7 @@ local.get $0 f32.div f32.add - br $__inlined_func$~lib/math/NativeMathf.cosh$96 + br $__inlined_func$~lib/math/NativeMathf.cosh$21 end local.get $0 f32.const -162.88958740234375 @@ -7356,7 +5624,7 @@ i32.wrap_i64 i32.const 3 i32.shl - i32.const 8032 + i32.const 5664 i32.add local.tee $7 i64.load offset=8 @@ -7564,7 +5832,7 @@ i32.and i32.const 3 i32.shl - i32.const 10080 + i32.const 7712 i32.add i64.load local.get $4 @@ -7611,7 +5879,7 @@ f64.reinterpret_i64 local.tee $9 local.set $0 - block $__inlined_func$~lib/math/NativeMath.hypot$98 + block $__inlined_func$~lib/math/NativeMath.hypot$23 local.get $5 i64.const 52 i64.shr_u @@ -7619,7 +5887,7 @@ local.tee $7 i32.const 2047 i32.eq - br_if $__inlined_func$~lib/math/NativeMath.hypot$98 + br_if $__inlined_func$~lib/math/NativeMath.hypot$23 local.get $4 f64.reinterpret_i64 local.tee $1 @@ -7634,7 +5902,7 @@ i32.const 2047 i32.eq i32.or - br_if $__inlined_func$~lib/math/NativeMath.hypot$98 + br_if $__inlined_func$~lib/math/NativeMath.hypot$23 local.get $1 local.get $9 f64.add @@ -7644,7 +5912,7 @@ i32.sub i32.const 64 i32.gt_s - br_if $__inlined_func$~lib/math/NativeMath.hypot$98 + br_if $__inlined_func$~lib/math/NativeMath.hypot$23 f64.const 1 local.set $0 local.get $8 @@ -7775,14 +6043,14 @@ local.get $4 f32.reinterpret_i32 local.set $0 - block $__inlined_func$~lib/math/NativeMathf.hypot$99 (result f32) + block $__inlined_func$~lib/math/NativeMathf.hypot$24 (result f32) local.get $5 f32.reinterpret_i32 local.tee $1 local.get $5 i32.const 2139095040 i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.hypot$99 + br_if $__inlined_func$~lib/math/NativeMathf.hypot$24 drop local.get $0 local.get $1 @@ -7799,7 +6067,7 @@ i32.const 209715200 i32.ge_u i32.or - br_if $__inlined_func$~lib/math/NativeMathf.hypot$99 + br_if $__inlined_func$~lib/math/NativeMathf.hypot$24 drop local.get $4 i32.const 1568669696 @@ -8072,7 +6340,7 @@ (local $8 f32) (local $9 f32) (local $10 f32) - block $__inlined_func$~lib/math/NativeMathf.log10$100 (result f32) + block $__inlined_func$~lib/math/NativeMathf.log10$25 (result f32) local.get $0 i32.reinterpret_f32 local.tee $3 @@ -8093,7 +6361,7 @@ i32.const 1 i32.shl i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.log10$100 + br_if $__inlined_func$~lib/math/NativeMathf.log10$25 drop local.get $0 local.get $0 @@ -8101,7 +6369,7 @@ f32.const 0 f32.div local.get $4 - br_if $__inlined_func$~lib/math/NativeMathf.log10$100 + br_if $__inlined_func$~lib/math/NativeMathf.log10$25 drop i32.const -25 local.set $6 @@ -8116,13 +6384,13 @@ i32.ge_u if local.get $0 - br $__inlined_func$~lib/math/NativeMathf.log10$100 + br $__inlined_func$~lib/math/NativeMathf.log10$25 else f32.const 0 local.get $3 i32.const 1065353216 i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.log10$100 + br_if $__inlined_func$~lib/math/NativeMathf.log10$25 drop end end @@ -8386,7 +6654,7 @@ i32.const 4 i32.shl local.tee $2 - i32.const 10336 + i32.const 7968 i32.add local.set $10 local.get $3 @@ -8404,7 +6672,7 @@ i64.sub f64.reinterpret_i64 local.get $2 - i32.const 11360 + i32.const 8992 i32.add local.tee $2 f64.load @@ -8537,7 +6805,7 @@ i32.and i32.const 4 i32.shl - i32.const 12384 + i32.const 10016 i32.add local.set $7 local.get $3 @@ -8630,7 +6898,7 @@ (local $8 f64) (local $9 i64) (local $10 i64) - block $__inlined_func$~lib/math/NativeMath.mod$3 (result f64) + block $__inlined_func$~lib/math/NativeMath.mod$2 (result f64) local.get $0 local.get $0 f64.trunc @@ -8641,7 +6909,7 @@ f64.abs f64.const 1 f64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$3 + br_if $__inlined_func$~lib/math/NativeMath.mod$2 drop local.get $1 i64.reinterpret_f64 @@ -8678,7 +6946,7 @@ local.tee $8 local.get $8 f64.div - br $__inlined_func$~lib/math/NativeMath.mod$3 + br $__inlined_func$~lib/math/NativeMath.mod$2 end local.get $4 i64.const 1 @@ -8693,7 +6961,7 @@ i64.ne f64.convert_i32_u f64.mul - br $__inlined_func$~lib/math/NativeMath.mod$3 + br $__inlined_func$~lib/math/NativeMath.mod$2 end local.get $4 i64.const 63 @@ -8758,7 +7026,7 @@ local.get $3 local.get $4 i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$3 + br_if $__inlined_func$~lib/math/NativeMath.mod$2 drop local.get $3 local.get $4 @@ -8786,7 +7054,7 @@ local.get $3 local.get $4 i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$3 + br_if $__inlined_func$~lib/math/NativeMath.mod$2 drop local.get $3 local.get $4 @@ -9426,7 +7694,7 @@ i32.wrap_i64 i32.const 5 i32.shl - i32.const 12640 + i32.const 10272 i32.add local.tee $3 f64.load @@ -9605,7 +7873,7 @@ i32.wrap_i64 i32.const 3 i32.shl - i32.const 8032 + i32.const 5664 i32.add local.tee $18 i64.load offset=8 @@ -10081,7 +8349,7 @@ i32.and i32.const 4 i32.shl - i32.const 12384 + i32.const 10016 i32.add local.tee $2 f64.load @@ -10184,7 +8452,7 @@ i32.and i32.const 3 i32.shl - i32.const 10080 + i32.const 7712 i32.add i64.load local.get $5 @@ -11550,7 +9818,7 @@ i32.shr_s i32.const 3 i32.shl - i32.const 8000 + i32.const 5632 i32.add local.tee $7 i64.load offset=8 @@ -11728,7 +9996,7 @@ (local $4 i32) (local $5 i64) (local $6 f64) - block $__inlined_func$~lib/math/NativeMath.sinh$110 (result f64) + block $__inlined_func$~lib/math/NativeMath.sinh$35 (result f64) local.get $0 i64.reinterpret_f64 i64.const 9223372036854775807 @@ -11759,7 +10027,7 @@ local.get $4 i32.const 1045430272 i32.lt_u - br_if $__inlined_func$~lib/math/NativeMath.sinh$110 + br_if $__inlined_func$~lib/math/NativeMath.sinh$35 drop local.get $3 local.get $6 @@ -11774,7 +10042,7 @@ f64.div f64.sub f64.mul - br $__inlined_func$~lib/math/NativeMath.sinh$110 + br $__inlined_func$~lib/math/NativeMath.sinh$35 end local.get $3 local.get $6 @@ -11785,7 +10053,7 @@ f64.div f64.add f64.mul - br $__inlined_func$~lib/math/NativeMath.sinh$110 + br $__inlined_func$~lib/math/NativeMath.sinh$35 end local.get $6 f64.const -1416.0996898839683 @@ -11828,7 +10096,7 @@ local.get $0 f32.copysign local.set $3 - block $__inlined_func$~lib/math/NativeMathf.sinh$111 + block $__inlined_func$~lib/math/NativeMathf.sinh$36 local.get $4 i32.const 1118925335 i32.lt_u @@ -11843,7 +10111,7 @@ local.get $4 i32.const 964689920 i32.lt_u - br_if $__inlined_func$~lib/math/NativeMathf.sinh$111 + br_if $__inlined_func$~lib/math/NativeMathf.sinh$36 local.get $3 local.get $5 local.get $5 @@ -11858,7 +10126,7 @@ f32.sub f32.mul local.set $0 - br $__inlined_func$~lib/math/NativeMathf.sinh$111 + br $__inlined_func$~lib/math/NativeMathf.sinh$36 end local.get $3 local.get $5 @@ -11870,7 +10138,7 @@ f32.add f32.mul local.set $0 - br $__inlined_func$~lib/math/NativeMathf.sinh$111 + br $__inlined_func$~lib/math/NativeMathf.sinh$36 end local.get $5 f32.const -162.88958740234375 @@ -12515,7 +10783,7 @@ i32.shr_s i32.const 3 i32.shl - i32.const 8000 + i32.const 5632 i32.add local.tee $7 i64.load offset=8 @@ -13680,38 +11948,6 @@ (local $4 f32) (local $5 i64) (local $6 i32) - memory.size - i32.const 16 - i32.shl - i32.const 49524 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace f64.const 2.718281828459045 global.get $~lib/bindings/dom/Math.E f64.const 0 @@ -13719,7 +11955,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -13732,7 +11968,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -13745,7 +11981,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 113 i32.const 1 call $~lib/builtins/abort @@ -13758,7 +11994,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 114 i32.const 1 call $~lib/builtins/abort @@ -13771,7 +12007,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -13784,7 +12020,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 116 i32.const 1 call $~lib/builtins/abort @@ -13797,7 +12033,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 117 i32.const 1 call $~lib/builtins/abort @@ -13811,7 +12047,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 119 i32.const 1 call $~lib/builtins/abort @@ -13825,7 +12061,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -13839,7 +12075,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 121 i32.const 1 call $~lib/builtins/abort @@ -13853,7 +12089,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 122 i32.const 1 call $~lib/builtins/abort @@ -13867,7 +12103,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 123 i32.const 1 call $~lib/builtins/abort @@ -13881,7 +12117,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 124 i32.const 1 call $~lib/builtins/abort @@ -13895,7 +12131,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 125 i32.const 1 call $~lib/builtins/abort @@ -13910,7 +12146,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 136 i32.const 1 call $~lib/builtins/abort @@ -13925,7 +12161,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 137 i32.const 1 call $~lib/builtins/abort @@ -13940,7 +12176,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 138 i32.const 1 call $~lib/builtins/abort @@ -13955,7 +12191,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 139 i32.const 1 call $~lib/builtins/abort @@ -13970,7 +12206,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 140 i32.const 1 call $~lib/builtins/abort @@ -13985,7 +12221,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 141 i32.const 1 call $~lib/builtins/abort @@ -14000,7 +12236,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 142 i32.const 1 call $~lib/builtins/abort @@ -14015,7 +12251,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 143 i32.const 1 call $~lib/builtins/abort @@ -14030,7 +12266,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 144 i32.const 1 call $~lib/builtins/abort @@ -14045,7 +12281,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 145 i32.const 1 call $~lib/builtins/abort @@ -14060,7 +12296,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 148 i32.const 1 call $~lib/builtins/abort @@ -14075,7 +12311,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 149 i32.const 1 call $~lib/builtins/abort @@ -14090,7 +12326,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 150 i32.const 1 call $~lib/builtins/abort @@ -14105,7 +12341,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -14120,7 +12356,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 152 i32.const 1 call $~lib/builtins/abort @@ -14135,7 +12371,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 153 i32.const 1 call $~lib/builtins/abort @@ -14150,7 +12386,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 154 i32.const 1 call $~lib/builtins/abort @@ -14165,7 +12401,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 155 i32.const 1 call $~lib/builtins/abort @@ -14180,7 +12416,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 156 i32.const 1 call $~lib/builtins/abort @@ -14195,7 +12431,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 157 i32.const 1 call $~lib/builtins/abort @@ -14210,7 +12446,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 158 i32.const 1 call $~lib/builtins/abort @@ -14225,7 +12461,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 159 i32.const 1 call $~lib/builtins/abort @@ -14240,7 +12476,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 160 i32.const 1 call $~lib/builtins/abort @@ -14255,7 +12491,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -14270,7 +12506,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -14285,7 +12521,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -14300,7 +12536,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 164 i32.const 1 call $~lib/builtins/abort @@ -14315,7 +12551,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 165 i32.const 1 call $~lib/builtins/abort @@ -14330,7 +12566,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 166 i32.const 1 call $~lib/builtins/abort @@ -14343,7 +12579,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 175 i32.const 1 call $~lib/builtins/abort @@ -14356,7 +12592,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 176 i32.const 1 call $~lib/builtins/abort @@ -14369,7 +12605,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 177 i32.const 1 call $~lib/builtins/abort @@ -14382,7 +12618,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 178 i32.const 1 call $~lib/builtins/abort @@ -14395,7 +12631,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 179 i32.const 1 call $~lib/builtins/abort @@ -14408,7 +12644,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 180 i32.const 1 call $~lib/builtins/abort @@ -14421,7 +12657,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 181 i32.const 1 call $~lib/builtins/abort @@ -14434,7 +12670,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 182 i32.const 1 call $~lib/builtins/abort @@ -14447,7 +12683,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 183 i32.const 1 call $~lib/builtins/abort @@ -14460,7 +12696,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 184 i32.const 1 call $~lib/builtins/abort @@ -14473,7 +12709,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 187 i32.const 1 call $~lib/builtins/abort @@ -14486,7 +12722,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 188 i32.const 1 call $~lib/builtins/abort @@ -14499,7 +12735,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 189 i32.const 1 call $~lib/builtins/abort @@ -14512,7 +12748,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 190 i32.const 1 call $~lib/builtins/abort @@ -14525,7 +12761,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 191 i32.const 1 call $~lib/builtins/abort @@ -14538,7 +12774,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 192 i32.const 1 call $~lib/builtins/abort @@ -14551,7 +12787,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 193 i32.const 1 call $~lib/builtins/abort @@ -14564,7 +12800,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 194 i32.const 1 call $~lib/builtins/abort @@ -14577,7 +12813,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 195 i32.const 1 call $~lib/builtins/abort @@ -14590,7 +12826,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 196 i32.const 1 call $~lib/builtins/abort @@ -14603,7 +12839,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 197 i32.const 1 call $~lib/builtins/abort @@ -14616,7 +12852,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 198 i32.const 1 call $~lib/builtins/abort @@ -14629,7 +12865,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 199 i32.const 1 call $~lib/builtins/abort @@ -14642,7 +12878,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 200 i32.const 1 call $~lib/builtins/abort @@ -14655,7 +12891,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 201 i32.const 1 call $~lib/builtins/abort @@ -14668,7 +12904,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 202 i32.const 1 call $~lib/builtins/abort @@ -14681,7 +12917,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 203 i32.const 1 call $~lib/builtins/abort @@ -14694,7 +12930,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 204 i32.const 1 call $~lib/builtins/abort @@ -14707,7 +12943,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 205 i32.const 1 call $~lib/builtins/abort @@ -14729,7 +12965,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 217 i32.const 1 call $~lib/builtins/abort @@ -14751,7 +12987,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 218 i32.const 1 call $~lib/builtins/abort @@ -14773,7 +13009,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 219 i32.const 1 call $~lib/builtins/abort @@ -14795,7 +13031,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 220 i32.const 1 call $~lib/builtins/abort @@ -14817,7 +13053,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 221 i32.const 1 call $~lib/builtins/abort @@ -14839,7 +13075,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 222 i32.const 1 call $~lib/builtins/abort @@ -14861,7 +13097,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 223 i32.const 1 call $~lib/builtins/abort @@ -14883,7 +13119,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 224 i32.const 1 call $~lib/builtins/abort @@ -14905,7 +13141,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 225 i32.const 1 call $~lib/builtins/abort @@ -14927,7 +13163,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 226 i32.const 1 call $~lib/builtins/abort @@ -14949,7 +13185,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 229 i32.const 1 call $~lib/builtins/abort @@ -14971,7 +13207,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 230 i32.const 1 call $~lib/builtins/abort @@ -14993,7 +13229,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 231 i32.const 1 call $~lib/builtins/abort @@ -15015,7 +13251,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 232 i32.const 1 call $~lib/builtins/abort @@ -15037,7 +13273,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 233 i32.const 1 call $~lib/builtins/abort @@ -15059,7 +13295,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 234 i32.const 1 call $~lib/builtins/abort @@ -15081,7 +13317,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 235 i32.const 1 call $~lib/builtins/abort @@ -15094,7 +13330,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 244 i32.const 1 call $~lib/builtins/abort @@ -15107,7 +13343,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 245 i32.const 1 call $~lib/builtins/abort @@ -15120,7 +13356,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 246 i32.const 1 call $~lib/builtins/abort @@ -15133,7 +13369,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 247 i32.const 1 call $~lib/builtins/abort @@ -15146,7 +13382,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 248 i32.const 1 call $~lib/builtins/abort @@ -15159,7 +13395,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 249 i32.const 1 call $~lib/builtins/abort @@ -15172,7 +13408,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 250 i32.const 1 call $~lib/builtins/abort @@ -15185,7 +13421,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 251 i32.const 1 call $~lib/builtins/abort @@ -15198,7 +13434,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 252 i32.const 1 call $~lib/builtins/abort @@ -15211,7 +13447,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 253 i32.const 1 call $~lib/builtins/abort @@ -15224,7 +13460,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 256 i32.const 1 call $~lib/builtins/abort @@ -15237,7 +13473,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 257 i32.const 1 call $~lib/builtins/abort @@ -15250,7 +13486,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 258 i32.const 1 call $~lib/builtins/abort @@ -15263,7 +13499,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 259 i32.const 1 call $~lib/builtins/abort @@ -15276,7 +13512,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 260 i32.const 1 call $~lib/builtins/abort @@ -15289,7 +13525,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 261 i32.const 1 call $~lib/builtins/abort @@ -15302,7 +13538,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 262 i32.const 1 call $~lib/builtins/abort @@ -15325,7 +13561,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 274 i32.const 1 call $~lib/builtins/abort @@ -15348,7 +13584,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 275 i32.const 1 call $~lib/builtins/abort @@ -15371,7 +13607,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 276 i32.const 1 call $~lib/builtins/abort @@ -15394,7 +13630,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 277 i32.const 1 call $~lib/builtins/abort @@ -15417,7 +13653,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 278 i32.const 1 call $~lib/builtins/abort @@ -15440,7 +13676,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 279 i32.const 1 call $~lib/builtins/abort @@ -15463,7 +13699,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 280 i32.const 1 call $~lib/builtins/abort @@ -15486,7 +13722,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 281 i32.const 1 call $~lib/builtins/abort @@ -15509,7 +13745,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 282 i32.const 1 call $~lib/builtins/abort @@ -15532,7 +13768,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 283 i32.const 1 call $~lib/builtins/abort @@ -15555,7 +13791,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 286 i32.const 1 call $~lib/builtins/abort @@ -15578,7 +13814,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 287 i32.const 1 call $~lib/builtins/abort @@ -15601,7 +13837,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 288 i32.const 1 call $~lib/builtins/abort @@ -15624,7 +13860,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 289 i32.const 1 call $~lib/builtins/abort @@ -15647,7 +13883,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 290 i32.const 1 call $~lib/builtins/abort @@ -15670,7 +13906,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 291 i32.const 1 call $~lib/builtins/abort @@ -15693,7 +13929,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 292 i32.const 1 call $~lib/builtins/abort @@ -15716,7 +13952,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 293 i32.const 1 call $~lib/builtins/abort @@ -15739,7 +13975,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 294 i32.const 1 call $~lib/builtins/abort @@ -15762,7 +13998,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 295 i32.const 1 call $~lib/builtins/abort @@ -15776,7 +14012,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 304 i32.const 1 call $~lib/builtins/abort @@ -15790,7 +14026,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 305 i32.const 1 call $~lib/builtins/abort @@ -15804,7 +14040,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 306 i32.const 1 call $~lib/builtins/abort @@ -15818,7 +14054,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 307 i32.const 1 call $~lib/builtins/abort @@ -15832,7 +14068,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 308 i32.const 1 call $~lib/builtins/abort @@ -15846,7 +14082,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 309 i32.const 1 call $~lib/builtins/abort @@ -15860,7 +14096,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 310 i32.const 1 call $~lib/builtins/abort @@ -15874,7 +14110,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 311 i32.const 1 call $~lib/builtins/abort @@ -15888,7 +14124,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 312 i32.const 1 call $~lib/builtins/abort @@ -15902,7 +14138,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 313 i32.const 1 call $~lib/builtins/abort @@ -15916,7 +14152,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 316 i32.const 1 call $~lib/builtins/abort @@ -15930,7 +14166,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 317 i32.const 1 call $~lib/builtins/abort @@ -15944,7 +14180,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 318 i32.const 1 call $~lib/builtins/abort @@ -15958,7 +14194,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 319 i32.const 1 call $~lib/builtins/abort @@ -15972,7 +14208,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 320 i32.const 1 call $~lib/builtins/abort @@ -15986,7 +14222,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 321 i32.const 1 call $~lib/builtins/abort @@ -16000,7 +14236,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 322 i32.const 1 call $~lib/builtins/abort @@ -16014,7 +14250,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 323 i32.const 1 call $~lib/builtins/abort @@ -16028,7 +14264,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 324 i32.const 1 call $~lib/builtins/abort @@ -16042,7 +14278,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 325 i32.const 1 call $~lib/builtins/abort @@ -16056,7 +14292,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 326 i32.const 1 call $~lib/builtins/abort @@ -16069,7 +14305,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 338 i32.const 1 call $~lib/builtins/abort @@ -16082,7 +14318,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 339 i32.const 1 call $~lib/builtins/abort @@ -16095,7 +14331,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 340 i32.const 1 call $~lib/builtins/abort @@ -16108,7 +14344,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 341 i32.const 1 call $~lib/builtins/abort @@ -16121,7 +14357,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 342 i32.const 1 call $~lib/builtins/abort @@ -16134,7 +14370,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 343 i32.const 1 call $~lib/builtins/abort @@ -16147,7 +14383,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 344 i32.const 1 call $~lib/builtins/abort @@ -16160,7 +14396,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 345 i32.const 1 call $~lib/builtins/abort @@ -16173,7 +14409,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 346 i32.const 1 call $~lib/builtins/abort @@ -16186,7 +14422,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 347 i32.const 1 call $~lib/builtins/abort @@ -16199,7 +14435,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 350 i32.const 1 call $~lib/builtins/abort @@ -16212,7 +14448,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 351 i32.const 1 call $~lib/builtins/abort @@ -16225,7 +14461,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 352 i32.const 1 call $~lib/builtins/abort @@ -16238,7 +14474,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 353 i32.const 1 call $~lib/builtins/abort @@ -16251,7 +14487,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 354 i32.const 1 call $~lib/builtins/abort @@ -16264,7 +14500,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 355 i32.const 1 call $~lib/builtins/abort @@ -16277,7 +14513,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 356 i32.const 1 call $~lib/builtins/abort @@ -16290,7 +14526,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 357 i32.const 1 call $~lib/builtins/abort @@ -16303,7 +14539,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 373 i32.const 1 call $~lib/builtins/abort @@ -16316,7 +14552,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 375 i32.const 1 call $~lib/builtins/abort @@ -16329,7 +14565,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 376 i32.const 1 call $~lib/builtins/abort @@ -16342,7 +14578,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 385 i32.const 1 call $~lib/builtins/abort @@ -16355,7 +14591,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 386 i32.const 1 call $~lib/builtins/abort @@ -16368,7 +14604,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 387 i32.const 1 call $~lib/builtins/abort @@ -16381,7 +14617,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 388 i32.const 1 call $~lib/builtins/abort @@ -16394,7 +14630,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 389 i32.const 1 call $~lib/builtins/abort @@ -16407,7 +14643,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 390 i32.const 1 call $~lib/builtins/abort @@ -16420,7 +14656,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 391 i32.const 1 call $~lib/builtins/abort @@ -16433,7 +14669,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 392 i32.const 1 call $~lib/builtins/abort @@ -16446,7 +14682,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 393 i32.const 1 call $~lib/builtins/abort @@ -16459,7 +14695,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 394 i32.const 1 call $~lib/builtins/abort @@ -16472,7 +14708,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 397 i32.const 1 call $~lib/builtins/abort @@ -16485,7 +14721,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 398 i32.const 1 call $~lib/builtins/abort @@ -16498,7 +14734,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 399 i32.const 1 call $~lib/builtins/abort @@ -16511,7 +14747,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 400 i32.const 1 call $~lib/builtins/abort @@ -16524,7 +14760,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 401 i32.const 1 call $~lib/builtins/abort @@ -16537,7 +14773,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 402 i32.const 1 call $~lib/builtins/abort @@ -16550,7 +14786,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 403 i32.const 1 call $~lib/builtins/abort @@ -16563,7 +14799,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 404 i32.const 1 call $~lib/builtins/abort @@ -16586,7 +14822,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 416 i32.const 1 call $~lib/builtins/abort @@ -16609,7 +14845,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 417 i32.const 1 call $~lib/builtins/abort @@ -16632,7 +14868,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 418 i32.const 1 call $~lib/builtins/abort @@ -16655,7 +14891,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 419 i32.const 1 call $~lib/builtins/abort @@ -16678,7 +14914,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 420 i32.const 1 call $~lib/builtins/abort @@ -16701,7 +14937,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 421 i32.const 1 call $~lib/builtins/abort @@ -16724,7 +14960,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 422 i32.const 1 call $~lib/builtins/abort @@ -16747,7 +14983,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 423 i32.const 1 call $~lib/builtins/abort @@ -16770,7 +15006,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 424 i32.const 1 call $~lib/builtins/abort @@ -16793,7 +15029,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 425 i32.const 1 call $~lib/builtins/abort @@ -16816,7 +15052,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 428 i32.const 1 call $~lib/builtins/abort @@ -16839,7 +15075,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 429 i32.const 1 call $~lib/builtins/abort @@ -16862,7 +15098,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 430 i32.const 1 call $~lib/builtins/abort @@ -16885,7 +15121,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 431 i32.const 1 call $~lib/builtins/abort @@ -16908,7 +15144,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 432 i32.const 1 call $~lib/builtins/abort @@ -16931,7 +15167,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 433 i32.const 1 call $~lib/builtins/abort @@ -16954,7 +15190,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 434 i32.const 1 call $~lib/builtins/abort @@ -16977,7 +15213,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 435 i32.const 1 call $~lib/builtins/abort @@ -17000,7 +15236,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 436 i32.const 1 call $~lib/builtins/abort @@ -17023,7 +15259,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 437 i32.const 1 call $~lib/builtins/abort @@ -17037,7 +15273,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 446 i32.const 1 call $~lib/builtins/abort @@ -17051,7 +15287,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 447 i32.const 1 call $~lib/builtins/abort @@ -17065,7 +15301,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 448 i32.const 1 call $~lib/builtins/abort @@ -17079,7 +15315,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 449 i32.const 1 call $~lib/builtins/abort @@ -17093,7 +15329,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 450 i32.const 1 call $~lib/builtins/abort @@ -17107,7 +15343,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 451 i32.const 1 call $~lib/builtins/abort @@ -17121,7 +15357,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 452 i32.const 1 call $~lib/builtins/abort @@ -17135,7 +15371,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 453 i32.const 1 call $~lib/builtins/abort @@ -17149,7 +15385,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 454 i32.const 1 call $~lib/builtins/abort @@ -17163,7 +15399,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 455 i32.const 1 call $~lib/builtins/abort @@ -17177,7 +15413,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 458 i32.const 1 call $~lib/builtins/abort @@ -17191,7 +15427,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 459 i32.const 1 call $~lib/builtins/abort @@ -17205,7 +15441,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 460 i32.const 1 call $~lib/builtins/abort @@ -17219,7 +15455,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 461 i32.const 1 call $~lib/builtins/abort @@ -17233,7 +15469,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 462 i32.const 1 call $~lib/builtins/abort @@ -17247,7 +15483,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 463 i32.const 1 call $~lib/builtins/abort @@ -17261,7 +15497,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 464 i32.const 1 call $~lib/builtins/abort @@ -17275,7 +15511,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 465 i32.const 1 call $~lib/builtins/abort @@ -17289,7 +15525,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 466 i32.const 1 call $~lib/builtins/abort @@ -17303,7 +15539,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 467 i32.const 1 call $~lib/builtins/abort @@ -17316,7 +15552,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 479 i32.const 1 call $~lib/builtins/abort @@ -17329,7 +15565,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 480 i32.const 1 call $~lib/builtins/abort @@ -17342,7 +15578,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 481 i32.const 1 call $~lib/builtins/abort @@ -17355,7 +15591,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 482 i32.const 1 call $~lib/builtins/abort @@ -17368,7 +15604,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 483 i32.const 1 call $~lib/builtins/abort @@ -17381,7 +15617,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 484 i32.const 1 call $~lib/builtins/abort @@ -17394,7 +15630,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 485 i32.const 1 call $~lib/builtins/abort @@ -17407,7 +15643,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 486 i32.const 1 call $~lib/builtins/abort @@ -17420,7 +15656,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 487 i32.const 1 call $~lib/builtins/abort @@ -17433,7 +15669,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 488 i32.const 1 call $~lib/builtins/abort @@ -17446,7 +15682,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 491 i32.const 1 call $~lib/builtins/abort @@ -17459,7 +15695,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 492 i32.const 1 call $~lib/builtins/abort @@ -17472,7 +15708,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 493 i32.const 1 call $~lib/builtins/abort @@ -17485,7 +15721,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 494 i32.const 1 call $~lib/builtins/abort @@ -17498,7 +15734,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 495 i32.const 1 call $~lib/builtins/abort @@ -17511,7 +15747,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 524 i32.const 1 call $~lib/builtins/abort @@ -17524,7 +15760,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 525 i32.const 1 call $~lib/builtins/abort @@ -17537,7 +15773,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 526 i32.const 1 call $~lib/builtins/abort @@ -17550,7 +15786,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 527 i32.const 1 call $~lib/builtins/abort @@ -17563,7 +15799,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 528 i32.const 1 call $~lib/builtins/abort @@ -17576,7 +15812,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 529 i32.const 1 call $~lib/builtins/abort @@ -17589,7 +15825,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 530 i32.const 1 call $~lib/builtins/abort @@ -17602,7 +15838,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 531 i32.const 1 call $~lib/builtins/abort @@ -17615,7 +15851,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 532 i32.const 1 call $~lib/builtins/abort @@ -17628,7 +15864,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 533 i32.const 1 call $~lib/builtins/abort @@ -17641,7 +15877,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 536 i32.const 1 call $~lib/builtins/abort @@ -17654,7 +15890,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 537 i32.const 1 call $~lib/builtins/abort @@ -17667,7 +15903,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 538 i32.const 1 call $~lib/builtins/abort @@ -17680,7 +15916,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 539 i32.const 1 call $~lib/builtins/abort @@ -17693,7 +15929,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 540 i32.const 1 call $~lib/builtins/abort @@ -17716,7 +15952,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 552 i32.const 1 call $~lib/builtins/abort @@ -17739,7 +15975,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 553 i32.const 1 call $~lib/builtins/abort @@ -17762,7 +15998,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 554 i32.const 1 call $~lib/builtins/abort @@ -17785,7 +16021,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 555 i32.const 1 call $~lib/builtins/abort @@ -17808,7 +16044,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 556 i32.const 1 call $~lib/builtins/abort @@ -17831,7 +16067,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 557 i32.const 1 call $~lib/builtins/abort @@ -17854,7 +16090,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 558 i32.const 1 call $~lib/builtins/abort @@ -17877,7 +16113,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 559 i32.const 1 call $~lib/builtins/abort @@ -17900,7 +16136,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 560 i32.const 1 call $~lib/builtins/abort @@ -17923,7 +16159,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 561 i32.const 1 call $~lib/builtins/abort @@ -17946,7 +16182,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 564 i32.const 1 call $~lib/builtins/abort @@ -17969,7 +16205,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 565 i32.const 1 call $~lib/builtins/abort @@ -17992,7 +16228,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 566 i32.const 1 call $~lib/builtins/abort @@ -18015,7 +16251,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 567 i32.const 1 call $~lib/builtins/abort @@ -18038,7 +16274,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 568 i32.const 1 call $~lib/builtins/abort @@ -18061,7 +16297,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 569 i32.const 1 call $~lib/builtins/abort @@ -18084,7 +16320,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 570 i32.const 1 call $~lib/builtins/abort @@ -18107,7 +16343,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 571 i32.const 1 call $~lib/builtins/abort @@ -18121,7 +16357,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 580 i32.const 1 call $~lib/builtins/abort @@ -18135,7 +16371,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 581 i32.const 1 call $~lib/builtins/abort @@ -18149,7 +16385,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 582 i32.const 1 call $~lib/builtins/abort @@ -18163,7 +16399,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 583 i32.const 1 call $~lib/builtins/abort @@ -18177,7 +16413,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 584 i32.const 1 call $~lib/builtins/abort @@ -18191,7 +16427,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 585 i32.const 1 call $~lib/builtins/abort @@ -18205,7 +16441,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 586 i32.const 1 call $~lib/builtins/abort @@ -18219,7 +16455,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 587 i32.const 1 call $~lib/builtins/abort @@ -18233,7 +16469,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 588 i32.const 1 call $~lib/builtins/abort @@ -18247,7 +16483,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 589 i32.const 1 call $~lib/builtins/abort @@ -18261,7 +16497,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 592 i32.const 1 call $~lib/builtins/abort @@ -18275,7 +16511,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 593 i32.const 1 call $~lib/builtins/abort @@ -18289,7 +16525,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 594 i32.const 1 call $~lib/builtins/abort @@ -18303,7 +16539,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 595 i32.const 1 call $~lib/builtins/abort @@ -18317,7 +16553,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 596 i32.const 1 call $~lib/builtins/abort @@ -18331,7 +16567,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 597 i32.const 1 call $~lib/builtins/abort @@ -18345,7 +16581,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 598 i32.const 1 call $~lib/builtins/abort @@ -18358,7 +16594,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 610 i32.const 1 call $~lib/builtins/abort @@ -18371,7 +16607,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 611 i32.const 1 call $~lib/builtins/abort @@ -18384,7 +16620,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 612 i32.const 1 call $~lib/builtins/abort @@ -18397,7 +16633,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 613 i32.const 1 call $~lib/builtins/abort @@ -18410,7 +16646,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 614 i32.const 1 call $~lib/builtins/abort @@ -18423,7 +16659,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 615 i32.const 1 call $~lib/builtins/abort @@ -18436,7 +16672,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 616 i32.const 1 call $~lib/builtins/abort @@ -18449,7 +16685,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 617 i32.const 1 call $~lib/builtins/abort @@ -18462,7 +16698,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 618 i32.const 1 call $~lib/builtins/abort @@ -18475,7 +16711,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 619 i32.const 1 call $~lib/builtins/abort @@ -18488,7 +16724,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 622 i32.const 1 call $~lib/builtins/abort @@ -18501,7 +16737,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 623 i32.const 1 call $~lib/builtins/abort @@ -18514,7 +16750,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 624 i32.const 1 call $~lib/builtins/abort @@ -18527,7 +16763,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 625 i32.const 1 call $~lib/builtins/abort @@ -18540,7 +16776,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 626 i32.const 1 call $~lib/builtins/abort @@ -18553,7 +16789,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 627 i32.const 1 call $~lib/builtins/abort @@ -18566,7 +16802,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 628 i32.const 1 call $~lib/builtins/abort @@ -18579,7 +16815,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 629 i32.const 1 call $~lib/builtins/abort @@ -18592,7 +16828,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 630 i32.const 1 call $~lib/builtins/abort @@ -18605,7 +16841,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 631 i32.const 1 call $~lib/builtins/abort @@ -18618,7 +16854,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 632 i32.const 1 call $~lib/builtins/abort @@ -18631,7 +16867,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 633 i32.const 1 call $~lib/builtins/abort @@ -18644,7 +16880,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 634 i32.const 1 call $~lib/builtins/abort @@ -18657,7 +16893,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 635 i32.const 1 call $~lib/builtins/abort @@ -18670,7 +16906,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 644 i32.const 1 call $~lib/builtins/abort @@ -18683,7 +16919,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 645 i32.const 1 call $~lib/builtins/abort @@ -18696,7 +16932,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 646 i32.const 1 call $~lib/builtins/abort @@ -18709,7 +16945,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 647 i32.const 1 call $~lib/builtins/abort @@ -18722,7 +16958,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 648 i32.const 1 call $~lib/builtins/abort @@ -18735,7 +16971,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 649 i32.const 1 call $~lib/builtins/abort @@ -18748,7 +16984,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 650 i32.const 1 call $~lib/builtins/abort @@ -18761,7 +16997,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 651 i32.const 1 call $~lib/builtins/abort @@ -18774,7 +17010,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 652 i32.const 1 call $~lib/builtins/abort @@ -18787,7 +17023,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 653 i32.const 1 call $~lib/builtins/abort @@ -18800,7 +17036,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 656 i32.const 1 call $~lib/builtins/abort @@ -18813,7 +17049,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 657 i32.const 1 call $~lib/builtins/abort @@ -18826,7 +17062,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 658 i32.const 1 call $~lib/builtins/abort @@ -18839,7 +17075,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 659 i32.const 1 call $~lib/builtins/abort @@ -18852,7 +17088,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 660 i32.const 1 call $~lib/builtins/abort @@ -18865,7 +17101,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 661 i32.const 1 call $~lib/builtins/abort @@ -18878,7 +17114,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 662 i32.const 1 call $~lib/builtins/abort @@ -18891,7 +17127,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 663 i32.const 1 call $~lib/builtins/abort @@ -18904,7 +17140,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 664 i32.const 1 call $~lib/builtins/abort @@ -18917,7 +17153,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 665 i32.const 1 call $~lib/builtins/abort @@ -18930,7 +17166,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 666 i32.const 1 call $~lib/builtins/abort @@ -18943,7 +17179,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 667 i32.const 1 call $~lib/builtins/abort @@ -18956,7 +17192,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 668 i32.const 1 call $~lib/builtins/abort @@ -18969,7 +17205,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 669 i32.const 1 call $~lib/builtins/abort @@ -18983,7 +17219,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 681 i32.const 1 call $~lib/builtins/abort @@ -18997,7 +17233,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 682 i32.const 1 call $~lib/builtins/abort @@ -19011,7 +17247,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 683 i32.const 1 call $~lib/builtins/abort @@ -19025,7 +17261,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 684 i32.const 1 call $~lib/builtins/abort @@ -19039,7 +17275,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 685 i32.const 1 call $~lib/builtins/abort @@ -19053,7 +17289,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 686 i32.const 1 call $~lib/builtins/abort @@ -19067,7 +17303,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 687 i32.const 1 call $~lib/builtins/abort @@ -19081,7 +17317,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 688 i32.const 1 call $~lib/builtins/abort @@ -19095,7 +17331,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 689 i32.const 1 call $~lib/builtins/abort @@ -19109,7 +17345,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 690 i32.const 1 call $~lib/builtins/abort @@ -19123,7 +17359,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 693 i32.const 1 call $~lib/builtins/abort @@ -19137,7 +17373,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 694 i32.const 1 call $~lib/builtins/abort @@ -19151,7 +17387,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 695 i32.const 1 call $~lib/builtins/abort @@ -19165,7 +17401,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 696 i32.const 1 call $~lib/builtins/abort @@ -19179,7 +17415,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 697 i32.const 1 call $~lib/builtins/abort @@ -19193,7 +17429,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 698 i32.const 1 call $~lib/builtins/abort @@ -19207,7 +17443,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 699 i32.const 1 call $~lib/builtins/abort @@ -19221,7 +17457,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 700 i32.const 1 call $~lib/builtins/abort @@ -19235,7 +17471,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 701 i32.const 1 call $~lib/builtins/abort @@ -19249,7 +17485,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 702 i32.const 1 call $~lib/builtins/abort @@ -19263,7 +17499,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 703 i32.const 1 call $~lib/builtins/abort @@ -19277,7 +17513,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 704 i32.const 1 call $~lib/builtins/abort @@ -19291,7 +17527,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 705 i32.const 1 call $~lib/builtins/abort @@ -19305,7 +17541,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 706 i32.const 1 call $~lib/builtins/abort @@ -19319,7 +17555,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 707 i32.const 1 call $~lib/builtins/abort @@ -19333,7 +17569,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 708 i32.const 1 call $~lib/builtins/abort @@ -19347,7 +17583,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 709 i32.const 1 call $~lib/builtins/abort @@ -19361,7 +17597,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 710 i32.const 1 call $~lib/builtins/abort @@ -19375,7 +17611,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 711 i32.const 1 call $~lib/builtins/abort @@ -19389,7 +17625,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 712 i32.const 1 call $~lib/builtins/abort @@ -19403,7 +17639,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 713 i32.const 1 call $~lib/builtins/abort @@ -19417,7 +17653,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 714 i32.const 1 call $~lib/builtins/abort @@ -19431,7 +17667,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 715 i32.const 1 call $~lib/builtins/abort @@ -19445,7 +17681,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 716 i32.const 1 call $~lib/builtins/abort @@ -19459,7 +17695,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 717 i32.const 1 call $~lib/builtins/abort @@ -19473,7 +17709,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 718 i32.const 1 call $~lib/builtins/abort @@ -19487,7 +17723,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 719 i32.const 1 call $~lib/builtins/abort @@ -19501,7 +17737,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 720 i32.const 1 call $~lib/builtins/abort @@ -19515,7 +17751,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 721 i32.const 1 call $~lib/builtins/abort @@ -19529,7 +17765,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 722 i32.const 1 call $~lib/builtins/abort @@ -19544,7 +17780,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 731 i32.const 1 call $~lib/builtins/abort @@ -19559,7 +17795,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 732 i32.const 1 call $~lib/builtins/abort @@ -19574,7 +17810,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 733 i32.const 1 call $~lib/builtins/abort @@ -19589,7 +17825,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 734 i32.const 1 call $~lib/builtins/abort @@ -19604,7 +17840,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 735 i32.const 1 call $~lib/builtins/abort @@ -19619,7 +17855,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 736 i32.const 1 call $~lib/builtins/abort @@ -19634,7 +17870,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 737 i32.const 1 call $~lib/builtins/abort @@ -19649,7 +17885,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 738 i32.const 1 call $~lib/builtins/abort @@ -19664,7 +17900,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 739 i32.const 1 call $~lib/builtins/abort @@ -19679,7 +17915,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 740 i32.const 1 call $~lib/builtins/abort @@ -19694,7 +17930,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 743 i32.const 1 call $~lib/builtins/abort @@ -19709,7 +17945,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 744 i32.const 1 call $~lib/builtins/abort @@ -19724,7 +17960,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 745 i32.const 1 call $~lib/builtins/abort @@ -19739,7 +17975,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 746 i32.const 1 call $~lib/builtins/abort @@ -19754,7 +17990,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 747 i32.const 1 call $~lib/builtins/abort @@ -19769,7 +18005,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 748 i32.const 1 call $~lib/builtins/abort @@ -19784,7 +18020,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 749 i32.const 1 call $~lib/builtins/abort @@ -19799,7 +18035,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 750 i32.const 1 call $~lib/builtins/abort @@ -19814,7 +18050,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 751 i32.const 1 call $~lib/builtins/abort @@ -19829,7 +18065,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 752 i32.const 1 call $~lib/builtins/abort @@ -19844,7 +18080,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 753 i32.const 1 call $~lib/builtins/abort @@ -19859,7 +18095,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 754 i32.const 1 call $~lib/builtins/abort @@ -19874,7 +18110,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 755 i32.const 1 call $~lib/builtins/abort @@ -19889,7 +18125,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 756 i32.const 1 call $~lib/builtins/abort @@ -19904,7 +18140,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 757 i32.const 1 call $~lib/builtins/abort @@ -19919,7 +18155,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 758 i32.const 1 call $~lib/builtins/abort @@ -19934,7 +18170,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 759 i32.const 1 call $~lib/builtins/abort @@ -19949,7 +18185,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 760 i32.const 1 call $~lib/builtins/abort @@ -19964,7 +18200,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 761 i32.const 1 call $~lib/builtins/abort @@ -19979,7 +18215,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 762 i32.const 1 call $~lib/builtins/abort @@ -19994,7 +18230,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 763 i32.const 1 call $~lib/builtins/abort @@ -20009,7 +18245,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 764 i32.const 1 call $~lib/builtins/abort @@ -20024,7 +18260,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 765 i32.const 1 call $~lib/builtins/abort @@ -20039,7 +18275,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 766 i32.const 1 call $~lib/builtins/abort @@ -20054,7 +18290,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 767 i32.const 1 call $~lib/builtins/abort @@ -20069,7 +18305,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 768 i32.const 1 call $~lib/builtins/abort @@ -20084,7 +18320,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 769 i32.const 1 call $~lib/builtins/abort @@ -20099,7 +18335,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 770 i32.const 1 call $~lib/builtins/abort @@ -20112,7 +18348,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 782 i32.const 1 call $~lib/builtins/abort @@ -20125,7 +18361,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 783 i32.const 1 call $~lib/builtins/abort @@ -20138,7 +18374,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 784 i32.const 1 call $~lib/builtins/abort @@ -20151,7 +18387,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 785 i32.const 1 call $~lib/builtins/abort @@ -20164,7 +18400,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 786 i32.const 1 call $~lib/builtins/abort @@ -20177,7 +18413,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 787 i32.const 1 call $~lib/builtins/abort @@ -20190,7 +18426,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 788 i32.const 1 call $~lib/builtins/abort @@ -20203,7 +18439,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 789 i32.const 1 call $~lib/builtins/abort @@ -20216,7 +18452,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 790 i32.const 1 call $~lib/builtins/abort @@ -20229,7 +18465,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 791 i32.const 1 call $~lib/builtins/abort @@ -20242,7 +18478,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 794 i32.const 1 call $~lib/builtins/abort @@ -20255,7 +18491,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 795 i32.const 1 call $~lib/builtins/abort @@ -20268,7 +18504,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 796 i32.const 1 call $~lib/builtins/abort @@ -20281,7 +18517,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 797 i32.const 1 call $~lib/builtins/abort @@ -20294,7 +18530,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 798 i32.const 1 call $~lib/builtins/abort @@ -20307,7 +18543,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 799 i32.const 1 call $~lib/builtins/abort @@ -20320,7 +18556,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 800 i32.const 1 call $~lib/builtins/abort @@ -20333,7 +18569,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 801 i32.const 1 call $~lib/builtins/abort @@ -20346,7 +18582,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 802 i32.const 1 call $~lib/builtins/abort @@ -20359,7 +18595,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 803 i32.const 1 call $~lib/builtins/abort @@ -20372,7 +18608,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 812 i32.const 1 call $~lib/builtins/abort @@ -20385,7 +18621,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 813 i32.const 1 call $~lib/builtins/abort @@ -20398,7 +18634,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 814 i32.const 1 call $~lib/builtins/abort @@ -20411,7 +18647,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 815 i32.const 1 call $~lib/builtins/abort @@ -20424,7 +18660,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 816 i32.const 1 call $~lib/builtins/abort @@ -20437,7 +18673,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 817 i32.const 1 call $~lib/builtins/abort @@ -20450,7 +18686,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 818 i32.const 1 call $~lib/builtins/abort @@ -20463,7 +18699,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 819 i32.const 1 call $~lib/builtins/abort @@ -20476,7 +18712,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 820 i32.const 1 call $~lib/builtins/abort @@ -20489,7 +18725,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 821 i32.const 1 call $~lib/builtins/abort @@ -20502,7 +18738,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 824 i32.const 1 call $~lib/builtins/abort @@ -20515,7 +18751,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 825 i32.const 1 call $~lib/builtins/abort @@ -20528,7 +18764,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 826 i32.const 1 call $~lib/builtins/abort @@ -20541,7 +18777,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 827 i32.const 1 call $~lib/builtins/abort @@ -20554,7 +18790,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 828 i32.const 1 call $~lib/builtins/abort @@ -20567,7 +18803,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 829 i32.const 1 call $~lib/builtins/abort @@ -20580,7 +18816,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 830 i32.const 1 call $~lib/builtins/abort @@ -20593,7 +18829,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 831 i32.const 1 call $~lib/builtins/abort @@ -20606,7 +18842,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 832 i32.const 1 call $~lib/builtins/abort @@ -20619,7 +18855,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 833 i32.const 1 call $~lib/builtins/abort @@ -20641,7 +18877,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 845 i32.const 1 call $~lib/builtins/abort @@ -20663,7 +18899,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 846 i32.const 1 call $~lib/builtins/abort @@ -20685,7 +18921,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 847 i32.const 1 call $~lib/builtins/abort @@ -20707,7 +18943,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 848 i32.const 1 call $~lib/builtins/abort @@ -20729,7 +18965,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 849 i32.const 1 call $~lib/builtins/abort @@ -20751,7 +18987,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 850 i32.const 1 call $~lib/builtins/abort @@ -20773,7 +19009,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 851 i32.const 1 call $~lib/builtins/abort @@ -20795,7 +19031,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 852 i32.const 1 call $~lib/builtins/abort @@ -20817,7 +19053,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 853 i32.const 1 call $~lib/builtins/abort @@ -20839,7 +19075,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 854 i32.const 1 call $~lib/builtins/abort @@ -20861,7 +19097,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 857 i32.const 1 call $~lib/builtins/abort @@ -20883,7 +19119,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 858 i32.const 1 call $~lib/builtins/abort @@ -20905,7 +19141,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 859 i32.const 1 call $~lib/builtins/abort @@ -20927,7 +19163,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 860 i32.const 1 call $~lib/builtins/abort @@ -20949,7 +19185,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 861 i32.const 1 call $~lib/builtins/abort @@ -20971,7 +19207,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 862 i32.const 1 call $~lib/builtins/abort @@ -20993,7 +19229,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 863 i32.const 1 call $~lib/builtins/abort @@ -21015,7 +19251,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 864 i32.const 1 call $~lib/builtins/abort @@ -21037,7 +19273,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 865 i32.const 1 call $~lib/builtins/abort @@ -21059,7 +19295,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 866 i32.const 1 call $~lib/builtins/abort @@ -21081,7 +19317,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 867 i32.const 1 call $~lib/builtins/abort @@ -21103,7 +19339,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 868 i32.const 1 call $~lib/builtins/abort @@ -21125,7 +19361,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 869 i32.const 1 call $~lib/builtins/abort @@ -21147,7 +19383,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 870 i32.const 1 call $~lib/builtins/abort @@ -21169,7 +19405,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 871 i32.const 1 call $~lib/builtins/abort @@ -21191,7 +19427,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 872 i32.const 1 call $~lib/builtins/abort @@ -21213,7 +19449,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 873 i32.const 1 call $~lib/builtins/abort @@ -21235,7 +19471,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 874 i32.const 1 call $~lib/builtins/abort @@ -21257,7 +19493,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 875 i32.const 1 call $~lib/builtins/abort @@ -21279,7 +19515,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 876 i32.const 1 call $~lib/builtins/abort @@ -21301,7 +19537,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 877 i32.const 1 call $~lib/builtins/abort @@ -21323,7 +19559,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 878 i32.const 1 call $~lib/builtins/abort @@ -21345,7 +19581,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 879 i32.const 1 call $~lib/builtins/abort @@ -21367,7 +19603,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 880 i32.const 1 call $~lib/builtins/abort @@ -21389,7 +19625,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 881 i32.const 1 call $~lib/builtins/abort @@ -21411,7 +19647,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 882 i32.const 1 call $~lib/builtins/abort @@ -21433,7 +19669,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 883 i32.const 1 call $~lib/builtins/abort @@ -21455,7 +19691,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 884 i32.const 1 call $~lib/builtins/abort @@ -21477,7 +19713,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 885 i32.const 1 call $~lib/builtins/abort @@ -21499,7 +19735,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 886 i32.const 1 call $~lib/builtins/abort @@ -21521,7 +19757,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 887 i32.const 1 call $~lib/builtins/abort @@ -21543,7 +19779,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 888 i32.const 1 call $~lib/builtins/abort @@ -21565,7 +19801,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 889 i32.const 1 call $~lib/builtins/abort @@ -21587,7 +19823,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 890 i32.const 1 call $~lib/builtins/abort @@ -21609,7 +19845,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 891 i32.const 1 call $~lib/builtins/abort @@ -21631,7 +19867,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 892 i32.const 1 call $~lib/builtins/abort @@ -21653,7 +19889,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 893 i32.const 1 call $~lib/builtins/abort @@ -21675,7 +19911,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 894 i32.const 1 call $~lib/builtins/abort @@ -21697,7 +19933,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 895 i32.const 1 call $~lib/builtins/abort @@ -21719,7 +19955,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 896 i32.const 1 call $~lib/builtins/abort @@ -21741,7 +19977,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 897 i32.const 1 call $~lib/builtins/abort @@ -21763,7 +19999,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 898 i32.const 1 call $~lib/builtins/abort @@ -21785,7 +20021,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 899 i32.const 1 call $~lib/builtins/abort @@ -21807,7 +20043,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 900 i32.const 1 call $~lib/builtins/abort @@ -21829,7 +20065,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 901 i32.const 1 call $~lib/builtins/abort @@ -21842,7 +20078,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 910 i32.const 1 call $~lib/builtins/abort @@ -21855,7 +20091,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 911 i32.const 1 call $~lib/builtins/abort @@ -21868,7 +20104,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 912 i32.const 1 call $~lib/builtins/abort @@ -21881,7 +20117,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 913 i32.const 1 call $~lib/builtins/abort @@ -21894,7 +20130,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 914 i32.const 1 call $~lib/builtins/abort @@ -21907,7 +20143,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 915 i32.const 1 call $~lib/builtins/abort @@ -21920,7 +20156,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 916 i32.const 1 call $~lib/builtins/abort @@ -21933,7 +20169,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 917 i32.const 1 call $~lib/builtins/abort @@ -21946,7 +20182,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 918 i32.const 1 call $~lib/builtins/abort @@ -21959,7 +20195,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 919 i32.const 1 call $~lib/builtins/abort @@ -21972,7 +20208,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 922 i32.const 1 call $~lib/builtins/abort @@ -21985,7 +20221,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 923 i32.const 1 call $~lib/builtins/abort @@ -21998,7 +20234,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 924 i32.const 1 call $~lib/builtins/abort @@ -22011,7 +20247,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 925 i32.const 1 call $~lib/builtins/abort @@ -22024,7 +20260,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 926 i32.const 1 call $~lib/builtins/abort @@ -22037,7 +20273,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 927 i32.const 1 call $~lib/builtins/abort @@ -22050,7 +20286,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 928 i32.const 1 call $~lib/builtins/abort @@ -22063,7 +20299,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 929 i32.const 1 call $~lib/builtins/abort @@ -22076,7 +20312,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 930 i32.const 1 call $~lib/builtins/abort @@ -22089,7 +20325,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 931 i32.const 1 call $~lib/builtins/abort @@ -22102,7 +20338,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 932 i32.const 1 call $~lib/builtins/abort @@ -22115,7 +20351,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 933 i32.const 1 call $~lib/builtins/abort @@ -22128,7 +20364,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 934 i32.const 1 call $~lib/builtins/abort @@ -22141,7 +20377,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 935 i32.const 1 call $~lib/builtins/abort @@ -22154,7 +20390,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 936 i32.const 1 call $~lib/builtins/abort @@ -22167,7 +20403,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 937 i32.const 1 call $~lib/builtins/abort @@ -22180,7 +20416,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 938 i32.const 1 call $~lib/builtins/abort @@ -22193,7 +20429,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 939 i32.const 1 call $~lib/builtins/abort @@ -22206,7 +20442,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 940 i32.const 1 call $~lib/builtins/abort @@ -22219,7 +20455,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 941 i32.const 1 call $~lib/builtins/abort @@ -22232,7 +20468,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 942 i32.const 1 call $~lib/builtins/abort @@ -22245,7 +20481,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 943 i32.const 1 call $~lib/builtins/abort @@ -22258,7 +20494,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 944 i32.const 1 call $~lib/builtins/abort @@ -22271,7 +20507,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 945 i32.const 1 call $~lib/builtins/abort @@ -22284,7 +20520,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 946 i32.const 1 call $~lib/builtins/abort @@ -22297,7 +20533,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 947 i32.const 1 call $~lib/builtins/abort @@ -22310,7 +20546,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 948 i32.const 1 call $~lib/builtins/abort @@ -22323,7 +20559,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 949 i32.const 1 call $~lib/builtins/abort @@ -22336,7 +20572,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 950 i32.const 1 call $~lib/builtins/abort @@ -22349,7 +20585,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 951 i32.const 1 call $~lib/builtins/abort @@ -22362,7 +20598,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 952 i32.const 1 call $~lib/builtins/abort @@ -22375,7 +20611,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 953 i32.const 1 call $~lib/builtins/abort @@ -22388,7 +20624,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 954 i32.const 1 call $~lib/builtins/abort @@ -22401,7 +20637,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 955 i32.const 1 call $~lib/builtins/abort @@ -22414,7 +20650,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 956 i32.const 1 call $~lib/builtins/abort @@ -22427,7 +20663,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 957 i32.const 1 call $~lib/builtins/abort @@ -22440,7 +20676,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 958 i32.const 1 call $~lib/builtins/abort @@ -22453,7 +20689,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 959 i32.const 1 call $~lib/builtins/abort @@ -22466,7 +20702,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 960 i32.const 1 call $~lib/builtins/abort @@ -22479,7 +20715,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 961 i32.const 1 call $~lib/builtins/abort @@ -22492,7 +20728,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 962 i32.const 1 call $~lib/builtins/abort @@ -22505,7 +20741,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 963 i32.const 1 call $~lib/builtins/abort @@ -22518,7 +20754,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 964 i32.const 1 call $~lib/builtins/abort @@ -22531,7 +20767,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 965 i32.const 1 call $~lib/builtins/abort @@ -22544,7 +20780,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 966 i32.const 1 call $~lib/builtins/abort @@ -22567,7 +20803,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 977 i32.const 1 call $~lib/builtins/abort @@ -22590,7 +20826,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 978 i32.const 1 call $~lib/builtins/abort @@ -22613,7 +20849,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 979 i32.const 1 call $~lib/builtins/abort @@ -22636,7 +20872,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 980 i32.const 1 call $~lib/builtins/abort @@ -22659,7 +20895,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 981 i32.const 1 call $~lib/builtins/abort @@ -22682,7 +20918,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 982 i32.const 1 call $~lib/builtins/abort @@ -22705,7 +20941,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 983 i32.const 1 call $~lib/builtins/abort @@ -22728,7 +20964,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 984 i32.const 1 call $~lib/builtins/abort @@ -22751,7 +20987,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 985 i32.const 1 call $~lib/builtins/abort @@ -22774,7 +21010,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 986 i32.const 1 call $~lib/builtins/abort @@ -22797,7 +21033,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 989 i32.const 1 call $~lib/builtins/abort @@ -22820,7 +21056,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 990 i32.const 1 call $~lib/builtins/abort @@ -22843,7 +21079,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 991 i32.const 1 call $~lib/builtins/abort @@ -22866,7 +21102,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 992 i32.const 1 call $~lib/builtins/abort @@ -22889,7 +21125,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 993 i32.const 1 call $~lib/builtins/abort @@ -22912,7 +21148,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 994 i32.const 1 call $~lib/builtins/abort @@ -22935,7 +21171,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 995 i32.const 1 call $~lib/builtins/abort @@ -22958,7 +21194,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 996 i32.const 1 call $~lib/builtins/abort @@ -22981,7 +21217,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 997 i32.const 1 call $~lib/builtins/abort @@ -23004,7 +21240,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 998 i32.const 1 call $~lib/builtins/abort @@ -23027,7 +21263,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 999 i32.const 1 call $~lib/builtins/abort @@ -23050,7 +21286,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1000 i32.const 1 call $~lib/builtins/abort @@ -23073,7 +21309,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1001 i32.const 1 call $~lib/builtins/abort @@ -23096,7 +21332,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1002 i32.const 1 call $~lib/builtins/abort @@ -23119,7 +21355,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1003 i32.const 1 call $~lib/builtins/abort @@ -23142,7 +21378,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1004 i32.const 1 call $~lib/builtins/abort @@ -23165,7 +21401,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1005 i32.const 1 call $~lib/builtins/abort @@ -23188,7 +21424,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1006 i32.const 1 call $~lib/builtins/abort @@ -23211,7 +21447,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1007 i32.const 1 call $~lib/builtins/abort @@ -23234,7 +21470,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1008 i32.const 1 call $~lib/builtins/abort @@ -23257,7 +21493,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1009 i32.const 1 call $~lib/builtins/abort @@ -23280,7 +21516,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1010 i32.const 1 call $~lib/builtins/abort @@ -23303,7 +21539,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1011 i32.const 1 call $~lib/builtins/abort @@ -23326,7 +21562,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1012 i32.const 1 call $~lib/builtins/abort @@ -23349,7 +21585,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1013 i32.const 1 call $~lib/builtins/abort @@ -23372,7 +21608,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1014 i32.const 1 call $~lib/builtins/abort @@ -23395,7 +21631,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1015 i32.const 1 call $~lib/builtins/abort @@ -23418,7 +21654,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1016 i32.const 1 call $~lib/builtins/abort @@ -23441,7 +21677,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1017 i32.const 1 call $~lib/builtins/abort @@ -23464,7 +21700,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1018 i32.const 1 call $~lib/builtins/abort @@ -23487,7 +21723,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1019 i32.const 1 call $~lib/builtins/abort @@ -23510,7 +21746,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1020 i32.const 1 call $~lib/builtins/abort @@ -23533,7 +21769,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1021 i32.const 1 call $~lib/builtins/abort @@ -23556,7 +21792,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1022 i32.const 1 call $~lib/builtins/abort @@ -23579,7 +21815,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1023 i32.const 1 call $~lib/builtins/abort @@ -23602,7 +21838,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1024 i32.const 1 call $~lib/builtins/abort @@ -23625,7 +21861,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1025 i32.const 1 call $~lib/builtins/abort @@ -23648,7 +21884,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1026 i32.const 1 call $~lib/builtins/abort @@ -23671,7 +21907,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1027 i32.const 1 call $~lib/builtins/abort @@ -23694,7 +21930,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1028 i32.const 1 call $~lib/builtins/abort @@ -23717,7 +21953,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1029 i32.const 1 call $~lib/builtins/abort @@ -23740,7 +21976,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1030 i32.const 1 call $~lib/builtins/abort @@ -23763,7 +21999,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1031 i32.const 1 call $~lib/builtins/abort @@ -23786,7 +22022,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1032 i32.const 1 call $~lib/builtins/abort @@ -23809,7 +22045,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1033 i32.const 1 call $~lib/builtins/abort @@ -23832,7 +22068,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1034 i32.const 1 call $~lib/builtins/abort @@ -23855,7 +22091,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1035 i32.const 1 call $~lib/builtins/abort @@ -23878,7 +22114,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1036 i32.const 1 call $~lib/builtins/abort @@ -23901,7 +22137,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1037 i32.const 1 call $~lib/builtins/abort @@ -23924,7 +22160,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1038 i32.const 1 call $~lib/builtins/abort @@ -23947,7 +22183,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1039 i32.const 1 call $~lib/builtins/abort @@ -23970,7 +22206,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1040 i32.const 1 call $~lib/builtins/abort @@ -23993,7 +22229,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1041 i32.const 1 call $~lib/builtins/abort @@ -24016,7 +22252,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1042 i32.const 1 call $~lib/builtins/abort @@ -24039,7 +22275,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1043 i32.const 1 call $~lib/builtins/abort @@ -24062,7 +22298,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1044 i32.const 1 call $~lib/builtins/abort @@ -24085,7 +22321,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1045 i32.const 1 call $~lib/builtins/abort @@ -24108,7 +22344,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1046 i32.const 1 call $~lib/builtins/abort @@ -24131,7 +22367,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1047 i32.const 1 call $~lib/builtins/abort @@ -24154,7 +22390,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1048 i32.const 1 call $~lib/builtins/abort @@ -24177,7 +22413,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1049 i32.const 1 call $~lib/builtins/abort @@ -24200,7 +22436,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1050 i32.const 1 call $~lib/builtins/abort @@ -24223,7 +22459,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1051 i32.const 1 call $~lib/builtins/abort @@ -24246,7 +22482,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1052 i32.const 1 call $~lib/builtins/abort @@ -24269,7 +22505,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1053 i32.const 1 call $~lib/builtins/abort @@ -24292,7 +22528,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1054 i32.const 1 call $~lib/builtins/abort @@ -24315,7 +22551,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1055 i32.const 1 call $~lib/builtins/abort @@ -24338,7 +22574,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1056 i32.const 1 call $~lib/builtins/abort @@ -24361,7 +22597,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1057 i32.const 1 call $~lib/builtins/abort @@ -24384,7 +22620,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1058 i32.const 1 call $~lib/builtins/abort @@ -24407,7 +22643,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1059 i32.const 1 call $~lib/builtins/abort @@ -24430,7 +22666,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1060 i32.const 1 call $~lib/builtins/abort @@ -24453,7 +22689,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1061 i32.const 1 call $~lib/builtins/abort @@ -24476,7 +22712,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1062 i32.const 1 call $~lib/builtins/abort @@ -24499,7 +22735,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1063 i32.const 1 call $~lib/builtins/abort @@ -24522,7 +22758,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1064 i32.const 1 call $~lib/builtins/abort @@ -24545,7 +22781,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1065 i32.const 1 call $~lib/builtins/abort @@ -24568,7 +22804,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1066 i32.const 1 call $~lib/builtins/abort @@ -24591,7 +22827,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1069 i32.const 1 call $~lib/builtins/abort @@ -24614,7 +22850,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1070 i32.const 1 call $~lib/builtins/abort @@ -24637,7 +22873,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1071 i32.const 1 call $~lib/builtins/abort @@ -24660,7 +22896,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1072 i32.const 1 call $~lib/builtins/abort @@ -24683,7 +22919,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1073 i32.const 1 call $~lib/builtins/abort @@ -24706,7 +22942,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1074 i32.const 1 call $~lib/builtins/abort @@ -24729,7 +22965,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1075 i32.const 1 call $~lib/builtins/abort @@ -24752,7 +22988,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1076 i32.const 1 call $~lib/builtins/abort @@ -24775,7 +23011,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1077 i32.const 1 call $~lib/builtins/abort @@ -24798,7 +23034,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1078 i32.const 1 call $~lib/builtins/abort @@ -24821,7 +23057,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1079 i32.const 1 call $~lib/builtins/abort @@ -24844,7 +23080,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1080 i32.const 1 call $~lib/builtins/abort @@ -24867,7 +23103,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1081 i32.const 1 call $~lib/builtins/abort @@ -24890,7 +23126,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1082 i32.const 1 call $~lib/builtins/abort @@ -24913,7 +23149,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1083 i32.const 1 call $~lib/builtins/abort @@ -24936,7 +23172,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1084 i32.const 1 call $~lib/builtins/abort @@ -24959,7 +23195,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1085 i32.const 1 call $~lib/builtins/abort @@ -24982,7 +23218,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1086 i32.const 1 call $~lib/builtins/abort @@ -25005,7 +23241,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1087 i32.const 1 call $~lib/builtins/abort @@ -25028,7 +23264,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1088 i32.const 1 call $~lib/builtins/abort @@ -25051,7 +23287,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1089 i32.const 1 call $~lib/builtins/abort @@ -25074,7 +23310,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1090 i32.const 1 call $~lib/builtins/abort @@ -25097,7 +23333,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1091 i32.const 1 call $~lib/builtins/abort @@ -25120,7 +23356,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1092 i32.const 1 call $~lib/builtins/abort @@ -25143,7 +23379,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1093 i32.const 1 call $~lib/builtins/abort @@ -25166,7 +23402,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1094 i32.const 1 call $~lib/builtins/abort @@ -25189,7 +23425,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1095 i32.const 1 call $~lib/builtins/abort @@ -25212,7 +23448,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1096 i32.const 1 call $~lib/builtins/abort @@ -25235,7 +23471,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1097 i32.const 1 call $~lib/builtins/abort @@ -25258,7 +23494,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1098 i32.const 1 call $~lib/builtins/abort @@ -25281,7 +23517,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1099 i32.const 1 call $~lib/builtins/abort @@ -25304,7 +23540,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1100 i32.const 1 call $~lib/builtins/abort @@ -25327,7 +23563,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1101 i32.const 1 call $~lib/builtins/abort @@ -25350,7 +23586,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1102 i32.const 1 call $~lib/builtins/abort @@ -25373,7 +23609,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1103 i32.const 1 call $~lib/builtins/abort @@ -25396,7 +23632,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1104 i32.const 1 call $~lib/builtins/abort @@ -25419,7 +23655,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1105 i32.const 1 call $~lib/builtins/abort @@ -25442,7 +23678,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1106 i32.const 1 call $~lib/builtins/abort @@ -25455,7 +23691,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1108 i32.const 1 call $~lib/builtins/abort @@ -25468,7 +23704,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1109 i32.const 1 call $~lib/builtins/abort @@ -25481,7 +23717,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1110 i32.const 1 call $~lib/builtins/abort @@ -25493,7 +23729,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1114 i32.const 1 call $~lib/builtins/abort @@ -25505,7 +23741,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1115 i32.const 1 call $~lib/builtins/abort @@ -25517,7 +23753,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1118 i32.const 1 call $~lib/builtins/abort @@ -25529,7 +23765,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1120 i32.const 1 call $~lib/builtins/abort @@ -25541,7 +23777,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1121 i32.const 1 call $~lib/builtins/abort @@ -25553,7 +23789,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1124 i32.const 1 call $~lib/builtins/abort @@ -25565,7 +23801,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1126 i32.const 1 call $~lib/builtins/abort @@ -25577,7 +23813,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1129 i32.const 1 call $~lib/builtins/abort @@ -25589,7 +23825,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1131 i32.const 1 call $~lib/builtins/abort @@ -25601,7 +23837,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1132 i32.const 1 call $~lib/builtins/abort @@ -25613,7 +23849,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1133 i32.const 1 call $~lib/builtins/abort @@ -25625,7 +23861,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1135 i32.const 1 call $~lib/builtins/abort @@ -25637,7 +23873,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1137 i32.const 1 call $~lib/builtins/abort @@ -25649,7 +23885,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1138 i32.const 1 call $~lib/builtins/abort @@ -25661,7 +23897,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1139 i32.const 1 call $~lib/builtins/abort @@ -25673,7 +23909,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1140 i32.const 1 call $~lib/builtins/abort @@ -25685,7 +23921,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1141 i32.const 1 call $~lib/builtins/abort @@ -25697,7 +23933,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1142 i32.const 1 call $~lib/builtins/abort @@ -25711,7 +23947,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1151 i32.const 1 call $~lib/builtins/abort @@ -25725,7 +23961,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1152 i32.const 1 call $~lib/builtins/abort @@ -25739,7 +23975,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1153 i32.const 1 call $~lib/builtins/abort @@ -25753,7 +23989,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1154 i32.const 1 call $~lib/builtins/abort @@ -25767,7 +24003,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1155 i32.const 1 call $~lib/builtins/abort @@ -25781,7 +24017,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1156 i32.const 1 call $~lib/builtins/abort @@ -25795,7 +24031,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1157 i32.const 1 call $~lib/builtins/abort @@ -25809,7 +24045,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1158 i32.const 1 call $~lib/builtins/abort @@ -25823,7 +24059,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1159 i32.const 1 call $~lib/builtins/abort @@ -25837,7 +24073,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1160 i32.const 1 call $~lib/builtins/abort @@ -25851,7 +24087,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1163 i32.const 1 call $~lib/builtins/abort @@ -25865,7 +24101,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1164 i32.const 1 call $~lib/builtins/abort @@ -25879,7 +24115,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1165 i32.const 1 call $~lib/builtins/abort @@ -25893,7 +24129,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1166 i32.const 1 call $~lib/builtins/abort @@ -25907,7 +24143,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1167 i32.const 1 call $~lib/builtins/abort @@ -25921,7 +24157,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1170 i32.const 1 call $~lib/builtins/abort @@ -25935,7 +24171,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1171 i32.const 1 call $~lib/builtins/abort @@ -25949,7 +24185,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1172 i32.const 1 call $~lib/builtins/abort @@ -25963,7 +24199,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1173 i32.const 1 call $~lib/builtins/abort @@ -25977,7 +24213,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1174 i32.const 1 call $~lib/builtins/abort @@ -25991,7 +24227,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1175 i32.const 1 call $~lib/builtins/abort @@ -26005,7 +24241,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1176 i32.const 1 call $~lib/builtins/abort @@ -26019,7 +24255,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1177 i32.const 1 call $~lib/builtins/abort @@ -26033,7 +24269,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1178 i32.const 1 call $~lib/builtins/abort @@ -26047,7 +24283,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1179 i32.const 1 call $~lib/builtins/abort @@ -26061,7 +24297,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1180 i32.const 1 call $~lib/builtins/abort @@ -26075,7 +24311,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1181 i32.const 1 call $~lib/builtins/abort @@ -26089,7 +24325,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1182 i32.const 1 call $~lib/builtins/abort @@ -26103,7 +24339,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1183 i32.const 1 call $~lib/builtins/abort @@ -26117,7 +24353,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1184 i32.const 1 call $~lib/builtins/abort @@ -26131,7 +24367,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1185 i32.const 1 call $~lib/builtins/abort @@ -26145,7 +24381,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1186 i32.const 1 call $~lib/builtins/abort @@ -26159,7 +24395,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1187 i32.const 1 call $~lib/builtins/abort @@ -26173,7 +24409,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1188 i32.const 1 call $~lib/builtins/abort @@ -26187,7 +24423,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1189 i32.const 1 call $~lib/builtins/abort @@ -26201,7 +24437,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1190 i32.const 1 call $~lib/builtins/abort @@ -26215,7 +24451,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1191 i32.const 1 call $~lib/builtins/abort @@ -26229,7 +24465,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1192 i32.const 1 call $~lib/builtins/abort @@ -26243,7 +24479,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1193 i32.const 1 call $~lib/builtins/abort @@ -26257,7 +24493,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1194 i32.const 1 call $~lib/builtins/abort @@ -26271,7 +24507,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1195 i32.const 1 call $~lib/builtins/abort @@ -26285,7 +24521,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1196 i32.const 1 call $~lib/builtins/abort @@ -26299,7 +24535,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1197 i32.const 1 call $~lib/builtins/abort @@ -26313,7 +24549,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1198 i32.const 1 call $~lib/builtins/abort @@ -26327,7 +24563,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1199 i32.const 1 call $~lib/builtins/abort @@ -26341,7 +24577,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1200 i32.const 1 call $~lib/builtins/abort @@ -26355,7 +24591,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1201 i32.const 1 call $~lib/builtins/abort @@ -26369,7 +24605,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1202 i32.const 1 call $~lib/builtins/abort @@ -26383,7 +24619,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1203 i32.const 1 call $~lib/builtins/abort @@ -26397,7 +24633,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1204 i32.const 1 call $~lib/builtins/abort @@ -26411,7 +24647,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1205 i32.const 1 call $~lib/builtins/abort @@ -26425,7 +24661,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1206 i32.const 1 call $~lib/builtins/abort @@ -26439,7 +24675,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1207 i32.const 1 call $~lib/builtins/abort @@ -26453,7 +24689,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1210 i32.const 1 call $~lib/builtins/abort @@ -26467,7 +24703,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1211 i32.const 1 call $~lib/builtins/abort @@ -26481,7 +24717,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1212 i32.const 1 call $~lib/builtins/abort @@ -26495,7 +24731,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1213 i32.const 1 call $~lib/builtins/abort @@ -26509,7 +24745,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1214 i32.const 1 call $~lib/builtins/abort @@ -26523,7 +24759,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1215 i32.const 1 call $~lib/builtins/abort @@ -26537,7 +24773,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1216 i32.const 1 call $~lib/builtins/abort @@ -26551,7 +24787,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1217 i32.const 1 call $~lib/builtins/abort @@ -26565,7 +24801,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1218 i32.const 1 call $~lib/builtins/abort @@ -26579,7 +24815,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1219 i32.const 1 call $~lib/builtins/abort @@ -26593,7 +24829,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1220 i32.const 1 call $~lib/builtins/abort @@ -26607,7 +24843,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1221 i32.const 1 call $~lib/builtins/abort @@ -26621,7 +24857,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1222 i32.const 1 call $~lib/builtins/abort @@ -26635,7 +24871,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1223 i32.const 1 call $~lib/builtins/abort @@ -26648,7 +24884,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1234 i32.const 1 call $~lib/builtins/abort @@ -26661,7 +24897,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1235 i32.const 1 call $~lib/builtins/abort @@ -26674,7 +24910,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1236 i32.const 1 call $~lib/builtins/abort @@ -26687,7 +24923,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1237 i32.const 1 call $~lib/builtins/abort @@ -26700,7 +24936,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1238 i32.const 1 call $~lib/builtins/abort @@ -26713,7 +24949,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1239 i32.const 1 call $~lib/builtins/abort @@ -26726,7 +24962,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1240 i32.const 1 call $~lib/builtins/abort @@ -26739,7 +24975,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1241 i32.const 1 call $~lib/builtins/abort @@ -26752,7 +24988,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1242 i32.const 1 call $~lib/builtins/abort @@ -26765,7 +25001,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1243 i32.const 1 call $~lib/builtins/abort @@ -26778,7 +25014,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1246 i32.const 1 call $~lib/builtins/abort @@ -26791,7 +25027,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1247 i32.const 1 call $~lib/builtins/abort @@ -26804,7 +25040,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1248 i32.const 1 call $~lib/builtins/abort @@ -26817,7 +25053,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1249 i32.const 1 call $~lib/builtins/abort @@ -26830,7 +25066,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1250 i32.const 1 call $~lib/builtins/abort @@ -26843,7 +25079,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1259 i32.const 1 call $~lib/builtins/abort @@ -26856,7 +25092,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1260 i32.const 1 call $~lib/builtins/abort @@ -26869,7 +25105,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1261 i32.const 1 call $~lib/builtins/abort @@ -26882,7 +25118,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1262 i32.const 1 call $~lib/builtins/abort @@ -26895,7 +25131,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1263 i32.const 1 call $~lib/builtins/abort @@ -26908,7 +25144,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1264 i32.const 1 call $~lib/builtins/abort @@ -26921,7 +25157,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1265 i32.const 1 call $~lib/builtins/abort @@ -26934,7 +25170,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1266 i32.const 1 call $~lib/builtins/abort @@ -26947,7 +25183,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1267 i32.const 1 call $~lib/builtins/abort @@ -26960,7 +25196,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1268 i32.const 1 call $~lib/builtins/abort @@ -26973,7 +25209,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1271 i32.const 1 call $~lib/builtins/abort @@ -26986,7 +25222,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1272 i32.const 1 call $~lib/builtins/abort @@ -26999,7 +25235,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1273 i32.const 1 call $~lib/builtins/abort @@ -27012,7 +25248,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1274 i32.const 1 call $~lib/builtins/abort @@ -27025,7 +25261,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1275 i32.const 1 call $~lib/builtins/abort @@ -27048,7 +25284,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1287 i32.const 1 call $~lib/builtins/abort @@ -27071,7 +25307,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1288 i32.const 1 call $~lib/builtins/abort @@ -27094,7 +25330,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1289 i32.const 1 call $~lib/builtins/abort @@ -27117,7 +25353,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1290 i32.const 1 call $~lib/builtins/abort @@ -27140,7 +25376,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1291 i32.const 1 call $~lib/builtins/abort @@ -27163,7 +25399,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1292 i32.const 1 call $~lib/builtins/abort @@ -27186,7 +25422,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1293 i32.const 1 call $~lib/builtins/abort @@ -27209,7 +25445,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1294 i32.const 1 call $~lib/builtins/abort @@ -27232,7 +25468,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1295 i32.const 1 call $~lib/builtins/abort @@ -27255,7 +25491,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1296 i32.const 1 call $~lib/builtins/abort @@ -27278,7 +25514,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1299 i32.const 1 call $~lib/builtins/abort @@ -27301,7 +25537,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1300 i32.const 1 call $~lib/builtins/abort @@ -27324,7 +25560,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1301 i32.const 1 call $~lib/builtins/abort @@ -27347,7 +25583,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1302 i32.const 1 call $~lib/builtins/abort @@ -27370,7 +25606,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1303 i32.const 1 call $~lib/builtins/abort @@ -27393,7 +25629,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1304 i32.const 1 call $~lib/builtins/abort @@ -27416,7 +25652,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1305 i32.const 1 call $~lib/builtins/abort @@ -27439,7 +25675,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1306 i32.const 1 call $~lib/builtins/abort @@ -27462,7 +25698,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1307 i32.const 1 call $~lib/builtins/abort @@ -27485,7 +25721,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1308 i32.const 1 call $~lib/builtins/abort @@ -27508,7 +25744,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1309 i32.const 1 call $~lib/builtins/abort @@ -27531,7 +25767,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1312 i32.const 1 call $~lib/builtins/abort @@ -27554,7 +25790,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1313 i32.const 1 call $~lib/builtins/abort @@ -27577,7 +25813,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1315 i32.const 1 call $~lib/builtins/abort @@ -27600,7 +25836,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1322 i32.const 1 call $~lib/builtins/abort @@ -27623,7 +25859,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1323 i32.const 1 call $~lib/builtins/abort @@ -27646,7 +25882,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1330 i32.const 1 call $~lib/builtins/abort @@ -27669,7 +25905,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1337 i32.const 1 call $~lib/builtins/abort @@ -27692,7 +25928,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1344 i32.const 1 call $~lib/builtins/abort @@ -27715,7 +25951,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1351 i32.const 1 call $~lib/builtins/abort @@ -27738,7 +25974,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1358 i32.const 1 call $~lib/builtins/abort @@ -27761,7 +25997,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1365 i32.const 1 call $~lib/builtins/abort @@ -27784,7 +26020,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1371 i32.const 1 call $~lib/builtins/abort @@ -27807,7 +26043,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1377 i32.const 1 call $~lib/builtins/abort @@ -27830,7 +26066,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1383 i32.const 1 call $~lib/builtins/abort @@ -27853,7 +26089,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1390 i32.const 1 call $~lib/builtins/abort @@ -27876,7 +26112,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1397 i32.const 1 call $~lib/builtins/abort @@ -27899,7 +26135,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1404 i32.const 1 call $~lib/builtins/abort @@ -27922,7 +26158,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1411 i32.const 1 call $~lib/builtins/abort @@ -27945,7 +26181,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1418 i32.const 1 call $~lib/builtins/abort @@ -27968,7 +26204,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1425 i32.const 1 call $~lib/builtins/abort @@ -27991,7 +26227,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1432 i32.const 1 call $~lib/builtins/abort @@ -28014,7 +26250,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1439 i32.const 1 call $~lib/builtins/abort @@ -28028,7 +26264,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1453 i32.const 1 call $~lib/builtins/abort @@ -28042,7 +26278,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1454 i32.const 1 call $~lib/builtins/abort @@ -28056,7 +26292,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1455 i32.const 1 call $~lib/builtins/abort @@ -28070,7 +26306,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1456 i32.const 1 call $~lib/builtins/abort @@ -28084,7 +26320,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1457 i32.const 1 call $~lib/builtins/abort @@ -28098,7 +26334,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1458 i32.const 1 call $~lib/builtins/abort @@ -28112,7 +26348,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1459 i32.const 1 call $~lib/builtins/abort @@ -28126,7 +26362,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1460 i32.const 1 call $~lib/builtins/abort @@ -28140,7 +26376,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1461 i32.const 1 call $~lib/builtins/abort @@ -28154,7 +26390,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1462 i32.const 1 call $~lib/builtins/abort @@ -28168,7 +26404,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1465 i32.const 1 call $~lib/builtins/abort @@ -28182,7 +26418,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1466 i32.const 1 call $~lib/builtins/abort @@ -28196,7 +26432,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1467 i32.const 1 call $~lib/builtins/abort @@ -28210,7 +26446,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1468 i32.const 1 call $~lib/builtins/abort @@ -28224,7 +26460,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1469 i32.const 1 call $~lib/builtins/abort @@ -28238,7 +26474,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1470 i32.const 1 call $~lib/builtins/abort @@ -28252,7 +26488,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1471 i32.const 1 call $~lib/builtins/abort @@ -28266,7 +26502,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1472 i32.const 1 call $~lib/builtins/abort @@ -28280,7 +26516,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1473 i32.const 1 call $~lib/builtins/abort @@ -28294,7 +26530,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1474 i32.const 1 call $~lib/builtins/abort @@ -28308,7 +26544,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1475 i32.const 1 call $~lib/builtins/abort @@ -28322,7 +26558,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1476 i32.const 1 call $~lib/builtins/abort @@ -28336,7 +26572,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1477 i32.const 1 call $~lib/builtins/abort @@ -28350,7 +26586,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1478 i32.const 1 call $~lib/builtins/abort @@ -28373,7 +26609,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1490 i32.const 1 call $~lib/builtins/abort @@ -28396,7 +26632,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1491 i32.const 1 call $~lib/builtins/abort @@ -28419,7 +26655,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1492 i32.const 1 call $~lib/builtins/abort @@ -28442,7 +26678,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1493 i32.const 1 call $~lib/builtins/abort @@ -28465,7 +26701,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1494 i32.const 1 call $~lib/builtins/abort @@ -28488,7 +26724,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1495 i32.const 1 call $~lib/builtins/abort @@ -28511,7 +26747,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1496 i32.const 1 call $~lib/builtins/abort @@ -28534,7 +26770,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1497 i32.const 1 call $~lib/builtins/abort @@ -28557,7 +26793,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1498 i32.const 1 call $~lib/builtins/abort @@ -28580,7 +26816,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1499 i32.const 1 call $~lib/builtins/abort @@ -28603,7 +26839,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1502 i32.const 1 call $~lib/builtins/abort @@ -28626,7 +26862,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1503 i32.const 1 call $~lib/builtins/abort @@ -28649,7 +26885,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1504 i32.const 1 call $~lib/builtins/abort @@ -28672,7 +26908,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1505 i32.const 1 call $~lib/builtins/abort @@ -28695,7 +26931,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1506 i32.const 1 call $~lib/builtins/abort @@ -28718,7 +26954,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1507 i32.const 1 call $~lib/builtins/abort @@ -28741,7 +26977,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1508 i32.const 1 call $~lib/builtins/abort @@ -28764,7 +27000,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1509 i32.const 1 call $~lib/builtins/abort @@ -28787,7 +27023,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1510 i32.const 1 call $~lib/builtins/abort @@ -28801,7 +27037,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1519 i32.const 1 call $~lib/builtins/abort @@ -28815,7 +27051,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1520 i32.const 1 call $~lib/builtins/abort @@ -28829,7 +27065,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1521 i32.const 1 call $~lib/builtins/abort @@ -28843,7 +27079,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1522 i32.const 1 call $~lib/builtins/abort @@ -28857,7 +27093,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1523 i32.const 1 call $~lib/builtins/abort @@ -28871,7 +27107,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1524 i32.const 1 call $~lib/builtins/abort @@ -28885,7 +27121,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1525 i32.const 1 call $~lib/builtins/abort @@ -28899,7 +27135,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1526 i32.const 1 call $~lib/builtins/abort @@ -28913,7 +27149,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1527 i32.const 1 call $~lib/builtins/abort @@ -28927,7 +27163,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1528 i32.const 1 call $~lib/builtins/abort @@ -28941,7 +27177,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1531 i32.const 1 call $~lib/builtins/abort @@ -28955,7 +27191,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1532 i32.const 1 call $~lib/builtins/abort @@ -28969,7 +27205,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1533 i32.const 1 call $~lib/builtins/abort @@ -28983,7 +27219,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1534 i32.const 1 call $~lib/builtins/abort @@ -28997,7 +27233,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1535 i32.const 1 call $~lib/builtins/abort @@ -29011,7 +27247,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1536 i32.const 1 call $~lib/builtins/abort @@ -29025,7 +27261,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1537 i32.const 1 call $~lib/builtins/abort @@ -29038,7 +27274,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1549 i32.const 1 call $~lib/builtins/abort @@ -29051,7 +27287,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1550 i32.const 1 call $~lib/builtins/abort @@ -29064,7 +27300,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1551 i32.const 1 call $~lib/builtins/abort @@ -29077,7 +27313,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1552 i32.const 1 call $~lib/builtins/abort @@ -29090,7 +27326,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1553 i32.const 1 call $~lib/builtins/abort @@ -29103,7 +27339,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1554 i32.const 1 call $~lib/builtins/abort @@ -29116,7 +27352,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1555 i32.const 1 call $~lib/builtins/abort @@ -29129,7 +27365,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1556 i32.const 1 call $~lib/builtins/abort @@ -29142,7 +27378,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1557 i32.const 1 call $~lib/builtins/abort @@ -29155,7 +27391,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1558 i32.const 1 call $~lib/builtins/abort @@ -29168,7 +27404,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1561 i32.const 1 call $~lib/builtins/abort @@ -29181,7 +27417,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1562 i32.const 1 call $~lib/builtins/abort @@ -29194,7 +27430,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1563 i32.const 1 call $~lib/builtins/abort @@ -29207,7 +27443,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1564 i32.const 1 call $~lib/builtins/abort @@ -29220,7 +27456,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1565 i32.const 1 call $~lib/builtins/abort @@ -29233,7 +27469,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1566 i32.const 1 call $~lib/builtins/abort @@ -29246,7 +27482,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1567 i32.const 1 call $~lib/builtins/abort @@ -29259,7 +27495,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1568 i32.const 1 call $~lib/builtins/abort @@ -29272,7 +27508,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1569 i32.const 1 call $~lib/builtins/abort @@ -29285,7 +27521,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1570 i32.const 1 call $~lib/builtins/abort @@ -29298,7 +27534,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1571 i32.const 1 call $~lib/builtins/abort @@ -29311,7 +27547,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1572 i32.const 1 call $~lib/builtins/abort @@ -29324,7 +27560,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1573 i32.const 1 call $~lib/builtins/abort @@ -29337,7 +27573,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1574 i32.const 1 call $~lib/builtins/abort @@ -29350,7 +27586,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1575 i32.const 1 call $~lib/builtins/abort @@ -29363,7 +27599,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1576 i32.const 1 call $~lib/builtins/abort @@ -29376,7 +27612,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1577 i32.const 1 call $~lib/builtins/abort @@ -29389,7 +27625,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1578 i32.const 1 call $~lib/builtins/abort @@ -29402,7 +27638,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1579 i32.const 1 call $~lib/builtins/abort @@ -29415,7 +27651,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1580 i32.const 1 call $~lib/builtins/abort @@ -29428,7 +27664,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1581 i32.const 1 call $~lib/builtins/abort @@ -29441,7 +27677,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1582 i32.const 1 call $~lib/builtins/abort @@ -29454,7 +27690,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1583 i32.const 1 call $~lib/builtins/abort @@ -29467,7 +27703,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1584 i32.const 1 call $~lib/builtins/abort @@ -29480,7 +27716,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1585 i32.const 1 call $~lib/builtins/abort @@ -29493,7 +27729,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1596 i32.const 1 call $~lib/builtins/abort @@ -29506,7 +27742,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1597 i32.const 1 call $~lib/builtins/abort @@ -29519,7 +27755,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1598 i32.const 1 call $~lib/builtins/abort @@ -29532,7 +27768,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1599 i32.const 1 call $~lib/builtins/abort @@ -29545,7 +27781,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1600 i32.const 1 call $~lib/builtins/abort @@ -29558,7 +27794,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1601 i32.const 1 call $~lib/builtins/abort @@ -29571,7 +27807,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1602 i32.const 1 call $~lib/builtins/abort @@ -29584,7 +27820,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1603 i32.const 1 call $~lib/builtins/abort @@ -29597,7 +27833,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1604 i32.const 1 call $~lib/builtins/abort @@ -29610,7 +27846,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1605 i32.const 1 call $~lib/builtins/abort @@ -29632,7 +27868,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1617 i32.const 1 call $~lib/builtins/abort @@ -29654,7 +27890,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1618 i32.const 1 call $~lib/builtins/abort @@ -29676,7 +27912,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1619 i32.const 1 call $~lib/builtins/abort @@ -29698,7 +27934,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1620 i32.const 1 call $~lib/builtins/abort @@ -29720,7 +27956,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1621 i32.const 1 call $~lib/builtins/abort @@ -29742,7 +27978,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1622 i32.const 1 call $~lib/builtins/abort @@ -29764,7 +28000,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1623 i32.const 1 call $~lib/builtins/abort @@ -29786,7 +28022,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1624 i32.const 1 call $~lib/builtins/abort @@ -29808,7 +28044,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1625 i32.const 1 call $~lib/builtins/abort @@ -29830,7 +28066,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1626 i32.const 1 call $~lib/builtins/abort @@ -29852,7 +28088,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1629 i32.const 1 call $~lib/builtins/abort @@ -29874,7 +28110,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1630 i32.const 1 call $~lib/builtins/abort @@ -29896,7 +28132,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1631 i32.const 1 call $~lib/builtins/abort @@ -29918,7 +28154,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1632 i32.const 1 call $~lib/builtins/abort @@ -29940,7 +28176,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1633 i32.const 1 call $~lib/builtins/abort @@ -29962,7 +28198,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1634 i32.const 1 call $~lib/builtins/abort @@ -29984,7 +28220,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1635 i32.const 1 call $~lib/builtins/abort @@ -30006,7 +28242,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1636 i32.const 1 call $~lib/builtins/abort @@ -30028,7 +28264,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1637 i32.const 1 call $~lib/builtins/abort @@ -30050,7 +28286,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1638 i32.const 1 call $~lib/builtins/abort @@ -30072,7 +28308,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1639 i32.const 1 call $~lib/builtins/abort @@ -30094,7 +28330,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1640 i32.const 1 call $~lib/builtins/abort @@ -30116,7 +28352,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1641 i32.const 1 call $~lib/builtins/abort @@ -30138,7 +28374,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1642 i32.const 1 call $~lib/builtins/abort @@ -30160,7 +28396,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1643 i32.const 1 call $~lib/builtins/abort @@ -30173,7 +28409,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1652 i32.const 1 call $~lib/builtins/abort @@ -30186,7 +28422,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1653 i32.const 1 call $~lib/builtins/abort @@ -30199,7 +28435,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1654 i32.const 1 call $~lib/builtins/abort @@ -30212,7 +28448,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1655 i32.const 1 call $~lib/builtins/abort @@ -30225,7 +28461,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1656 i32.const 1 call $~lib/builtins/abort @@ -30238,7 +28474,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1657 i32.const 1 call $~lib/builtins/abort @@ -30251,7 +28487,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1658 i32.const 1 call $~lib/builtins/abort @@ -30264,7 +28500,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1659 i32.const 1 call $~lib/builtins/abort @@ -30277,7 +28513,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1660 i32.const 1 call $~lib/builtins/abort @@ -30290,7 +28526,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1661 i32.const 1 call $~lib/builtins/abort @@ -30303,7 +28539,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1664 i32.const 1 call $~lib/builtins/abort @@ -30316,7 +28552,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1665 i32.const 1 call $~lib/builtins/abort @@ -30329,7 +28565,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1666 i32.const 1 call $~lib/builtins/abort @@ -30342,7 +28578,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1667 i32.const 1 call $~lib/builtins/abort @@ -30355,7 +28591,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1668 i32.const 1 call $~lib/builtins/abort @@ -30368,7 +28604,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1669 i32.const 1 call $~lib/builtins/abort @@ -30381,7 +28617,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1670 i32.const 1 call $~lib/builtins/abort @@ -30394,7 +28630,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1671 i32.const 1 call $~lib/builtins/abort @@ -30407,7 +28643,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1672 i32.const 1 call $~lib/builtins/abort @@ -30420,7 +28656,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1673 i32.const 1 call $~lib/builtins/abort @@ -30433,7 +28669,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1674 i32.const 1 call $~lib/builtins/abort @@ -30446,7 +28682,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1675 i32.const 1 call $~lib/builtins/abort @@ -30459,7 +28695,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1676 i32.const 1 call $~lib/builtins/abort @@ -30472,7 +28708,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1677 i32.const 1 call $~lib/builtins/abort @@ -30485,7 +28721,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1678 i32.const 1 call $~lib/builtins/abort @@ -30499,7 +28735,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1692 i32.const 1 call $~lib/builtins/abort @@ -30513,7 +28749,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1693 i32.const 1 call $~lib/builtins/abort @@ -30527,7 +28763,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1694 i32.const 1 call $~lib/builtins/abort @@ -30541,7 +28777,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1695 i32.const 1 call $~lib/builtins/abort @@ -30555,7 +28791,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1696 i32.const 1 call $~lib/builtins/abort @@ -30569,7 +28805,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1697 i32.const 1 call $~lib/builtins/abort @@ -30583,7 +28819,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1698 i32.const 1 call $~lib/builtins/abort @@ -30597,7 +28833,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1699 i32.const 1 call $~lib/builtins/abort @@ -30611,7 +28847,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1700 i32.const 1 call $~lib/builtins/abort @@ -30625,7 +28861,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1701 i32.const 1 call $~lib/builtins/abort @@ -30639,7 +28875,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1704 i32.const 1 call $~lib/builtins/abort @@ -30653,7 +28889,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1705 i32.const 1 call $~lib/builtins/abort @@ -30667,7 +28903,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1706 i32.const 1 call $~lib/builtins/abort @@ -30681,7 +28917,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1707 i32.const 1 call $~lib/builtins/abort @@ -30695,7 +28931,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1708 i32.const 1 call $~lib/builtins/abort @@ -30709,7 +28945,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1709 i32.const 1 call $~lib/builtins/abort @@ -30723,7 +28959,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1710 i32.const 1 call $~lib/builtins/abort @@ -30737,7 +28973,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1711 i32.const 1 call $~lib/builtins/abort @@ -30751,7 +28987,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1712 i32.const 1 call $~lib/builtins/abort @@ -30765,7 +29001,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1713 i32.const 1 call $~lib/builtins/abort @@ -30779,7 +29015,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1714 i32.const 1 call $~lib/builtins/abort @@ -30793,7 +29029,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1715 i32.const 1 call $~lib/builtins/abort @@ -30807,7 +29043,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1716 i32.const 1 call $~lib/builtins/abort @@ -30821,7 +29057,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1717 i32.const 1 call $~lib/builtins/abort @@ -30835,7 +29071,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1718 i32.const 1 call $~lib/builtins/abort @@ -30849,7 +29085,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1719 i32.const 1 call $~lib/builtins/abort @@ -30863,7 +29099,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1720 i32.const 1 call $~lib/builtins/abort @@ -30877,7 +29113,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1721 i32.const 1 call $~lib/builtins/abort @@ -30891,7 +29127,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1722 i32.const 1 call $~lib/builtins/abort @@ -30905,7 +29141,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1723 i32.const 1 call $~lib/builtins/abort @@ -30919,7 +29155,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1724 i32.const 1 call $~lib/builtins/abort @@ -30933,7 +29169,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1733 i32.const 1 call $~lib/builtins/abort @@ -30947,7 +29183,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1734 i32.const 1 call $~lib/builtins/abort @@ -30961,7 +29197,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1735 i32.const 1 call $~lib/builtins/abort @@ -30975,7 +29211,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1736 i32.const 1 call $~lib/builtins/abort @@ -30989,7 +29225,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1737 i32.const 1 call $~lib/builtins/abort @@ -31003,7 +29239,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1738 i32.const 1 call $~lib/builtins/abort @@ -31017,7 +29253,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1739 i32.const 1 call $~lib/builtins/abort @@ -31031,7 +29267,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1740 i32.const 1 call $~lib/builtins/abort @@ -31045,7 +29281,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1741 i32.const 1 call $~lib/builtins/abort @@ -31059,7 +29295,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1742 i32.const 1 call $~lib/builtins/abort @@ -31073,7 +29309,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1745 i32.const 1 call $~lib/builtins/abort @@ -31087,7 +29323,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1746 i32.const 1 call $~lib/builtins/abort @@ -31101,7 +29337,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1747 i32.const 1 call $~lib/builtins/abort @@ -31115,7 +29351,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1748 i32.const 1 call $~lib/builtins/abort @@ -31129,7 +29365,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1749 i32.const 1 call $~lib/builtins/abort @@ -31143,7 +29379,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1750 i32.const 1 call $~lib/builtins/abort @@ -31157,7 +29393,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1751 i32.const 1 call $~lib/builtins/abort @@ -31171,7 +29407,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1752 i32.const 1 call $~lib/builtins/abort @@ -31185,7 +29421,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1753 i32.const 1 call $~lib/builtins/abort @@ -31199,7 +29435,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1754 i32.const 1 call $~lib/builtins/abort @@ -31213,7 +29449,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1755 i32.const 1 call $~lib/builtins/abort @@ -31227,7 +29463,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1756 i32.const 1 call $~lib/builtins/abort @@ -31241,7 +29477,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1757 i32.const 1 call $~lib/builtins/abort @@ -31255,7 +29491,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1758 i32.const 1 call $~lib/builtins/abort @@ -31269,7 +29505,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1759 i32.const 1 call $~lib/builtins/abort @@ -31283,7 +29519,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1760 i32.const 1 call $~lib/builtins/abort @@ -31297,7 +29533,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1761 i32.const 1 call $~lib/builtins/abort @@ -31311,7 +29547,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1762 i32.const 1 call $~lib/builtins/abort @@ -31325,7 +29561,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1763 i32.const 1 call $~lib/builtins/abort @@ -31348,7 +29584,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1775 i32.const 1 call $~lib/builtins/abort @@ -31371,7 +29607,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1776 i32.const 1 call $~lib/builtins/abort @@ -31394,7 +29630,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1777 i32.const 1 call $~lib/builtins/abort @@ -31417,7 +29653,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1778 i32.const 1 call $~lib/builtins/abort @@ -31440,7 +29676,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1779 i32.const 1 call $~lib/builtins/abort @@ -31463,7 +29699,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1780 i32.const 1 call $~lib/builtins/abort @@ -31486,7 +29722,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1781 i32.const 1 call $~lib/builtins/abort @@ -31509,7 +29745,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1782 i32.const 1 call $~lib/builtins/abort @@ -31532,7 +29768,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1783 i32.const 1 call $~lib/builtins/abort @@ -31555,7 +29791,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1784 i32.const 1 call $~lib/builtins/abort @@ -31578,7 +29814,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1787 i32.const 1 call $~lib/builtins/abort @@ -31601,7 +29837,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1788 i32.const 1 call $~lib/builtins/abort @@ -31624,7 +29860,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1789 i32.const 1 call $~lib/builtins/abort @@ -31647,7 +29883,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1790 i32.const 1 call $~lib/builtins/abort @@ -31670,7 +29906,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1791 i32.const 1 call $~lib/builtins/abort @@ -31693,7 +29929,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1792 i32.const 1 call $~lib/builtins/abort @@ -31716,7 +29952,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1793 i32.const 1 call $~lib/builtins/abort @@ -31739,7 +29975,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1794 i32.const 1 call $~lib/builtins/abort @@ -31753,7 +29989,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1803 i32.const 1 call $~lib/builtins/abort @@ -31767,7 +30003,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1804 i32.const 1 call $~lib/builtins/abort @@ -31781,7 +30017,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1805 i32.const 1 call $~lib/builtins/abort @@ -31795,7 +30031,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1806 i32.const 1 call $~lib/builtins/abort @@ -31809,7 +30045,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1807 i32.const 1 call $~lib/builtins/abort @@ -31823,7 +30059,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1808 i32.const 1 call $~lib/builtins/abort @@ -31837,7 +30073,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1809 i32.const 1 call $~lib/builtins/abort @@ -31851,7 +30087,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1810 i32.const 1 call $~lib/builtins/abort @@ -31865,7 +30101,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1813 i32.const 1 call $~lib/builtins/abort @@ -31879,7 +30115,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1814 i32.const 1 call $~lib/builtins/abort @@ -31893,7 +30129,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1815 i32.const 1 call $~lib/builtins/abort @@ -31907,7 +30143,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1816 i32.const 1 call $~lib/builtins/abort @@ -31921,7 +30157,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1817 i32.const 1 call $~lib/builtins/abort @@ -31935,7 +30171,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1818 i32.const 1 call $~lib/builtins/abort @@ -31949,7 +30185,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1819 i32.const 1 call $~lib/builtins/abort @@ -31963,7 +30199,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1820 i32.const 1 call $~lib/builtins/abort @@ -31976,7 +30212,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1832 i32.const 1 call $~lib/builtins/abort @@ -31989,7 +30225,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1833 i32.const 1 call $~lib/builtins/abort @@ -32002,7 +30238,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1834 i32.const 1 call $~lib/builtins/abort @@ -32015,7 +30251,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1835 i32.const 1 call $~lib/builtins/abort @@ -32028,7 +30264,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1836 i32.const 1 call $~lib/builtins/abort @@ -32041,7 +30277,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1837 i32.const 1 call $~lib/builtins/abort @@ -32054,7 +30290,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1838 i32.const 1 call $~lib/builtins/abort @@ -32067,7 +30303,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1839 i32.const 1 call $~lib/builtins/abort @@ -32080,7 +30316,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1840 i32.const 1 call $~lib/builtins/abort @@ -32093,7 +30329,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1841 i32.const 1 call $~lib/builtins/abort @@ -32106,7 +30342,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1844 i32.const 1 call $~lib/builtins/abort @@ -32119,7 +30355,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1845 i32.const 1 call $~lib/builtins/abort @@ -32132,7 +30368,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1846 i32.const 1 call $~lib/builtins/abort @@ -32145,7 +30381,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1847 i32.const 1 call $~lib/builtins/abort @@ -32158,7 +30394,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1848 i32.const 1 call $~lib/builtins/abort @@ -32171,7 +30407,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1849 i32.const 1 call $~lib/builtins/abort @@ -32184,7 +30420,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1850 i32.const 1 call $~lib/builtins/abort @@ -32197,7 +30433,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1851 i32.const 1 call $~lib/builtins/abort @@ -32210,7 +30446,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1860 i32.const 1 call $~lib/builtins/abort @@ -32223,7 +30459,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1861 i32.const 1 call $~lib/builtins/abort @@ -32236,7 +30472,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1862 i32.const 1 call $~lib/builtins/abort @@ -32249,7 +30485,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1863 i32.const 1 call $~lib/builtins/abort @@ -32262,7 +30498,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1864 i32.const 1 call $~lib/builtins/abort @@ -32275,7 +30511,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1865 i32.const 1 call $~lib/builtins/abort @@ -32288,7 +30524,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1866 i32.const 1 call $~lib/builtins/abort @@ -32301,7 +30537,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1867 i32.const 1 call $~lib/builtins/abort @@ -32314,7 +30550,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1868 i32.const 1 call $~lib/builtins/abort @@ -32327,7 +30563,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1869 i32.const 1 call $~lib/builtins/abort @@ -32340,7 +30576,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1872 i32.const 1 call $~lib/builtins/abort @@ -32353,7 +30589,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1873 i32.const 1 call $~lib/builtins/abort @@ -32366,7 +30602,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1874 i32.const 1 call $~lib/builtins/abort @@ -32379,7 +30615,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1875 i32.const 1 call $~lib/builtins/abort @@ -32392,7 +30628,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1876 i32.const 1 call $~lib/builtins/abort @@ -32405,7 +30641,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1877 i32.const 1 call $~lib/builtins/abort @@ -32418,7 +30654,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1878 i32.const 1 call $~lib/builtins/abort @@ -32431,7 +30667,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1879 i32.const 1 call $~lib/builtins/abort @@ -32454,7 +30690,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1891 i32.const 1 call $~lib/builtins/abort @@ -32477,7 +30713,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1892 i32.const 1 call $~lib/builtins/abort @@ -32500,7 +30736,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1893 i32.const 1 call $~lib/builtins/abort @@ -32523,7 +30759,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1894 i32.const 1 call $~lib/builtins/abort @@ -32546,7 +30782,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1895 i32.const 1 call $~lib/builtins/abort @@ -32569,7 +30805,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1896 i32.const 1 call $~lib/builtins/abort @@ -32592,7 +30828,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1897 i32.const 1 call $~lib/builtins/abort @@ -32615,7 +30851,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1898 i32.const 1 call $~lib/builtins/abort @@ -32638,7 +30874,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1899 i32.const 1 call $~lib/builtins/abort @@ -32661,7 +30897,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1900 i32.const 1 call $~lib/builtins/abort @@ -32684,7 +30920,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1903 i32.const 1 call $~lib/builtins/abort @@ -32707,7 +30943,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1904 i32.const 1 call $~lib/builtins/abort @@ -32730,7 +30966,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1905 i32.const 1 call $~lib/builtins/abort @@ -32753,7 +30989,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1906 i32.const 1 call $~lib/builtins/abort @@ -32776,7 +31012,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1907 i32.const 1 call $~lib/builtins/abort @@ -32799,7 +31035,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1908 i32.const 1 call $~lib/builtins/abort @@ -32822,7 +31058,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1909 i32.const 1 call $~lib/builtins/abort @@ -32845,7 +31081,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1910 i32.const 1 call $~lib/builtins/abort @@ -32859,7 +31095,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1919 i32.const 1 call $~lib/builtins/abort @@ -32873,7 +31109,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1920 i32.const 1 call $~lib/builtins/abort @@ -32887,7 +31123,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1921 i32.const 1 call $~lib/builtins/abort @@ -32901,7 +31137,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1922 i32.const 1 call $~lib/builtins/abort @@ -32915,7 +31151,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1923 i32.const 1 call $~lib/builtins/abort @@ -32929,7 +31165,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1924 i32.const 1 call $~lib/builtins/abort @@ -32943,7 +31179,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1925 i32.const 1 call $~lib/builtins/abort @@ -32957,7 +31193,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1926 i32.const 1 call $~lib/builtins/abort @@ -32971,7 +31207,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1927 i32.const 1 call $~lib/builtins/abort @@ -32985,7 +31221,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1928 i32.const 1 call $~lib/builtins/abort @@ -32999,7 +31235,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1931 i32.const 1 call $~lib/builtins/abort @@ -33013,7 +31249,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1932 i32.const 1 call $~lib/builtins/abort @@ -33027,7 +31263,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1933 i32.const 1 call $~lib/builtins/abort @@ -33041,7 +31277,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1934 i32.const 1 call $~lib/builtins/abort @@ -33055,7 +31291,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1935 i32.const 1 call $~lib/builtins/abort @@ -33069,7 +31305,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1936 i32.const 1 call $~lib/builtins/abort @@ -33083,7 +31319,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1937 i32.const 1 call $~lib/builtins/abort @@ -33097,7 +31333,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1938 i32.const 1 call $~lib/builtins/abort @@ -33111,7 +31347,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1939 i32.const 1 call $~lib/builtins/abort @@ -33134,7 +31370,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1951 i32.const 1 call $~lib/builtins/abort @@ -33157,7 +31393,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1952 i32.const 1 call $~lib/builtins/abort @@ -33180,7 +31416,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1953 i32.const 1 call $~lib/builtins/abort @@ -33203,7 +31439,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1954 i32.const 1 call $~lib/builtins/abort @@ -33226,7 +31462,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1955 i32.const 1 call $~lib/builtins/abort @@ -33249,7 +31485,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1956 i32.const 1 call $~lib/builtins/abort @@ -33272,7 +31508,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1957 i32.const 1 call $~lib/builtins/abort @@ -33295,7 +31531,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1958 i32.const 1 call $~lib/builtins/abort @@ -33318,7 +31554,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1959 i32.const 1 call $~lib/builtins/abort @@ -33341,7 +31577,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1960 i32.const 1 call $~lib/builtins/abort @@ -33364,7 +31600,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1963 i32.const 1 call $~lib/builtins/abort @@ -33387,7 +31623,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1964 i32.const 1 call $~lib/builtins/abort @@ -33410,7 +31646,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1965 i32.const 1 call $~lib/builtins/abort @@ -33433,7 +31669,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1966 i32.const 1 call $~lib/builtins/abort @@ -33456,7 +31692,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1967 i32.const 1 call $~lib/builtins/abort @@ -33479,7 +31715,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1968 i32.const 1 call $~lib/builtins/abort @@ -33502,7 +31738,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1969 i32.const 1 call $~lib/builtins/abort @@ -33525,7 +31761,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1970 i32.const 1 call $~lib/builtins/abort @@ -33538,7 +31774,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1979 i32.const 1 call $~lib/builtins/abort @@ -33551,7 +31787,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1980 i32.const 1 call $~lib/builtins/abort @@ -33564,7 +31800,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1981 i32.const 1 call $~lib/builtins/abort @@ -33577,7 +31813,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1982 i32.const 1 call $~lib/builtins/abort @@ -33590,7 +31826,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1983 i32.const 1 call $~lib/builtins/abort @@ -33603,7 +31839,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1984 i32.const 1 call $~lib/builtins/abort @@ -33616,7 +31852,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1985 i32.const 1 call $~lib/builtins/abort @@ -33629,7 +31865,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1986 i32.const 1 call $~lib/builtins/abort @@ -33642,7 +31878,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1987 i32.const 1 call $~lib/builtins/abort @@ -33655,7 +31891,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1988 i32.const 1 call $~lib/builtins/abort @@ -33668,7 +31904,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1991 i32.const 1 call $~lib/builtins/abort @@ -33681,7 +31917,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1992 i32.const 1 call $~lib/builtins/abort @@ -33694,7 +31930,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1993 i32.const 1 call $~lib/builtins/abort @@ -33707,7 +31943,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1994 i32.const 1 call $~lib/builtins/abort @@ -33720,7 +31956,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1995 i32.const 1 call $~lib/builtins/abort @@ -33733,7 +31969,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1996 i32.const 1 call $~lib/builtins/abort @@ -33746,7 +31982,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1997 i32.const 1 call $~lib/builtins/abort @@ -33759,7 +31995,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 1998 i32.const 1 call $~lib/builtins/abort @@ -33772,7 +32008,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2010 i32.const 1 call $~lib/builtins/abort @@ -33785,7 +32021,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2011 i32.const 1 call $~lib/builtins/abort @@ -33798,7 +32034,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2012 i32.const 1 call $~lib/builtins/abort @@ -33811,7 +32047,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2013 i32.const 1 call $~lib/builtins/abort @@ -33824,7 +32060,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2014 i32.const 1 call $~lib/builtins/abort @@ -33837,7 +32073,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2015 i32.const 1 call $~lib/builtins/abort @@ -33850,7 +32086,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2016 i32.const 1 call $~lib/builtins/abort @@ -33863,7 +32099,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2017 i32.const 1 call $~lib/builtins/abort @@ -33876,7 +32112,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2018 i32.const 1 call $~lib/builtins/abort @@ -33889,7 +32125,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2019 i32.const 1 call $~lib/builtins/abort @@ -33902,7 +32138,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2022 i32.const 1 call $~lib/builtins/abort @@ -33915,7 +32151,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2023 i32.const 1 call $~lib/builtins/abort @@ -33928,7 +32164,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2024 i32.const 1 call $~lib/builtins/abort @@ -33941,7 +32177,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2025 i32.const 1 call $~lib/builtins/abort @@ -33954,7 +32190,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2026 i32.const 1 call $~lib/builtins/abort @@ -33967,7 +32203,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2027 i32.const 1 call $~lib/builtins/abort @@ -33980,7 +32216,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2028 i32.const 1 call $~lib/builtins/abort @@ -33993,7 +32229,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2029 i32.const 1 call $~lib/builtins/abort @@ -34006,7 +32242,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2030 i32.const 1 call $~lib/builtins/abort @@ -34019,7 +32255,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2031 i32.const 1 call $~lib/builtins/abort @@ -34032,7 +32268,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2032 i32.const 1 call $~lib/builtins/abort @@ -34045,7 +32281,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2033 i32.const 1 call $~lib/builtins/abort @@ -34058,7 +32294,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2034 i32.const 1 call $~lib/builtins/abort @@ -34071,7 +32307,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2035 i32.const 1 call $~lib/builtins/abort @@ -34084,7 +32320,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2036 i32.const 1 call $~lib/builtins/abort @@ -34097,7 +32333,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2037 i32.const 1 call $~lib/builtins/abort @@ -34110,7 +32346,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2038 i32.const 1 call $~lib/builtins/abort @@ -34123,7 +32359,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2039 i32.const 1 call $~lib/builtins/abort @@ -34136,7 +32372,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2040 i32.const 1 call $~lib/builtins/abort @@ -34149,7 +32385,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2041 i32.const 1 call $~lib/builtins/abort @@ -34162,7 +32398,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2042 i32.const 1 call $~lib/builtins/abort @@ -34175,7 +32411,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2043 i32.const 1 call $~lib/builtins/abort @@ -34188,7 +32424,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2044 i32.const 1 call $~lib/builtins/abort @@ -34201,7 +32437,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2045 i32.const 1 call $~lib/builtins/abort @@ -34214,7 +32450,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2046 i32.const 1 call $~lib/builtins/abort @@ -34227,7 +32463,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2047 i32.const 1 call $~lib/builtins/abort @@ -34240,7 +32476,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2048 i32.const 1 call $~lib/builtins/abort @@ -34253,7 +32489,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2049 i32.const 1 call $~lib/builtins/abort @@ -34266,7 +32502,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2050 i32.const 1 call $~lib/builtins/abort @@ -34279,7 +32515,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2051 i32.const 1 call $~lib/builtins/abort @@ -34292,7 +32528,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2052 i32.const 1 call $~lib/builtins/abort @@ -34305,7 +32541,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2053 i32.const 1 call $~lib/builtins/abort @@ -34318,7 +32554,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2054 i32.const 1 call $~lib/builtins/abort @@ -34331,7 +32567,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2055 i32.const 1 call $~lib/builtins/abort @@ -34344,7 +32580,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2056 i32.const 1 call $~lib/builtins/abort @@ -34357,7 +32593,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2057 i32.const 1 call $~lib/builtins/abort @@ -34370,7 +32606,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2058 i32.const 1 call $~lib/builtins/abort @@ -34383,7 +32619,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2059 i32.const 1 call $~lib/builtins/abort @@ -34396,7 +32632,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2060 i32.const 1 call $~lib/builtins/abort @@ -34409,7 +32645,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2061 i32.const 1 call $~lib/builtins/abort @@ -34422,7 +32658,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2062 i32.const 1 call $~lib/builtins/abort @@ -34435,7 +32671,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2063 i32.const 1 call $~lib/builtins/abort @@ -34448,7 +32684,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2064 i32.const 1 call $~lib/builtins/abort @@ -34461,7 +32697,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2065 i32.const 1 call $~lib/builtins/abort @@ -34474,7 +32710,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2066 i32.const 1 call $~lib/builtins/abort @@ -34487,7 +32723,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2067 i32.const 1 call $~lib/builtins/abort @@ -34500,7 +32736,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2068 i32.const 1 call $~lib/builtins/abort @@ -34513,7 +32749,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2069 i32.const 1 call $~lib/builtins/abort @@ -34526,7 +32762,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2070 i32.const 1 call $~lib/builtins/abort @@ -34539,7 +32775,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2071 i32.const 1 call $~lib/builtins/abort @@ -34552,7 +32788,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2072 i32.const 1 call $~lib/builtins/abort @@ -34565,7 +32801,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2073 i32.const 1 call $~lib/builtins/abort @@ -34578,7 +32814,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2074 i32.const 1 call $~lib/builtins/abort @@ -34591,7 +32827,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2075 i32.const 1 call $~lib/builtins/abort @@ -34604,7 +32840,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2076 i32.const 1 call $~lib/builtins/abort @@ -34617,7 +32853,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2077 i32.const 1 call $~lib/builtins/abort @@ -34630,7 +32866,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2078 i32.const 1 call $~lib/builtins/abort @@ -34643,7 +32879,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2079 i32.const 1 call $~lib/builtins/abort @@ -34656,7 +32892,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2088 i32.const 1 call $~lib/builtins/abort @@ -34669,7 +32905,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2089 i32.const 1 call $~lib/builtins/abort @@ -34682,7 +32918,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2090 i32.const 1 call $~lib/builtins/abort @@ -34695,7 +32931,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2091 i32.const 1 call $~lib/builtins/abort @@ -34708,7 +32944,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2092 i32.const 1 call $~lib/builtins/abort @@ -34721,7 +32957,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2093 i32.const 1 call $~lib/builtins/abort @@ -34734,7 +32970,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2094 i32.const 1 call $~lib/builtins/abort @@ -34747,7 +32983,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2095 i32.const 1 call $~lib/builtins/abort @@ -34760,7 +32996,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2096 i32.const 1 call $~lib/builtins/abort @@ -34773,7 +33009,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2097 i32.const 1 call $~lib/builtins/abort @@ -34786,7 +33022,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2100 i32.const 1 call $~lib/builtins/abort @@ -34799,7 +33035,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2101 i32.const 1 call $~lib/builtins/abort @@ -34812,7 +33048,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2102 i32.const 1 call $~lib/builtins/abort @@ -34825,7 +33061,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2103 i32.const 1 call $~lib/builtins/abort @@ -34838,7 +33074,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2104 i32.const 1 call $~lib/builtins/abort @@ -34851,7 +33087,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2105 i32.const 1 call $~lib/builtins/abort @@ -34864,7 +33100,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2106 i32.const 1 call $~lib/builtins/abort @@ -34877,7 +33113,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2107 i32.const 1 call $~lib/builtins/abort @@ -34890,7 +33126,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2108 i32.const 1 call $~lib/builtins/abort @@ -34903,7 +33139,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2109 i32.const 1 call $~lib/builtins/abort @@ -34916,7 +33152,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2110 i32.const 1 call $~lib/builtins/abort @@ -34929,7 +33165,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2111 i32.const 1 call $~lib/builtins/abort @@ -34942,7 +33178,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2112 i32.const 1 call $~lib/builtins/abort @@ -34955,7 +33191,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2113 i32.const 1 call $~lib/builtins/abort @@ -34968,7 +33204,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2114 i32.const 1 call $~lib/builtins/abort @@ -34981,7 +33217,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2115 i32.const 1 call $~lib/builtins/abort @@ -34994,7 +33230,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2116 i32.const 1 call $~lib/builtins/abort @@ -35007,7 +33243,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2117 i32.const 1 call $~lib/builtins/abort @@ -35020,7 +33256,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2118 i32.const 1 call $~lib/builtins/abort @@ -35033,7 +33269,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2119 i32.const 1 call $~lib/builtins/abort @@ -35046,7 +33282,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2120 i32.const 1 call $~lib/builtins/abort @@ -35059,7 +33295,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2121 i32.const 1 call $~lib/builtins/abort @@ -35072,7 +33308,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2122 i32.const 1 call $~lib/builtins/abort @@ -35085,7 +33321,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2123 i32.const 1 call $~lib/builtins/abort @@ -35098,7 +33334,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2124 i32.const 1 call $~lib/builtins/abort @@ -35111,7 +33347,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2125 i32.const 1 call $~lib/builtins/abort @@ -35124,7 +33360,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2126 i32.const 1 call $~lib/builtins/abort @@ -35137,7 +33373,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2127 i32.const 1 call $~lib/builtins/abort @@ -35150,7 +33386,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2128 i32.const 1 call $~lib/builtins/abort @@ -35163,7 +33399,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2129 i32.const 1 call $~lib/builtins/abort @@ -35176,7 +33412,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2130 i32.const 1 call $~lib/builtins/abort @@ -35189,7 +33425,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2131 i32.const 1 call $~lib/builtins/abort @@ -35202,7 +33438,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2132 i32.const 1 call $~lib/builtins/abort @@ -35215,7 +33451,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2133 i32.const 1 call $~lib/builtins/abort @@ -35228,7 +33464,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2134 i32.const 1 call $~lib/builtins/abort @@ -35241,7 +33477,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2135 i32.const 1 call $~lib/builtins/abort @@ -35254,7 +33490,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2136 i32.const 1 call $~lib/builtins/abort @@ -35267,7 +33503,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2137 i32.const 1 call $~lib/builtins/abort @@ -35280,7 +33516,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2138 i32.const 1 call $~lib/builtins/abort @@ -35293,7 +33529,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2139 i32.const 1 call $~lib/builtins/abort @@ -35306,7 +33542,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2140 i32.const 1 call $~lib/builtins/abort @@ -35319,7 +33555,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2141 i32.const 1 call $~lib/builtins/abort @@ -35332,7 +33568,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2142 i32.const 1 call $~lib/builtins/abort @@ -35345,7 +33581,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2143 i32.const 1 call $~lib/builtins/abort @@ -35358,7 +33594,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2144 i32.const 1 call $~lib/builtins/abort @@ -35371,7 +33607,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2145 i32.const 1 call $~lib/builtins/abort @@ -35384,7 +33620,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2146 i32.const 1 call $~lib/builtins/abort @@ -35397,7 +33633,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2147 i32.const 1 call $~lib/builtins/abort @@ -35410,7 +33646,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2148 i32.const 1 call $~lib/builtins/abort @@ -35423,7 +33659,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2149 i32.const 1 call $~lib/builtins/abort @@ -35436,7 +33672,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2150 i32.const 1 call $~lib/builtins/abort @@ -35449,7 +33685,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2151 i32.const 1 call $~lib/builtins/abort @@ -35462,7 +33698,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2152 i32.const 1 call $~lib/builtins/abort @@ -35475,7 +33711,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2153 i32.const 1 call $~lib/builtins/abort @@ -35488,7 +33724,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2154 i32.const 1 call $~lib/builtins/abort @@ -35501,7 +33737,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2155 i32.const 1 call $~lib/builtins/abort @@ -35514,7 +33750,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2156 i32.const 1 call $~lib/builtins/abort @@ -35527,7 +33763,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2157 i32.const 1 call $~lib/builtins/abort @@ -35540,7 +33776,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2169 i32.const 1 call $~lib/builtins/abort @@ -35553,7 +33789,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2170 i32.const 1 call $~lib/builtins/abort @@ -35566,7 +33802,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2171 i32.const 1 call $~lib/builtins/abort @@ -35579,7 +33815,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2172 i32.const 1 call $~lib/builtins/abort @@ -35592,7 +33828,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2173 i32.const 1 call $~lib/builtins/abort @@ -35605,7 +33841,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2174 i32.const 1 call $~lib/builtins/abort @@ -35618,7 +33854,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2175 i32.const 1 call $~lib/builtins/abort @@ -35631,7 +33867,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2176 i32.const 1 call $~lib/builtins/abort @@ -35644,7 +33880,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2177 i32.const 1 call $~lib/builtins/abort @@ -35657,7 +33893,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2178 i32.const 1 call $~lib/builtins/abort @@ -35670,7 +33906,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2181 i32.const 1 call $~lib/builtins/abort @@ -35683,7 +33919,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2182 i32.const 1 call $~lib/builtins/abort @@ -35696,7 +33932,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2183 i32.const 1 call $~lib/builtins/abort @@ -35709,7 +33945,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2184 i32.const 1 call $~lib/builtins/abort @@ -35722,7 +33958,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2185 i32.const 1 call $~lib/builtins/abort @@ -35735,7 +33971,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2186 i32.const 1 call $~lib/builtins/abort @@ -35748,7 +33984,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2187 i32.const 1 call $~lib/builtins/abort @@ -35761,7 +33997,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2188 i32.const 1 call $~lib/builtins/abort @@ -35774,7 +34010,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2189 i32.const 1 call $~lib/builtins/abort @@ -35787,7 +34023,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2190 i32.const 1 call $~lib/builtins/abort @@ -35800,7 +34036,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2191 i32.const 1 call $~lib/builtins/abort @@ -35813,7 +34049,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2192 i32.const 1 call $~lib/builtins/abort @@ -35826,7 +34062,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2193 i32.const 1 call $~lib/builtins/abort @@ -35839,7 +34075,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2194 i32.const 1 call $~lib/builtins/abort @@ -35852,7 +34088,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2195 i32.const 1 call $~lib/builtins/abort @@ -35865,7 +34101,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2196 i32.const 1 call $~lib/builtins/abort @@ -35878,7 +34114,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2197 i32.const 1 call $~lib/builtins/abort @@ -35891,7 +34127,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2198 i32.const 1 call $~lib/builtins/abort @@ -35904,7 +34140,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2199 i32.const 1 call $~lib/builtins/abort @@ -35917,7 +34153,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2200 i32.const 1 call $~lib/builtins/abort @@ -35930,7 +34166,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2201 i32.const 1 call $~lib/builtins/abort @@ -35943,7 +34179,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2202 i32.const 1 call $~lib/builtins/abort @@ -35956,7 +34192,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2203 i32.const 1 call $~lib/builtins/abort @@ -35969,7 +34205,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2204 i32.const 1 call $~lib/builtins/abort @@ -35982,7 +34218,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2205 i32.const 1 call $~lib/builtins/abort @@ -35995,7 +34231,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2206 i32.const 1 call $~lib/builtins/abort @@ -36008,7 +34244,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2207 i32.const 1 call $~lib/builtins/abort @@ -36021,7 +34257,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2208 i32.const 1 call $~lib/builtins/abort @@ -36034,7 +34270,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2209 i32.const 1 call $~lib/builtins/abort @@ -36047,7 +34283,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2210 i32.const 1 call $~lib/builtins/abort @@ -36060,7 +34296,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2211 i32.const 1 call $~lib/builtins/abort @@ -36073,7 +34309,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2212 i32.const 1 call $~lib/builtins/abort @@ -36086,7 +34322,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2213 i32.const 1 call $~lib/builtins/abort @@ -36099,7 +34335,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2214 i32.const 1 call $~lib/builtins/abort @@ -36112,7 +34348,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2215 i32.const 1 call $~lib/builtins/abort @@ -36125,7 +34361,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2216 i32.const 1 call $~lib/builtins/abort @@ -36138,7 +34374,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2217 i32.const 1 call $~lib/builtins/abort @@ -36151,7 +34387,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2218 i32.const 1 call $~lib/builtins/abort @@ -36164,7 +34400,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2219 i32.const 1 call $~lib/builtins/abort @@ -36177,7 +34413,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2220 i32.const 1 call $~lib/builtins/abort @@ -36190,7 +34426,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2221 i32.const 1 call $~lib/builtins/abort @@ -36203,7 +34439,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2222 i32.const 1 call $~lib/builtins/abort @@ -36216,7 +34452,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2223 i32.const 1 call $~lib/builtins/abort @@ -36229,7 +34465,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2224 i32.const 1 call $~lib/builtins/abort @@ -36242,7 +34478,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2225 i32.const 1 call $~lib/builtins/abort @@ -36255,7 +34491,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2226 i32.const 1 call $~lib/builtins/abort @@ -36268,7 +34504,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2227 i32.const 1 call $~lib/builtins/abort @@ -36281,7 +34517,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2228 i32.const 1 call $~lib/builtins/abort @@ -36294,7 +34530,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2229 i32.const 1 call $~lib/builtins/abort @@ -36307,7 +34543,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2230 i32.const 1 call $~lib/builtins/abort @@ -36320,7 +34556,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2231 i32.const 1 call $~lib/builtins/abort @@ -36333,7 +34569,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2232 i32.const 1 call $~lib/builtins/abort @@ -36346,7 +34582,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2233 i32.const 1 call $~lib/builtins/abort @@ -36359,7 +34595,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2234 i32.const 1 call $~lib/builtins/abort @@ -36372,7 +34608,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2235 i32.const 1 call $~lib/builtins/abort @@ -36385,7 +34621,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2236 i32.const 1 call $~lib/builtins/abort @@ -36398,7 +34634,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2237 i32.const 1 call $~lib/builtins/abort @@ -36411,7 +34647,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2238 i32.const 1 call $~lib/builtins/abort @@ -36424,7 +34660,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2247 i32.const 1 call $~lib/builtins/abort @@ -36437,7 +34673,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2248 i32.const 1 call $~lib/builtins/abort @@ -36450,7 +34686,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2249 i32.const 1 call $~lib/builtins/abort @@ -36463,7 +34699,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2250 i32.const 1 call $~lib/builtins/abort @@ -36476,7 +34712,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2251 i32.const 1 call $~lib/builtins/abort @@ -36489,7 +34725,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2252 i32.const 1 call $~lib/builtins/abort @@ -36502,7 +34738,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2253 i32.const 1 call $~lib/builtins/abort @@ -36515,7 +34751,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2254 i32.const 1 call $~lib/builtins/abort @@ -36528,7 +34764,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2255 i32.const 1 call $~lib/builtins/abort @@ -36541,7 +34777,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2256 i32.const 1 call $~lib/builtins/abort @@ -36554,7 +34790,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2259 i32.const 1 call $~lib/builtins/abort @@ -36567,7 +34803,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2260 i32.const 1 call $~lib/builtins/abort @@ -36580,7 +34816,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2261 i32.const 1 call $~lib/builtins/abort @@ -36593,7 +34829,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2262 i32.const 1 call $~lib/builtins/abort @@ -36606,7 +34842,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2263 i32.const 1 call $~lib/builtins/abort @@ -36619,7 +34855,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2264 i32.const 1 call $~lib/builtins/abort @@ -36632,7 +34868,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2265 i32.const 1 call $~lib/builtins/abort @@ -36645,7 +34881,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2266 i32.const 1 call $~lib/builtins/abort @@ -36658,7 +34894,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2267 i32.const 1 call $~lib/builtins/abort @@ -36671,7 +34907,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2268 i32.const 1 call $~lib/builtins/abort @@ -36684,7 +34920,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2269 i32.const 1 call $~lib/builtins/abort @@ -36697,7 +34933,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2270 i32.const 1 call $~lib/builtins/abort @@ -36710,7 +34946,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2271 i32.const 1 call $~lib/builtins/abort @@ -36723,7 +34959,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2272 i32.const 1 call $~lib/builtins/abort @@ -36736,7 +34972,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2273 i32.const 1 call $~lib/builtins/abort @@ -36749,7 +34985,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2274 i32.const 1 call $~lib/builtins/abort @@ -36762,7 +34998,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2275 i32.const 1 call $~lib/builtins/abort @@ -36775,7 +35011,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2276 i32.const 1 call $~lib/builtins/abort @@ -36788,7 +35024,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2277 i32.const 1 call $~lib/builtins/abort @@ -36801,7 +35037,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2278 i32.const 1 call $~lib/builtins/abort @@ -36814,7 +35050,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2279 i32.const 1 call $~lib/builtins/abort @@ -36827,7 +35063,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2280 i32.const 1 call $~lib/builtins/abort @@ -36840,7 +35076,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2281 i32.const 1 call $~lib/builtins/abort @@ -36853,7 +35089,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2282 i32.const 1 call $~lib/builtins/abort @@ -36866,7 +35102,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2283 i32.const 1 call $~lib/builtins/abort @@ -36879,7 +35115,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2284 i32.const 1 call $~lib/builtins/abort @@ -36892,7 +35128,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2285 i32.const 1 call $~lib/builtins/abort @@ -36905,7 +35141,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2286 i32.const 1 call $~lib/builtins/abort @@ -36918,7 +35154,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2287 i32.const 1 call $~lib/builtins/abort @@ -36931,7 +35167,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2288 i32.const 1 call $~lib/builtins/abort @@ -36944,7 +35180,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2289 i32.const 1 call $~lib/builtins/abort @@ -36957,7 +35193,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2290 i32.const 1 call $~lib/builtins/abort @@ -36970,7 +35206,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2291 i32.const 1 call $~lib/builtins/abort @@ -36983,7 +35219,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2292 i32.const 1 call $~lib/builtins/abort @@ -36996,7 +35232,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2293 i32.const 1 call $~lib/builtins/abort @@ -37009,7 +35245,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2294 i32.const 1 call $~lib/builtins/abort @@ -37022,7 +35258,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2295 i32.const 1 call $~lib/builtins/abort @@ -37035,7 +35271,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2296 i32.const 1 call $~lib/builtins/abort @@ -37048,7 +35284,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2297 i32.const 1 call $~lib/builtins/abort @@ -37061,7 +35297,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2298 i32.const 1 call $~lib/builtins/abort @@ -37074,7 +35310,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2299 i32.const 1 call $~lib/builtins/abort @@ -37087,7 +35323,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2300 i32.const 1 call $~lib/builtins/abort @@ -37100,7 +35336,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2301 i32.const 1 call $~lib/builtins/abort @@ -37113,7 +35349,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2302 i32.const 1 call $~lib/builtins/abort @@ -37126,7 +35362,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2303 i32.const 1 call $~lib/builtins/abort @@ -37139,7 +35375,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2304 i32.const 1 call $~lib/builtins/abort @@ -37152,7 +35388,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2305 i32.const 1 call $~lib/builtins/abort @@ -37165,7 +35401,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2306 i32.const 1 call $~lib/builtins/abort @@ -37178,7 +35414,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2307 i32.const 1 call $~lib/builtins/abort @@ -37191,7 +35427,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2308 i32.const 1 call $~lib/builtins/abort @@ -37204,7 +35440,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2309 i32.const 1 call $~lib/builtins/abort @@ -37217,7 +35453,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2310 i32.const 1 call $~lib/builtins/abort @@ -37230,7 +35466,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2311 i32.const 1 call $~lib/builtins/abort @@ -37243,7 +35479,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2312 i32.const 1 call $~lib/builtins/abort @@ -37256,7 +35492,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2313 i32.const 1 call $~lib/builtins/abort @@ -37269,7 +35505,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2314 i32.const 1 call $~lib/builtins/abort @@ -37282,7 +35518,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2315 i32.const 1 call $~lib/builtins/abort @@ -37295,7 +35531,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2316 i32.const 1 call $~lib/builtins/abort @@ -37308,7 +35544,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2330 i32.const 1 call $~lib/builtins/abort @@ -37321,7 +35557,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2331 i32.const 1 call $~lib/builtins/abort @@ -37334,7 +35570,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2332 i32.const 1 call $~lib/builtins/abort @@ -37347,7 +35583,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2333 i32.const 1 call $~lib/builtins/abort @@ -37360,7 +35596,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2334 i32.const 1 call $~lib/builtins/abort @@ -37373,7 +35609,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2335 i32.const 1 call $~lib/builtins/abort @@ -37386,7 +35622,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2336 i32.const 1 call $~lib/builtins/abort @@ -37399,7 +35635,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2337 i32.const 1 call $~lib/builtins/abort @@ -37412,7 +35648,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2338 i32.const 1 call $~lib/builtins/abort @@ -37425,7 +35661,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2339 i32.const 1 call $~lib/builtins/abort @@ -37438,7 +35674,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2342 i32.const 1 call $~lib/builtins/abort @@ -37451,7 +35687,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2343 i32.const 1 call $~lib/builtins/abort @@ -37464,7 +35700,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2344 i32.const 1 call $~lib/builtins/abort @@ -37477,7 +35713,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2345 i32.const 1 call $~lib/builtins/abort @@ -37490,7 +35726,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2346 i32.const 1 call $~lib/builtins/abort @@ -37503,7 +35739,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2347 i32.const 1 call $~lib/builtins/abort @@ -37516,7 +35752,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2348 i32.const 1 call $~lib/builtins/abort @@ -37529,7 +35765,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2349 i32.const 1 call $~lib/builtins/abort @@ -37542,7 +35778,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2350 i32.const 1 call $~lib/builtins/abort @@ -37555,7 +35791,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2351 i32.const 1 call $~lib/builtins/abort @@ -37568,7 +35804,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2352 i32.const 1 call $~lib/builtins/abort @@ -37581,7 +35817,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2353 i32.const 1 call $~lib/builtins/abort @@ -37594,7 +35830,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2354 i32.const 1 call $~lib/builtins/abort @@ -37607,7 +35843,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2355 i32.const 1 call $~lib/builtins/abort @@ -37620,7 +35856,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2356 i32.const 1 call $~lib/builtins/abort @@ -37633,7 +35869,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2357 i32.const 1 call $~lib/builtins/abort @@ -37646,7 +35882,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2358 i32.const 1 call $~lib/builtins/abort @@ -37659,7 +35895,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2359 i32.const 1 call $~lib/builtins/abort @@ -37672,7 +35908,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2360 i32.const 1 call $~lib/builtins/abort @@ -37685,7 +35921,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2361 i32.const 1 call $~lib/builtins/abort @@ -37698,7 +35934,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2362 i32.const 1 call $~lib/builtins/abort @@ -37711,7 +35947,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2363 i32.const 1 call $~lib/builtins/abort @@ -37724,7 +35960,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2364 i32.const 1 call $~lib/builtins/abort @@ -37737,7 +35973,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2365 i32.const 1 call $~lib/builtins/abort @@ -37750,7 +35986,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2366 i32.const 1 call $~lib/builtins/abort @@ -37763,7 +35999,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2367 i32.const 1 call $~lib/builtins/abort @@ -37776,7 +36012,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2368 i32.const 1 call $~lib/builtins/abort @@ -37789,7 +36025,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2369 i32.const 1 call $~lib/builtins/abort @@ -37802,7 +36038,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2370 i32.const 1 call $~lib/builtins/abort @@ -37815,7 +36051,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2371 i32.const 1 call $~lib/builtins/abort @@ -37828,7 +36064,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2372 i32.const 1 call $~lib/builtins/abort @@ -37841,7 +36077,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2373 i32.const 1 call $~lib/builtins/abort @@ -37854,7 +36090,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2374 i32.const 1 call $~lib/builtins/abort @@ -37867,7 +36103,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2375 i32.const 1 call $~lib/builtins/abort @@ -37880,7 +36116,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2376 i32.const 1 call $~lib/builtins/abort @@ -37893,7 +36129,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2377 i32.const 1 call $~lib/builtins/abort @@ -37906,7 +36142,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2378 i32.const 1 call $~lib/builtins/abort @@ -37919,7 +36155,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2379 i32.const 1 call $~lib/builtins/abort @@ -37932,7 +36168,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2380 i32.const 1 call $~lib/builtins/abort @@ -37945,7 +36181,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2381 i32.const 1 call $~lib/builtins/abort @@ -37958,7 +36194,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2382 i32.const 1 call $~lib/builtins/abort @@ -37971,7 +36207,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2383 i32.const 1 call $~lib/builtins/abort @@ -37984,7 +36220,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2384 i32.const 1 call $~lib/builtins/abort @@ -37997,7 +36233,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2385 i32.const 1 call $~lib/builtins/abort @@ -38010,7 +36246,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2386 i32.const 1 call $~lib/builtins/abort @@ -38023,7 +36259,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2387 i32.const 1 call $~lib/builtins/abort @@ -38036,7 +36272,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2388 i32.const 1 call $~lib/builtins/abort @@ -38049,7 +36285,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2389 i32.const 1 call $~lib/builtins/abort @@ -38062,7 +36298,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2390 i32.const 1 call $~lib/builtins/abort @@ -38075,7 +36311,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2391 i32.const 1 call $~lib/builtins/abort @@ -38088,7 +36324,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2392 i32.const 1 call $~lib/builtins/abort @@ -38101,7 +36337,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2393 i32.const 1 call $~lib/builtins/abort @@ -38114,7 +36350,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2394 i32.const 1 call $~lib/builtins/abort @@ -38127,7 +36363,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2395 i32.const 1 call $~lib/builtins/abort @@ -38140,7 +36376,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2396 i32.const 1 call $~lib/builtins/abort @@ -38153,7 +36389,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2397 i32.const 1 call $~lib/builtins/abort @@ -38166,7 +36402,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2398 i32.const 1 call $~lib/builtins/abort @@ -38179,7 +36415,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2399 i32.const 1 call $~lib/builtins/abort @@ -38192,7 +36428,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2400 i32.const 1 call $~lib/builtins/abort @@ -38205,7 +36441,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2401 i32.const 1 call $~lib/builtins/abort @@ -38218,7 +36454,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2402 i32.const 1 call $~lib/builtins/abort @@ -38231,7 +36467,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2403 i32.const 1 call $~lib/builtins/abort @@ -38244,7 +36480,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2404 i32.const 1 call $~lib/builtins/abort @@ -38257,7 +36493,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2405 i32.const 1 call $~lib/builtins/abort @@ -38270,7 +36506,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2406 i32.const 1 call $~lib/builtins/abort @@ -38283,7 +36519,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2407 i32.const 1 call $~lib/builtins/abort @@ -38296,7 +36532,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2410 i32.const 1 call $~lib/builtins/abort @@ -38309,7 +36545,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2411 i32.const 1 call $~lib/builtins/abort @@ -38322,7 +36558,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2412 i32.const 1 call $~lib/builtins/abort @@ -38335,7 +36571,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2413 i32.const 1 call $~lib/builtins/abort @@ -38348,7 +36584,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2414 i32.const 1 call $~lib/builtins/abort @@ -38361,7 +36597,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2415 i32.const 1 call $~lib/builtins/abort @@ -38374,7 +36610,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2416 i32.const 1 call $~lib/builtins/abort @@ -38387,7 +36623,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2417 i32.const 1 call $~lib/builtins/abort @@ -38400,7 +36636,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2420 i32.const 1 call $~lib/builtins/abort @@ -38413,7 +36649,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2421 i32.const 1 call $~lib/builtins/abort @@ -38426,7 +36662,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2422 i32.const 1 call $~lib/builtins/abort @@ -38439,7 +36675,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2423 i32.const 1 call $~lib/builtins/abort @@ -38452,7 +36688,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2424 i32.const 1 call $~lib/builtins/abort @@ -38465,7 +36701,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2425 i32.const 1 call $~lib/builtins/abort @@ -38478,7 +36714,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2426 i32.const 1 call $~lib/builtins/abort @@ -38491,7 +36727,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2427 i32.const 1 call $~lib/builtins/abort @@ -38504,7 +36740,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2430 i32.const 1 call $~lib/builtins/abort @@ -38517,7 +36753,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2431 i32.const 1 call $~lib/builtins/abort @@ -38530,7 +36766,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2433 i32.const 1 call $~lib/builtins/abort @@ -38543,7 +36779,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2434 i32.const 1 call $~lib/builtins/abort @@ -38556,7 +36792,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2436 i32.const 1 call $~lib/builtins/abort @@ -38569,7 +36805,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2437 i32.const 1 call $~lib/builtins/abort @@ -38582,7 +36818,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2439 i32.const 1 call $~lib/builtins/abort @@ -38595,7 +36831,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2440 i32.const 1 call $~lib/builtins/abort @@ -38608,7 +36844,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2442 i32.const 1 call $~lib/builtins/abort @@ -38621,7 +36857,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2443 i32.const 1 call $~lib/builtins/abort @@ -38634,7 +36870,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2445 i32.const 1 call $~lib/builtins/abort @@ -38647,7 +36883,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2446 i32.const 1 call $~lib/builtins/abort @@ -38660,7 +36896,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2448 i32.const 1 call $~lib/builtins/abort @@ -38673,7 +36909,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2449 i32.const 1 call $~lib/builtins/abort @@ -38686,7 +36922,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2451 i32.const 1 call $~lib/builtins/abort @@ -38699,7 +36935,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2452 i32.const 1 call $~lib/builtins/abort @@ -38712,7 +36948,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2454 i32.const 1 call $~lib/builtins/abort @@ -38725,7 +36961,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2455 i32.const 1 call $~lib/builtins/abort @@ -38738,7 +36974,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2457 i32.const 1 call $~lib/builtins/abort @@ -38751,7 +36987,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2458 i32.const 1 call $~lib/builtins/abort @@ -38764,7 +37000,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2459 i32.const 1 call $~lib/builtins/abort @@ -38777,7 +37013,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2460 i32.const 1 call $~lib/builtins/abort @@ -38790,7 +37026,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2461 i32.const 1 call $~lib/builtins/abort @@ -38803,7 +37039,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2462 i32.const 1 call $~lib/builtins/abort @@ -38816,7 +37052,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2463 i32.const 1 call $~lib/builtins/abort @@ -38829,7 +37065,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2464 i32.const 1 call $~lib/builtins/abort @@ -38842,7 +37078,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2466 i32.const 1 call $~lib/builtins/abort @@ -38855,7 +37091,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2467 i32.const 1 call $~lib/builtins/abort @@ -38868,7 +37104,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2468 i32.const 1 call $~lib/builtins/abort @@ -38881,7 +37117,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2469 i32.const 1 call $~lib/builtins/abort @@ -38894,7 +37130,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2470 i32.const 1 call $~lib/builtins/abort @@ -38907,7 +37143,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2471 i32.const 1 call $~lib/builtins/abort @@ -38920,7 +37156,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2472 i32.const 1 call $~lib/builtins/abort @@ -38933,7 +37169,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2473 i32.const 1 call $~lib/builtins/abort @@ -38946,7 +37182,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2474 i32.const 1 call $~lib/builtins/abort @@ -38959,7 +37195,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2475 i32.const 1 call $~lib/builtins/abort @@ -38972,7 +37208,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2476 i32.const 1 call $~lib/builtins/abort @@ -38985,7 +37221,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2477 i32.const 1 call $~lib/builtins/abort @@ -38998,7 +37234,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2478 i32.const 1 call $~lib/builtins/abort @@ -39011,7 +37247,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2479 i32.const 1 call $~lib/builtins/abort @@ -39024,7 +37260,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2480 i32.const 1 call $~lib/builtins/abort @@ -39037,7 +37273,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2481 i32.const 1 call $~lib/builtins/abort @@ -39050,7 +37286,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2482 i32.const 1 call $~lib/builtins/abort @@ -39063,7 +37299,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2483 i32.const 1 call $~lib/builtins/abort @@ -39076,7 +37312,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2484 i32.const 1 call $~lib/builtins/abort @@ -39089,7 +37325,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2485 i32.const 1 call $~lib/builtins/abort @@ -39104,7 +37340,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2494 i32.const 1 call $~lib/builtins/abort @@ -39119,7 +37355,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2495 i32.const 1 call $~lib/builtins/abort @@ -39134,7 +37370,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2496 i32.const 1 call $~lib/builtins/abort @@ -39149,7 +37385,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2497 i32.const 1 call $~lib/builtins/abort @@ -39164,7 +37400,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2498 i32.const 1 call $~lib/builtins/abort @@ -39179,7 +37415,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2499 i32.const 1 call $~lib/builtins/abort @@ -39194,7 +37430,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2500 i32.const 1 call $~lib/builtins/abort @@ -39209,7 +37445,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2501 i32.const 1 call $~lib/builtins/abort @@ -39224,7 +37460,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2502 i32.const 1 call $~lib/builtins/abort @@ -39239,7 +37475,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2503 i32.const 1 call $~lib/builtins/abort @@ -39254,7 +37490,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2506 i32.const 1 call $~lib/builtins/abort @@ -39269,7 +37505,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2507 i32.const 1 call $~lib/builtins/abort @@ -39284,7 +37520,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2508 i32.const 1 call $~lib/builtins/abort @@ -39299,7 +37535,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2509 i32.const 1 call $~lib/builtins/abort @@ -39314,7 +37550,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2510 i32.const 1 call $~lib/builtins/abort @@ -39329,7 +37565,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2511 i32.const 1 call $~lib/builtins/abort @@ -39344,7 +37580,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2512 i32.const 1 call $~lib/builtins/abort @@ -39359,7 +37595,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2513 i32.const 1 call $~lib/builtins/abort @@ -39374,7 +37610,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2514 i32.const 1 call $~lib/builtins/abort @@ -39389,7 +37625,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2515 i32.const 1 call $~lib/builtins/abort @@ -39404,7 +37640,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2516 i32.const 1 call $~lib/builtins/abort @@ -39419,7 +37655,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2517 i32.const 1 call $~lib/builtins/abort @@ -39434,7 +37670,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2518 i32.const 1 call $~lib/builtins/abort @@ -39449,7 +37685,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2519 i32.const 1 call $~lib/builtins/abort @@ -39464,7 +37700,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2520 i32.const 1 call $~lib/builtins/abort @@ -39479,7 +37715,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2521 i32.const 1 call $~lib/builtins/abort @@ -39494,7 +37730,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2522 i32.const 1 call $~lib/builtins/abort @@ -39509,7 +37745,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2523 i32.const 1 call $~lib/builtins/abort @@ -39524,7 +37760,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2524 i32.const 1 call $~lib/builtins/abort @@ -39539,7 +37775,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2525 i32.const 1 call $~lib/builtins/abort @@ -39554,7 +37790,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2526 i32.const 1 call $~lib/builtins/abort @@ -39569,7 +37805,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2527 i32.const 1 call $~lib/builtins/abort @@ -39584,7 +37820,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2528 i32.const 1 call $~lib/builtins/abort @@ -39599,7 +37835,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2529 i32.const 1 call $~lib/builtins/abort @@ -39614,7 +37850,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2530 i32.const 1 call $~lib/builtins/abort @@ -39629,7 +37865,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2531 i32.const 1 call $~lib/builtins/abort @@ -39644,7 +37880,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2532 i32.const 1 call $~lib/builtins/abort @@ -39659,7 +37895,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2533 i32.const 1 call $~lib/builtins/abort @@ -39674,7 +37910,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2534 i32.const 1 call $~lib/builtins/abort @@ -39689,7 +37925,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2535 i32.const 1 call $~lib/builtins/abort @@ -39704,7 +37940,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2536 i32.const 1 call $~lib/builtins/abort @@ -39719,7 +37955,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2537 i32.const 1 call $~lib/builtins/abort @@ -39734,7 +37970,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2538 i32.const 1 call $~lib/builtins/abort @@ -39749,7 +37985,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2539 i32.const 1 call $~lib/builtins/abort @@ -39764,7 +38000,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2540 i32.const 1 call $~lib/builtins/abort @@ -39779,7 +38015,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2541 i32.const 1 call $~lib/builtins/abort @@ -39794,7 +38030,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2542 i32.const 1 call $~lib/builtins/abort @@ -39809,7 +38045,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2543 i32.const 1 call $~lib/builtins/abort @@ -39824,7 +38060,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2544 i32.const 1 call $~lib/builtins/abort @@ -39839,7 +38075,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2545 i32.const 1 call $~lib/builtins/abort @@ -39854,7 +38090,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2546 i32.const 1 call $~lib/builtins/abort @@ -39869,7 +38105,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2547 i32.const 1 call $~lib/builtins/abort @@ -39884,7 +38120,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2548 i32.const 1 call $~lib/builtins/abort @@ -39899,7 +38135,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2549 i32.const 1 call $~lib/builtins/abort @@ -39914,7 +38150,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2550 i32.const 1 call $~lib/builtins/abort @@ -39929,7 +38165,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2551 i32.const 1 call $~lib/builtins/abort @@ -39944,7 +38180,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2552 i32.const 1 call $~lib/builtins/abort @@ -39959,7 +38195,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2553 i32.const 1 call $~lib/builtins/abort @@ -39974,7 +38210,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2554 i32.const 1 call $~lib/builtins/abort @@ -39989,7 +38225,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2555 i32.const 1 call $~lib/builtins/abort @@ -40004,7 +38240,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2556 i32.const 1 call $~lib/builtins/abort @@ -40019,7 +38255,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2557 i32.const 1 call $~lib/builtins/abort @@ -40034,7 +38270,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2558 i32.const 1 call $~lib/builtins/abort @@ -40049,7 +38285,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2559 i32.const 1 call $~lib/builtins/abort @@ -40064,7 +38300,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2560 i32.const 1 call $~lib/builtins/abort @@ -40079,7 +38315,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2561 i32.const 1 call $~lib/builtins/abort @@ -40094,7 +38330,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2562 i32.const 1 call $~lib/builtins/abort @@ -40109,7 +38345,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2563 i32.const 1 call $~lib/builtins/abort @@ -40124,7 +38360,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2564 i32.const 1 call $~lib/builtins/abort @@ -40139,7 +38375,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2565 i32.const 1 call $~lib/builtins/abort @@ -40154,7 +38390,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2566 i32.const 1 call $~lib/builtins/abort @@ -40169,7 +38405,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2567 i32.const 1 call $~lib/builtins/abort @@ -40184,7 +38420,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2568 i32.const 1 call $~lib/builtins/abort @@ -40199,7 +38435,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2569 i32.const 1 call $~lib/builtins/abort @@ -40214,7 +38450,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2570 i32.const 1 call $~lib/builtins/abort @@ -40229,7 +38465,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2571 i32.const 1 call $~lib/builtins/abort @@ -40243,7 +38479,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2583 i32.const 1 call $~lib/builtins/abort @@ -40257,7 +38493,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2584 i32.const 1 call $~lib/builtins/abort @@ -40271,7 +38507,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2585 i32.const 1 call $~lib/builtins/abort @@ -40285,7 +38521,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2586 i32.const 1 call $~lib/builtins/abort @@ -40299,7 +38535,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2587 i32.const 1 call $~lib/builtins/abort @@ -40313,7 +38549,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2588 i32.const 1 call $~lib/builtins/abort @@ -40327,7 +38563,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2589 i32.const 1 call $~lib/builtins/abort @@ -40341,7 +38577,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2590 i32.const 1 call $~lib/builtins/abort @@ -40355,7 +38591,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2591 i32.const 1 call $~lib/builtins/abort @@ -40369,7 +38605,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2592 i32.const 1 call $~lib/builtins/abort @@ -40383,7 +38619,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2595 i32.const 1 call $~lib/builtins/abort @@ -40397,7 +38633,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2596 i32.const 1 call $~lib/builtins/abort @@ -40411,7 +38647,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2597 i32.const 1 call $~lib/builtins/abort @@ -40425,7 +38661,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2598 i32.const 1 call $~lib/builtins/abort @@ -40439,7 +38675,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2599 i32.const 1 call $~lib/builtins/abort @@ -40453,7 +38689,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2600 i32.const 1 call $~lib/builtins/abort @@ -40467,7 +38703,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2601 i32.const 1 call $~lib/builtins/abort @@ -40481,7 +38717,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2602 i32.const 1 call $~lib/builtins/abort @@ -40495,7 +38731,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2603 i32.const 1 call $~lib/builtins/abort @@ -40509,7 +38745,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2604 i32.const 1 call $~lib/builtins/abort @@ -40523,7 +38759,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2605 i32.const 1 call $~lib/builtins/abort @@ -40537,7 +38773,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2606 i32.const 1 call $~lib/builtins/abort @@ -40551,7 +38787,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2607 i32.const 1 call $~lib/builtins/abort @@ -40565,7 +38801,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2608 i32.const 1 call $~lib/builtins/abort @@ -40579,7 +38815,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2609 i32.const 1 call $~lib/builtins/abort @@ -40593,7 +38829,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2610 i32.const 1 call $~lib/builtins/abort @@ -40607,7 +38843,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2611 i32.const 1 call $~lib/builtins/abort @@ -40621,7 +38857,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2612 i32.const 1 call $~lib/builtins/abort @@ -40635,7 +38871,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2613 i32.const 1 call $~lib/builtins/abort @@ -40649,7 +38885,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2614 i32.const 1 call $~lib/builtins/abort @@ -40663,7 +38899,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2615 i32.const 1 call $~lib/builtins/abort @@ -40677,7 +38913,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2616 i32.const 1 call $~lib/builtins/abort @@ -40691,7 +38927,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2617 i32.const 1 call $~lib/builtins/abort @@ -40705,7 +38941,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2618 i32.const 1 call $~lib/builtins/abort @@ -40719,7 +38955,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2619 i32.const 1 call $~lib/builtins/abort @@ -40733,7 +38969,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2620 i32.const 1 call $~lib/builtins/abort @@ -40747,7 +38983,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2621 i32.const 1 call $~lib/builtins/abort @@ -40761,7 +38997,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2622 i32.const 1 call $~lib/builtins/abort @@ -40775,7 +39011,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2623 i32.const 1 call $~lib/builtins/abort @@ -40789,7 +39025,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2624 i32.const 1 call $~lib/builtins/abort @@ -40803,7 +39039,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2625 i32.const 1 call $~lib/builtins/abort @@ -40817,7 +39053,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2626 i32.const 1 call $~lib/builtins/abort @@ -40831,7 +39067,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2627 i32.const 1 call $~lib/builtins/abort @@ -40845,7 +39081,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2628 i32.const 1 call $~lib/builtins/abort @@ -40859,7 +39095,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2629 i32.const 1 call $~lib/builtins/abort @@ -40873,7 +39109,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2630 i32.const 1 call $~lib/builtins/abort @@ -40887,7 +39123,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2631 i32.const 1 call $~lib/builtins/abort @@ -40901,7 +39137,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2632 i32.const 1 call $~lib/builtins/abort @@ -40915,7 +39151,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2633 i32.const 1 call $~lib/builtins/abort @@ -40929,7 +39165,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2634 i32.const 1 call $~lib/builtins/abort @@ -40943,7 +39179,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2635 i32.const 1 call $~lib/builtins/abort @@ -40957,7 +39193,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2636 i32.const 1 call $~lib/builtins/abort @@ -40971,7 +39207,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2637 i32.const 1 call $~lib/builtins/abort @@ -40985,7 +39221,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2638 i32.const 1 call $~lib/builtins/abort @@ -40999,7 +39235,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2639 i32.const 1 call $~lib/builtins/abort @@ -41013,7 +39249,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2640 i32.const 1 call $~lib/builtins/abort @@ -41027,7 +39263,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2641 i32.const 1 call $~lib/builtins/abort @@ -41041,7 +39277,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2642 i32.const 1 call $~lib/builtins/abort @@ -41055,7 +39291,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2643 i32.const 1 call $~lib/builtins/abort @@ -41069,7 +39305,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2644 i32.const 1 call $~lib/builtins/abort @@ -41083,7 +39319,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2645 i32.const 1 call $~lib/builtins/abort @@ -41097,7 +39333,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2646 i32.const 1 call $~lib/builtins/abort @@ -41111,7 +39347,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2647 i32.const 1 call $~lib/builtins/abort @@ -41125,7 +39361,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2648 i32.const 1 call $~lib/builtins/abort @@ -41139,7 +39375,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2649 i32.const 1 call $~lib/builtins/abort @@ -41153,7 +39389,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2650 i32.const 1 call $~lib/builtins/abort @@ -41167,7 +39403,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2651 i32.const 1 call $~lib/builtins/abort @@ -41181,7 +39417,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2652 i32.const 1 call $~lib/builtins/abort @@ -41195,7 +39431,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2653 i32.const 1 call $~lib/builtins/abort @@ -41209,7 +39445,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2654 i32.const 1 call $~lib/builtins/abort @@ -41223,7 +39459,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2655 i32.const 1 call $~lib/builtins/abort @@ -41237,7 +39473,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2656 i32.const 1 call $~lib/builtins/abort @@ -41251,7 +39487,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2657 i32.const 1 call $~lib/builtins/abort @@ -41265,7 +39501,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2658 i32.const 1 call $~lib/builtins/abort @@ -41279,7 +39515,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2659 i32.const 1 call $~lib/builtins/abort @@ -41293,7 +39529,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2660 i32.const 1 call $~lib/builtins/abort @@ -41307,7 +39543,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2661 i32.const 1 call $~lib/builtins/abort @@ -41321,7 +39557,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2662 i32.const 1 call $~lib/builtins/abort @@ -41335,7 +39571,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2663 i32.const 1 call $~lib/builtins/abort @@ -41349,7 +39585,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2664 i32.const 1 call $~lib/builtins/abort @@ -41363,7 +39599,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2665 i32.const 1 call $~lib/builtins/abort @@ -41377,7 +39613,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2666 i32.const 1 call $~lib/builtins/abort @@ -41391,7 +39627,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2667 i32.const 1 call $~lib/builtins/abort @@ -41405,7 +39641,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2668 i32.const 1 call $~lib/builtins/abort @@ -41419,7 +39655,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2669 i32.const 1 call $~lib/builtins/abort @@ -41433,7 +39669,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2670 i32.const 1 call $~lib/builtins/abort @@ -41447,7 +39683,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2671 i32.const 1 call $~lib/builtins/abort @@ -41461,7 +39697,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2672 i32.const 1 call $~lib/builtins/abort @@ -41475,7 +39711,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2673 i32.const 1 call $~lib/builtins/abort @@ -41489,7 +39725,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2674 i32.const 1 call $~lib/builtins/abort @@ -41503,7 +39739,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2675 i32.const 1 call $~lib/builtins/abort @@ -41517,7 +39753,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2676 i32.const 1 call $~lib/builtins/abort @@ -41531,7 +39767,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2677 i32.const 1 call $~lib/builtins/abort @@ -41545,7 +39781,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2678 i32.const 1 call $~lib/builtins/abort @@ -41559,7 +39795,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2679 i32.const 1 call $~lib/builtins/abort @@ -41573,7 +39809,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2680 i32.const 1 call $~lib/builtins/abort @@ -41587,7 +39823,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2681 i32.const 1 call $~lib/builtins/abort @@ -41601,7 +39837,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2682 i32.const 1 call $~lib/builtins/abort @@ -41615,7 +39851,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2683 i32.const 1 call $~lib/builtins/abort @@ -41629,7 +39865,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2684 i32.const 1 call $~lib/builtins/abort @@ -41643,7 +39879,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2685 i32.const 1 call $~lib/builtins/abort @@ -41657,7 +39893,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2686 i32.const 1 call $~lib/builtins/abort @@ -41670,7 +39906,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2689 i32.const 1 call $~lib/builtins/abort @@ -41683,7 +39919,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2690 i32.const 1 call $~lib/builtins/abort @@ -41696,7 +39932,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2691 i32.const 1 call $~lib/builtins/abort @@ -41709,7 +39945,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2692 i32.const 1 call $~lib/builtins/abort @@ -41722,7 +39958,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2693 i32.const 1 call $~lib/builtins/abort @@ -41735,7 +39971,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2694 i32.const 1 call $~lib/builtins/abort @@ -41748,7 +39984,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2695 i32.const 1 call $~lib/builtins/abort @@ -41761,7 +39997,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2696 i32.const 1 call $~lib/builtins/abort @@ -41775,7 +40011,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2698 i32.const 1 call $~lib/builtins/abort @@ -41789,7 +40025,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2699 i32.const 1 call $~lib/builtins/abort @@ -41802,7 +40038,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2700 i32.const 1 call $~lib/builtins/abort @@ -41815,7 +40051,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2701 i32.const 1 call $~lib/builtins/abort @@ -41828,7 +40064,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2702 i32.const 1 call $~lib/builtins/abort @@ -41842,7 +40078,7 @@ f64.eq if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2703 i32.const 1 call $~lib/builtins/abort @@ -41855,7 +40091,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2705 i32.const 1 call $~lib/builtins/abort @@ -41868,7 +40104,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2706 i32.const 1 call $~lib/builtins/abort @@ -41881,7 +40117,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2707 i32.const 1 call $~lib/builtins/abort @@ -41894,7 +40130,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2708 i32.const 1 call $~lib/builtins/abort @@ -41907,7 +40143,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2709 i32.const 1 call $~lib/builtins/abort @@ -41921,7 +40157,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2710 i32.const 1 call $~lib/builtins/abort @@ -41935,7 +40171,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2711 i32.const 1 call $~lib/builtins/abort @@ -41949,7 +40185,7 @@ f64.eq if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2712 i32.const 1 call $~lib/builtins/abort @@ -41962,7 +40198,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2714 i32.const 1 call $~lib/builtins/abort @@ -41975,7 +40211,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2715 i32.const 1 call $~lib/builtins/abort @@ -41988,7 +40224,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2716 i32.const 1 call $~lib/builtins/abort @@ -42001,7 +40237,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2717 i32.const 1 call $~lib/builtins/abort @@ -42014,7 +40250,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2718 i32.const 1 call $~lib/builtins/abort @@ -42027,7 +40263,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2719 i32.const 1 call $~lib/builtins/abort @@ -42040,7 +40276,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2720 i32.const 1 call $~lib/builtins/abort @@ -42054,7 +40290,7 @@ f64.eq if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2721 i32.const 1 call $~lib/builtins/abort @@ -42067,7 +40303,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2723 i32.const 1 call $~lib/builtins/abort @@ -42080,7 +40316,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2724 i32.const 1 call $~lib/builtins/abort @@ -42094,7 +40330,7 @@ f64.eq if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2725 i32.const 1 call $~lib/builtins/abort @@ -42107,7 +40343,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2726 i32.const 1 call $~lib/builtins/abort @@ -42120,7 +40356,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2727 i32.const 1 call $~lib/builtins/abort @@ -42133,7 +40369,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2728 i32.const 1 call $~lib/builtins/abort @@ -42146,7 +40382,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2729 i32.const 1 call $~lib/builtins/abort @@ -42160,7 +40396,7 @@ f64.eq if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2730 i32.const 1 call $~lib/builtins/abort @@ -42175,7 +40411,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2739 i32.const 1 call $~lib/builtins/abort @@ -42190,7 +40426,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2740 i32.const 1 call $~lib/builtins/abort @@ -42205,7 +40441,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2741 i32.const 1 call $~lib/builtins/abort @@ -42220,7 +40456,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2742 i32.const 1 call $~lib/builtins/abort @@ -42235,7 +40471,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2743 i32.const 1 call $~lib/builtins/abort @@ -42250,7 +40486,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2744 i32.const 1 call $~lib/builtins/abort @@ -42265,7 +40501,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2745 i32.const 1 call $~lib/builtins/abort @@ -42280,7 +40516,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2746 i32.const 1 call $~lib/builtins/abort @@ -42295,7 +40531,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2747 i32.const 1 call $~lib/builtins/abort @@ -42310,7 +40546,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2748 i32.const 1 call $~lib/builtins/abort @@ -42325,7 +40561,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2751 i32.const 1 call $~lib/builtins/abort @@ -42340,7 +40576,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2752 i32.const 1 call $~lib/builtins/abort @@ -42355,7 +40591,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2753 i32.const 1 call $~lib/builtins/abort @@ -42370,7 +40606,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2754 i32.const 1 call $~lib/builtins/abort @@ -42385,7 +40621,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2755 i32.const 1 call $~lib/builtins/abort @@ -42400,7 +40636,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2756 i32.const 1 call $~lib/builtins/abort @@ -42415,7 +40651,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2757 i32.const 1 call $~lib/builtins/abort @@ -42430,7 +40666,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2758 i32.const 1 call $~lib/builtins/abort @@ -42445,7 +40681,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2759 i32.const 1 call $~lib/builtins/abort @@ -42460,7 +40696,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2760 i32.const 1 call $~lib/builtins/abort @@ -42475,7 +40711,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2761 i32.const 1 call $~lib/builtins/abort @@ -42490,7 +40726,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2762 i32.const 1 call $~lib/builtins/abort @@ -42505,7 +40741,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2763 i32.const 1 call $~lib/builtins/abort @@ -42520,7 +40756,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2764 i32.const 1 call $~lib/builtins/abort @@ -42535,7 +40771,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2765 i32.const 1 call $~lib/builtins/abort @@ -42550,7 +40786,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2766 i32.const 1 call $~lib/builtins/abort @@ -42565,7 +40801,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2767 i32.const 1 call $~lib/builtins/abort @@ -42580,7 +40816,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2768 i32.const 1 call $~lib/builtins/abort @@ -42595,7 +40831,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2769 i32.const 1 call $~lib/builtins/abort @@ -42610,7 +40846,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2770 i32.const 1 call $~lib/builtins/abort @@ -42625,7 +40861,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2771 i32.const 1 call $~lib/builtins/abort @@ -42640,7 +40876,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2772 i32.const 1 call $~lib/builtins/abort @@ -42655,7 +40891,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2773 i32.const 1 call $~lib/builtins/abort @@ -42670,7 +40906,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2774 i32.const 1 call $~lib/builtins/abort @@ -42685,7 +40921,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2775 i32.const 1 call $~lib/builtins/abort @@ -42700,7 +40936,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2776 i32.const 1 call $~lib/builtins/abort @@ -42715,7 +40951,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2777 i32.const 1 call $~lib/builtins/abort @@ -42730,7 +40966,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2778 i32.const 1 call $~lib/builtins/abort @@ -42745,7 +40981,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2779 i32.const 1 call $~lib/builtins/abort @@ -42760,7 +40996,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2780 i32.const 1 call $~lib/builtins/abort @@ -42775,7 +41011,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2781 i32.const 1 call $~lib/builtins/abort @@ -42790,7 +41026,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2782 i32.const 1 call $~lib/builtins/abort @@ -42805,7 +41041,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2783 i32.const 1 call $~lib/builtins/abort @@ -42820,7 +41056,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2784 i32.const 1 call $~lib/builtins/abort @@ -42835,7 +41071,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2785 i32.const 1 call $~lib/builtins/abort @@ -42850,7 +41086,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2786 i32.const 1 call $~lib/builtins/abort @@ -42865,7 +41101,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2787 i32.const 1 call $~lib/builtins/abort @@ -42880,7 +41116,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2788 i32.const 1 call $~lib/builtins/abort @@ -42895,7 +41131,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2789 i32.const 1 call $~lib/builtins/abort @@ -42910,7 +41146,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2790 i32.const 1 call $~lib/builtins/abort @@ -42925,7 +41161,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2791 i32.const 1 call $~lib/builtins/abort @@ -42940,7 +41176,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2792 i32.const 1 call $~lib/builtins/abort @@ -42955,7 +41191,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2793 i32.const 1 call $~lib/builtins/abort @@ -42970,7 +41206,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2794 i32.const 1 call $~lib/builtins/abort @@ -42985,7 +41221,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2795 i32.const 1 call $~lib/builtins/abort @@ -43000,7 +41236,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2796 i32.const 1 call $~lib/builtins/abort @@ -43015,7 +41251,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2797 i32.const 1 call $~lib/builtins/abort @@ -43030,7 +41266,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2798 i32.const 1 call $~lib/builtins/abort @@ -43045,7 +41281,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2799 i32.const 1 call $~lib/builtins/abort @@ -43060,7 +41296,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2800 i32.const 1 call $~lib/builtins/abort @@ -43075,7 +41311,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2801 i32.const 1 call $~lib/builtins/abort @@ -43090,7 +41326,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2802 i32.const 1 call $~lib/builtins/abort @@ -43105,7 +41341,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2803 i32.const 1 call $~lib/builtins/abort @@ -43120,7 +41356,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2804 i32.const 1 call $~lib/builtins/abort @@ -43135,7 +41371,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2805 i32.const 1 call $~lib/builtins/abort @@ -43150,7 +41386,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2806 i32.const 1 call $~lib/builtins/abort @@ -43165,7 +41401,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2807 i32.const 1 call $~lib/builtins/abort @@ -43180,7 +41416,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2808 i32.const 1 call $~lib/builtins/abort @@ -43195,7 +41431,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2809 i32.const 1 call $~lib/builtins/abort @@ -43210,7 +41446,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2810 i32.const 1 call $~lib/builtins/abort @@ -43225,7 +41461,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2811 i32.const 1 call $~lib/builtins/abort @@ -43240,7 +41476,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2812 i32.const 1 call $~lib/builtins/abort @@ -43255,7 +41491,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2813 i32.const 1 call $~lib/builtins/abort @@ -43270,7 +41506,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2814 i32.const 1 call $~lib/builtins/abort @@ -43285,7 +41521,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2815 i32.const 1 call $~lib/builtins/abort @@ -43300,7 +41536,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2816 i32.const 1 call $~lib/builtins/abort @@ -43315,7 +41551,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2817 i32.const 1 call $~lib/builtins/abort @@ -43330,7 +41566,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2818 i32.const 1 call $~lib/builtins/abort @@ -43345,7 +41581,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2819 i32.const 1 call $~lib/builtins/abort @@ -43360,7 +41596,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2820 i32.const 1 call $~lib/builtins/abort @@ -43375,7 +41611,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2821 i32.const 1 call $~lib/builtins/abort @@ -43390,7 +41626,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2822 i32.const 1 call $~lib/builtins/abort @@ -43405,7 +41641,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2823 i32.const 1 call $~lib/builtins/abort @@ -43420,7 +41656,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2824 i32.const 1 call $~lib/builtins/abort @@ -43435,7 +41671,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2825 i32.const 1 call $~lib/builtins/abort @@ -43450,7 +41686,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2826 i32.const 1 call $~lib/builtins/abort @@ -43465,7 +41701,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2827 i32.const 1 call $~lib/builtins/abort @@ -43480,7 +41716,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2828 i32.const 1 call $~lib/builtins/abort @@ -43495,7 +41731,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2829 i32.const 1 call $~lib/builtins/abort @@ -43510,7 +41746,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2830 i32.const 1 call $~lib/builtins/abort @@ -43525,7 +41761,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2831 i32.const 1 call $~lib/builtins/abort @@ -43540,7 +41776,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2832 i32.const 1 call $~lib/builtins/abort @@ -43555,7 +41791,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2833 i32.const 1 call $~lib/builtins/abort @@ -43570,7 +41806,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2834 i32.const 1 call $~lib/builtins/abort @@ -43585,7 +41821,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2835 i32.const 1 call $~lib/builtins/abort @@ -43600,7 +41836,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2836 i32.const 1 call $~lib/builtins/abort @@ -43615,7 +41851,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2837 i32.const 1 call $~lib/builtins/abort @@ -43630,7 +41866,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2838 i32.const 1 call $~lib/builtins/abort @@ -43645,7 +41881,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2839 i32.const 1 call $~lib/builtins/abort @@ -43660,7 +41896,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2840 i32.const 1 call $~lib/builtins/abort @@ -43675,7 +41911,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2841 i32.const 1 call $~lib/builtins/abort @@ -43690,7 +41926,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2842 i32.const 1 call $~lib/builtins/abort @@ -43705,7 +41941,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2845 i32.const 1 call $~lib/builtins/abort @@ -43720,7 +41956,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2846 i32.const 1 call $~lib/builtins/abort @@ -43735,7 +41971,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2847 i32.const 1 call $~lib/builtins/abort @@ -43750,7 +41986,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2848 i32.const 1 call $~lib/builtins/abort @@ -43765,7 +42001,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2849 i32.const 1 call $~lib/builtins/abort @@ -43780,7 +42016,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2850 i32.const 1 call $~lib/builtins/abort @@ -43795,7 +42031,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2852 i32.const 1 call $~lib/builtins/abort @@ -43810,7 +42046,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2853 i32.const 1 call $~lib/builtins/abort @@ -43825,7 +42061,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2854 i32.const 1 call $~lib/builtins/abort @@ -43840,7 +42076,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2855 i32.const 1 call $~lib/builtins/abort @@ -43855,7 +42091,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2856 i32.const 1 call $~lib/builtins/abort @@ -43870,7 +42106,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2857 i32.const 1 call $~lib/builtins/abort @@ -43885,7 +42121,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2859 i32.const 1 call $~lib/builtins/abort @@ -43900,7 +42136,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2861 i32.const 1 call $~lib/builtins/abort @@ -43915,7 +42151,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2862 i32.const 1 call $~lib/builtins/abort @@ -43930,7 +42166,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2863 i32.const 1 call $~lib/builtins/abort @@ -43945,7 +42181,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2864 i32.const 1 call $~lib/builtins/abort @@ -43960,7 +42196,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2866 i32.const 1 call $~lib/builtins/abort @@ -43975,7 +42211,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2867 i32.const 1 call $~lib/builtins/abort @@ -43990,7 +42226,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2868 i32.const 1 call $~lib/builtins/abort @@ -44005,7 +42241,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2869 i32.const 1 call $~lib/builtins/abort @@ -44020,7 +42256,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2870 i32.const 1 call $~lib/builtins/abort @@ -44035,7 +42271,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2871 i32.const 1 call $~lib/builtins/abort @@ -44050,7 +42286,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2872 i32.const 1 call $~lib/builtins/abort @@ -44065,7 +42301,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2873 i32.const 1 call $~lib/builtins/abort @@ -44080,7 +42316,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2874 i32.const 1 call $~lib/builtins/abort @@ -44095,7 +42331,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2875 i32.const 1 call $~lib/builtins/abort @@ -44110,7 +42346,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2877 i32.const 1 call $~lib/builtins/abort @@ -44125,7 +42361,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2878 i32.const 1 call $~lib/builtins/abort @@ -44140,7 +42376,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2879 i32.const 1 call $~lib/builtins/abort @@ -44155,7 +42391,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2880 i32.const 1 call $~lib/builtins/abort @@ -44170,7 +42406,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2881 i32.const 1 call $~lib/builtins/abort @@ -44185,7 +42421,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2882 i32.const 1 call $~lib/builtins/abort @@ -44200,7 +42436,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2884 i32.const 1 call $~lib/builtins/abort @@ -44215,7 +42451,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2885 i32.const 1 call $~lib/builtins/abort @@ -44230,7 +42466,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2886 i32.const 1 call $~lib/builtins/abort @@ -44245,7 +42481,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2887 i32.const 1 call $~lib/builtins/abort @@ -44260,7 +42496,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2889 i32.const 1 call $~lib/builtins/abort @@ -44275,7 +42511,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2890 i32.const 1 call $~lib/builtins/abort @@ -44290,7 +42526,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2891 i32.const 1 call $~lib/builtins/abort @@ -44305,7 +42541,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2892 i32.const 1 call $~lib/builtins/abort @@ -44320,7 +42556,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2893 i32.const 1 call $~lib/builtins/abort @@ -44335,7 +42571,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2894 i32.const 1 call $~lib/builtins/abort @@ -44350,7 +42586,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2895 i32.const 1 call $~lib/builtins/abort @@ -44365,7 +42601,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2897 i32.const 1 call $~lib/builtins/abort @@ -44380,7 +42616,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2898 i32.const 1 call $~lib/builtins/abort @@ -44395,7 +42631,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2899 i32.const 1 call $~lib/builtins/abort @@ -44410,7 +42646,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2900 i32.const 1 call $~lib/builtins/abort @@ -44425,7 +42661,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2902 i32.const 1 call $~lib/builtins/abort @@ -44440,7 +42676,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2903 i32.const 1 call $~lib/builtins/abort @@ -44455,7 +42691,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2904 i32.const 1 call $~lib/builtins/abort @@ -44470,7 +42706,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2905 i32.const 1 call $~lib/builtins/abort @@ -44485,7 +42721,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2907 i32.const 1 call $~lib/builtins/abort @@ -44500,7 +42736,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2908 i32.const 1 call $~lib/builtins/abort @@ -44515,7 +42751,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2909 i32.const 1 call $~lib/builtins/abort @@ -44530,7 +42766,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2910 i32.const 1 call $~lib/builtins/abort @@ -44545,7 +42781,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2911 i32.const 1 call $~lib/builtins/abort @@ -44560,7 +42796,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2912 i32.const 1 call $~lib/builtins/abort @@ -44575,7 +42811,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2914 i32.const 1 call $~lib/builtins/abort @@ -44590,7 +42826,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2915 i32.const 1 call $~lib/builtins/abort @@ -44605,7 +42841,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2917 i32.const 1 call $~lib/builtins/abort @@ -44620,7 +42856,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2918 i32.const 1 call $~lib/builtins/abort @@ -44635,7 +42871,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2919 i32.const 1 call $~lib/builtins/abort @@ -44650,7 +42886,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2920 i32.const 1 call $~lib/builtins/abort @@ -44665,7 +42901,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2921 i32.const 1 call $~lib/builtins/abort @@ -44680,7 +42916,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2922 i32.const 1 call $~lib/builtins/abort @@ -44695,7 +42931,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2923 i32.const 1 call $~lib/builtins/abort @@ -44710,7 +42946,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2925 i32.const 1 call $~lib/builtins/abort @@ -44725,7 +42961,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2926 i32.const 1 call $~lib/builtins/abort @@ -44740,7 +42976,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2928 i32.const 1 call $~lib/builtins/abort @@ -44755,7 +42991,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2929 i32.const 1 call $~lib/builtins/abort @@ -44770,7 +43006,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2930 i32.const 1 call $~lib/builtins/abort @@ -44785,7 +43021,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2931 i32.const 1 call $~lib/builtins/abort @@ -44800,7 +43036,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2932 i32.const 1 call $~lib/builtins/abort @@ -44815,7 +43051,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2933 i32.const 1 call $~lib/builtins/abort @@ -44830,7 +43066,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2934 i32.const 1 call $~lib/builtins/abort @@ -44845,7 +43081,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2935 i32.const 1 call $~lib/builtins/abort @@ -44860,7 +43096,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2937 i32.const 1 call $~lib/builtins/abort @@ -44875,7 +43111,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2938 i32.const 1 call $~lib/builtins/abort @@ -44890,7 +43126,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2939 i32.const 1 call $~lib/builtins/abort @@ -44905,7 +43141,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2941 i32.const 1 call $~lib/builtins/abort @@ -44920,7 +43156,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2942 i32.const 1 call $~lib/builtins/abort @@ -44935,7 +43171,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2944 i32.const 1 call $~lib/builtins/abort @@ -44950,7 +43186,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2945 i32.const 1 call $~lib/builtins/abort @@ -44965,7 +43201,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2946 i32.const 1 call $~lib/builtins/abort @@ -44980,7 +43216,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2947 i32.const 1 call $~lib/builtins/abort @@ -44995,7 +43231,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2948 i32.const 1 call $~lib/builtins/abort @@ -45010,7 +43246,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2949 i32.const 1 call $~lib/builtins/abort @@ -45025,7 +43261,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2950 i32.const 1 call $~lib/builtins/abort @@ -45040,7 +43276,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2951 i32.const 1 call $~lib/builtins/abort @@ -45055,7 +43291,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2952 i32.const 1 call $~lib/builtins/abort @@ -45070,7 +43306,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2953 i32.const 1 call $~lib/builtins/abort @@ -45085,7 +43321,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2954 i32.const 1 call $~lib/builtins/abort @@ -45100,7 +43336,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2955 i32.const 1 call $~lib/builtins/abort @@ -45115,7 +43351,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2956 i32.const 1 call $~lib/builtins/abort @@ -45130,7 +43366,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2957 i32.const 1 call $~lib/builtins/abort @@ -45145,7 +43381,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2958 i32.const 1 call $~lib/builtins/abort @@ -45160,7 +43396,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2959 i32.const 1 call $~lib/builtins/abort @@ -45175,7 +43411,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2960 i32.const 1 call $~lib/builtins/abort @@ -45190,7 +43426,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2961 i32.const 1 call $~lib/builtins/abort @@ -45205,7 +43441,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2962 i32.const 1 call $~lib/builtins/abort @@ -45220,7 +43456,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2963 i32.const 1 call $~lib/builtins/abort @@ -45235,7 +43471,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2965 i32.const 1 call $~lib/builtins/abort @@ -45250,7 +43486,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2966 i32.const 1 call $~lib/builtins/abort @@ -45265,7 +43501,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2967 i32.const 1 call $~lib/builtins/abort @@ -45280,7 +43516,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2968 i32.const 1 call $~lib/builtins/abort @@ -45295,7 +43531,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2969 i32.const 1 call $~lib/builtins/abort @@ -45310,7 +43546,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2970 i32.const 1 call $~lib/builtins/abort @@ -45325,7 +43561,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2971 i32.const 1 call $~lib/builtins/abort @@ -45340,7 +43576,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2973 i32.const 1 call $~lib/builtins/abort @@ -45355,7 +43591,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2974 i32.const 1 call $~lib/builtins/abort @@ -45370,7 +43606,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2976 i32.const 1 call $~lib/builtins/abort @@ -45385,7 +43621,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2977 i32.const 1 call $~lib/builtins/abort @@ -45400,7 +43636,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2978 i32.const 1 call $~lib/builtins/abort @@ -45415,7 +43651,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2979 i32.const 1 call $~lib/builtins/abort @@ -45430,7 +43666,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2980 i32.const 1 call $~lib/builtins/abort @@ -45445,7 +43681,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2981 i32.const 1 call $~lib/builtins/abort @@ -45460,7 +43696,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2982 i32.const 1 call $~lib/builtins/abort @@ -45475,7 +43711,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2983 i32.const 1 call $~lib/builtins/abort @@ -45490,7 +43726,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2984 i32.const 1 call $~lib/builtins/abort @@ -45505,7 +43741,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2985 i32.const 1 call $~lib/builtins/abort @@ -45520,7 +43756,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2986 i32.const 1 call $~lib/builtins/abort @@ -45535,7 +43771,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2988 i32.const 1 call $~lib/builtins/abort @@ -45550,7 +43786,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2989 i32.const 1 call $~lib/builtins/abort @@ -45565,7 +43801,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2990 i32.const 1 call $~lib/builtins/abort @@ -45580,7 +43816,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 2991 i32.const 1 call $~lib/builtins/abort @@ -45642,7 +43878,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3000 i32.const 3 call $~lib/builtins/abort @@ -45713,7 +43949,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3008 i32.const 3 call $~lib/builtins/abort @@ -45732,7 +43968,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3022 i32.const 1 call $~lib/builtins/abort @@ -45744,7 +43980,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3023 i32.const 1 call $~lib/builtins/abort @@ -45756,7 +43992,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3024 i32.const 1 call $~lib/builtins/abort @@ -45768,7 +44004,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3025 i32.const 1 call $~lib/builtins/abort @@ -45780,7 +44016,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3026 i32.const 1 call $~lib/builtins/abort @@ -45792,7 +44028,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3027 i32.const 1 call $~lib/builtins/abort @@ -45804,7 +44040,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3028 i32.const 1 call $~lib/builtins/abort @@ -45816,7 +44052,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3029 i32.const 1 call $~lib/builtins/abort @@ -45828,7 +44064,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3030 i32.const 1 call $~lib/builtins/abort @@ -45840,7 +44076,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3031 i32.const 1 call $~lib/builtins/abort @@ -45852,7 +44088,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3034 i32.const 1 call $~lib/builtins/abort @@ -45864,7 +44100,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3035 i32.const 1 call $~lib/builtins/abort @@ -45876,7 +44112,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3036 i32.const 1 call $~lib/builtins/abort @@ -45888,7 +44124,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3037 i32.const 1 call $~lib/builtins/abort @@ -45900,7 +44136,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3038 i32.const 1 call $~lib/builtins/abort @@ -45912,7 +44148,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3039 i32.const 1 call $~lib/builtins/abort @@ -45924,7 +44160,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3040 i32.const 1 call $~lib/builtins/abort @@ -45936,7 +44172,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3041 i32.const 1 call $~lib/builtins/abort @@ -45948,7 +44184,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3042 i32.const 1 call $~lib/builtins/abort @@ -45960,7 +44196,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3043 i32.const 1 call $~lib/builtins/abort @@ -45972,7 +44208,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3044 i32.const 1 call $~lib/builtins/abort @@ -45984,7 +44220,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3045 i32.const 1 call $~lib/builtins/abort @@ -45996,7 +44232,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3046 i32.const 1 call $~lib/builtins/abort @@ -46008,7 +44244,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3047 i32.const 1 call $~lib/builtins/abort @@ -46020,7 +44256,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3048 i32.const 1 call $~lib/builtins/abort @@ -46032,7 +44268,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3049 i32.const 1 call $~lib/builtins/abort @@ -46044,7 +44280,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3050 i32.const 1 call $~lib/builtins/abort @@ -46056,7 +44292,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3065 i32.const 1 call $~lib/builtins/abort @@ -46068,7 +44304,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3066 i32.const 1 call $~lib/builtins/abort @@ -46080,7 +44316,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3067 i32.const 1 call $~lib/builtins/abort @@ -46092,7 +44328,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3068 i32.const 1 call $~lib/builtins/abort @@ -46104,7 +44340,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3069 i32.const 1 call $~lib/builtins/abort @@ -46116,7 +44352,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3070 i32.const 1 call $~lib/builtins/abort @@ -46128,7 +44364,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3071 i32.const 1 call $~lib/builtins/abort @@ -46140,7 +44376,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3072 i32.const 1 call $~lib/builtins/abort @@ -46152,7 +44388,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3073 i32.const 1 call $~lib/builtins/abort @@ -46164,7 +44400,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3074 i32.const 1 call $~lib/builtins/abort @@ -46176,7 +44412,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3077 i32.const 1 call $~lib/builtins/abort @@ -46188,7 +44424,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3078 i32.const 1 call $~lib/builtins/abort @@ -46200,7 +44436,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3079 i32.const 1 call $~lib/builtins/abort @@ -46212,7 +44448,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3080 i32.const 1 call $~lib/builtins/abort @@ -46224,7 +44460,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3081 i32.const 1 call $~lib/builtins/abort @@ -46236,7 +44472,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3082 i32.const 1 call $~lib/builtins/abort @@ -46248,7 +44484,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3083 i32.const 1 call $~lib/builtins/abort @@ -46260,7 +44496,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3084 i32.const 1 call $~lib/builtins/abort @@ -46272,7 +44508,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3085 i32.const 1 call $~lib/builtins/abort @@ -46284,7 +44520,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3086 i32.const 1 call $~lib/builtins/abort @@ -46296,7 +44532,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3087 i32.const 1 call $~lib/builtins/abort @@ -46308,7 +44544,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3088 i32.const 1 call $~lib/builtins/abort @@ -46320,7 +44556,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3089 i32.const 1 call $~lib/builtins/abort @@ -46332,7 +44568,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3090 i32.const 1 call $~lib/builtins/abort @@ -46344,7 +44580,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3091 i32.const 1 call $~lib/builtins/abort @@ -46356,7 +44592,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3092 i32.const 1 call $~lib/builtins/abort @@ -46368,7 +44604,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3093 i32.const 1 call $~lib/builtins/abort @@ -46380,7 +44616,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3104 i32.const 1 call $~lib/builtins/abort @@ -46392,7 +44628,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3105 i32.const 1 call $~lib/builtins/abort @@ -46404,7 +44640,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3106 i32.const 1 call $~lib/builtins/abort @@ -46416,7 +44652,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3107 i32.const 1 call $~lib/builtins/abort @@ -46428,7 +44664,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3108 i32.const 1 call $~lib/builtins/abort @@ -46440,7 +44676,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3109 i32.const 1 call $~lib/builtins/abort @@ -46452,7 +44688,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3110 i32.const 1 call $~lib/builtins/abort @@ -46464,7 +44700,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3111 i32.const 1 call $~lib/builtins/abort @@ -46476,7 +44712,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3112 i32.const 1 call $~lib/builtins/abort @@ -46488,7 +44724,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3120 i32.const 1 call $~lib/builtins/abort @@ -46500,7 +44736,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3121 i32.const 1 call $~lib/builtins/abort @@ -46512,7 +44748,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3122 i32.const 1 call $~lib/builtins/abort @@ -46524,7 +44760,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3123 i32.const 1 call $~lib/builtins/abort @@ -46536,7 +44772,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3124 i32.const 1 call $~lib/builtins/abort @@ -46548,7 +44784,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3125 i32.const 1 call $~lib/builtins/abort @@ -46560,7 +44796,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3126 i32.const 1 call $~lib/builtins/abort @@ -46572,7 +44808,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3127 i32.const 1 call $~lib/builtins/abort @@ -46584,7 +44820,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3128 i32.const 1 call $~lib/builtins/abort @@ -46599,7 +44835,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3165 i32.const 1 call $~lib/builtins/abort @@ -46614,7 +44850,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3166 i32.const 1 call $~lib/builtins/abort @@ -46629,7 +44865,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3167 i32.const 1 call $~lib/builtins/abort @@ -46644,7 +44880,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3168 i32.const 1 call $~lib/builtins/abort @@ -46659,7 +44895,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3169 i32.const 1 call $~lib/builtins/abort @@ -46674,7 +44910,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3170 i32.const 1 call $~lib/builtins/abort @@ -46689,7 +44925,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3171 i32.const 1 call $~lib/builtins/abort @@ -46704,7 +44940,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3172 i32.const 1 call $~lib/builtins/abort @@ -46719,7 +44955,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3173 i32.const 1 call $~lib/builtins/abort @@ -46734,7 +44970,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3174 i32.const 1 call $~lib/builtins/abort @@ -46749,7 +44985,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3177 i32.const 1 call $~lib/builtins/abort @@ -46764,7 +45000,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3178 i32.const 1 call $~lib/builtins/abort @@ -46779,7 +45015,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3179 i32.const 1 call $~lib/builtins/abort @@ -46794,7 +45030,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3180 i32.const 1 call $~lib/builtins/abort @@ -46809,7 +45045,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3181 i32.const 1 call $~lib/builtins/abort @@ -46824,7 +45060,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3182 i32.const 1 call $~lib/builtins/abort @@ -46839,7 +45075,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3183 i32.const 1 call $~lib/builtins/abort @@ -46854,7 +45090,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3184 i32.const 1 call $~lib/builtins/abort @@ -46869,7 +45105,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3185 i32.const 1 call $~lib/builtins/abort @@ -46884,7 +45120,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3186 i32.const 1 call $~lib/builtins/abort @@ -46899,7 +45135,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3187 i32.const 1 call $~lib/builtins/abort @@ -46914,7 +45150,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3188 i32.const 1 call $~lib/builtins/abort @@ -46929,7 +45165,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3189 i32.const 1 call $~lib/builtins/abort @@ -46944,7 +45180,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3190 i32.const 1 call $~lib/builtins/abort @@ -46959,7 +45195,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3191 i32.const 1 call $~lib/builtins/abort @@ -46974,7 +45210,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3192 i32.const 1 call $~lib/builtins/abort @@ -46989,7 +45225,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3193 i32.const 1 call $~lib/builtins/abort @@ -47004,7 +45240,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3194 i32.const 1 call $~lib/builtins/abort @@ -47019,7 +45255,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3195 i32.const 1 call $~lib/builtins/abort @@ -47034,7 +45270,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3196 i32.const 1 call $~lib/builtins/abort @@ -47049,7 +45285,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3197 i32.const 1 call $~lib/builtins/abort @@ -47064,7 +45300,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3198 i32.const 1 call $~lib/builtins/abort @@ -47079,7 +45315,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3199 i32.const 1 call $~lib/builtins/abort @@ -47094,7 +45330,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3200 i32.const 1 call $~lib/builtins/abort @@ -47109,7 +45345,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3201 i32.const 1 call $~lib/builtins/abort @@ -47124,7 +45360,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3202 i32.const 1 call $~lib/builtins/abort @@ -47139,7 +45375,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3203 i32.const 1 call $~lib/builtins/abort @@ -47154,7 +45390,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3204 i32.const 1 call $~lib/builtins/abort @@ -47169,7 +45405,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3205 i32.const 1 call $~lib/builtins/abort @@ -47184,7 +45420,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3206 i32.const 1 call $~lib/builtins/abort @@ -47199,7 +45435,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3207 i32.const 1 call $~lib/builtins/abort @@ -47214,7 +45450,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3208 i32.const 1 call $~lib/builtins/abort @@ -47229,7 +45465,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3209 i32.const 1 call $~lib/builtins/abort @@ -47244,7 +45480,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3210 i32.const 1 call $~lib/builtins/abort @@ -47259,7 +45495,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3211 i32.const 1 call $~lib/builtins/abort @@ -47274,7 +45510,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3212 i32.const 1 call $~lib/builtins/abort @@ -47289,7 +45525,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3213 i32.const 1 call $~lib/builtins/abort @@ -47304,7 +45540,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3214 i32.const 1 call $~lib/builtins/abort @@ -47319,7 +45555,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3215 i32.const 1 call $~lib/builtins/abort @@ -47334,7 +45570,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3216 i32.const 1 call $~lib/builtins/abort @@ -47349,7 +45585,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3217 i32.const 1 call $~lib/builtins/abort @@ -47364,7 +45600,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3218 i32.const 1 call $~lib/builtins/abort @@ -47379,7 +45615,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3219 i32.const 1 call $~lib/builtins/abort @@ -47394,7 +45630,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3220 i32.const 1 call $~lib/builtins/abort @@ -47409,7 +45645,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3221 i32.const 1 call $~lib/builtins/abort @@ -47424,7 +45660,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3222 i32.const 1 call $~lib/builtins/abort @@ -47439,7 +45675,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3223 i32.const 1 call $~lib/builtins/abort @@ -47454,7 +45690,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3224 i32.const 1 call $~lib/builtins/abort @@ -47469,7 +45705,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3225 i32.const 1 call $~lib/builtins/abort @@ -47484,7 +45720,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3226 i32.const 1 call $~lib/builtins/abort @@ -47499,7 +45735,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3227 i32.const 1 call $~lib/builtins/abort @@ -47514,7 +45750,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3228 i32.const 1 call $~lib/builtins/abort @@ -47529,7 +45765,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3229 i32.const 1 call $~lib/builtins/abort @@ -47544,7 +45780,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3230 i32.const 1 call $~lib/builtins/abort @@ -47559,7 +45795,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3231 i32.const 1 call $~lib/builtins/abort @@ -47574,7 +45810,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3232 i32.const 1 call $~lib/builtins/abort @@ -47589,7 +45825,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3233 i32.const 1 call $~lib/builtins/abort @@ -47604,7 +45840,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3234 i32.const 1 call $~lib/builtins/abort @@ -47619,7 +45855,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3235 i32.const 1 call $~lib/builtins/abort @@ -47634,7 +45870,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3236 i32.const 1 call $~lib/builtins/abort @@ -47649,7 +45885,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3237 i32.const 1 call $~lib/builtins/abort @@ -47664,7 +45900,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3238 i32.const 1 call $~lib/builtins/abort @@ -47679,7 +45915,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3239 i32.const 1 call $~lib/builtins/abort @@ -47694,7 +45930,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3240 i32.const 1 call $~lib/builtins/abort @@ -47709,7 +45945,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3241 i32.const 1 call $~lib/builtins/abort @@ -47724,7 +45960,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3242 i32.const 1 call $~lib/builtins/abort @@ -47739,7 +45975,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3243 i32.const 1 call $~lib/builtins/abort @@ -47754,7 +45990,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3252 i32.const 1 call $~lib/builtins/abort @@ -47769,7 +46005,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3253 i32.const 1 call $~lib/builtins/abort @@ -47784,7 +46020,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3254 i32.const 1 call $~lib/builtins/abort @@ -47799,7 +46035,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3255 i32.const 1 call $~lib/builtins/abort @@ -47814,7 +46050,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3256 i32.const 1 call $~lib/builtins/abort @@ -47829,7 +46065,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3257 i32.const 1 call $~lib/builtins/abort @@ -47844,7 +46080,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3258 i32.const 1 call $~lib/builtins/abort @@ -47859,7 +46095,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3259 i32.const 1 call $~lib/builtins/abort @@ -47874,7 +46110,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3260 i32.const 1 call $~lib/builtins/abort @@ -47889,7 +46125,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3261 i32.const 1 call $~lib/builtins/abort @@ -47904,7 +46140,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3264 i32.const 1 call $~lib/builtins/abort @@ -47919,7 +46155,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3265 i32.const 1 call $~lib/builtins/abort @@ -47934,7 +46170,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3266 i32.const 1 call $~lib/builtins/abort @@ -47949,7 +46185,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3267 i32.const 1 call $~lib/builtins/abort @@ -47964,7 +46200,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3268 i32.const 1 call $~lib/builtins/abort @@ -47979,7 +46215,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3269 i32.const 1 call $~lib/builtins/abort @@ -47994,7 +46230,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3270 i32.const 1 call $~lib/builtins/abort @@ -48009,7 +46245,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3271 i32.const 1 call $~lib/builtins/abort @@ -48024,7 +46260,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3272 i32.const 1 call $~lib/builtins/abort @@ -48039,7 +46275,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3273 i32.const 1 call $~lib/builtins/abort @@ -48054,7 +46290,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3274 i32.const 1 call $~lib/builtins/abort @@ -48069,7 +46305,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3275 i32.const 1 call $~lib/builtins/abort @@ -48084,7 +46320,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3276 i32.const 1 call $~lib/builtins/abort @@ -48099,7 +46335,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3277 i32.const 1 call $~lib/builtins/abort @@ -48114,7 +46350,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3278 i32.const 1 call $~lib/builtins/abort @@ -48129,7 +46365,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3279 i32.const 1 call $~lib/builtins/abort @@ -48144,7 +46380,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3280 i32.const 1 call $~lib/builtins/abort @@ -48159,7 +46395,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3281 i32.const 1 call $~lib/builtins/abort @@ -48174,7 +46410,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3282 i32.const 1 call $~lib/builtins/abort @@ -48189,7 +46425,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3283 i32.const 1 call $~lib/builtins/abort @@ -48204,7 +46440,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3284 i32.const 1 call $~lib/builtins/abort @@ -48219,7 +46455,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3285 i32.const 1 call $~lib/builtins/abort @@ -48234,7 +46470,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3286 i32.const 1 call $~lib/builtins/abort @@ -48249,7 +46485,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3287 i32.const 1 call $~lib/builtins/abort @@ -48264,7 +46500,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3288 i32.const 1 call $~lib/builtins/abort @@ -48279,7 +46515,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3289 i32.const 1 call $~lib/builtins/abort @@ -48294,7 +46530,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3290 i32.const 1 call $~lib/builtins/abort @@ -48309,7 +46545,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3291 i32.const 1 call $~lib/builtins/abort @@ -48324,7 +46560,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3292 i32.const 1 call $~lib/builtins/abort @@ -48339,7 +46575,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3293 i32.const 1 call $~lib/builtins/abort @@ -48354,7 +46590,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3294 i32.const 1 call $~lib/builtins/abort @@ -48369,7 +46605,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3295 i32.const 1 call $~lib/builtins/abort @@ -48384,7 +46620,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3296 i32.const 1 call $~lib/builtins/abort @@ -48399,7 +46635,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3297 i32.const 1 call $~lib/builtins/abort @@ -48414,7 +46650,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3298 i32.const 1 call $~lib/builtins/abort @@ -48429,7 +46665,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3299 i32.const 1 call $~lib/builtins/abort @@ -48444,7 +46680,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3300 i32.const 1 call $~lib/builtins/abort @@ -48459,7 +46695,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3301 i32.const 1 call $~lib/builtins/abort @@ -48474,7 +46710,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3302 i32.const 1 call $~lib/builtins/abort @@ -48489,7 +46725,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3303 i32.const 1 call $~lib/builtins/abort @@ -48504,7 +46740,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3304 i32.const 1 call $~lib/builtins/abort @@ -48519,7 +46755,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3305 i32.const 1 call $~lib/builtins/abort @@ -48534,7 +46770,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3306 i32.const 1 call $~lib/builtins/abort @@ -48549,7 +46785,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3307 i32.const 1 call $~lib/builtins/abort @@ -48564,7 +46800,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3308 i32.const 1 call $~lib/builtins/abort @@ -48579,7 +46815,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3309 i32.const 1 call $~lib/builtins/abort @@ -48594,7 +46830,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3310 i32.const 1 call $~lib/builtins/abort @@ -48609,7 +46845,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3311 i32.const 1 call $~lib/builtins/abort @@ -48624,7 +46860,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3312 i32.const 1 call $~lib/builtins/abort @@ -48639,7 +46875,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3313 i32.const 1 call $~lib/builtins/abort @@ -48654,7 +46890,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3314 i32.const 1 call $~lib/builtins/abort @@ -48669,7 +46905,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3315 i32.const 1 call $~lib/builtins/abort @@ -48684,7 +46920,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3316 i32.const 1 call $~lib/builtins/abort @@ -48699,7 +46935,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3317 i32.const 1 call $~lib/builtins/abort @@ -48714,7 +46950,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3318 i32.const 1 call $~lib/builtins/abort @@ -48729,7 +46965,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3319 i32.const 1 call $~lib/builtins/abort @@ -48744,7 +46980,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3320 i32.const 1 call $~lib/builtins/abort @@ -48759,7 +46995,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3321 i32.const 1 call $~lib/builtins/abort @@ -48774,7 +47010,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3322 i32.const 1 call $~lib/builtins/abort @@ -48789,7 +47025,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3323 i32.const 1 call $~lib/builtins/abort @@ -48804,7 +47040,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3324 i32.const 1 call $~lib/builtins/abort @@ -48819,7 +47055,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3325 i32.const 1 call $~lib/builtins/abort @@ -48834,7 +47070,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3326 i32.const 1 call $~lib/builtins/abort @@ -48849,7 +47085,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3327 i32.const 1 call $~lib/builtins/abort @@ -48864,7 +47100,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3328 i32.const 1 call $~lib/builtins/abort @@ -48879,7 +47115,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3329 i32.const 1 call $~lib/builtins/abort @@ -48894,7 +47130,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3330 i32.const 1 call $~lib/builtins/abort @@ -48917,7 +47153,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3342 i32.const 1 call $~lib/builtins/abort @@ -48940,7 +47176,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3343 i32.const 1 call $~lib/builtins/abort @@ -48963,7 +47199,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3344 i32.const 1 call $~lib/builtins/abort @@ -48986,7 +47222,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3345 i32.const 1 call $~lib/builtins/abort @@ -49009,7 +47245,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3346 i32.const 1 call $~lib/builtins/abort @@ -49032,7 +47268,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3347 i32.const 1 call $~lib/builtins/abort @@ -49055,7 +47291,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3348 i32.const 1 call $~lib/builtins/abort @@ -49078,7 +47314,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3349 i32.const 1 call $~lib/builtins/abort @@ -49101,7 +47337,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3350 i32.const 1 call $~lib/builtins/abort @@ -49124,7 +47360,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3351 i32.const 1 call $~lib/builtins/abort @@ -49147,7 +47383,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3354 i32.const 1 call $~lib/builtins/abort @@ -49170,7 +47406,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3355 i32.const 1 call $~lib/builtins/abort @@ -49193,7 +47429,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3356 i32.const 1 call $~lib/builtins/abort @@ -49216,7 +47452,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3357 i32.const 1 call $~lib/builtins/abort @@ -49239,7 +47475,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3358 i32.const 1 call $~lib/builtins/abort @@ -49262,7 +47498,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3359 i32.const 1 call $~lib/builtins/abort @@ -49285,7 +47521,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3360 i32.const 1 call $~lib/builtins/abort @@ -49308,7 +47544,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3361 i32.const 1 call $~lib/builtins/abort @@ -49331,7 +47567,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3362 i32.const 1 call $~lib/builtins/abort @@ -49354,7 +47590,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3363 i32.const 1 call $~lib/builtins/abort @@ -49377,7 +47613,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3364 i32.const 1 call $~lib/builtins/abort @@ -49400,7 +47636,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3365 i32.const 1 call $~lib/builtins/abort @@ -49423,7 +47659,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3366 i32.const 1 call $~lib/builtins/abort @@ -49446,7 +47682,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3367 i32.const 1 call $~lib/builtins/abort @@ -49469,7 +47705,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3368 i32.const 1 call $~lib/builtins/abort @@ -49492,7 +47728,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3369 i32.const 1 call $~lib/builtins/abort @@ -49515,7 +47751,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3370 i32.const 1 call $~lib/builtins/abort @@ -49538,7 +47774,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3371 i32.const 1 call $~lib/builtins/abort @@ -49561,7 +47797,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3372 i32.const 1 call $~lib/builtins/abort @@ -49584,7 +47820,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3373 i32.const 1 call $~lib/builtins/abort @@ -49607,7 +47843,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3374 i32.const 1 call $~lib/builtins/abort @@ -49630,7 +47866,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3375 i32.const 1 call $~lib/builtins/abort @@ -49653,7 +47889,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3376 i32.const 1 call $~lib/builtins/abort @@ -49676,7 +47912,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3377 i32.const 1 call $~lib/builtins/abort @@ -49699,7 +47935,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3378 i32.const 1 call $~lib/builtins/abort @@ -49722,7 +47958,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3379 i32.const 1 call $~lib/builtins/abort @@ -49745,7 +47981,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3380 i32.const 1 call $~lib/builtins/abort @@ -49768,7 +48004,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3381 i32.const 1 call $~lib/builtins/abort @@ -49791,7 +48027,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3382 i32.const 1 call $~lib/builtins/abort @@ -49814,7 +48050,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3383 i32.const 1 call $~lib/builtins/abort @@ -49837,7 +48073,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3384 i32.const 1 call $~lib/builtins/abort @@ -49860,7 +48096,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3385 i32.const 1 call $~lib/builtins/abort @@ -49883,7 +48119,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3386 i32.const 1 call $~lib/builtins/abort @@ -49906,7 +48142,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3387 i32.const 1 call $~lib/builtins/abort @@ -49929,7 +48165,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3388 i32.const 1 call $~lib/builtins/abort @@ -49952,7 +48188,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3389 i32.const 1 call $~lib/builtins/abort @@ -49975,7 +48211,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3390 i32.const 1 call $~lib/builtins/abort @@ -49998,7 +48234,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3393 i32.const 1 call $~lib/builtins/abort @@ -50021,7 +48257,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3394 i32.const 1 call $~lib/builtins/abort @@ -50044,7 +48280,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3395 i32.const 1 call $~lib/builtins/abort @@ -50067,7 +48303,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3396 i32.const 1 call $~lib/builtins/abort @@ -50090,7 +48326,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3397 i32.const 1 call $~lib/builtins/abort @@ -50103,7 +48339,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3400 i32.const 1 call $~lib/builtins/abort @@ -50116,7 +48352,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3401 i32.const 1 call $~lib/builtins/abort @@ -50128,7 +48364,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3404 i32.const 1 call $~lib/builtins/abort @@ -50140,7 +48376,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3405 i32.const 1 call $~lib/builtins/abort @@ -50152,7 +48388,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3407 i32.const 1 call $~lib/builtins/abort @@ -50164,7 +48400,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3408 i32.const 1 call $~lib/builtins/abort @@ -50176,7 +48412,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3411 i32.const 1 call $~lib/builtins/abort @@ -50188,7 +48424,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3412 i32.const 1 call $~lib/builtins/abort @@ -50200,7 +48436,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3413 i32.const 1 call $~lib/builtins/abort @@ -50212,7 +48448,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3414 i32.const 1 call $~lib/builtins/abort @@ -50224,7 +48460,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3416 i32.const 1 call $~lib/builtins/abort @@ -50236,7 +48472,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3417 i32.const 1 call $~lib/builtins/abort @@ -50248,7 +48484,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3419 i32.const 1 call $~lib/builtins/abort @@ -50260,7 +48496,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3420 i32.const 1 call $~lib/builtins/abort @@ -50272,7 +48508,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3421 i32.const 1 call $~lib/builtins/abort @@ -50284,7 +48520,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3422 i32.const 1 call $~lib/builtins/abort @@ -50296,7 +48532,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3423 i32.const 1 call $~lib/builtins/abort @@ -50308,7 +48544,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3426 i32.const 1 call $~lib/builtins/abort @@ -50320,7 +48556,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3427 i32.const 1 call $~lib/builtins/abort @@ -50334,7 +48570,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3436 i32.const 1 call $~lib/builtins/abort @@ -50348,7 +48584,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3437 i32.const 1 call $~lib/builtins/abort @@ -50362,7 +48598,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3438 i32.const 1 call $~lib/builtins/abort @@ -50376,7 +48612,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3439 i32.const 1 call $~lib/builtins/abort @@ -50390,7 +48626,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3440 i32.const 1 call $~lib/builtins/abort @@ -50404,7 +48640,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3441 i32.const 1 call $~lib/builtins/abort @@ -50418,7 +48654,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3442 i32.const 1 call $~lib/builtins/abort @@ -50432,7 +48668,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3443 i32.const 1 call $~lib/builtins/abort @@ -50446,7 +48682,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3444 i32.const 1 call $~lib/builtins/abort @@ -50460,7 +48696,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3445 i32.const 1 call $~lib/builtins/abort @@ -50474,7 +48710,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3448 i32.const 1 call $~lib/builtins/abort @@ -50488,7 +48724,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3449 i32.const 1 call $~lib/builtins/abort @@ -50502,7 +48738,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3450 i32.const 1 call $~lib/builtins/abort @@ -50516,7 +48752,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3451 i32.const 1 call $~lib/builtins/abort @@ -50530,7 +48766,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3452 i32.const 1 call $~lib/builtins/abort @@ -50544,7 +48780,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3455 i32.const 1 call $~lib/builtins/abort @@ -50558,7 +48794,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3456 i32.const 1 call $~lib/builtins/abort @@ -50572,7 +48808,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3457 i32.const 1 call $~lib/builtins/abort @@ -50586,7 +48822,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3458 i32.const 1 call $~lib/builtins/abort @@ -50600,7 +48836,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3459 i32.const 1 call $~lib/builtins/abort @@ -50614,7 +48850,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3460 i32.const 1 call $~lib/builtins/abort @@ -50628,7 +48864,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3461 i32.const 1 call $~lib/builtins/abort @@ -50642,7 +48878,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3462 i32.const 1 call $~lib/builtins/abort @@ -50656,7 +48892,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3463 i32.const 1 call $~lib/builtins/abort @@ -50670,7 +48906,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3464 i32.const 1 call $~lib/builtins/abort @@ -50684,7 +48920,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3465 i32.const 1 call $~lib/builtins/abort @@ -50698,7 +48934,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3466 i32.const 1 call $~lib/builtins/abort @@ -50712,7 +48948,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3467 i32.const 1 call $~lib/builtins/abort @@ -50726,7 +48962,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3468 i32.const 1 call $~lib/builtins/abort @@ -50740,7 +48976,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3469 i32.const 1 call $~lib/builtins/abort @@ -50754,7 +48990,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3470 i32.const 1 call $~lib/builtins/abort @@ -50768,7 +49004,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3471 i32.const 1 call $~lib/builtins/abort @@ -50782,7 +49018,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3472 i32.const 1 call $~lib/builtins/abort @@ -50796,7 +49032,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3473 i32.const 1 call $~lib/builtins/abort @@ -50810,7 +49046,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3474 i32.const 1 call $~lib/builtins/abort @@ -50824,7 +49060,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3475 i32.const 1 call $~lib/builtins/abort @@ -50838,7 +49074,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3476 i32.const 1 call $~lib/builtins/abort @@ -50852,7 +49088,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3477 i32.const 1 call $~lib/builtins/abort @@ -50866,7 +49102,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3478 i32.const 1 call $~lib/builtins/abort @@ -50880,7 +49116,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3479 i32.const 1 call $~lib/builtins/abort @@ -50894,7 +49130,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3480 i32.const 1 call $~lib/builtins/abort @@ -50908,7 +49144,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3481 i32.const 1 call $~lib/builtins/abort @@ -50922,7 +49158,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3482 i32.const 1 call $~lib/builtins/abort @@ -50936,7 +49172,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3483 i32.const 1 call $~lib/builtins/abort @@ -50950,7 +49186,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3484 i32.const 1 call $~lib/builtins/abort @@ -50964,7 +49200,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3485 i32.const 1 call $~lib/builtins/abort @@ -50978,7 +49214,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3486 i32.const 1 call $~lib/builtins/abort @@ -50992,7 +49228,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3487 i32.const 1 call $~lib/builtins/abort @@ -51006,7 +49242,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3488 i32.const 1 call $~lib/builtins/abort @@ -51020,7 +49256,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3489 i32.const 1 call $~lib/builtins/abort @@ -51034,7 +49270,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3490 i32.const 1 call $~lib/builtins/abort @@ -51048,7 +49284,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3491 i32.const 1 call $~lib/builtins/abort @@ -51062,7 +49298,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3492 i32.const 1 call $~lib/builtins/abort @@ -51076,7 +49312,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3495 i32.const 1 call $~lib/builtins/abort @@ -51090,7 +49326,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3496 i32.const 1 call $~lib/builtins/abort @@ -51104,7 +49340,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3497 i32.const 1 call $~lib/builtins/abort @@ -51118,7 +49354,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3498 i32.const 1 call $~lib/builtins/abort @@ -51132,7 +49368,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3499 i32.const 1 call $~lib/builtins/abort @@ -51146,7 +49382,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3500 i32.const 1 call $~lib/builtins/abort @@ -51160,7 +49396,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3501 i32.const 1 call $~lib/builtins/abort @@ -51174,7 +49410,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3502 i32.const 1 call $~lib/builtins/abort @@ -51188,7 +49424,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3503 i32.const 1 call $~lib/builtins/abort @@ -51202,7 +49438,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3504 i32.const 1 call $~lib/builtins/abort @@ -51216,7 +49452,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3505 i32.const 1 call $~lib/builtins/abort @@ -51230,7 +49466,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3506 i32.const 1 call $~lib/builtins/abort @@ -51244,7 +49480,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3507 i32.const 1 call $~lib/builtins/abort @@ -51258,7 +49494,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3508 i32.const 1 call $~lib/builtins/abort @@ -51271,7 +49507,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3520 i32.const 1 call $~lib/builtins/abort @@ -51284,7 +49520,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3521 i32.const 1 call $~lib/builtins/abort @@ -51297,7 +49533,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3522 i32.const 1 call $~lib/builtins/abort @@ -51310,7 +49546,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3523 i32.const 1 call $~lib/builtins/abort @@ -51323,7 +49559,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3524 i32.const 1 call $~lib/builtins/abort @@ -51336,7 +49572,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3525 i32.const 1 call $~lib/builtins/abort @@ -51349,7 +49585,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3526 i32.const 1 call $~lib/builtins/abort @@ -51362,7 +49598,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3527 i32.const 1 call $~lib/builtins/abort @@ -51375,7 +49611,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3528 i32.const 1 call $~lib/builtins/abort @@ -51388,7 +49624,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3529 i32.const 1 call $~lib/builtins/abort @@ -51401,7 +49637,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3532 i32.const 1 call $~lib/builtins/abort @@ -51414,7 +49650,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3533 i32.const 1 call $~lib/builtins/abort @@ -51427,7 +49663,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3534 i32.const 1 call $~lib/builtins/abort @@ -51440,7 +49676,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3535 i32.const 1 call $~lib/builtins/abort @@ -51453,7 +49689,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3536 i32.const 1 call $~lib/builtins/abort @@ -51466,7 +49702,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3545 i32.const 1 call $~lib/builtins/abort @@ -51479,7 +49715,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3546 i32.const 1 call $~lib/builtins/abort @@ -51492,7 +49728,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3547 i32.const 1 call $~lib/builtins/abort @@ -51505,7 +49741,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3548 i32.const 1 call $~lib/builtins/abort @@ -51518,7 +49754,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3549 i32.const 1 call $~lib/builtins/abort @@ -51531,7 +49767,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3550 i32.const 1 call $~lib/builtins/abort @@ -51544,7 +49780,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3551 i32.const 1 call $~lib/builtins/abort @@ -51557,7 +49793,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3552 i32.const 1 call $~lib/builtins/abort @@ -51570,7 +49806,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3553 i32.const 1 call $~lib/builtins/abort @@ -51583,7 +49819,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3554 i32.const 1 call $~lib/builtins/abort @@ -51596,7 +49832,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3557 i32.const 1 call $~lib/builtins/abort @@ -51609,7 +49845,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3558 i32.const 1 call $~lib/builtins/abort @@ -51622,7 +49858,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3559 i32.const 1 call $~lib/builtins/abort @@ -51635,7 +49871,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3560 i32.const 1 call $~lib/builtins/abort @@ -51648,7 +49884,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3561 i32.const 1 call $~lib/builtins/abort @@ -51670,7 +49906,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3573 i32.const 1 call $~lib/builtins/abort @@ -51692,7 +49928,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3574 i32.const 1 call $~lib/builtins/abort @@ -51714,7 +49950,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3575 i32.const 1 call $~lib/builtins/abort @@ -51736,7 +49972,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3576 i32.const 1 call $~lib/builtins/abort @@ -51758,7 +49994,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3577 i32.const 1 call $~lib/builtins/abort @@ -51780,7 +50016,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3578 i32.const 1 call $~lib/builtins/abort @@ -51802,7 +50038,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3579 i32.const 1 call $~lib/builtins/abort @@ -51824,7 +50060,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3580 i32.const 1 call $~lib/builtins/abort @@ -51846,7 +50082,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3581 i32.const 1 call $~lib/builtins/abort @@ -51868,7 +50104,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3582 i32.const 1 call $~lib/builtins/abort @@ -51890,7 +50126,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3585 i32.const 1 call $~lib/builtins/abort @@ -51912,7 +50148,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3586 i32.const 1 call $~lib/builtins/abort @@ -51934,7 +50170,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3587 i32.const 1 call $~lib/builtins/abort @@ -51956,7 +50192,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3588 i32.const 1 call $~lib/builtins/abort @@ -51978,7 +50214,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3589 i32.const 1 call $~lib/builtins/abort @@ -52000,7 +50236,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3590 i32.const 1 call $~lib/builtins/abort @@ -52022,7 +50258,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3591 i32.const 1 call $~lib/builtins/abort @@ -52044,7 +50280,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3592 i32.const 1 call $~lib/builtins/abort @@ -52066,7 +50302,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3593 i32.const 1 call $~lib/builtins/abort @@ -52088,7 +50324,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3594 i32.const 1 call $~lib/builtins/abort @@ -52110,7 +50346,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3595 i32.const 1 call $~lib/builtins/abort @@ -52132,7 +50368,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3596 i32.const 1 call $~lib/builtins/abort @@ -52154,7 +50390,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3597 i32.const 1 call $~lib/builtins/abort @@ -52176,7 +50412,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3598 i32.const 1 call $~lib/builtins/abort @@ -52198,7 +50434,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3599 i32.const 1 call $~lib/builtins/abort @@ -52220,7 +50456,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3600 i32.const 1 call $~lib/builtins/abort @@ -52242,7 +50478,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3601 i32.const 1 call $~lib/builtins/abort @@ -52264,7 +50500,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3602 i32.const 1 call $~lib/builtins/abort @@ -52286,7 +50522,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3603 i32.const 1 call $~lib/builtins/abort @@ -52308,7 +50544,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3604 i32.const 1 call $~lib/builtins/abort @@ -52330,7 +50566,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3605 i32.const 1 call $~lib/builtins/abort @@ -52352,7 +50588,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3606 i32.const 1 call $~lib/builtins/abort @@ -52374,7 +50610,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3607 i32.const 1 call $~lib/builtins/abort @@ -52396,7 +50632,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3608 i32.const 1 call $~lib/builtins/abort @@ -52418,7 +50654,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3609 i32.const 1 call $~lib/builtins/abort @@ -52440,7 +50676,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3610 i32.const 1 call $~lib/builtins/abort @@ -52462,7 +50698,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3611 i32.const 1 call $~lib/builtins/abort @@ -52484,7 +50720,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3612 i32.const 1 call $~lib/builtins/abort @@ -52506,7 +50742,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3613 i32.const 1 call $~lib/builtins/abort @@ -52528,7 +50764,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3614 i32.const 1 call $~lib/builtins/abort @@ -52550,7 +50786,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3615 i32.const 1 call $~lib/builtins/abort @@ -52572,7 +50808,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3616 i32.const 1 call $~lib/builtins/abort @@ -52594,7 +50830,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3617 i32.const 1 call $~lib/builtins/abort @@ -52616,7 +50852,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3618 i32.const 1 call $~lib/builtins/abort @@ -52638,7 +50874,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3619 i32.const 1 call $~lib/builtins/abort @@ -52660,7 +50896,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3620 i32.const 1 call $~lib/builtins/abort @@ -52682,7 +50918,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3621 i32.const 1 call $~lib/builtins/abort @@ -52704,7 +50940,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3622 i32.const 1 call $~lib/builtins/abort @@ -52726,7 +50962,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3623 i32.const 1 call $~lib/builtins/abort @@ -52748,7 +50984,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3624 i32.const 1 call $~lib/builtins/abort @@ -52770,7 +51006,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3625 i32.const 1 call $~lib/builtins/abort @@ -52792,7 +51028,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3626 i32.const 1 call $~lib/builtins/abort @@ -52814,7 +51050,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3627 i32.const 1 call $~lib/builtins/abort @@ -52836,7 +51072,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3628 i32.const 1 call $~lib/builtins/abort @@ -52858,7 +51094,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3629 i32.const 1 call $~lib/builtins/abort @@ -52880,7 +51116,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3630 i32.const 1 call $~lib/builtins/abort @@ -52902,7 +51138,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3631 i32.const 1 call $~lib/builtins/abort @@ -52924,7 +51160,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3632 i32.const 1 call $~lib/builtins/abort @@ -52946,7 +51182,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3633 i32.const 1 call $~lib/builtins/abort @@ -52968,7 +51204,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3634 i32.const 1 call $~lib/builtins/abort @@ -52990,7 +51226,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3635 i32.const 1 call $~lib/builtins/abort @@ -53012,7 +51248,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3636 i32.const 1 call $~lib/builtins/abort @@ -53034,7 +51270,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3637 i32.const 1 call $~lib/builtins/abort @@ -53056,7 +51292,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3638 i32.const 1 call $~lib/builtins/abort @@ -53078,7 +51314,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3639 i32.const 1 call $~lib/builtins/abort @@ -53100,7 +51336,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3640 i32.const 1 call $~lib/builtins/abort @@ -53122,7 +51358,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3641 i32.const 1 call $~lib/builtins/abort @@ -53144,7 +51380,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3642 i32.const 1 call $~lib/builtins/abort @@ -53166,7 +51402,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3643 i32.const 1 call $~lib/builtins/abort @@ -53188,7 +51424,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3644 i32.const 1 call $~lib/builtins/abort @@ -53210,7 +51446,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3645 i32.const 1 call $~lib/builtins/abort @@ -53232,7 +51468,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3646 i32.const 1 call $~lib/builtins/abort @@ -53254,7 +51490,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3647 i32.const 1 call $~lib/builtins/abort @@ -53276,7 +51512,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3648 i32.const 1 call $~lib/builtins/abort @@ -53298,7 +51534,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3649 i32.const 1 call $~lib/builtins/abort @@ -53320,7 +51556,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3650 i32.const 1 call $~lib/builtins/abort @@ -53342,7 +51578,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3651 i32.const 1 call $~lib/builtins/abort @@ -53364,7 +51600,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3652 i32.const 1 call $~lib/builtins/abort @@ -53386,7 +51622,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3653 i32.const 1 call $~lib/builtins/abort @@ -53408,7 +51644,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3654 i32.const 1 call $~lib/builtins/abort @@ -53430,7 +51666,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3655 i32.const 1 call $~lib/builtins/abort @@ -53452,7 +51688,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3656 i32.const 1 call $~lib/builtins/abort @@ -53474,7 +51710,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3657 i32.const 1 call $~lib/builtins/abort @@ -53496,7 +51732,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3658 i32.const 1 call $~lib/builtins/abort @@ -53509,7 +51745,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3667 i32.const 1 call $~lib/builtins/abort @@ -53522,7 +51758,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3668 i32.const 1 call $~lib/builtins/abort @@ -53535,7 +51771,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3669 i32.const 1 call $~lib/builtins/abort @@ -53548,7 +51784,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3670 i32.const 1 call $~lib/builtins/abort @@ -53561,7 +51797,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3671 i32.const 1 call $~lib/builtins/abort @@ -53574,7 +51810,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3672 i32.const 1 call $~lib/builtins/abort @@ -53587,7 +51823,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3673 i32.const 1 call $~lib/builtins/abort @@ -53600,7 +51836,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3674 i32.const 1 call $~lib/builtins/abort @@ -53613,7 +51849,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3675 i32.const 1 call $~lib/builtins/abort @@ -53626,7 +51862,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3676 i32.const 1 call $~lib/builtins/abort @@ -53639,7 +51875,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3679 i32.const 1 call $~lib/builtins/abort @@ -53652,7 +51888,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3680 i32.const 1 call $~lib/builtins/abort @@ -53665,7 +51901,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3681 i32.const 1 call $~lib/builtins/abort @@ -53678,7 +51914,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3682 i32.const 1 call $~lib/builtins/abort @@ -53691,7 +51927,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3683 i32.const 1 call $~lib/builtins/abort @@ -53704,7 +51940,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3684 i32.const 1 call $~lib/builtins/abort @@ -53717,7 +51953,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3685 i32.const 1 call $~lib/builtins/abort @@ -53730,7 +51966,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3686 i32.const 1 call $~lib/builtins/abort @@ -53743,7 +51979,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3687 i32.const 1 call $~lib/builtins/abort @@ -53756,7 +51992,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3688 i32.const 1 call $~lib/builtins/abort @@ -53769,7 +52005,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3689 i32.const 1 call $~lib/builtins/abort @@ -53782,7 +52018,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3690 i32.const 1 call $~lib/builtins/abort @@ -53795,7 +52031,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3691 i32.const 1 call $~lib/builtins/abort @@ -53808,7 +52044,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3692 i32.const 1 call $~lib/builtins/abort @@ -53821,7 +52057,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3693 i32.const 1 call $~lib/builtins/abort @@ -53834,7 +52070,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3694 i32.const 1 call $~lib/builtins/abort @@ -53847,7 +52083,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3695 i32.const 1 call $~lib/builtins/abort @@ -53860,7 +52096,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3696 i32.const 1 call $~lib/builtins/abort @@ -53873,7 +52109,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3697 i32.const 1 call $~lib/builtins/abort @@ -53886,7 +52122,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3698 i32.const 1 call $~lib/builtins/abort @@ -53899,7 +52135,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3699 i32.const 1 call $~lib/builtins/abort @@ -53912,7 +52148,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3700 i32.const 1 call $~lib/builtins/abort @@ -53935,7 +52171,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3712 i32.const 1 call $~lib/builtins/abort @@ -53958,7 +52194,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3713 i32.const 1 call $~lib/builtins/abort @@ -53981,7 +52217,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3714 i32.const 1 call $~lib/builtins/abort @@ -54004,7 +52240,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3715 i32.const 1 call $~lib/builtins/abort @@ -54027,7 +52263,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3716 i32.const 1 call $~lib/builtins/abort @@ -54050,7 +52286,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3717 i32.const 1 call $~lib/builtins/abort @@ -54073,7 +52309,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3718 i32.const 1 call $~lib/builtins/abort @@ -54096,7 +52332,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3719 i32.const 1 call $~lib/builtins/abort @@ -54119,7 +52355,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3720 i32.const 1 call $~lib/builtins/abort @@ -54142,7 +52378,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3721 i32.const 1 call $~lib/builtins/abort @@ -54165,7 +52401,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3724 i32.const 1 call $~lib/builtins/abort @@ -54188,7 +52424,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3725 i32.const 1 call $~lib/builtins/abort @@ -54211,7 +52447,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3726 i32.const 1 call $~lib/builtins/abort @@ -54234,7 +52470,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3727 i32.const 1 call $~lib/builtins/abort @@ -54257,7 +52493,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3728 i32.const 1 call $~lib/builtins/abort @@ -54280,7 +52516,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3729 i32.const 1 call $~lib/builtins/abort @@ -54303,7 +52539,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3730 i32.const 1 call $~lib/builtins/abort @@ -54326,7 +52562,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3731 i32.const 1 call $~lib/builtins/abort @@ -54349,7 +52585,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3732 i32.const 1 call $~lib/builtins/abort @@ -54372,7 +52608,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3733 i32.const 1 call $~lib/builtins/abort @@ -54395,7 +52631,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3734 i32.const 1 call $~lib/builtins/abort @@ -54418,7 +52654,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3735 i32.const 1 call $~lib/builtins/abort @@ -54441,7 +52677,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3736 i32.const 1 call $~lib/builtins/abort @@ -54464,7 +52700,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3737 i32.const 1 call $~lib/builtins/abort @@ -54487,7 +52723,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3738 i32.const 1 call $~lib/builtins/abort @@ -54510,7 +52746,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3739 i32.const 1 call $~lib/builtins/abort @@ -54533,7 +52769,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3740 i32.const 1 call $~lib/builtins/abort @@ -54556,7 +52792,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3741 i32.const 1 call $~lib/builtins/abort @@ -54579,7 +52815,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3742 i32.const 1 call $~lib/builtins/abort @@ -54602,7 +52838,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3743 i32.const 1 call $~lib/builtins/abort @@ -54625,7 +52861,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3744 i32.const 1 call $~lib/builtins/abort @@ -54648,7 +52884,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3745 i32.const 1 call $~lib/builtins/abort @@ -54671,7 +52907,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3746 i32.const 1 call $~lib/builtins/abort @@ -54694,7 +52930,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3747 i32.const 1 call $~lib/builtins/abort @@ -54717,7 +52953,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3748 i32.const 1 call $~lib/builtins/abort @@ -54740,7 +52976,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3749 i32.const 1 call $~lib/builtins/abort @@ -54763,7 +52999,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3750 i32.const 1 call $~lib/builtins/abort @@ -54786,7 +53022,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3751 i32.const 1 call $~lib/builtins/abort @@ -54809,7 +53045,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3752 i32.const 1 call $~lib/builtins/abort @@ -54832,7 +53068,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3753 i32.const 1 call $~lib/builtins/abort @@ -54855,7 +53091,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3754 i32.const 1 call $~lib/builtins/abort @@ -54878,7 +53114,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3755 i32.const 1 call $~lib/builtins/abort @@ -54901,7 +53137,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3756 i32.const 1 call $~lib/builtins/abort @@ -54924,7 +53160,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3757 i32.const 1 call $~lib/builtins/abort @@ -54947,7 +53183,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3758 i32.const 1 call $~lib/builtins/abort @@ -54970,7 +53206,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3759 i32.const 1 call $~lib/builtins/abort @@ -54993,7 +53229,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3760 i32.const 1 call $~lib/builtins/abort @@ -55016,7 +53252,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3761 i32.const 1 call $~lib/builtins/abort @@ -55029,7 +53265,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3764 i32.const 1 call $~lib/builtins/abort @@ -55042,7 +53278,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3765 i32.const 1 call $~lib/builtins/abort @@ -55055,7 +53291,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3766 i32.const 1 call $~lib/builtins/abort @@ -55068,7 +53304,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3767 i32.const 1 call $~lib/builtins/abort @@ -55081,7 +53317,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3768 i32.const 1 call $~lib/builtins/abort @@ -55094,7 +53330,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3769 i32.const 1 call $~lib/builtins/abort @@ -55107,7 +53343,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3770 i32.const 1 call $~lib/builtins/abort @@ -55120,7 +53356,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3771 i32.const 1 call $~lib/builtins/abort @@ -55133,7 +53369,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3773 i32.const 1 call $~lib/builtins/abort @@ -55146,7 +53382,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3774 i32.const 1 call $~lib/builtins/abort @@ -55159,7 +53395,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3775 i32.const 1 call $~lib/builtins/abort @@ -55172,7 +53408,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3776 i32.const 1 call $~lib/builtins/abort @@ -55185,7 +53421,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3777 i32.const 1 call $~lib/builtins/abort @@ -55198,7 +53434,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3778 i32.const 1 call $~lib/builtins/abort @@ -55211,7 +53447,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3779 i32.const 1 call $~lib/builtins/abort @@ -55224,7 +53460,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3780 i32.const 1 call $~lib/builtins/abort @@ -55247,7 +53483,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3783 i32.const 1 call $~lib/builtins/abort @@ -55270,7 +53506,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3784 i32.const 1 call $~lib/builtins/abort @@ -55293,7 +53529,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3785 i32.const 1 call $~lib/builtins/abort @@ -55316,7 +53552,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3786 i32.const 1 call $~lib/builtins/abort @@ -55339,7 +53575,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3787 i32.const 1 call $~lib/builtins/abort @@ -55353,7 +53589,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3796 i32.const 1 call $~lib/builtins/abort @@ -55367,7 +53603,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3797 i32.const 1 call $~lib/builtins/abort @@ -55381,7 +53617,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3798 i32.const 1 call $~lib/builtins/abort @@ -55395,7 +53631,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3799 i32.const 1 call $~lib/builtins/abort @@ -55409,7 +53645,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3800 i32.const 1 call $~lib/builtins/abort @@ -55423,7 +53659,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3801 i32.const 1 call $~lib/builtins/abort @@ -55437,7 +53673,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3802 i32.const 1 call $~lib/builtins/abort @@ -55451,7 +53687,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3803 i32.const 1 call $~lib/builtins/abort @@ -55465,7 +53701,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3804 i32.const 1 call $~lib/builtins/abort @@ -55479,7 +53715,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3805 i32.const 1 call $~lib/builtins/abort @@ -55493,7 +53729,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3808 i32.const 1 call $~lib/builtins/abort @@ -55507,7 +53743,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3809 i32.const 1 call $~lib/builtins/abort @@ -55521,7 +53757,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3810 i32.const 1 call $~lib/builtins/abort @@ -55535,7 +53771,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3811 i32.const 1 call $~lib/builtins/abort @@ -55549,7 +53785,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3812 i32.const 1 call $~lib/builtins/abort @@ -55563,7 +53799,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3815 i32.const 1 call $~lib/builtins/abort @@ -55577,7 +53813,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3816 i32.const 1 call $~lib/builtins/abort @@ -55591,7 +53827,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3817 i32.const 1 call $~lib/builtins/abort @@ -55605,7 +53841,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3818 i32.const 1 call $~lib/builtins/abort @@ -55619,7 +53855,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3819 i32.const 1 call $~lib/builtins/abort @@ -55633,7 +53869,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3820 i32.const 1 call $~lib/builtins/abort @@ -55647,7 +53883,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3821 i32.const 1 call $~lib/builtins/abort @@ -55661,7 +53897,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3822 i32.const 1 call $~lib/builtins/abort @@ -55675,7 +53911,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3823 i32.const 1 call $~lib/builtins/abort @@ -55689,7 +53925,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3824 i32.const 1 call $~lib/builtins/abort @@ -55703,7 +53939,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3825 i32.const 1 call $~lib/builtins/abort @@ -55717,7 +53953,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3826 i32.const 1 call $~lib/builtins/abort @@ -55731,7 +53967,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3827 i32.const 1 call $~lib/builtins/abort @@ -55745,7 +53981,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3828 i32.const 1 call $~lib/builtins/abort @@ -55759,7 +53995,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3829 i32.const 1 call $~lib/builtins/abort @@ -55773,7 +54009,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3830 i32.const 1 call $~lib/builtins/abort @@ -55787,7 +54023,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3831 i32.const 1 call $~lib/builtins/abort @@ -55801,7 +54037,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3832 i32.const 1 call $~lib/builtins/abort @@ -55815,7 +54051,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3833 i32.const 1 call $~lib/builtins/abort @@ -55829,7 +54065,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3834 i32.const 1 call $~lib/builtins/abort @@ -55843,7 +54079,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3835 i32.const 1 call $~lib/builtins/abort @@ -55857,7 +54093,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3836 i32.const 1 call $~lib/builtins/abort @@ -55871,7 +54107,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3837 i32.const 1 call $~lib/builtins/abort @@ -55885,7 +54121,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3838 i32.const 1 call $~lib/builtins/abort @@ -55899,7 +54135,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3839 i32.const 1 call $~lib/builtins/abort @@ -55913,7 +54149,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3840 i32.const 1 call $~lib/builtins/abort @@ -55927,7 +54163,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3841 i32.const 1 call $~lib/builtins/abort @@ -55941,7 +54177,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3842 i32.const 1 call $~lib/builtins/abort @@ -55955,7 +54191,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3843 i32.const 1 call $~lib/builtins/abort @@ -55969,7 +54205,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3844 i32.const 1 call $~lib/builtins/abort @@ -55983,7 +54219,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3845 i32.const 1 call $~lib/builtins/abort @@ -55997,7 +54233,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3846 i32.const 1 call $~lib/builtins/abort @@ -56011,7 +54247,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3847 i32.const 1 call $~lib/builtins/abort @@ -56025,7 +54261,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3848 i32.const 1 call $~lib/builtins/abort @@ -56039,7 +54275,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3849 i32.const 1 call $~lib/builtins/abort @@ -56053,7 +54289,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3850 i32.const 1 call $~lib/builtins/abort @@ -56066,7 +54302,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3862 i32.const 1 call $~lib/builtins/abort @@ -56079,7 +54315,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3863 i32.const 1 call $~lib/builtins/abort @@ -56092,7 +54328,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3864 i32.const 1 call $~lib/builtins/abort @@ -56105,7 +54341,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3865 i32.const 1 call $~lib/builtins/abort @@ -56118,7 +54354,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3866 i32.const 1 call $~lib/builtins/abort @@ -56131,7 +54367,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3867 i32.const 1 call $~lib/builtins/abort @@ -56144,7 +54380,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3868 i32.const 1 call $~lib/builtins/abort @@ -56157,7 +54393,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3869 i32.const 1 call $~lib/builtins/abort @@ -56170,7 +54406,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3870 i32.const 1 call $~lib/builtins/abort @@ -56183,7 +54419,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3871 i32.const 1 call $~lib/builtins/abort @@ -56196,7 +54432,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3874 i32.const 1 call $~lib/builtins/abort @@ -56209,7 +54445,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3875 i32.const 1 call $~lib/builtins/abort @@ -56222,7 +54458,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3876 i32.const 1 call $~lib/builtins/abort @@ -56235,7 +54471,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3877 i32.const 1 call $~lib/builtins/abort @@ -56248,7 +54484,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3878 i32.const 1 call $~lib/builtins/abort @@ -56261,7 +54497,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3887 i32.const 1 call $~lib/builtins/abort @@ -56274,7 +54510,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3888 i32.const 1 call $~lib/builtins/abort @@ -56287,7 +54523,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3889 i32.const 1 call $~lib/builtins/abort @@ -56300,7 +54536,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3890 i32.const 1 call $~lib/builtins/abort @@ -56313,7 +54549,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3891 i32.const 1 call $~lib/builtins/abort @@ -56326,7 +54562,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3892 i32.const 1 call $~lib/builtins/abort @@ -56339,7 +54575,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3893 i32.const 1 call $~lib/builtins/abort @@ -56352,7 +54588,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3894 i32.const 1 call $~lib/builtins/abort @@ -56365,7 +54601,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3895 i32.const 1 call $~lib/builtins/abort @@ -56378,7 +54614,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3896 i32.const 1 call $~lib/builtins/abort @@ -56391,7 +54627,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3899 i32.const 1 call $~lib/builtins/abort @@ -56404,7 +54640,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3900 i32.const 1 call $~lib/builtins/abort @@ -56417,7 +54653,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3901 i32.const 1 call $~lib/builtins/abort @@ -56430,7 +54666,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3902 i32.const 1 call $~lib/builtins/abort @@ -56443,7 +54679,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3903 i32.const 1 call $~lib/builtins/abort @@ -56465,7 +54701,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3915 i32.const 1 call $~lib/builtins/abort @@ -56487,7 +54723,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3916 i32.const 1 call $~lib/builtins/abort @@ -56509,7 +54745,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3917 i32.const 1 call $~lib/builtins/abort @@ -56531,7 +54767,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3918 i32.const 1 call $~lib/builtins/abort @@ -56553,7 +54789,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3919 i32.const 1 call $~lib/builtins/abort @@ -56575,7 +54811,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3920 i32.const 1 call $~lib/builtins/abort @@ -56597,7 +54833,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3921 i32.const 1 call $~lib/builtins/abort @@ -56619,7 +54855,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3922 i32.const 1 call $~lib/builtins/abort @@ -56641,7 +54877,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3923 i32.const 1 call $~lib/builtins/abort @@ -56663,7 +54899,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3924 i32.const 1 call $~lib/builtins/abort @@ -56685,7 +54921,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3927 i32.const 1 call $~lib/builtins/abort @@ -56707,7 +54943,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3928 i32.const 1 call $~lib/builtins/abort @@ -56729,7 +54965,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3929 i32.const 1 call $~lib/builtins/abort @@ -56751,7 +54987,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3930 i32.const 1 call $~lib/builtins/abort @@ -56773,7 +55009,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3931 i32.const 1 call $~lib/builtins/abort @@ -56795,7 +55031,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3932 i32.const 1 call $~lib/builtins/abort @@ -56817,7 +55053,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3933 i32.const 1 call $~lib/builtins/abort @@ -56839,7 +55075,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3934 i32.const 1 call $~lib/builtins/abort @@ -56861,7 +55097,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3935 i32.const 1 call $~lib/builtins/abort @@ -56883,7 +55119,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3936 i32.const 1 call $~lib/builtins/abort @@ -56905,7 +55141,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3937 i32.const 1 call $~lib/builtins/abort @@ -56927,7 +55163,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3938 i32.const 1 call $~lib/builtins/abort @@ -56949,7 +55185,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3939 i32.const 1 call $~lib/builtins/abort @@ -56971,7 +55207,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3940 i32.const 1 call $~lib/builtins/abort @@ -56993,7 +55229,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3941 i32.const 1 call $~lib/builtins/abort @@ -57006,7 +55242,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3950 i32.const 1 call $~lib/builtins/abort @@ -57019,7 +55255,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3951 i32.const 1 call $~lib/builtins/abort @@ -57032,7 +55268,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3952 i32.const 1 call $~lib/builtins/abort @@ -57045,7 +55281,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3953 i32.const 1 call $~lib/builtins/abort @@ -57058,7 +55294,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3954 i32.const 1 call $~lib/builtins/abort @@ -57071,7 +55307,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3955 i32.const 1 call $~lib/builtins/abort @@ -57084,7 +55320,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3956 i32.const 1 call $~lib/builtins/abort @@ -57097,7 +55333,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3957 i32.const 1 call $~lib/builtins/abort @@ -57110,7 +55346,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3958 i32.const 1 call $~lib/builtins/abort @@ -57123,7 +55359,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3959 i32.const 1 call $~lib/builtins/abort @@ -57136,7 +55372,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3962 i32.const 1 call $~lib/builtins/abort @@ -57149,7 +55385,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3963 i32.const 1 call $~lib/builtins/abort @@ -57162,7 +55398,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3964 i32.const 1 call $~lib/builtins/abort @@ -57175,7 +55411,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3965 i32.const 1 call $~lib/builtins/abort @@ -57188,7 +55424,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3966 i32.const 1 call $~lib/builtins/abort @@ -57201,7 +55437,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3967 i32.const 1 call $~lib/builtins/abort @@ -57214,7 +55450,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3968 i32.const 1 call $~lib/builtins/abort @@ -57227,7 +55463,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3969 i32.const 1 call $~lib/builtins/abort @@ -57240,7 +55476,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3970 i32.const 1 call $~lib/builtins/abort @@ -57253,7 +55489,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3971 i32.const 1 call $~lib/builtins/abort @@ -57266,7 +55502,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3972 i32.const 1 call $~lib/builtins/abort @@ -57279,7 +55515,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3973 i32.const 1 call $~lib/builtins/abort @@ -57292,7 +55528,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3974 i32.const 1 call $~lib/builtins/abort @@ -57305,7 +55541,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3975 i32.const 1 call $~lib/builtins/abort @@ -57318,7 +55554,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 3976 i32.const 1 call $~lib/builtins/abort @@ -57391,7 +55627,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4017 i32.const 1 call $~lib/builtins/abort @@ -57404,7 +55640,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4018 i32.const 1 call $~lib/builtins/abort @@ -57417,7 +55653,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4019 i32.const 1 call $~lib/builtins/abort @@ -57430,7 +55666,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4020 i32.const 1 call $~lib/builtins/abort @@ -57443,7 +55679,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4021 i32.const 1 call $~lib/builtins/abort @@ -57456,7 +55692,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4022 i32.const 1 call $~lib/builtins/abort @@ -57469,7 +55705,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4023 i32.const 1 call $~lib/builtins/abort @@ -57482,7 +55718,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4024 i32.const 1 call $~lib/builtins/abort @@ -57495,7 +55731,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4025 i32.const 1 call $~lib/builtins/abort @@ -57508,7 +55744,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4026 i32.const 1 call $~lib/builtins/abort @@ -57521,7 +55757,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4027 i32.const 1 call $~lib/builtins/abort @@ -57534,7 +55770,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4028 i32.const 1 call $~lib/builtins/abort @@ -57547,7 +55783,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4051 i32.const 1 call $~lib/builtins/abort @@ -57560,7 +55796,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4052 i32.const 1 call $~lib/builtins/abort @@ -57573,7 +55809,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4053 i32.const 1 call $~lib/builtins/abort @@ -57586,7 +55822,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4054 i32.const 1 call $~lib/builtins/abort @@ -57599,7 +55835,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4056 i32.const 1 call $~lib/builtins/abort @@ -57612,7 +55848,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4057 i32.const 1 call $~lib/builtins/abort @@ -57625,7 +55861,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4058 i32.const 1 call $~lib/builtins/abort @@ -57638,7 +55874,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4059 i32.const 1 call $~lib/builtins/abort @@ -57651,7 +55887,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4061 i32.const 1 call $~lib/builtins/abort @@ -57664,7 +55900,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4062 i32.const 1 call $~lib/builtins/abort @@ -57677,7 +55913,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4063 i32.const 1 call $~lib/builtins/abort @@ -57690,7 +55926,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4064 i32.const 1 call $~lib/builtins/abort @@ -57703,7 +55939,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4066 i32.const 1 call $~lib/builtins/abort @@ -57716,7 +55952,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4067 i32.const 1 call $~lib/builtins/abort @@ -57729,7 +55965,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4068 i32.const 1 call $~lib/builtins/abort @@ -57742,7 +55978,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4069 i32.const 1 call $~lib/builtins/abort @@ -57755,7 +55991,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4071 i32.const 1 call $~lib/builtins/abort @@ -57768,7 +56004,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4072 i32.const 1 call $~lib/builtins/abort @@ -57781,7 +56017,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4073 i32.const 1 call $~lib/builtins/abort @@ -57794,7 +56030,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4074 i32.const 1 call $~lib/builtins/abort @@ -57807,7 +56043,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4076 i32.const 1 call $~lib/builtins/abort @@ -57820,7 +56056,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4077 i32.const 1 call $~lib/builtins/abort @@ -57833,7 +56069,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4078 i32.const 1 call $~lib/builtins/abort @@ -57846,7 +56082,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4079 i32.const 1 call $~lib/builtins/abort @@ -57859,7 +56095,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4080 i32.const 1 call $~lib/builtins/abort @@ -57872,7 +56108,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4082 i32.const 1 call $~lib/builtins/abort @@ -57885,7 +56121,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4083 i32.const 1 call $~lib/builtins/abort @@ -57898,7 +56134,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4084 i32.const 1 call $~lib/builtins/abort @@ -57911,7 +56147,7 @@ i64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4085 i32.const 1 call $~lib/builtins/abort @@ -57924,7 +56160,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4129 i32.const 1 call $~lib/builtins/abort @@ -57937,7 +56173,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4130 i32.const 1 call $~lib/builtins/abort @@ -57950,7 +56186,7 @@ f64.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 4131 i32.const 1 call $~lib/builtins/abort @@ -57960,228 +56196,39 @@ (func $~start call $start:std/math ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 16756 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 16756 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$1203 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$1203 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49552 - i32.const 49600 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16756 + i32.const 14368 i32.lt_s if - i32.const 49552 - i32.const 49600 + i32.const 47168 + i32.const 47216 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/std/mod.debug.wat b/tests/compiler/std/mod.debug.wat index 2ac0b53383..e7f3d6033a 100644 --- a/tests/compiler/std/mod.debug.wat +++ b/tests/compiler/std/mod.debug.wat @@ -1,65 +1,21 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param f64 f64) (result f64))) - (type $7 (func (param f64 f64) (result i32))) - (type $8 (func (param f64 f64 f64) (result i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i64 i32))) - (type $12 (func (param i64 i32) (result i32))) - (type $13 (func (param i32 i64 i32 i32))) - (type $14 (func (param f32 f32) (result f32))) - (type $15 (func (param f32 f32) (result i32))) - (type $16 (func (param f32 f32 f32) (result i32))) - (type $17 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param f64 f64) (result f64))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param f64 f64) (result i32))) + (type $4 (func (param f64 f64 f64) (result i32))) + (type $5 (func (param f32 f32) (result f32))) + (type $6 (func (param f32 f32) (result i32))) + (type $7 (func (param f32 f32 f32) (result i32))) (import "mod" "mod" (func $std/mod/mod (param f64 f64) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/mod/js 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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "mod" (func $std/mod/mod)) @@ -366,2638 +322,6 @@ end return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/math/NativeMathf.mod (param $x f32) (param $y f32) (result f32) (local $ux i32) (local $uy i32) @@ -3285,23 +609,6 @@ return ) (func $start:std/mod - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace f64.const 3 f64.const 2 f64.const 1 @@ -3309,7 +616,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -3322,7 +629,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -3335,7 +642,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -3348,7 +655,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -3361,7 +668,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -3374,7 +681,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -3387,7 +694,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -3400,7 +707,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -3413,7 +720,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -3426,7 +733,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -3439,7 +746,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -3452,7 +759,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -3465,7 +772,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -3478,7 +785,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 32 i32.const 1 call $~lib/builtins/abort @@ -3491,7 +798,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -3504,7 +811,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -3517,7 +824,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -3530,7 +837,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -3543,7 +850,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 37 i32.const 1 call $~lib/builtins/abort @@ -3556,7 +863,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -3569,7 +876,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 39 i32.const 1 call $~lib/builtins/abort @@ -3582,7 +889,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -3595,7 +902,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -3608,7 +915,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -3621,7 +928,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 43 i32.const 1 call $~lib/builtins/abort @@ -3634,7 +941,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -3647,7 +954,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 45 i32.const 1 call $~lib/builtins/abort @@ -3660,7 +967,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 46 i32.const 1 call $~lib/builtins/abort @@ -3673,7 +980,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 47 i32.const 1 call $~lib/builtins/abort @@ -3686,7 +993,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -3699,7 +1006,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -3712,7 +1019,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 52 i32.const 1 call $~lib/builtins/abort @@ -3725,7 +1032,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 53 i32.const 1 call $~lib/builtins/abort @@ -3738,7 +1045,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 54 i32.const 1 call $~lib/builtins/abort @@ -3751,7 +1058,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 55 i32.const 1 call $~lib/builtins/abort @@ -3764,7 +1071,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 56 i32.const 1 call $~lib/builtins/abort @@ -3777,7 +1084,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 57 i32.const 1 call $~lib/builtins/abort @@ -3790,7 +1097,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 58 i32.const 1 call $~lib/builtins/abort @@ -3803,7 +1110,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 59 i32.const 1 call $~lib/builtins/abort @@ -3816,7 +1123,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 60 i32.const 1 call $~lib/builtins/abort @@ -3829,7 +1136,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 61 i32.const 1 call $~lib/builtins/abort @@ -3842,7 +1149,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -3855,7 +1162,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 63 i32.const 1 call $~lib/builtins/abort @@ -3868,7 +1175,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 64 i32.const 1 call $~lib/builtins/abort @@ -3881,7 +1188,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 65 i32.const 1 call $~lib/builtins/abort @@ -3894,7 +1201,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 66 i32.const 1 call $~lib/builtins/abort @@ -3907,7 +1214,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 67 i32.const 1 call $~lib/builtins/abort @@ -3920,7 +1227,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 68 i32.const 1 call $~lib/builtins/abort @@ -3933,7 +1240,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 69 i32.const 1 call $~lib/builtins/abort @@ -3946,7 +1253,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 70 i32.const 1 call $~lib/builtins/abort @@ -3959,7 +1266,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 71 i32.const 1 call $~lib/builtins/abort @@ -3972,7 +1279,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 72 i32.const 1 call $~lib/builtins/abort @@ -3986,7 +1293,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 73 i32.const 1 call $~lib/builtins/abort @@ -4000,7 +1307,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 74 i32.const 1 call $~lib/builtins/abort @@ -4013,7 +1320,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 75 i32.const 1 call $~lib/builtins/abort @@ -4026,7 +1333,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 76 i32.const 1 call $~lib/builtins/abort @@ -4040,7 +1347,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 77 i32.const 1 call $~lib/builtins/abort @@ -4054,7 +1361,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 78 i32.const 1 call $~lib/builtins/abort @@ -4067,7 +1374,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 79 i32.const 1 call $~lib/builtins/abort @@ -4080,7 +1387,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 80 i32.const 1 call $~lib/builtins/abort @@ -4094,7 +1401,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 81 i32.const 1 call $~lib/builtins/abort @@ -4108,7 +1415,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 82 i32.const 1 call $~lib/builtins/abort @@ -4121,7 +1428,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 83 i32.const 1 call $~lib/builtins/abort @@ -4134,7 +1441,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 84 i32.const 1 call $~lib/builtins/abort @@ -4148,7 +1455,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 85 i32.const 1 call $~lib/builtins/abort @@ -4162,7 +1469,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 86 i32.const 1 call $~lib/builtins/abort @@ -4175,7 +1482,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 87 i32.const 1 call $~lib/builtins/abort @@ -4189,7 +1496,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 88 i32.const 1 call $~lib/builtins/abort @@ -4203,7 +1510,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 89 i32.const 1 call $~lib/builtins/abort @@ -4218,7 +1525,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 90 i32.const 1 call $~lib/builtins/abort @@ -4231,7 +1538,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 91 i32.const 1 call $~lib/builtins/abort @@ -4245,7 +1552,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 92 i32.const 1 call $~lib/builtins/abort @@ -4258,7 +1565,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 93 i32.const 1 call $~lib/builtins/abort @@ -4272,7 +1579,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -4285,7 +1592,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 103 i32.const 1 call $~lib/builtins/abort @@ -4298,7 +1605,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 104 i32.const 1 call $~lib/builtins/abort @@ -4311,7 +1618,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 105 i32.const 1 call $~lib/builtins/abort @@ -4324,7 +1631,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 106 i32.const 1 call $~lib/builtins/abort @@ -4337,7 +1644,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 107 i32.const 1 call $~lib/builtins/abort @@ -4350,7 +1657,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 108 i32.const 1 call $~lib/builtins/abort @@ -4363,7 +1670,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 109 i32.const 1 call $~lib/builtins/abort @@ -4376,7 +1683,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 110 i32.const 1 call $~lib/builtins/abort @@ -4389,7 +1696,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -4402,7 +1709,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -4415,7 +1722,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 113 i32.const 1 call $~lib/builtins/abort @@ -4428,7 +1735,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 114 i32.const 1 call $~lib/builtins/abort @@ -4441,7 +1748,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -4454,7 +1761,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 116 i32.const 1 call $~lib/builtins/abort @@ -4467,7 +1774,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 117 i32.const 1 call $~lib/builtins/abort @@ -4480,7 +1787,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 118 i32.const 1 call $~lib/builtins/abort @@ -4493,7 +1800,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 119 i32.const 1 call $~lib/builtins/abort @@ -4506,7 +1813,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -4519,7 +1826,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 121 i32.const 1 call $~lib/builtins/abort @@ -4532,7 +1839,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 122 i32.const 1 call $~lib/builtins/abort @@ -4545,7 +1852,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 125 i32.const 1 call $~lib/builtins/abort @@ -4558,7 +1865,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 126 i32.const 1 call $~lib/builtins/abort @@ -4571,7 +1878,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 127 i32.const 1 call $~lib/builtins/abort @@ -4584,7 +1891,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 128 i32.const 1 call $~lib/builtins/abort @@ -4597,7 +1904,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 129 i32.const 1 call $~lib/builtins/abort @@ -4610,7 +1917,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 130 i32.const 1 call $~lib/builtins/abort @@ -4623,7 +1930,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 131 i32.const 1 call $~lib/builtins/abort @@ -4636,7 +1943,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 132 i32.const 1 call $~lib/builtins/abort @@ -4649,7 +1956,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 133 i32.const 1 call $~lib/builtins/abort @@ -4662,7 +1969,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 134 i32.const 1 call $~lib/builtins/abort @@ -4675,7 +1982,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 135 i32.const 1 call $~lib/builtins/abort @@ -4688,7 +1995,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 136 i32.const 1 call $~lib/builtins/abort @@ -4701,7 +2008,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 137 i32.const 1 call $~lib/builtins/abort @@ -4714,7 +2021,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 138 i32.const 1 call $~lib/builtins/abort @@ -4727,7 +2034,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 139 i32.const 1 call $~lib/builtins/abort @@ -4740,7 +2047,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 140 i32.const 1 call $~lib/builtins/abort @@ -4753,7 +2060,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 141 i32.const 1 call $~lib/builtins/abort @@ -4766,7 +2073,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 142 i32.const 1 call $~lib/builtins/abort @@ -4779,7 +2086,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 143 i32.const 1 call $~lib/builtins/abort @@ -4793,7 +2100,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 144 i32.const 1 call $~lib/builtins/abort @@ -4807,7 +2114,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 145 i32.const 1 call $~lib/builtins/abort @@ -4820,7 +2127,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 146 i32.const 1 call $~lib/builtins/abort @@ -4833,7 +2140,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 147 i32.const 1 call $~lib/builtins/abort @@ -4847,7 +2154,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 148 i32.const 1 call $~lib/builtins/abort @@ -4861,7 +2168,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 149 i32.const 1 call $~lib/builtins/abort @@ -4874,7 +2181,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 150 i32.const 1 call $~lib/builtins/abort @@ -4887,7 +2194,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -4901,7 +2208,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 152 i32.const 1 call $~lib/builtins/abort @@ -4915,7 +2222,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 153 i32.const 1 call $~lib/builtins/abort @@ -4928,7 +2235,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 154 i32.const 1 call $~lib/builtins/abort @@ -4941,7 +2248,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 155 i32.const 1 call $~lib/builtins/abort @@ -4955,7 +2262,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 156 i32.const 1 call $~lib/builtins/abort @@ -4969,7 +2276,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 157 i32.const 1 call $~lib/builtins/abort @@ -4982,7 +2289,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 158 i32.const 1 call $~lib/builtins/abort @@ -4996,7 +2303,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 159 i32.const 1 call $~lib/builtins/abort @@ -5010,7 +2317,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 160 i32.const 1 call $~lib/builtins/abort @@ -5025,7 +2332,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -5038,7 +2345,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -5052,7 +2359,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -5065,7 +2372,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 164 i32.const 1 call $~lib/builtins/abort @@ -5079,7 +2386,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 165 i32.const 1 call $~lib/builtins/abort @@ -5094,92 +2401,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5188,322 +2419,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/std/mod.release.wat b/tests/compiler/std/mod.release.wat index bafc68e19b..9e207ade1c 100644 --- a/tests/compiler/std/mod.release.wat +++ b/tests/compiler/std/mod.release.wat @@ -1,62 +1,16 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param f64 f64) (result f64))) - (type $6 (func (param f64 f64 f64) (result i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (result i32))) - (type $9 (func (param f32 f32 f32) (result i32))) - (type $10 (func (param i32 i32 i32 i32))) + (type $1 (func (param f64 f64) (result f64))) + (type $2 (func (param f64 f64 f64) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param f32 f32 f32) (result i32))) + (type $5 (func (param i32 i32 i32))) (import "mod" "mod" (func $std/mod/mod (param f64 f64) (result f64))) - (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/memory/__stack_pointer (mut i32) (i32.const 36244)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s") (export "mod" (func $std/mod/mod)) (export "memory" (memory $0)) (start $~start) @@ -326,1691 +280,6 @@ i32.const 0 end ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$122 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36244 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$122 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3456 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3460 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36256 - i32.const 0 - i32.store - i32.const 37824 - 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 36256 - 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 36256 - 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 36256 - i32.const 37828 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36256 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36244 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36244 - 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 - local.tee $0 - i32.const 36244 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$72 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$72 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3476 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$76 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$76 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $std/mod/test_fmodf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) (local $4 i32) @@ -2019,8 +288,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) - block $__inlined_func$std/mod/check$77 (result i32) - block $__inlined_func$~lib/math/NativeMathf.mod$2 (result f32) + block $__inlined_func$std/mod/check$2 (result i32) + block $__inlined_func$~lib/math/NativeMathf.mod$1 (result f32) local.get $0 local.get $0 f32.trunc @@ -2031,7 +300,7 @@ f32.abs f32.const 1 f32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod$2 + br_if $__inlined_func$~lib/math/NativeMathf.mod$1 drop local.get $1 i32.reinterpret_f32 @@ -2068,7 +337,7 @@ local.tee $0 local.get $0 f32.div - br $__inlined_func$~lib/math/NativeMathf.mod$2 + br $__inlined_func$~lib/math/NativeMathf.mod$1 end local.get $4 i32.const 1 @@ -2083,7 +352,7 @@ i32.ne f32.convert_i32_u f32.mul - br $__inlined_func$~lib/math/NativeMathf.mod$2 + br $__inlined_func$~lib/math/NativeMathf.mod$1 end local.get $4 i32.const -2147483648 @@ -2146,7 +415,7 @@ local.get $3 local.get $4 i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod$2 + br_if $__inlined_func$~lib/math/NativeMathf.mod$1 drop local.get $3 local.get $4 @@ -2174,7 +443,7 @@ local.get $3 local.get $4 i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod$2 + br_if $__inlined_func$~lib/math/NativeMathf.mod$1 drop local.get $3 local.get $4 @@ -2221,7 +490,7 @@ local.get $2 local.get $2 f32.ne - br_if $__inlined_func$std/mod/check$77 + br_if $__inlined_func$std/mod/check$2 drop f32.const 1 local.get $2 @@ -2233,7 +502,7 @@ local.get $2 f32.const 0 f32.eq - br_if $__inlined_func$std/mod/check$77 + br_if $__inlined_func$std/mod/check$2 drop local.get $0 local.get $2 @@ -2241,38 +510,6 @@ end ) (func $start:std/mod - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace f64.const 3 f64.const 2 f64.const 1 @@ -2280,9 +517,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 19 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2293,9 +529,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 20 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2306,9 +541,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 21 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2319,9 +553,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 22 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2332,9 +565,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 23 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2345,9 +577,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 24 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2358,9 +589,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 25 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2371,9 +601,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 26 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2384,9 +613,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 27 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2397,9 +625,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 28 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2410,9 +637,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 29 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2423,9 +649,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 30 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2436,9 +661,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 31 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2449,9 +673,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 32 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2462,9 +685,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 33 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2475,9 +697,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 34 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2488,9 +709,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 35 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2501,9 +721,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 36 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2514,9 +733,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 37 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2527,9 +745,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 38 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2540,9 +757,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 39 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2553,9 +769,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 40 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2566,9 +781,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 41 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2579,9 +793,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 42 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2592,9 +805,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 43 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2605,9 +817,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 44 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2618,9 +829,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 45 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2631,9 +841,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 46 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2644,9 +853,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 47 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2657,9 +865,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 50 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2670,9 +877,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 51 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2683,9 +889,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 52 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2696,9 +901,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 53 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2709,9 +913,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 54 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2722,9 +925,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 55 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2735,9 +937,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 56 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2748,9 +949,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 57 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2761,9 +961,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 58 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2774,9 +973,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 59 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2787,9 +985,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 60 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2800,9 +997,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 61 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2813,9 +1009,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 62 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2826,9 +1021,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 63 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2839,9 +1033,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 64 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2852,9 +1045,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 65 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2865,9 +1057,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 66 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2878,9 +1069,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 67 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2891,9 +1081,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 68 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2904,9 +1093,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 69 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2917,9 +1105,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 70 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2930,9 +1117,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 71 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2943,9 +1129,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 72 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2956,9 +1141,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 73 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2969,9 +1153,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 74 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2982,9 +1165,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 75 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2995,9 +1177,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 76 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3008,9 +1189,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 77 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3021,9 +1201,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 78 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3034,9 +1213,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 79 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3047,9 +1225,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 80 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3060,9 +1237,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 81 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3073,9 +1249,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 82 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3086,9 +1261,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 83 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3099,9 +1273,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 84 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3112,9 +1285,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 85 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3125,9 +1297,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 86 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3138,9 +1309,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 87 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3151,9 +1321,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 88 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3164,9 +1333,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 89 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3177,9 +1345,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 90 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3190,9 +1357,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 91 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3203,9 +1369,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 92 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3216,9 +1381,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 93 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3229,9 +1393,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 94 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3242,9 +1405,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 103 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3255,9 +1417,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 104 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3268,9 +1429,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 105 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3281,9 +1441,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 106 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3294,9 +1453,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 107 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3307,9 +1465,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 108 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3320,9 +1477,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 109 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3333,9 +1489,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 110 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3346,9 +1501,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 111 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3359,9 +1513,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 112 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3372,9 +1525,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 113 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3385,9 +1537,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 114 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3398,9 +1549,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 115 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3411,9 +1561,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 116 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3424,9 +1573,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 117 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3437,9 +1585,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 118 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3450,9 +1597,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 119 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3463,9 +1609,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 120 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3476,9 +1621,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 121 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3489,9 +1633,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 122 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3502,9 +1645,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 125 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3515,9 +1657,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 126 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3528,9 +1669,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 127 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3541,9 +1681,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 128 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3554,9 +1693,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 129 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3567,9 +1705,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 130 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3580,9 +1717,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 131 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3593,9 +1729,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 132 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3606,9 +1741,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 133 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3619,9 +1753,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 134 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3632,9 +1765,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 135 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3645,9 +1777,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 136 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3658,9 +1789,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 137 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3671,9 +1801,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 138 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3684,9 +1813,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 139 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3697,9 +1825,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 140 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3710,9 +1837,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 141 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3723,9 +1849,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 142 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3736,9 +1861,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 143 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3749,9 +1873,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 144 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3762,9 +1885,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 145 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3775,9 +1897,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 146 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3788,9 +1909,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 147 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3801,9 +1921,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 148 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3814,9 +1933,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 149 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3827,9 +1945,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 150 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3840,9 +1957,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 151 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3853,9 +1969,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 152 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3866,9 +1981,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 153 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3879,9 +1993,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 154 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3892,9 +2005,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 155 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3905,9 +2017,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 156 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3918,9 +2029,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 157 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3931,9 +2041,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 158 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3944,9 +2053,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 159 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3957,9 +2065,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 160 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3970,9 +2077,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 161 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3983,9 +2089,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 162 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -3996,9 +2101,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 163 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -4009,9 +2113,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 164 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -4022,9 +2125,8 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 165 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -4032,228 +2134,38 @@ (func $~start call $start:std/mod ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$127 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$127 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3476 + i32.const 1084 i32.lt_s if - i32.const 36272 - i32.const 36320 - i32.const 1 + i32.const 33872 + i32.const 33920 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index 2169a329d7..65926fe9d9 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -1,23 +1,18 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 f32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (result i32))) - (type $12 (func (param i32 i32 i32 i32))) - (type $13 (func (param i32 f32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 f32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 f32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/new/AClass.aStaticField (mut i32) (i32.const 0)) - (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 $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -26,35 +21,28 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $std/new/aClass (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2408)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35176)) - (global $~lib/memory/__heap_base i32 (i32.const 35176)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 440)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33208)) + (global $~lib/memory/__heap_base i32 (i32.const 33208)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2384) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\05\00\00\00 \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 "memory" (memory $0)) @@ -73,435 +61,6 @@ local.get $anotherField f32.store offset=4 ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -566,7 +125,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -636,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -653,7 +212,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -683,9 +242,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -752,7 +311,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -904,7 +463,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -924,7 +483,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -987,7 +546,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1140,7 +699,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1157,7 +716,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1246,7 +805,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1289,7 +848,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1307,7 +866,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1375,7 +934,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1492,7 +1051,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1538,7 +1097,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1570,7 +1129,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1814,7 +1373,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2034,7 +1593,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2145,8 +1704,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2248,7 +1807,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2319,7 +1878,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2476,7 +2035,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2591,7 +2150,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2611,7 +2170,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2659,8 +2218,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2714,13 +2273,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -2736,20 +2295,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35200 - i32.const 35248 + i32.const 33232 + i32.const 33280 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2758,196 +2313,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $std/new/AClass#constructor (param $this i32) (param $value f32) (result i32) (local $2 i32) @@ -3020,153 +2406,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $std/new/aClass @@ -3176,16 +2415,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index 15bbb141be..b1b3038661 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $4 (func (result i32))) (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,240 +18,21 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $std/new/aClass (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36200)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34232)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3408) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1440) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3432 - i32.lt_s - if - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -261,13 +42,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -288,7 +65,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -336,7 +113,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -345,7 +122,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$126 + block $__inlined_func$~lib/rt/itcms/Object#unlink$114 local.get $1 i32.load offset=4 i32.const -4 @@ -357,19 +134,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36200 + i32.const 34232 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$126 + br $__inlined_func$~lib/rt/itcms/Object#unlink$114 end local.get $1 i32.load offset=8 @@ -377,7 +154,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -406,13 +183,13 @@ i32.const 1 else local.get $0 - i32.const 3408 + i32.const 1440 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -420,7 +197,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3412 + i32.const 1444 i32.add i32.load i32.const 32 @@ -472,7 +249,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -486,7 +263,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -532,7 +309,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -615,7 +392,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -629,7 +406,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -690,7 +467,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -723,7 +500,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -738,7 +515,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -789,7 +566,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -861,7 +638,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -886,7 +663,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -913,7 +690,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -985,10 +762,10 @@ if unreachable end - i32.const 36208 + i32.const 34240 i32.const 0 i32.store - i32.const 37776 + i32.const 35808 i32.const 0 i32.store loop $for-loop|0 @@ -999,7 +776,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=4 @@ -1017,7 +794,7 @@ i32.add i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=96 @@ -1035,14 +812,14 @@ br $for-loop|0 end end - i32.const 36208 - i32.const 37780 + i32.const 34240 + i32.const 35812 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36208 + i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1127,7 +904,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36200 + i32.const 34232 i32.lt_u if local.get $0 @@ -1216,14 +993,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36200 + i32.const 34232 i32.lt_u if local.get $0 @@ -1246,7 +1023,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36200 + i32.const 34232 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1275,7 +1052,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1305,85 +1082,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1391,11 +1101,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1411,7 +1117,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1433,35 +1139,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $0 loop $do-loop|0 - local.get $2 + local.get $0 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $0 global.get $~lib/rt/itcms/state i32.eqz if @@ -1471,9 +1165,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $0 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1496,94 +1190,39 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $0 i32.const 4 - local.get $4 + local.get $1 i32.load offset=1568 - local.get $2 + local.get $0 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $0 local.get $2 - local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1591,8 +1230,8 @@ unreachable end end - local.get $4 - local.get $2 + local.get $1 + local.get $0 i32.const 16 i32.shl memory.size @@ -1600,136 +1239,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $0 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $0 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 + local.get $0 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $0 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $2 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub local.tee $3 i32.const 16 i32.ge_u if + local.get $0 local.get $2 - local.get $5 - local.get $6 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $0 + i32.const 32 i32.add - local.tee $5 + local.tee $2 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $0 local.get $2 - local.get $6 i32.const -2 i32.and i32.store - local.get $2 + local.get $0 i32.const 4 i32.add - local.get $2 + local.get $0 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and i32.store end - local.get $2 - local.get $1 + local.get $0 + i32.const 4 i32.store offset=12 - local.get $2 local.get $0 + i32.const 8 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + local.get $0 local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $0 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.load i32.const -4 i32.and @@ -1737,59 +1359,58 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $0 i32.const 20 i32.add - local.tee $1 - i32.const 0 + local.tee $0 + i64.const 0 + i64.store align=1 local.get $0 - memory.fill - local.get $1 ) (func $~start (local $0 i32) memory.size i32.const 16 i32.shl - i32.const 36200 + i32.const 34232 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace 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 3432 + i32.const 1464 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1802,8 +1423,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1844,205 +1463,40 @@ local.get $0 global.set $std/new/aClass ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3432 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3432 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$131 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$131 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3432 + i32.const 1464 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/std/object.debug.wat b/tests/compiler/std/object.debug.wat index b9b52d20d0..641c2c790d 100644 --- a/tests/compiler/std/object.debug.wat +++ b/tests/compiler/std/object.debug.wat @@ -1,42 +1,31 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (param i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) (type $2 (func (param i32 i32))) - (type $3 (func)) - (type $4 (func (param f64 f64) (result i32))) - (type $5 (func (param i32))) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i32 i32))) - (type $11 (func (param f32 f32) (result i32))) - (type $12 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func)) + (type $5 (func (param f64 f64) (result i32))) + (type $6 (func (param f32 f32) (result i32))) + (type $7 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $8 (func (param i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/rt/stub/startOffset (mut i32) (i32.const 0)) (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) - (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/memory/__heap_base i32 (i32.const 2252)) + (global $~lib/memory/__heap_base i32 (i32.const 316)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 268) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 492) "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 $10 (i32.const 892) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 1948) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 2108) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00.\00t\00s\00\00\00") - (data $14 (i32.const 2156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 2220) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00.\00t\00s\00\00\00") + (data $1 (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s\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 "memory" (memory $0)) @@ -63,817 +52,14 @@ i32.or return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/stub/maybeGrowMemory (param $newOffset i32) - (local $pagesBefore i32) - (local $maxOffset i32) - (local $pagesNeeded i32) - (local $4 i32) - (local $5 i32) - (local $pagesWanted i32) - memory.size - local.set $pagesBefore - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $maxOffset - local.get $newOffset - local.get $maxOffset - i32.gt_u - if - local.get $newOffset - local.get $maxOffset - i32.sub - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $4 - local.get $pagesNeeded - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - end - local.get $newOffset - global.set $~lib/rt/stub/offset - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/stub/__alloc (param $size i32) (result i32) - (local $block i32) - (local $ptr i32) - (local $size|3 i32) - (local $payloadSize i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 192 - i32.const 33 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/stub/offset - local.set $block - global.get $~lib/rt/stub/offset - i32.const 4 - i32.add - local.set $ptr - block $~lib/rt/stub/computeSize|inlined.0 (result i32) - local.get $size - local.set $size|3 - local.get $size|3 - 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 - br $~lib/rt/stub/computeSize|inlined.0 - end - local.set $payloadSize - local.get $ptr - local.get $payloadSize - i32.add - call $~lib/rt/stub/maybeGrowMemory - local.get $block - local.get $payloadSize - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $ptr - return - ) - (func $~lib/rt/common/OBJECT#set:gcInfo (param $this i32) (param $gcInfo i32) - local.get $this - local.get $gcInfo - i32.store offset=4 - ) - (func $~lib/rt/common/OBJECT#set:gcInfo2 (param $this i32) (param $gcInfo2 i32) - local.get $this - local.get $gcInfo2 - i32.store offset=8 - ) - (func $~lib/rt/common/OBJECT#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/common/OBJECT#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/stub/__new (param $size i32) (param $id i32) (result i32) - (local $ptr i32) - (local $object i32) - local.get $size - i32.const 1073741804 - i32.gt_u - if - i32.const 128 - i32.const 192 - i32.const 86 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - i32.const 16 - local.get $size - i32.add - call $~lib/rt/stub/__alloc - local.set $ptr - local.get $ptr - i32.const 4 - i32.sub - local.set $object - local.get $object - i32.const 0 - call $~lib/rt/common/OBJECT#set:gcInfo - local.get $object - i32.const 0 - call $~lib/rt/common/OBJECT#set:gcInfo2 - local.get $object - local.get $id - call $~lib/rt/common/OBJECT#set:rtId - local.get $object - local.get $size - call $~lib/rt/common/OBJECT#set:rtSize - local.get $ptr - i32.const 16 - i32.add - return - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - local.get $this - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - return - end - local.get $outSize - i32.const 2 - call $~lib/rt/stub/__new - local.set $out - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - local.get $left - local.get $right - call $~lib/string/String#concat - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 492 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 492 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 492 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 492 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 912 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 912 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1968 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1968 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|11 i32) - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 288 - i32.const 416 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 480 - return - end - local.get $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/stub/__new - local.set $out - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/stub/__new - local.set $out - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/stub/__new - local.set $out - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - return - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - i32.const 1 + i32.const 0 drop local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.set $fullMessage local.get $fileName - if - local.get $fullMessage - i32.const 64 - local.get $fileName - call $~lib/string/String.__concat - i32.const 256 - call $~lib/string/String.__concat - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - call $~lib/string/String.__concat - i32.const 256 - call $~lib/string/String.__concat - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - call $~lib/string/String.__concat - call $~lib/string/String.__concat - local.set $fullMessage - end - local.get $fullMessage - i32.const 2064 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl ) (func $~lib/object/Object.is (param $x f32) (param $y f32) (result i32) i32.const 1 @@ -917,6 +103,19 @@ i32.eq return ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -1080,6 +279,181 @@ call $~lib/string/String.__eq return ) + (func $~lib/rt/stub/maybeGrowMemory (param $newOffset i32) + (local $pagesBefore i32) + (local $maxOffset i32) + (local $pagesNeeded i32) + (local $4 i32) + (local $5 i32) + (local $pagesWanted i32) + memory.size + local.set $pagesBefore + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $maxOffset + local.get $newOffset + local.get $maxOffset + i32.gt_u + if + local.get $newOffset + local.get $maxOffset + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $4 + local.get $pagesNeeded + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + local.get $newOffset + global.set $~lib/rt/stub/offset + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/stub/__alloc (param $size i32) (result i32) + (local $block i32) + (local $ptr i32) + (local $size|3 i32) + (local $payloadSize i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 208 + i32.const 272 + i32.const 33 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/stub/offset + local.set $block + global.get $~lib/rt/stub/offset + i32.const 4 + i32.add + local.set $ptr + block $~lib/rt/stub/computeSize|inlined.0 (result i32) + local.get $size + local.set $size|3 + local.get $size|3 + 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 + br $~lib/rt/stub/computeSize|inlined.0 + end + local.set $payloadSize + local.get $ptr + local.get $payloadSize + i32.add + call $~lib/rt/stub/maybeGrowMemory + local.get $block + local.get $payloadSize + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $ptr + return + ) + (func $~lib/rt/common/OBJECT#set:gcInfo (param $this i32) (param $gcInfo i32) + local.get $this + local.get $gcInfo + i32.store offset=4 + ) + (func $~lib/rt/common/OBJECT#set:gcInfo2 (param $this i32) (param $gcInfo2 i32) + local.get $this + local.get $gcInfo2 + i32.store offset=8 + ) + (func $~lib/rt/common/OBJECT#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/common/OBJECT#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/stub/__new (param $size i32) (param $id i32) (result i32) + (local $ptr i32) + (local $object i32) + local.get $size + i32.const 1073741804 + i32.gt_u + if + i32.const 208 + i32.const 272 + i32.const 86 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + i32.const 16 + local.get $size + i32.add + call $~lib/rt/stub/__alloc + local.set $ptr + local.get $ptr + i32.const 4 + i32.sub + local.set $object + local.get $object + i32.const 0 + call $~lib/rt/common/OBJECT#set:gcInfo + local.get $object + i32.const 0 + call $~lib/rt/common/OBJECT#set:gcInfo2 + local.get $object + local.get $id + call $~lib/rt/common/OBJECT#set:rtId + local.get $object + local.get $size + call $~lib/rt/common/OBJECT#set:rtSize + local.get $ptr + i32.const 16 + i32.add + return + ) (func $std/object/Implicit#constructor (param $this i32) (result i32) local.get $this i32.eqz @@ -1123,20 +497,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/memory/__heap_base - 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 - global.set $~lib/rt/stub/startOffset - global.get $~lib/rt/stub/startOffset - global.set $~lib/rt/stub/offset f64.const 0 f64.const 0 call $~lib/object/Object.is @@ -1147,7 +507,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 4 i32.const 1 call $~lib/builtins/abort @@ -1163,7 +523,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -1179,7 +539,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -1195,7 +555,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 7 i32.const 1 call $~lib/builtins/abort @@ -1211,7 +571,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -1227,7 +587,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -1243,7 +603,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -1261,7 +621,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -1278,7 +638,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -1295,7 +655,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -1311,7 +671,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -1327,7 +687,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -1343,7 +703,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -1359,7 +719,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -1375,7 +735,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -1391,7 +751,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -1407,7 +767,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -1423,7 +783,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -1439,7 +799,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -1455,7 +815,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -1473,7 +833,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -1490,7 +850,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -1507,7 +867,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -1523,7 +883,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -1539,7 +899,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -1555,7 +915,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 32 i32.const 1 call $~lib/builtins/abort @@ -1573,7 +933,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -1589,7 +949,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -1603,7 +963,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 37 i32.const 1 call $~lib/builtins/abort @@ -1617,7 +977,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -1631,7 +991,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -1645,7 +1005,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -1659,49 +1019,49 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 42 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2176 - i32.const 2176 + i32.const 80 + i32.const 80 call $~lib/object/Object.is<~lib/string/String> i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 44 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2176 - i32.const 2208 + i32.const 80 + i32.const 112 call $~lib/object/Object.is<~lib/string/String> i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 45 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2176 - i32.const 2240 + i32.const 80 + i32.const 144 call $~lib/object/Object.is<~lib/string/String> i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 46 i32.const 1 call $~lib/builtins/abort @@ -1715,13 +1075,13 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 48 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 96 + i32.const 176 i32.const 0 call $~lib/object/Object.is<~lib/string/String|null> i32.const 0 @@ -1729,26 +1089,40 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 49 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 96 + i32.const 176 call $~lib/object/Object.is<~lib/string/String|null> i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 50 i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__heap_base + 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 + global.set $~lib/rt/stub/startOffset + global.get $~lib/rt/stub/startOffset + global.set $~lib/rt/stub/offset i32.const 0 call $std/object/Implicit#constructor local.set $implicit @@ -1778,7 +1152,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -1796,7 +1170,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 76 i32.const 3 call $~lib/builtins/abort @@ -1814,7 +1188,7 @@ i32.eqz if i32.const 0 - i32.const 2128 + i32.const 32 i32.const 77 i32.const 3 call $~lib/builtins/abort diff --git a/tests/compiler/std/object.release.wat b/tests/compiler/std/object.release.wat index 2ffdbe242a..edbc593a3a 100644 --- a/tests/compiler/std/object.release.wat +++ b/tests/compiler/std/object.release.wat @@ -1,392 +1,25 @@ (module - (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (param i32) (result i32))) - (type $2 (func (param i32 i32 i32 i32))) - (type $3 (func)) - (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s") - (data $5 (i32.const 1260) "\1c") - (data $5.1 (i32.const 1272) "\02\00\00\00\02\00\00\00:") - (data $6 (i32.const 1292) "|") - (data $6.1 (i32.const 1304) "\02\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 $7 (i32.const 1420) "<") - (data $7.1 (i32.const 1432) "\02\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 $8 (i32.const 1484) "\1c") - (data $8.1 (i32.const 1496) "\02\00\00\00\02\00\00\000") - (data $9 (i32.const 1516) "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 $10 (i32.const 1916) "\1c\04") - (data $10.1 (i32.const 1928) "\02\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 $11 (i32.const 2972) "\\") - (data $11.1 (i32.const 2984) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $13 (i32.const 3132) ",") - (data $13.1 (i32.const 3144) "\02\00\00\00\1a\00\00\00s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00.\00t\00s") - (data $14 (i32.const 3180) "\1c") - (data $14.1 (i32.const 3192) "\02\00\00\00\02\00\00\00a") - (data $15 (i32.const 3212) "\1c") - (data $15.1 (i32.const 3224) "\02\00\00\00\02\00\00\00b") - (data $16 (i32.const 3244) "\1c") - (data $16.1 (i32.const 3256) "\02\00\00\00\04\00\00\00a\00b") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1a\00\00\00s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00.\00t\00s") + (data $1 (i32.const 1084) "\1c") + (data $1.1 (i32.const 1096) "\02\00\00\00\02\00\00\00a") + (data $2 (i32.const 1116) "\1c") + (data $2.1 (i32.const 1128) "\02\00\00\00\02\00\00\00b") + (data $3 (i32.const 1148) "\1c") + (data $3.1 (i32.const 1160) "\02\00\00\00\04\00\00\00a\00b") + (data $4 (i32.const 1180) "\1c") + (data $4.1 (i32.const 1192) "\02") + (data $5 (i32.const 1212) "<") + (data $5.1 (i32.const 1224) "\02\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 $6 (i32.const 1276) "<") + (data $6.1 (i32.const 1288) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/stub/__new (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.get $0 - i32.const 1073741804 - i32.gt_u - if - i32.const 1152 - i32.const 1216 - i32.const 86 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 16 - i32.add - local.tee $4 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1216 - i32.const 33 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/stub/offset - global.get $~lib/rt/stub/offset - i32.const 4 - i32.add - local.tee $2 - local.get $4 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.tee $4 - i32.add - local.tee $5 - memory.size - local.tee $6 - i32.const 16 - i32.shl - i32.const 15 - i32.add - i32.const -16 - i32.and - local.tee $7 - i32.gt_u - if - local.get $6 - local.get $5 - local.get $7 - i32.sub - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $7 - local.get $6 - local.get $7 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $7 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - end - local.get $5 - global.set $~lib/rt/stub/offset - local.get $4 - i32.store - local.get $2 - i32.const 4 - i32.sub - local.tee $3 - i32.const 0 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $3 - local.get $0 - i32.store offset=16 - local.get $2 - i32.const 16 - i32.add - ) - (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) - i32.const 1120 - local.set $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - i32.add - local.tee $5 - if - local.get $5 - i32.const 2 - call $~lib/rt/stub/__new - local.tee $2 - local.get $0 - local.get $3 - memory.copy - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - end - local.get $2 - ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - i32.const 1504 - return - end - local.get $0 - 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 $0 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/stub/__new - local.set $2 - 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 $2 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1516 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1516 - 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 $2 - local.get $0 - i32.const 2 - i32.sub - local.tee $0 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1516 - 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 $2 - local.get $0 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 1516 - i32.add - i32.load - i32.store - else - local.get $2 - local.get $0 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end - local.get $2 - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - local.get $0 - i32.const 1056 - local.get $0 - select - local.set $0 - local.get $1 - if (result i32) - local.get $0 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - i32.const 1280 - call $~lib/string/String.__concat - local.get $2 - call $~lib/util/number/utoa32 - call $~lib/string/String.__concat - i32.const 1280 - call $~lib/string/String.__concat - local.get $3 - call $~lib/util/number/utoa32 - call $~lib/string/String.__concat - call $~lib/string/String.__concat - else - local.get $0 - end - i32.const 3088 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -470,7 +103,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$15 + block $__inlined_func$~lib/util/string/compareImpl$1 loop $while-continue|1 local.get $0 local.tee $3 @@ -490,7 +123,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$15 + br_if $__inlined_func$~lib/util/string/compareImpl$1 local.get $2 i32.const 2 i32.add @@ -511,41 +144,39 @@ (func $~start (local $0 i32) (local $1 i32) - i32.const 3276 - global.set $~lib/rt/stub/offset - i32.const 3200 - i32.const 3200 + i32.const 1104 + i32.const 1104 call $~lib/string/String.__eq i32.const 1 i32.ne if i32.const 0 - i32.const 3152 + i32.const 1056 i32.const 44 i32.const 1 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end - i32.const 3200 - i32.const 3232 + i32.const 1104 + i32.const 1136 call $~lib/string/String.__eq if i32.const 0 - i32.const 3152 + i32.const 1056 i32.const 45 i32.const 1 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end - i32.const 3200 - i32.const 3264 + i32.const 1104 + i32.const 1168 call $~lib/string/String.__eq if i32.const 0 - i32.const 3152 + i32.const 1056 i32.const 46 i32.const 1 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end i32.const 0 @@ -555,107 +186,174 @@ i32.ne if i32.const 0 - i32.const 3152 + i32.const 1056 i32.const 48 i32.const 1 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end - i32.const 1120 + i32.const 1200 i32.const 0 call $~lib/string/String.__eq if i32.const 0 - i32.const 3152 + i32.const 1056 i32.const 49 i32.const 1 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end i32.const 0 - i32.const 1120 + i32.const 1200 call $~lib/string/String.__eq if i32.const 0 - i32.const 3152 + i32.const 1056 i32.const 50 i32.const 1 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end + memory.size + local.tee $1 + i32.const 16 + i32.shl + i32.const 15 + i32.add + i32.const -16 + i32.and + local.tee $0 + i32.const 1372 + i32.lt_u + if + local.get $1 + i32.const 66907 + local.get $0 + i32.sub + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $0 + local.get $0 + local.get $1 + i32.lt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + i32.const 1340 + i32.const 28 + i32.store + i32.const 1344 + i32.const 0 + i32.store + i32.const 1348 i32.const 0 + i32.store + i32.const 1352 i32.const 4 - call $~lib/rt/stub/__new - local.set $1 + i32.store + i32.const 1356 i32.const 0 - i32.const 5 - call $~lib/rt/stub/__new + i32.store + memory.size + local.tee $1 + i32.const 16 + i32.shl + i32.const 15 + i32.add + i32.const -16 + i32.and local.tee $0 - i32.eqz + i32.const 1404 + i32.lt_u if - i32.const 0 - i32.const 0 - call $~lib/rt/stub/__new - local.set $0 - end - local.get $0 - if (result i32) + local.get $1 + i32.const 66939 local.get $0 - i32.const 8 i32.sub - i32.load - i32.const 5 - i32.eq - else + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $0 + local.get $0 + local.get $1 + i32.lt_s + select + memory.grow i32.const 0 + i32.lt_s + if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end end - i32.eqz + i32.const 1372 + i32.const 28 + i32.store + i32.const 1376 + i32.const 0 + i32.store + i32.const 1380 + i32.const 0 + i32.store + i32.const 1384 + i32.const 5 + i32.store + i32.const 1388 + i32.const 0 + i32.store + i32.const 1384 + i32.load + i32.const 5 + i32.ne if i32.const 0 - i32.const 3152 + i32.const 1056 i32.const 74 i32.const 3 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end - local.get $1 - if (result i32) - local.get $1 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.eq - else - i32.const 0 - end - i32.eqz + i32.const 1352 + i32.load + i32.const 4 + i32.ne if i32.const 0 - i32.const 3152 + i32.const 1056 i32.const 76 i32.const 3 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end - local.get $0 - if (result i32) - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.eq - else - i32.const 0 - end - i32.eqz + i32.const 1384 + i32.load + i32.const 5 + i32.ne if i32.const 0 - i32.const 3152 + i32.const 1056 i32.const 77 i32.const 3 - call $~lib/builtins/abort + call $~lib/builtins/__abort_impl unreachable end ) diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index 7717c3ee04..6c11bb503e 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -1,22 +1,17 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32 i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (result i32))) - (type $12 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $13 (func (param i32 i32 i32 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)) + (type $5 (func (param i32 i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -25,6 +20,10 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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)) @@ -45,6 +44,7 @@ (global $std/operator-overloading/f (mut i32) (i32.const 0)) (global $std/operator-overloading/p1 (mut i32) (i32.const 0)) (global $std/operator-overloading/p2 (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $std/operator-overloading/p (mut i32) (i32.const 0)) (global $std/operator-overloading/n1 (mut i32) (i32.const 0)) (global $std/operator-overloading/n2 (mut i32) (i32.const 0)) @@ -96,467 +96,27 @@ (global $std/operator-overloading/aii2 (mut i32) (i32.const 0)) (global $std/operator-overloading/aii (mut i32) (i32.const 0)) (global $std/operator-overloading/tea (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2528)) - (global $~lib/memory/__data_end i32 (i32.const 2564)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35332)) - (global $~lib/memory/__heap_base i32 (i32.const 35332)) + (global $~lib/rt/__rtti_base i32 (i32.const 560)) + (global $~lib/memory/__data_end i32 (i32.const 596)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33364)) + (global $~lib/memory/__heap_base i32 (i32.const 33364)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00") - (data $20 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00x\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2528) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00") + (data $9 (i32.const 492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00x\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00y\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 560) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -621,7 +181,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -691,7 +251,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -708,7 +268,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -738,9 +298,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -807,7 +367,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -959,7 +519,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -979,7 +539,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1042,7 +602,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1195,7 +755,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1212,7 +772,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1301,7 +861,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1344,7 +904,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1362,7 +922,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1430,7 +990,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1547,7 +1107,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1593,7 +1153,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1625,7 +1185,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1869,7 +1429,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2089,7 +1649,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2200,8 +1760,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2303,7 +1863,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2374,7 +1934,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2531,7 +2091,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2646,7 +2206,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2666,7 +2226,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2714,8 +2274,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -3042,6 +2602,19 @@ local.get $y i32.store offset=4 ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -3162,20 +2735,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35360 - i32.const 35408 + i32.const 33392 + i32.const 33440 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3184,196 +2753,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $std/operator-overloading/Tester#constructor (param $this i32) (param $x i32) (param $y i32) (result i32) (local $3 i32) @@ -4865,7 +4265,7 @@ local.get $3 i32.store local.get $3 - i32.const 2480 + i32.const 512 call $~lib/string/String.__eq if local.get $this @@ -4907,7 +4307,7 @@ local.get $2 i32.store local.get $2 - i32.const 2480 + i32.const 512 call $~lib/string/String.__eq if (result i32) local.get $this @@ -4962,13 +4362,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -5020,7 +4420,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 145 i32.const 1 call $~lib/builtins/abort @@ -5075,7 +4475,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -5130,7 +4530,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 157 i32.const 1 call $~lib/builtins/abort @@ -5185,7 +4585,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -5240,7 +4640,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 169 i32.const 1 call $~lib/builtins/abort @@ -5295,7 +4695,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 175 i32.const 1 call $~lib/builtins/abort @@ -5350,7 +4750,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 181 i32.const 1 call $~lib/builtins/abort @@ -5405,7 +4805,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 187 i32.const 1 call $~lib/builtins/abort @@ -5460,7 +4860,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 193 i32.const 1 call $~lib/builtins/abort @@ -5496,7 +4896,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 199 i32.const 1 call $~lib/builtins/abort @@ -5532,7 +4932,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 205 i32.const 1 call $~lib/builtins/abort @@ -5558,7 +4958,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 209 i32.const 1 call $~lib/builtins/abort @@ -5584,7 +4984,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 213 i32.const 1 call $~lib/builtins/abort @@ -5620,7 +5020,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 219 i32.const 1 call $~lib/builtins/abort @@ -5656,7 +5056,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 225 i32.const 1 call $~lib/builtins/abort @@ -5692,7 +5092,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 231 i32.const 1 call $~lib/builtins/abort @@ -5728,7 +5128,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 237 i32.const 1 call $~lib/builtins/abort @@ -5773,7 +5173,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 242 i32.const 1 call $~lib/builtins/abort @@ -5818,7 +5218,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 247 i32.const 1 call $~lib/builtins/abort @@ -5863,7 +5263,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 252 i32.const 1 call $~lib/builtins/abort @@ -5919,7 +5319,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 257 i32.const 1 call $~lib/builtins/abort @@ -5979,7 +5379,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 262 i32.const 1 call $~lib/builtins/abort @@ -6039,7 +5439,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 267 i32.const 1 call $~lib/builtins/abort @@ -6083,7 +5483,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 272 i32.const 1 call $~lib/builtins/abort @@ -6095,7 +5495,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 273 i32.const 1 call $~lib/builtins/abort @@ -6139,7 +5539,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 279 i32.const 1 call $~lib/builtins/abort @@ -6178,7 +5578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 282 i32.const 1 call $~lib/builtins/abort @@ -6228,7 +5628,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 287 i32.const 1 call $~lib/builtins/abort @@ -6259,7 +5659,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 288 i32.const 1 call $~lib/builtins/abort @@ -6304,7 +5704,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 291 i32.const 1 call $~lib/builtins/abort @@ -6335,7 +5735,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 292 i32.const 1 call $~lib/builtins/abort @@ -6448,7 +5848,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 312 i32.const 1 call $~lib/builtins/abort @@ -6561,7 +5961,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 332 i32.const 1 call $~lib/builtins/abort @@ -6578,7 +5978,7 @@ local.get $9 i32.store local.get $9 - i32.const 2480 + i32.const 512 i32.const -1 call $std/operator-overloading/TesterElementAccess#__set global.get $std/operator-overloading/tea @@ -6587,7 +5987,7 @@ local.get $9 i32.store local.get $9 - i32.const 2512 + i32.const 544 i32.const -2 call $std/operator-overloading/TesterElementAccess#__set global.get $std/operator-overloading/tea @@ -6602,7 +6002,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 360 i32.const 1 call $~lib/builtins/abort @@ -6614,14 +6014,14 @@ local.get $9 i32.store local.get $9 - i32.const 2480 + i32.const 512 call $std/operator-overloading/TesterElementAccess#__get i32.const -1 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 361 i32.const 1 call $~lib/builtins/abort @@ -6639,7 +6039,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 363 i32.const 1 call $~lib/builtins/abort @@ -6651,14 +6051,14 @@ local.get $9 i32.store local.get $9 - i32.const 2512 + i32.const 544 call $std/operator-overloading/TesterElementAccess#__get i32.const -2 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 364 i32.const 1 call $~lib/builtins/abort @@ -6670,14 +6070,14 @@ local.get $9 i32.store local.get $9 - i32.const 2480 + i32.const 512 global.get $std/operator-overloading/tea local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=4 local.get $9 - i32.const 2480 + i32.const 512 call $std/operator-overloading/TesterElementAccess#__get i32.const 1 i32.add @@ -6688,14 +6088,14 @@ local.get $9 i32.store local.get $9 - i32.const 2512 + i32.const 544 global.get $std/operator-overloading/tea local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=4 local.get $9 - i32.const 2512 + i32.const 544 call $std/operator-overloading/TesterElementAccess#__get i32.const 1 i32.sub @@ -6706,14 +6106,14 @@ local.get $9 i32.store local.get $9 - i32.const 2480 + i32.const 512 call $std/operator-overloading/TesterElementAccess#__get i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 369 i32.const 1 call $~lib/builtins/abort @@ -6725,14 +6125,14 @@ local.get $9 i32.store local.get $9 - i32.const 2512 + i32.const 544 call $std/operator-overloading/TesterElementAccess#__get i32.const -3 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 432 i32.const 370 i32.const 1 call $~lib/builtins/abort @@ -6743,153 +6143,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $std/operator-overloading/a1 @@ -7312,16 +6565,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 20f3517aa5..5cabd49c8c 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -2,12 +2,13 @@ (type $0 (func (param i32 i32) (result i32))) (type $1 (func)) (type $2 (func (param i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32))) + (type $5 (func (param i32 i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (type $8 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -85,246 +86,27 @@ (global $std/operator-overloading/aii2 (mut i32) (i32.const 0)) (global $std/operator-overloading/aii (mut i32) (i32.const 0)) (global $std/operator-overloading/tea (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36356)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34388)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "L") - (data $19.1 (i32.const 3416) "\02\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s") - (data $20 (i32.const 3484) "\1c") - (data $20.1 (i32.const 3496) "\02\00\00\00\02\00\00\00x") - (data $21 (i32.const 3516) "\1c") - (data $21.1 (i32.const 3528) "\02\00\00\00\02\00\00\00y") - (data $22 (i32.const 3552) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "L") + (data $8.1 (i32.const 1448) "\02\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s") + (data $9 (i32.const 1516) "\1c") + (data $9.1 (i32.const 1528) "\02\00\00\00\02\00\00\00x") + (data $10 (i32.const 1548) "\1c") + (data $10.1 (i32.const 1560) "\02\00\00\00\02\00\00\00y") + (data $11 (i32.const 1584) "\08\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 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3588 - i32.lt_s - if - i32.const 36384 - i32.const 36432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -348,7 +130,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -396,7 +178,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -405,7 +187,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$346 + block $__inlined_func$~lib/rt/itcms/Object#unlink$335 local.get $1 i32.load offset=4 i32.const -4 @@ -417,19 +199,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36356 + i32.const 34388 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$346 + br $__inlined_func$~lib/rt/itcms/Object#unlink$335 end local.get $1 i32.load offset=8 @@ -437,7 +219,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -466,13 +248,13 @@ i32.const 1 else local.get $0 - i32.const 3552 + i32.const 1584 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -480,7 +262,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3556 + i32.const 1588 i32.add i32.load i32.const 32 @@ -532,7 +314,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -546,7 +328,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -592,7 +374,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -675,7 +457,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -689,7 +471,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -750,7 +532,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -783,7 +565,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -798,7 +580,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -849,7 +631,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -921,7 +703,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -946,7 +728,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -973,7 +755,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1045,10 +827,10 @@ if unreachable end - i32.const 36368 + i32.const 34400 i32.const 0 i32.store - i32.const 37936 + i32.const 35968 i32.const 0 i32.store loop $for-loop|0 @@ -1059,7 +841,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36368 + i32.const 34400 i32.add i32.const 0 i32.store offset=4 @@ -1077,7 +859,7 @@ i32.add i32.const 2 i32.shl - i32.const 36368 + i32.const 34400 i32.add i32.const 0 i32.store offset=96 @@ -1095,14 +877,14 @@ br $for-loop|0 end end - i32.const 36368 - i32.const 37940 + i32.const 34400 + i32.const 35972 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36368 + i32.const 34400 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1187,7 +969,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36356 + i32.const 34388 i32.lt_u if local.get $0 @@ -1276,14 +1058,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36356 + i32.const 34388 i32.lt_u if local.get $0 @@ -1306,7 +1088,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36356 + i32.const 34388 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1335,7 +1117,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1365,85 +1147,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1451,11 +1166,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1471,7 +1182,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1493,35 +1204,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$68 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1531,9 +1230,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$68 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1556,86 +1255,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 + local.tee $1 + i32.const 4 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1651,8 +1295,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1660,136 +1304,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 8 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1797,14 +1424,13 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 - i32.const 0 + local.tee $0 + i64.const 0 + i64.store align=1 local.get $0 - memory.fill - local.get $1 ) (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1994,205 +1620,40 @@ (func $~start call $start:std/operator-overloading ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3588 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3588 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$351 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$351 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36384 - i32.const 36432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $std/operator-overloading/Tester#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2201,11 +1662,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2215,7 +1676,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 8 i32.const 4 call $~lib/rt/itcms/__new local.tee $2 @@ -2245,11 +1705,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2296,11 +1756,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2347,11 +1807,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2361,7 +1821,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 8 i32.const 5 call $~lib/rt/itcms/__new local.tee $2 @@ -2391,11 +1850,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2405,7 +1864,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 8 i32.const 6 call $~lib/rt/itcms/__new local.tee $2 @@ -2439,11 +1897,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2453,7 +1911,7 @@ i64.const 0 i64.store local.get $0 - i32.const 3504 + i32.const 1536 i32.eq if global.get $~lib/memory/__stack_pointer @@ -2478,10 +1936,10 @@ i32.shr_u local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1536 i32.store local.get $2 - i32.const 3500 + i32.const 1532 i32.load i32.const 1 i32.shr_u @@ -2490,10 +1948,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 3504 + i32.const 1536 local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1536 i32.store offset=4 i32.const 1 local.get $0 @@ -2532,7 +1990,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$202 + block $__inlined_func$~lib/util/string/compareImpl$199 loop $while-continue|1 local.get $0 local.tee $2 @@ -2552,7 +2010,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$202 + br_if $__inlined_func$~lib/util/string/compareImpl$199 local.get $1 i32.const 2 i32.add @@ -2587,11 +2045,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2631,11 +2089,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2677,7 +2135,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2687,34 +2145,34 @@ memory.size i32.const 16 i32.shl - i32.const 36356 + i32.const 34388 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace i32.const 1 i32.const 2 @@ -2737,7 +2195,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2794,7 +2252,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 145 i32.const 1 call $~lib/builtins/abort @@ -2821,7 +2279,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2876,7 +2334,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -2903,7 +2361,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2960,7 +2418,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 157 i32.const 1 call $~lib/builtins/abort @@ -2987,7 +2445,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3044,7 +2502,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -3071,7 +2529,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3125,7 +2583,7 @@ end if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 169 i32.const 1 call $~lib/builtins/abort @@ -3152,7 +2610,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3209,7 +2667,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 175 i32.const 1 call $~lib/builtins/abort @@ -3236,7 +2694,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3293,7 +2751,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 181 i32.const 1 call $~lib/builtins/abort @@ -3320,7 +2778,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3377,7 +2835,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 187 i32.const 1 call $~lib/builtins/abort @@ -3404,7 +2862,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3461,7 +2919,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 193 i32.const 1 call $~lib/builtins/abort @@ -3492,7 +2950,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 199 i32.const 1 call $~lib/builtins/abort @@ -3521,7 +2979,7 @@ global.get $std/operator-overloading/eqf if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 205 i32.const 1 call $~lib/builtins/abort @@ -3542,7 +3000,7 @@ global.get $std/operator-overloading/eq if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 209 i32.const 1 call $~lib/builtins/abort @@ -3565,7 +3023,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 213 i32.const 1 call $~lib/builtins/abort @@ -3592,7 +3050,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3634,7 +3092,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 219 i32.const 1 call $~lib/builtins/abort @@ -3661,7 +3119,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3703,7 +3161,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 225 i32.const 1 call $~lib/builtins/abort @@ -3730,7 +3188,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3772,7 +3230,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 231 i32.const 1 call $~lib/builtins/abort @@ -3799,7 +3257,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3841,7 +3299,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 237 i32.const 1 call $~lib/builtins/abort @@ -3860,7 +3318,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3909,7 +3367,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 242 i32.const 1 call $~lib/builtins/abort @@ -3928,7 +3386,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3977,7 +3435,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 247 i32.const 1 call $~lib/builtins/abort @@ -3996,7 +3454,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4045,7 +3503,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 252 i32.const 1 call $~lib/builtins/abort @@ -4064,7 +3522,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4119,7 +3577,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 257 i32.const 1 call $~lib/builtins/abort @@ -4138,7 +3596,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4201,7 +3659,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 262 i32.const 1 call $~lib/builtins/abort @@ -4220,7 +3678,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4283,7 +3741,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 267 i32.const 1 call $~lib/builtins/abort @@ -4302,7 +3760,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4349,7 +3807,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 272 i32.const 1 call $~lib/builtins/abort @@ -4360,7 +3818,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 273 i32.const 1 call $~lib/builtins/abort @@ -4379,7 +3837,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4438,7 +3896,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 279 i32.const 1 call $~lib/builtins/abort @@ -4453,7 +3911,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4510,7 +3968,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 282 i32.const 1 call $~lib/builtins/abort @@ -4532,7 +3990,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4581,7 +4039,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 287 i32.const 1 call $~lib/builtins/abort @@ -4610,7 +4068,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 288 i32.const 1 call $~lib/builtins/abort @@ -4628,7 +4086,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4679,7 +4137,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 291 i32.const 1 call $~lib/builtins/abort @@ -4706,7 +4164,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 292 i32.const 1 call $~lib/builtins/abort @@ -4795,7 +4253,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 312 i32.const 1 call $~lib/builtins/abort @@ -4884,7 +4342,7 @@ i32.eqz if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 332 i32.const 1 call $~lib/builtins/abort @@ -4895,14 +4353,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3588 + i32.const 1620 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 8 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 @@ -4930,7 +4387,7 @@ local.tee $0 i32.store local.get $0 - i32.const 3504 + i32.const 1536 i32.const -1 call $std/operator-overloading/TesterElementAccess#__set global.get $~lib/memory/__stack_pointer @@ -4938,7 +4395,7 @@ local.tee $0 i32.store local.get $0 - i32.const 3536 + i32.const 1568 i32.const -2 call $std/operator-overloading/TesterElementAccess#__set global.get $~lib/memory/__stack_pointer @@ -4951,7 +4408,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 360 i32.const 1 call $~lib/builtins/abort @@ -4962,13 +4419,13 @@ local.tee $0 i32.store local.get $0 - i32.const 3504 + i32.const 1536 call $std/operator-overloading/TesterElementAccess#__get i32.const -1 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 361 i32.const 1 call $~lib/builtins/abort @@ -4984,7 +4441,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 363 i32.const 1 call $~lib/builtins/abort @@ -4995,13 +4452,13 @@ local.tee $0 i32.store local.get $0 - i32.const 3536 + i32.const 1568 call $std/operator-overloading/TesterElementAccess#__get i32.const -2 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 364 i32.const 1 call $~lib/builtins/abort @@ -5016,9 +4473,9 @@ local.tee $1 i32.store offset=4 local.get $0 - i32.const 3504 + i32.const 1536 local.get $1 - i32.const 3504 + i32.const 1536 call $std/operator-overloading/TesterElementAccess#__get i32.const 1 i32.add @@ -5032,9 +4489,9 @@ local.tee $1 i32.store offset=4 local.get $0 - i32.const 3536 + i32.const 1568 local.get $1 - i32.const 3536 + i32.const 1568 call $std/operator-overloading/TesterElementAccess#__get i32.const 1 i32.sub @@ -5044,11 +4501,11 @@ local.tee $0 i32.store local.get $0 - i32.const 3504 + i32.const 1536 call $std/operator-overloading/TesterElementAccess#__get if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 369 i32.const 1 call $~lib/builtins/abort @@ -5059,13 +4516,13 @@ local.tee $0 i32.store local.get $0 - i32.const 3536 + i32.const 1568 call $std/operator-overloading/TesterElementAccess#__get i32.const -3 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1456 i32.const 370 i32.const 1 call $~lib/builtins/abort @@ -5077,8 +4534,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36384 - i32.const 36432 + i32.const 34416 + i32.const 34464 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5446,13 +4903,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) diff --git a/tests/compiler/std/pointer.debug.wat b/tests/compiler/std/pointer.debug.wat index 7c0aadb84c..2b2eaa216b 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -1,2699 +1,25 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32))) + (type $3 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/pointer/one (mut i32) (i32.const 0)) (global $std/pointer/two (mut i32) (i32.const 0)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $std/pointer/add (mut i32) (i32.const 0)) (global $std/pointer/sub (mut i32) (i32.const 0)) (global $std/pointer/nextOne (mut i32) (i32.const 0)) (global $std/pointer/buf (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2452)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35220)) - (global $~lib/memory/__heap_base i32 (i32.const 35220)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s\00") - (data $20 (i32.const 2432) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $std/pointer/Entry#set:key (param $this i32) (param $key i32) local.get $this local.get $key @@ -2789,23 +115,6 @@ br $std/pointer/Pointer#constructor|inlined.1 end global.set $std/pointer/two - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace block $std/pointer/Pointer#get:offset|inlined.0 (result i32) global.get $std/pointer/one local.set $this|4 @@ -2817,7 +126,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 78 i32.const 1 call $~lib/builtins/abort @@ -2834,7 +143,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 79 i32.const 1 call $~lib/builtins/abort @@ -2874,7 +183,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 83 i32.const 1 call $~lib/builtins/abort @@ -2894,7 +203,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 84 i32.const 1 call $~lib/builtins/abort @@ -2922,7 +231,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 87 i32.const 1 call $~lib/builtins/abort @@ -2950,7 +259,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 90 i32.const 1 call $~lib/builtins/abort @@ -2967,7 +276,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 92 i32.const 1 call $~lib/builtins/abort @@ -2990,7 +299,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -3007,7 +316,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 95 i32.const 1 call $~lib/builtins/abort @@ -3024,7 +333,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 97 i32.const 1 call $~lib/builtins/abort @@ -3059,7 +368,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 100 i32.const 1 call $~lib/builtins/abort @@ -3079,7 +388,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 101 i32.const 1 call $~lib/builtins/abort @@ -3099,7 +408,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 102 i32.const 1 call $~lib/builtins/abort @@ -3150,7 +459,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 105 i32.const 1 call $~lib/builtins/abort @@ -3170,7 +479,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 106 i32.const 1 call $~lib/builtins/abort @@ -3190,7 +499,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 107 i32.const 1 call $~lib/builtins/abort @@ -3249,7 +558,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 113 i32.const 1 call $~lib/builtins/abort @@ -3273,7 +582,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 114 i32.const 1 call $~lib/builtins/abort @@ -3297,7 +606,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 116 i32.const 1 call $~lib/builtins/abort @@ -3321,7 +630,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 117 i32.const 1 call $~lib/builtins/abort @@ -3334,7 +643,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 119 i32.const 1 call $~lib/builtins/abort @@ -3347,7 +656,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -3384,7 +693,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 123 i32.const 1 call $~lib/builtins/abort @@ -3408,7 +717,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 124 i32.const 1 call $~lib/builtins/abort @@ -3421,7 +730,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 125 i32.const 1 call $~lib/builtins/abort @@ -3450,7 +759,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 128 i32.const 1 call $~lib/builtins/abort @@ -3463,7 +772,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 129 i32.const 1 call $~lib/builtins/abort @@ -3478,92 +787,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 32848 + i32.const 32896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3572,322 +805,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2240 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/std/pointer.release.wat b/tests/compiler/std/pointer.release.wat index 8e3c5d4382..50bf7379a8 100644 --- a/tests/compiler/std/pointer.release.wat +++ b/tests/compiler/std/pointer.release.wat @@ -1,1750 +1,19 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/pointer/one (mut i32) (i32.const 0)) (global $std/pointer/two (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/pointer/add (mut i32) (i32.const 0)) (global $std/pointer/sub (mut i32) (i32.const 0)) (global $std/pointer/nextOne (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36244)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s") - (data $20 (i32.const 3456) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~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 1216 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$127 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36244 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$127 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3456 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3460 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1488 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36256 - i32.const 0 - i32.store - i32.const 37824 - 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 36256 - 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 36256 - 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 36256 - i32.const 37828 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36256 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36244 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36244 - 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 - local.tee $0 - i32.const 36244 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3476 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $start:std/pointer (local $0 i32) (local $1 i32) @@ -1752,38 +21,6 @@ global.set $std/pointer/one i32.const 24 global.set $std/pointer/two - memory.size - i32.const 16 - i32.shl - i32.const 36244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace i32.const 8 i32.const 1 i32.store @@ -1796,9 +33,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 83 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1808,9 +44,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 84 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1823,9 +58,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 87 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1838,9 +72,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 90 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1849,9 +82,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 92 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1866,9 +98,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 94 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1877,9 +108,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 95 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1888,9 +118,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 97 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1907,9 +136,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 100 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1919,9 +147,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 101 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1931,9 +158,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 102 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1956,9 +182,8 @@ i32.eq if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 105 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1968,9 +193,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 106 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1980,9 +204,8 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 107 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1998,9 +221,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 113 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2010,9 +232,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 114 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2022,9 +243,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 116 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2034,9 +254,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 117 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2046,9 +265,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 119 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2058,9 +276,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 120 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2073,9 +290,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 123 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2085,9 +301,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 124 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2097,9 +312,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 125 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2112,9 +326,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 128 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2124,9 +337,8 @@ f32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 129 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -2134,228 +346,38 @@ (func $~start call $start:std/pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3476 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$132 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$132 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3476 + i32.const 1084 i32.lt_s if - i32.const 36272 - i32.const 36320 - i32.const 1 + i32.const 33872 + i32.const 33920 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index 574fe0bcd0..a7de555fad 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -7,36 +7,31 @@ (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32 i32) (result i32))) (type $7 (func (param i32 i64) (result i32))) - (type $8 (func (param i32 f32) (result i32))) - (type $9 (func (param i32 f64) (result i32))) - (type $10 (func (param i64) (result i32))) - (type $11 (func (param i32) (result i64))) - (type $12 (func (param i32 i64))) - (type $13 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 f32) (result i32))) + (type $10 (func (param i32 f64) (result i32))) + (type $11 (func (param i64) (result i32))) + (type $12 (func (param i32) (result i64))) + (type $13 (func (param i32 i64))) (type $14 (func (param i32 i64 i32) (result i32))) (type $15 (func (param i32 i32 i64))) (type $16 (func (param i32 i32) (result i64))) - (type $17 (func (param i32 i64 i32))) - (type $18 (func (param i64 i32) (result i32))) - (type $19 (func (param i32 i64 i32 i32))) - (type $20 (func (param i32 i32 i64) (result i32))) - (type $21 (func (result i32))) - (type $22 (func (param f32) (result i32))) - (type $23 (func (param i32) (result f32))) - (type $24 (func (param i32 f32))) - (type $25 (func (param f64) (result i32))) - (type $26 (func (param i32) (result f64))) - (type $27 (func (param i32 f64))) - (type $28 (func (param i32 f32 i32) (result i32))) - (type $29 (func (param i32 i32 f32))) - (type $30 (func (param i32 i32) (result f32))) - (type $31 (func (param i32 f64 i32) (result i32))) - (type $32 (func (param i32 i32 f64))) - (type $33 (func (param i32 i32) (result f64))) - (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)) + (type $17 (func (param i32 i32 i64) (result i32))) + (type $18 (func (result i32))) + (type $19 (func (param f32) (result i32))) + (type $20 (func (param i32) (result f32))) + (type $21 (func (param i32 f32))) + (type $22 (func (param f64) (result i32))) + (type $23 (func (param i32) (result f64))) + (type $24 (func (param i32 f64))) + (type $25 (func (param i32 f32 i32) (result i32))) + (type $26 (func (param i32 i32 f32))) + (type $27 (func (param i32 i32) (result f32))) + (type $28 (func (param i32 f64 i32) (result i32))) + (type $29 (func (param i32 i32 f64))) + (type $30 (func (param i32 i32) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -45,472 +40,36 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $~lib/rt/__rtti_base i32 (i32.const 2592)) - (global $~lib/memory/__data_end i32 (i32.const 2692)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35460)) - (global $~lib/memory/__heap_base i32 (i32.const 35460)) + (global $~lib/rt/__rtti_base i32 (i32.const 624)) + (global $~lib/memory/__data_end i32 (i32.const 724)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33492)) + (global $~lib/memory/__heap_base i32 (i32.const 33492)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $23 (i32.const 2592) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00H\08\00\00B\08\00\00H\00\00\00B\00\00\00\88\08\00\00\82\08\00\00\88\00\00\00\82\00\00\00\08\t\00\00\02\t\00\00\08\01\00\00\02\01\00\00\08\n\00\00\02\n\00\00\08\02\00\00\02\02\00\00\08\19\00\00\02\19\00\00\08\1a\00\00\02\1a\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $12 (i32.const 624) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00H\08\00\00B\08\00\00H\00\00\00B\00\00\00\88\08\00\00\82\08\00\00\88\00\00\00\82\00\00\00\08\t\00\00\02\t\00\00\08\01\00\00\02\01\00\00\08\n\00\00\02\n\00\00\08\02\00\00\02\02\00\00\08\19\00\00\02\19\00\00\08\1a\00\00\02\1a\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -575,7 +134,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -645,7 +204,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -662,7 +221,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -692,9 +251,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -761,7 +320,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -913,7 +472,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -933,7 +492,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -996,7 +555,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1149,7 +708,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1166,7 +725,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1255,7 +814,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1298,7 +857,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1316,7 +875,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1384,7 +943,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1501,7 +1060,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1547,7 +1106,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1579,7 +1138,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1823,7 +1382,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2043,7 +1602,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2154,8 +1713,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2257,7 +1816,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2328,7 +1887,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2485,7 +2044,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2600,7 +2159,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2620,7 +2179,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2668,8 +2227,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2729,7 +2288,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -4754,13 +4313,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $std/set/testNumeric @@ -4783,20 +4342,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35488 - i32.const 35536 + i32.const 33520 + i32.const 33568 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4805,196 +4360,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/set/Set#constructor (param $this i32) (result i32) (local $1 i32) @@ -5680,9 +5066,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -5793,8 +5179,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 + i32.const 432 + i32.const 592 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -5858,6 +5244,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -5896,9 +5286,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -6118,9 +5508,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -6407,7 +5797,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -6433,7 +5823,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -6458,7 +5848,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -6482,7 +5872,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -6508,7 +5898,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -6533,7 +5923,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -6585,7 +5975,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -6632,7 +6022,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -6656,7 +6046,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -6683,7 +6073,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -6708,7 +6098,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -6733,7 +6123,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -6759,7 +6149,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -6786,7 +6176,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -6811,7 +6201,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -6836,7 +6226,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -7533,9 +6923,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -7630,9 +7020,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -7852,9 +7242,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -8141,7 +7531,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -8167,7 +7557,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -8192,7 +7582,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -8216,7 +7606,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -8242,7 +7632,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -8267,7 +7657,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -8319,7 +7709,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -8366,7 +7756,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -8390,7 +7780,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -8417,7 +7807,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -8442,7 +7832,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -8467,7 +7857,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -8493,7 +7883,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -8520,7 +7910,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -8545,7 +7935,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -8570,7 +7960,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -9265,9 +8655,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -9362,9 +8752,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -9584,9 +8974,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -9873,7 +9263,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -9899,7 +9289,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -9924,7 +9314,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -9948,7 +9338,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -9974,7 +9364,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -9999,7 +9389,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -10051,7 +9441,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -10098,7 +9488,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -10122,7 +9512,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -10149,7 +9539,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -10174,7 +9564,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -10199,7 +9589,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -10225,7 +9615,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -10252,7 +9642,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -10277,7 +9667,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -10302,7 +9692,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -10999,9 +10389,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -11096,9 +10486,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -11318,9 +10708,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -11607,7 +10997,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -11633,7 +11023,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -11658,7 +11048,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -11682,7 +11072,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -11708,7 +11098,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -11733,7 +11123,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -11785,7 +11175,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -11832,7 +11222,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -11856,7 +11246,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -11883,7 +11273,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -11908,7 +11298,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -11933,7 +11323,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -11959,7 +11349,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -11986,7 +11376,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -12011,7 +11401,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -12036,7 +11426,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -12729,9 +12119,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -12826,9 +12216,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -13048,9 +12438,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -13337,7 +12727,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -13363,7 +12753,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -13388,7 +12778,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -13412,7 +12802,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -13438,7 +12828,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -13463,7 +12853,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -13515,7 +12905,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -13562,7 +12952,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -13586,7 +12976,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -13613,7 +13003,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -13638,7 +13028,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -13663,7 +13053,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -13689,7 +13079,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -13716,7 +13106,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -13741,7 +13131,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -13766,7 +13156,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -14459,9 +13849,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -14556,9 +13946,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -14778,9 +14168,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -15067,7 +14457,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -15093,7 +14483,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -15118,7 +14508,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -15142,7 +14532,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -15168,7 +14558,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -15193,7 +14583,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -15245,7 +14635,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -15292,7 +14682,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -15316,7 +14706,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -15343,7 +14733,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -15368,7 +14758,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -15393,7 +14783,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -15419,7 +14809,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -15446,7 +14836,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -15471,7 +14861,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -15496,7 +14886,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -16189,9 +15579,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -16286,9 +15676,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -16509,9 +15899,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -16798,7 +16188,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -16824,7 +16214,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -16849,7 +16239,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -16873,7 +16263,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -16899,7 +16289,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -16924,7 +16314,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -16976,7 +16366,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -17023,7 +16413,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -17047,7 +16437,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -17074,7 +16464,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -17099,7 +16489,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -17124,7 +16514,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -17150,7 +16540,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -17177,7 +16567,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -17202,7 +16592,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -17227,7 +16617,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -17920,9 +17310,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -18017,9 +17407,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -18240,9 +17630,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -18529,7 +17919,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -18555,7 +17945,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -18580,7 +17970,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -18604,7 +17994,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -18630,7 +18020,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -18655,7 +18045,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -18707,7 +18097,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -18754,7 +18144,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -18778,7 +18168,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -18805,7 +18195,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -18830,7 +18220,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -18855,7 +18245,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -18881,7 +18271,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -18908,7 +18298,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -18933,7 +18323,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -18958,7 +18348,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -19651,9 +19041,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -19748,9 +19138,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -19971,9 +19361,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -20260,7 +19650,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -20286,7 +19676,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -20311,7 +19701,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -20335,7 +19725,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -20361,7 +19751,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -20386,7 +19776,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -20438,7 +19828,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -20485,7 +19875,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -20509,7 +19899,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -20536,7 +19926,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -20561,7 +19951,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -20586,7 +19976,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -20612,7 +20002,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -20639,7 +20029,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -20664,7 +20054,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -20689,7 +20079,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -21382,9 +20772,9 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2560 - i32.const 70 + i32.const 432 + i32.const 592 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -21479,9 +20869,9 @@ i32.const 0 i32.lt_s if - i32.const 2192 - i32.const 2560 - i32.const 130 + i32.const 224 + i32.const 592 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -21702,9 +21092,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 2192 - i32.const 2560 - i32.const 114 + i32.const 224 + i32.const 592 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -21991,7 +21381,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -22017,7 +21407,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -22042,7 +21432,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -22066,7 +21456,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -22092,7 +21482,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -22117,7 +21507,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -22169,7 +21559,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -22216,7 +21606,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -22240,7 +21630,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -22267,7 +21657,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -22292,7 +21682,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -22317,7 +21707,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -22343,7 +21733,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -22370,7 +21760,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -22395,7 +21785,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -22420,7 +21810,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -22431,153 +21821,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) (local $buffer i32) (local $3 i32) @@ -22593,8 +21836,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 432 + i32.const 480 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -22621,19 +21864,13 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 432 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) @@ -23005,6 +22242,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23042,6 +22283,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -23069,6 +22314,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23106,6 +22355,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -23133,6 +22386,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23170,6 +22427,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -23197,6 +22458,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23234,6 +22499,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -23261,6 +22530,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23298,6 +22571,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -23325,6 +22602,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23362,6 +22643,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -23389,6 +22674,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23426,6 +22715,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -23453,6 +22746,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23490,6 +22787,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -23517,6 +22818,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23554,6 +22859,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -23581,6 +22890,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -23618,6 +22931,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index 7af7688ed2..ba7a4b0df9 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -3,13 +3,13 @@ (type $1 (func (param i32 i32) (result i32))) (type $2 (func)) (type $3 (func (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32))) + (type $4 (func (param i32))) + (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i32) (result i32))) (type $7 (func (param i32 i64))) - (type $8 (func (param i32 i32 i32))) - (type $9 (func (param i32 i32 i64))) - (type $10 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i32))) + (type $10 (func (param i32 i32 i64))) (type $11 (func (param i32 i64 i32) (result i32))) (type $12 (func (param i32 i64) (result i32))) (type $13 (func (param i32 i32) (result i64))) @@ -21,6 +21,7 @@ (type $19 (func (param i32 f64 i32) (result i32))) (type $20 (func (param i32 f64) (result i32))) (type $21 (func (param i32 i32) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -31,260 +32,37 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36484)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34516)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) "<") - (data $20.1 (i32.const 3464) "\02\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 $21 (i32.const 3516) ",") - (data $21.1 (i32.const 3528) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s") - (data $22 (i32.const 3564) ",") - (data $22.1 (i32.const 3576) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $23 (i32.const 3616) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00H\08\00\00B\08\00\00H\00\00\00B\00\00\00\88\08\00\00\82\08\00\00\88\00\00\00\82\00\00\00\08\t\00\00\02\t\00\00\08\01\00\00\02\01\00\00\08\n\00\00\02\n\00\00\08\02\00\00\02\02\00\00\08\19\00\00\02\19\00\00\08\1a\00\00\02\1a") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) ",") + (data $8.1 (i32.const 1448) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $9 (i32.const 1484) "<") + (data $9.1 (i32.const 1496) "\02\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 $10 (i32.const 1548) ",") + (data $10.1 (i32.const 1560) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s") + (data $11 (i32.const 1596) ",") + (data $11.1 (i32.const 1608) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $12 (i32.const 1648) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00H\08\00\00B\08\00\00H\00\00\00B\00\00\00\88\08\00\00\82\08\00\00\88\00\00\00\82\00\00\00\08\t\00\00\02\t\00\00\08\01\00\00\02\01\00\00\08\n\00\00\02\n\00\00\08\02\00\00\02\02\00\00\08\19\00\00\02\19\00\00\08\1a\00\00\02\1a") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3716 - i32.lt_s - if - i32.const 36512 - i32.const 36560 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 - call $~lib/rt/itcms/__visit - i32.const 3424 - call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 1456 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -305,7 +83,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -338,7 +116,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -347,7 +125,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$917 + block $__inlined_func$~lib/rt/itcms/Object#unlink$905 local.get $0 i32.load offset=4 i32.const -4 @@ -359,19 +137,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36484 + i32.const 34516 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$917 + br $__inlined_func$~lib/rt/itcms/Object#unlink$905 end local.get $0 i32.load offset=8 @@ -379,7 +157,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -408,13 +186,13 @@ i32.const 1 else local.get $1 - i32.const 3616 + i32.const 1648 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -422,7 +200,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3620 + i32.const 1652 i32.add i32.load i32.const 32 @@ -493,7 +271,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -507,7 +285,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -553,7 +331,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -636,7 +414,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -650,7 +428,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -711,7 +489,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -744,7 +522,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -759,7 +537,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -810,7 +588,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -882,7 +660,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -907,7 +685,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -934,7 +712,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1006,10 +784,10 @@ if unreachable end - i32.const 36496 + i32.const 34528 i32.const 0 i32.store - i32.const 38064 + i32.const 36096 i32.const 0 i32.store loop $for-loop|0 @@ -1020,7 +798,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36496 + i32.const 34528 i32.add i32.const 0 i32.store offset=4 @@ -1038,7 +816,7 @@ i32.add i32.const 2 i32.shl - i32.const 36496 + i32.const 34528 i32.add i32.const 0 i32.store offset=96 @@ -1056,14 +834,14 @@ br $for-loop|0 end end - i32.const 36496 - i32.const 38068 + i32.const 34528 + i32.const 36100 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36496 + i32.const 34528 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1148,7 +926,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36484 + i32.const 34516 i32.lt_u if local.get $0 @@ -1237,14 +1015,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36484 + i32.const 34516 i32.lt_u if local.get $0 @@ -1267,7 +1045,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36484 + i32.const 34516 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1296,7 +1074,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1380,7 +1158,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1432,7 +1210,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1464,8 +1242,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1056 + i32.const 1120 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1475,7 +1253,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1492,7 +1270,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1525,8 +1303,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1056 + i32.const 1392 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1628,7 +1406,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1643,7 +1421,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1662,7 +1440,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1777,7 +1555,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1825,34 +1603,34 @@ memory.size i32.const 16 i32.shl - i32.const 36484 + i32.const 34516 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $std/set/testNumeric call $std/set/testNumeric @@ -1898,205 +1676,40 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3716 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3716 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$923 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$923 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36512 - i32.const 36560 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) @@ -2106,11 +1719,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2195,11 +1808,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2270,11 +1883,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2338,11 +1951,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2523,11 +2136,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2699,11 +2312,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2730,11 +2343,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2760,8 +2373,8 @@ i32.shr_u i32.gt_u if - i32.const 3424 - i32.const 3584 + i32.const 1456 + i32.const 1616 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -2801,7 +2414,7 @@ select local.set $1 end - block $__inlined_func$~lib/rt/itcms/__renew$900 + block $__inlined_func$~lib/rt/itcms/__renew$888 local.get $4 i32.const 20 i32.sub @@ -2819,7 +2432,7 @@ i32.store offset=16 local.get $4 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$900 + br $__inlined_func$~lib/rt/itcms/__renew$888 end local.get $1 local.get $3 @@ -2867,11 +2480,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2892,9 +2505,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3584 - i32.const 130 + i32.const 1248 + i32.const 1616 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -2934,11 +2547,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2969,11 +2582,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2998,11 +2611,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3019,9 +2632,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3046,11 +2659,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3183,11 +2796,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3270,7 +2883,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3294,7 +2907,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -3315,7 +2928,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -3337,7 +2950,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -3359,7 +2972,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -3380,7 +2993,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -3402,7 +3015,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -3417,7 +3030,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3441,7 +3054,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3487,9 +3100,9 @@ i32.const 1073741820 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -3621,7 +3234,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -3660,7 +3273,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -3682,7 +3295,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -3702,7 +3315,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -3724,7 +3337,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -3745,7 +3358,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -3766,7 +3379,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -3786,7 +3399,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -3808,7 +3421,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -3826,7 +3439,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -3838,8 +3451,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3853,11 +3466,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3941,11 +3554,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4010,11 +3623,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4195,11 +3808,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4372,11 +3985,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4393,9 +4006,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -4420,11 +4033,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4566,7 +4179,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4590,7 +4203,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -4611,7 +4224,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -4633,7 +4246,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -4655,7 +4268,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -4676,7 +4289,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -4698,7 +4311,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -4713,7 +4326,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4737,7 +4350,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4783,9 +4396,9 @@ i32.const 1073741820 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -4917,7 +4530,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -4956,7 +4569,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -4978,7 +4591,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -4998,7 +4611,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -5020,7 +4633,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -5041,7 +4654,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -5062,7 +4675,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -5082,7 +4695,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -5104,7 +4717,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -5122,7 +4735,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -5134,8 +4747,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5149,11 +4762,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5238,11 +4851,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5313,11 +4926,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5381,11 +4994,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5566,11 +5179,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5743,11 +5356,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5768,9 +5381,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3584 - i32.const 130 + i32.const 1248 + i32.const 1616 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -5812,11 +5425,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5847,11 +5460,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5868,9 +5481,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -5897,11 +5510,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6042,7 +5655,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6066,7 +5679,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -6087,7 +5700,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -6109,7 +5722,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -6131,7 +5744,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -6152,7 +5765,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -6174,7 +5787,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -6189,7 +5802,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6213,7 +5826,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -6259,9 +5872,9 @@ i32.const 536870910 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -6395,7 +6008,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -6434,7 +6047,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -6456,7 +6069,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -6476,7 +6089,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -6498,7 +6111,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -6519,7 +6132,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -6540,7 +6153,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -6560,7 +6173,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -6582,7 +6195,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -6600,7 +6213,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -6612,8 +6225,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6627,11 +6240,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6715,11 +6328,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6784,11 +6397,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6969,11 +6582,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7146,11 +6759,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7167,9 +6780,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -7196,11 +6809,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7342,7 +6955,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7366,7 +6979,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -7387,7 +7000,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -7409,7 +7022,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -7431,7 +7044,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -7452,7 +7065,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -7474,7 +7087,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -7489,7 +7102,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7513,7 +7126,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -7559,9 +7172,9 @@ i32.const 536870910 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -7695,7 +7308,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -7734,7 +7347,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -7756,7 +7369,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -7776,7 +7389,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -7798,7 +7411,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -7819,7 +7432,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -7840,7 +7453,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -7860,7 +7473,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -7882,7 +7495,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -7900,7 +7513,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -7912,8 +7525,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7927,11 +7540,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8016,11 +7629,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8089,11 +7702,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8156,11 +7769,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8341,11 +7954,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8517,11 +8130,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8542,9 +8155,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3584 - i32.const 130 + i32.const 1248 + i32.const 1616 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -8586,11 +8199,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8621,11 +8234,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8642,9 +8255,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -8671,11 +8284,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8815,7 +8428,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8839,7 +8452,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -8860,7 +8473,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -8882,7 +8495,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -8904,7 +8517,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -8925,7 +8538,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -8947,7 +8560,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -8962,7 +8575,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -8986,7 +8599,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -9032,9 +8645,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -9168,7 +8781,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -9207,7 +8820,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -9229,7 +8842,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -9249,7 +8862,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -9271,7 +8884,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -9292,7 +8905,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -9313,7 +8926,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -9333,7 +8946,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -9355,7 +8968,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -9373,7 +8986,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -9385,8 +8998,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9400,11 +9013,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9489,11 +9102,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9562,11 +9175,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9629,11 +9242,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9814,11 +9427,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9989,11 +9602,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10010,9 +9623,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -10039,11 +9652,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10183,7 +9796,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10207,7 +9820,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -10228,7 +9841,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -10250,7 +9863,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -10272,7 +9885,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -10293,7 +9906,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -10315,7 +9928,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -10330,7 +9943,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10354,7 +9967,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -10400,9 +10013,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -10536,7 +10149,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -10575,7 +10188,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -10597,7 +10210,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -10617,7 +10230,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -10639,7 +10252,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -10660,7 +10273,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -10681,7 +10294,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -10701,7 +10314,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -10723,7 +10336,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -10741,7 +10354,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -10753,8 +10366,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10768,11 +10381,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10857,11 +10470,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10930,11 +10543,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11010,11 +10623,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11207,11 +10820,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11395,11 +11008,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11420,9 +11033,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3584 - i32.const 130 + i32.const 1248 + i32.const 1616 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -11464,11 +11077,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11500,11 +11113,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11521,9 +11134,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -11551,11 +11164,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11699,11 +11312,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11788,7 +11401,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -11812,7 +11425,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -11833,7 +11446,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -11855,7 +11468,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -11877,7 +11490,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -11898,7 +11511,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -11920,7 +11533,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -11935,7 +11548,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -11959,7 +11572,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -12005,9 +11618,9 @@ i32.const 134217727 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -12139,7 +11752,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -12178,7 +11791,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -12200,7 +11813,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -12220,7 +11833,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -12242,7 +11855,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -12263,7 +11876,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -12284,7 +11897,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -12304,7 +11917,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -12326,7 +11939,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -12344,7 +11957,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -12356,8 +11969,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12371,11 +11984,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12460,11 +12073,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12533,11 +12146,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12613,11 +12226,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12810,11 +12423,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12998,11 +12611,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13019,9 +12632,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -13049,11 +12662,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13207,7 +12820,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -13231,7 +12844,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -13252,7 +12865,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -13274,7 +12887,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -13296,7 +12909,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -13317,7 +12930,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -13339,7 +12952,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -13354,7 +12967,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -13378,7 +12991,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -13424,9 +13037,9 @@ i32.const 134217727 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -13558,7 +13171,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -13597,7 +13210,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -13619,7 +13232,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -13639,7 +13252,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -13661,7 +13274,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -13682,7 +13295,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -13703,7 +13316,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -13723,7 +13336,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -13745,7 +13358,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -13763,7 +13376,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -13775,8 +13388,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13790,11 +13403,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13879,11 +13492,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13952,11 +13565,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14021,11 +13634,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14207,11 +13820,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14391,7 +14004,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -14415,7 +14028,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -14461,9 +14074,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -14550,7 +14163,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -14568,9 +14181,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3584 - i32.const 130 + i32.const 1248 + i32.const 1616 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -14626,8 +14239,8 @@ local.get $6 return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14640,11 +14253,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14661,9 +14274,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -14691,11 +14304,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14832,11 +14445,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14863,7 +14476,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -14884,7 +14497,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -14906,7 +14519,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -14928,7 +14541,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -14949,7 +14562,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -14971,7 +14584,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -15012,7 +14625,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -15051,7 +14664,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -15073,7 +14686,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -15093,7 +14706,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -15115,7 +14728,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -15136,7 +14749,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -15157,7 +14770,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -15177,7 +14790,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -15199,7 +14812,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -15217,7 +14830,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -15236,11 +14849,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15325,11 +14938,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15399,11 +15012,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15482,11 +15095,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15682,11 +15295,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15879,7 +15492,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -15903,7 +15516,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -15949,9 +15562,9 @@ i32.const 134217727 i32.gt_u if - i32.const 3424 - i32.const 3584 - i32.const 70 + i32.const 1456 + i32.const 1616 + i32.const 72 i32.const 60 call $~lib/builtins/abort unreachable @@ -16038,7 +15651,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -16056,9 +15669,9 @@ i32.const 0 i32.lt_s if - i32.const 3216 - i32.const 3584 - i32.const 130 + i32.const 1248 + i32.const 1616 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -16114,8 +15727,8 @@ local.get $6 return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16128,11 +15741,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16149,9 +15762,9 @@ i32.load offset=12 i32.ge_u if - i32.const 3216 - i32.const 3584 - i32.const 114 + i32.const 1248 + i32.const 1616 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -16180,11 +15793,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16334,11 +15947,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16365,7 +15978,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 6 i32.const 5 call $~lib/builtins/abort @@ -16386,7 +15999,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 8 i32.const 5 call $~lib/builtins/abort @@ -16408,7 +16021,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -16430,7 +16043,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 14 i32.const 5 call $~lib/builtins/abort @@ -16451,7 +16064,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 16 i32.const 5 call $~lib/builtins/abort @@ -16473,7 +16086,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -16514,7 +16127,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 24 i32.const 5 call $~lib/builtins/abort @@ -16553,7 +16166,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -16575,7 +16188,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 31 i32.const 5 call $~lib/builtins/abort @@ -16595,7 +16208,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 5 call $~lib/builtins/abort @@ -16617,7 +16230,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -16638,7 +16251,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 5 call $~lib/builtins/abort @@ -16659,7 +16272,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 41 i32.const 5 call $~lib/builtins/abort @@ -16679,7 +16292,7 @@ call $~lib/set/Set#has if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 5 call $~lib/builtins/abort @@ -16701,7 +16314,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -16719,7 +16332,7 @@ call $~lib/set/Set#get:size if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -16736,11 +16349,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s if - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16753,8 +16366,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3424 - i32.const 3472 + i32.const 1456 + i32.const 1504 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -16805,7 +16418,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -16834,7 +16447,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3716 + i32.const 1748 i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer @@ -16852,8 +16465,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36512 - i32.const 36560 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index f600cd6a54..9f70d469e4 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -1,22 +1,20 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64) (result i32))) (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32) (result i64))) - (type $13 (func (param i32 i32 i64))) - (type $14 (func (param i32 i32) (result f32))) - (type $15 (func (param i32 i32 f32))) - (type $16 (func (param i32 i32) (result f64))) - (type $17 (func (param i32 i32 f64))) + (type $9 (func (param i32 i32) (result i64))) + (type $10 (func (param i32 i32 i64))) + (type $11 (func (param i32 i32) (result f32))) + (type $12 (func (param i32 i32 f32))) + (type $13 (func (param i32 i32) (result f64))) + (type $14 (func (param i32 i32 f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/static-array/i i32 (i32.const 64)) (global $std/static-array/I i32 (i32.const 160)) (global $std/static-array/f i32 (i32.const 240)) @@ -24,6 +22,8 @@ (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -35,12 +35,11 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 2896)) - (global $~lib/memory/__data_end i32 (i32.const 2932)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35700)) - (global $~lib/memory/__heap_base i32 (i32.const 35700)) + (global $~lib/rt/__rtti_base i32 (i32.const 928)) + (global $~lib/memory/__data_end i32 (i32.const 964)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33732)) + (global $~lib/memory/__heap_base i32 (i32.const 33732)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00 \00\00\00 \00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") @@ -50,29 +49,18 @@ (data $5 (i32.const 220) ",\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\10\00\00\00\d0\00\00\00\d0\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $6 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\00\00\f4?\00\00\00\00\00\00\02@\00\00\00\00\00\00\00\00\00\00\00\00") (data $7 (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\10\00\00\00 \01\00\00 \01\00\00\10\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $9 (i32.const 396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $10 (i32.const 428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 592) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 624) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 716) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 768) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 796) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 892) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 1020) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $22 (i32.const 1084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 1116) "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 $24 (i32.const 1516) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $25 (i32.const 2572) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $26 (i32.const 2668) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2732) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00-\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") - (data $28 (i32.const 2796) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $29 (i32.const 2844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $30 (i32.const 2896) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\n\00\00\02\19\00\00\02\1a\00\00") + (data $8 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00-\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") + (data $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $11 (i32.const 540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $12 (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 720) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 752) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 780) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 832) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 860) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 928) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\n\00\00\02\19\00\00\02\1a\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -81,18 +69,30 @@ local.get $this i32.load offset=12 ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) local.get $this - i32.load offset=16 + i32.load offset=4 ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + i32.load offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -158,7 +158,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 672 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -228,7 +228,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 672 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -245,7 +245,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 672 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -258,10 +258,6 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) local.get $this i32.load @@ -275,9 +271,9 @@ i32.load i32.gt_u if - i32.const 672 - i32.const 736 - i32.const 21 + i32.const 448 + i32.const 800 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -344,7 +340,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 544 + i32.const 672 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -415,10 +411,6 @@ end end ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) i32.const 4 local.get $this @@ -496,7 +488,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -516,7 +508,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -579,7 +571,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -732,7 +724,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -749,7 +741,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -838,7 +830,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -881,7 +873,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -899,7 +891,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -967,7 +959,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1084,7 +1076,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1130,7 +1122,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1162,7 +1154,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1406,7 +1398,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1626,7 +1618,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 672 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1737,8 +1729,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 480 - i32.const 816 + i32.const 608 + i32.const 880 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1840,7 +1832,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1911,7 +1903,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2068,7 +2060,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2183,7 +2175,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2203,7 +2195,7 @@ i32.eqz if i32.const 0 - i32.const 816 + i32.const 880 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2239,11 +2231,6 @@ local.get $rtId i32.store offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) (local $obj i32) (local $ptr i32) @@ -2251,8 +2238,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 480 - i32.const 544 + i32.const 608 + i32.const 672 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2297,434 +2284,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 1116 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 1116 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 1116 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 1116 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1536 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1536 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2592 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2592 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) local.get $this i32.load offset=16 @@ -2790,7 +2349,7 @@ i32.eqz if i32.const 0 - i32.const 544 + i32.const 672 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2895,8 +2454,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35728 - i32.const 35776 + i32.const 33760 + i32.const 33808 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2928,12 +2487,8 @@ local.get $1 return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2942,196 +2497,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 448 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 384 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 416 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 880 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 880 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2688 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3154,9 +2540,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 672 - i32.const 2816 - i32.const 114 + i32.const 448 + i32.const 512 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3225,8 +2611,8 @@ i32.shr_u i32.gt_u if - i32.const 2864 - i32.const 2816 + i32.const 560 + i32.const 512 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -3290,6 +2676,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -3328,9 +2718,9 @@ i32.const 0 i32.lt_s if - i32.const 672 - i32.const 2816 - i32.const 130 + i32.const 448 + i32.const 512 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3420,9 +2810,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 672 - i32.const 2816 - i32.const 114 + i32.const 448 + i32.const 512 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3475,9 +2865,9 @@ i32.const 0 i32.lt_s if - i32.const 672 - i32.const 2816 - i32.const 130 + i32.const 448 + i32.const 512 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3567,9 +2957,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 672 - i32.const 2816 - i32.const 114 + i32.const 448 + i32.const 512 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3622,9 +3012,9 @@ i32.const 0 i32.lt_s if - i32.const 672 - i32.const 2816 - i32.const 130 + i32.const 448 + i32.const 512 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3714,9 +3104,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 672 - i32.const 2816 - i32.const 114 + i32.const 448 + i32.const 512 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -3769,9 +3159,9 @@ i32.const 0 i32.lt_s if - i32.const 672 - i32.const 2816 - i32.const 130 + i32.const 448 + i32.const 512 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -3828,23 +3218,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - 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 592 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 624 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 768 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $std/static-array/i local.set $4 global.get $~lib/memory/__stack_pointer @@ -3857,7 +3230,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -3876,7 +3249,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 7 i32.const 1 call $~lib/builtins/abort @@ -3895,12 +3268,29 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 8 i32.const 1 call $~lib/builtins/abort unreachable end + 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 720 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 752 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 832 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace global.get $std/static-array/i local.set $4 global.get $~lib/memory/__stack_pointer @@ -3923,7 +3313,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -3941,7 +3331,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -3960,7 +3350,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -3979,7 +3369,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -4007,7 +3397,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -4025,7 +3415,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -4044,7 +3434,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -4063,7 +3453,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -4091,7 +3481,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -4109,7 +3499,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -4128,7 +3518,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -4147,7 +3537,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -4175,7 +3565,7 @@ i32.eqz if i32.const 0 - i32.const 2752 + i32.const 384 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -4186,153 +3576,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 912 - i32.const 1040 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 1104 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $std/static-array/i @@ -4363,19 +3606,13 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 672 + i32.const 448 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 560 local.get $0 call $~lib/rt/itcms/__visit - i32.const 480 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1536 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2592 + i32.const 608 local.get $0 call $~lib/rt/itcms/__visit ) @@ -4498,6 +3735,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -4524,6 +3765,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -4550,6 +3795,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -4576,6 +3825,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index 8dfe6fc24a..a84b5a1e7d 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -2,14 +2,15 @@ (type $0 (func)) (type $1 (func (param i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32) (result i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32) (result i32))) (type $8 (func (param i32) (result i64))) (type $9 (func (param i32) (result f32))) (type $10 (func (param i32) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -20,7 +21,7 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36724)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34756)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\01\00\00\00\08\00\00\00\01\00\00\00\02") @@ -39,44 +40,23 @@ (data $6.2 (i32.const 1318) "\f4?\00\00\00\00\00\00\02@") (data $7 (i32.const 1340) ",") (data $7.1 (i32.const 1352) "\07\00\00\00\10\00\00\00 \05\00\00 \05\00\00\10\00\00\00\02") - (data $8 (i32.const 1388) "\1c") - (data $8.1 (i32.const 1400) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $9 (i32.const 1420) "\1c") - (data $9.1 (i32.const 1432) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $10 (i32.const 1452) "\1c") - (data $10.1 (i32.const 1464) "\02") - (data $11 (i32.const 1484) "<") - (data $11.1 (i32.const 1496) "\02\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 $12 (i32.const 1548) "<") - (data $12.1 (i32.const 1560) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 1676) "<") - (data $15.1 (i32.const 1688) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 1740) ",") - (data $16.1 (i32.const 1752) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 1820) "<") - (data $18.1 (i32.const 1832) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 1884) "\1c") - (data $19.1 (i32.const 1896) "\02\00\00\00\02\00\00\00:") - (data $20 (i32.const 1916) "|") - (data $20.1 (i32.const 1928) "\02\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 $21 (i32.const 2044) "<") - (data $21.1 (i32.const 2056) "\02\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 $22 (i32.const 2108) "\1c") - (data $22.1 (i32.const 2120) "\02\00\00\00\02\00\00\000") - (data $23 (i32.const 2140) "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 $24 (i32.const 2540) "\1c\04") - (data $24.1 (i32.const 2552) "\02\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 $25 (i32.const 3596) "\\") - (data $25.1 (i32.const 3608) "\02\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 $26 (i32.const 3692) "<") - (data $26.1 (i32.const 3704) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $27 (i32.const 3756) "<") - (data $27.1 (i32.const 3768) "\02\00\00\00&\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00-\00a\00r\00r\00a\00y\00.\00t\00s") - (data $28 (i32.const 3820) ",") - (data $28.1 (i32.const 3832) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $29 (i32.const 3868) ",") - (data $29.1 (i32.const 3880) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $30 (i32.const 3920) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\n\00\00\02\19\00\00\02\1a") + (data $8 (i32.const 1388) "<") + (data $8.1 (i32.const 1400) "\02\00\00\00&\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00-\00a\00r\00r\00a\00y\00.\00t\00s") + (data $9 (i32.const 1452) "<") + (data $9.1 (i32.const 1464) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $10 (i32.const 1516) ",") + (data $10.1 (i32.const 1528) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $11 (i32.const 1564) ",") + (data $11.1 (i32.const 1576) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $12 (i32.const 1612) "<") + (data $12.1 (i32.const 1624) "\02\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 $13 (i32.const 1676) "<") + (data $13.1 (i32.const 1688) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $16 (i32.const 1804) ",") + (data $16.1 (i32.const 1816) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $18 (i32.const 1884) "<") + (data $18.1 (i32.const 1896) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $19 (i32.const 1952) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\n\00\00\02\19\00\00\02\1a") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots @@ -90,15 +70,11 @@ call $~lib/rt/itcms/__visit i32.const 1360 call $~lib/rt/itcms/__visit - i32.const 1696 + i32.const 1472 call $~lib/rt/itcms/__visit - i32.const 3888 + i32.const 1584 call $~lib/rt/itcms/__visit - i32.const 1504 - call $~lib/rt/itcms/__visit - i32.const 2560 - call $~lib/rt/itcms/__visit - i32.const 3616 + i32.const 1632 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -119,7 +95,7 @@ i32.ne if i32.const 0 - i32.const 1568 + i32.const 1696 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -152,7 +128,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1696 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -161,7 +137,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$168 + block $__inlined_func$~lib/rt/itcms/Object#unlink$156 local.get $0 i32.load offset=4 i32.const -4 @@ -173,19 +149,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 36724 + i32.const 34756 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1696 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$168 + br $__inlined_func$~lib/rt/itcms/Object#unlink$156 end local.get $0 i32.load offset=8 @@ -193,7 +169,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1696 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -222,13 +198,13 @@ i32.const 1 else local.get $1 - i32.const 3920 + i32.const 1952 i32.load i32.gt_u if - i32.const 1696 - i32.const 1760 - i32.const 21 + i32.const 1472 + i32.const 1824 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -236,7 +212,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 3924 + i32.const 1956 i32.add i32.load i32.const 32 @@ -307,7 +283,7 @@ i32.eqz if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -321,7 +297,7 @@ i32.lt_u if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -367,7 +343,7 @@ i32.eqz if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -450,7 +426,7 @@ i32.eqz if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -464,7 +440,7 @@ i32.eqz if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -525,7 +501,7 @@ i32.eqz if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -558,7 +534,7 @@ i32.lt_u if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -573,7 +549,7 @@ i32.ne if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -624,7 +600,7 @@ i32.eqz if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -696,7 +672,7 @@ i64.lt_u if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -721,7 +697,7 @@ i32.gt_u if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -748,7 +724,7 @@ i32.gt_u if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -820,10 +796,10 @@ if unreachable end - i32.const 36736 + i32.const 34768 i32.const 0 i32.store - i32.const 38304 + i32.const 36336 i32.const 0 i32.store loop $for-loop|0 @@ -834,7 +810,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36736 + i32.const 34768 i32.add i32.const 0 i32.store offset=4 @@ -852,7 +828,7 @@ i32.add i32.const 2 i32.shl - i32.const 36736 + i32.const 34768 i32.add i32.const 0 i32.store offset=96 @@ -870,14 +846,14 @@ br $for-loop|0 end end - i32.const 36736 - i32.const 38308 + i32.const 34768 + i32.const 36340 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36736 + i32.const 34768 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -962,7 +938,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36724 + i32.const 34756 i32.lt_u if local.get $0 @@ -1051,14 +1027,14 @@ i32.ne if i32.const 0 - i32.const 1568 + i32.const 1696 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36724 + i32.const 34756 i32.lt_u if local.get $0 @@ -1081,7 +1057,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36724 + i32.const 34756 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1110,7 +1086,7 @@ end if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1194,7 +1170,7 @@ i32.eqz if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1246,7 +1222,7 @@ i32.eqz if i32.const 0 - i32.const 1840 + i32.const 1904 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1268,814 +1244,143 @@ end end ) - (func $~lib/rt/itcms/__new (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 - i32.const 1073741804 - i32.ge_u + (func $~start + call $start:std/static-array + ) + (func $~lib/array/Array#get:length (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 1988 + i32.lt_s if - i32.const 1504 - i32.const 1568 - i32.const 261 - i32.const 31 + i32.const 34784 + i32.const 34832 + i32.const 1 + i32.const 1 call $~lib/builtins/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$70 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 1988 + i32.lt_s if - i32.const 1504 - i32.const 1840 - i32.const 461 - i32.const 29 + i32.const 34784 + i32.const 34832 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (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 1988 + i32.lt_s if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1840 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const 34784 + i32.const 34832 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $5 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + local.get $0 + i32.const 1100 i32.load - i32.const -4 - i32.and - i32.gt_u + i32.ge_u if - i32.const 0 - i32.const 1840 - i32.const 501 - i32.const 14 + i32.const 1472 + i32.const 1536 + i32.const 116 + i32.const 42 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 1092 i32.load - local.set $6 - local.get $5 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.const 15 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/ensureCapacity (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) + 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 1988 + i32.lt_s if - i32.const 0 - i32.const 1840 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $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/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3956 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2128 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 2140 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 2140 - 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 2140 - 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 2140 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~start - call $start:std/static-array - ) - (func $~lib/array/Array#get:length (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 3956 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3956 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3956 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$173 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1472 - local.set $0 - br $__inlined_func$~lib/string/String#concat$173 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3956 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1408 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1440 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1904 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1904 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3712 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__get (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 3956 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - local.get $0 - i32.const 1100 - i32.load - i32.ge_u - if - i32.const 1696 - i32.const 3840 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 1092 - i32.load - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $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 3956 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 + i32.const 34784 + i32.const 34832 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end @@ -2097,8 +1402,8 @@ i32.shr_u i32.eqz if - i32.const 3888 - i32.const 3840 + i32.const 1584 + i32.const 1536 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -2107,7 +1412,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$155 + block $__inlined_func$~lib/rt/itcms/__renew$143 i32.const 1073741820 local.get $2 i32.const 1 @@ -2145,13 +1450,317 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$155 + br $__inlined_func$~lib/rt/itcms/__renew$143 end - local.get $3 local.get $4 i32.load offset=12 - call $~lib/rt/itcms/__new + local.set $6 + local.get $3 + i32.const 1073741804 + i32.ge_u + if + i32.const 1632 + i32.const 1696 + i32.const 261 + i32.const 31 + call $~lib/builtins/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$69 + i32.const 2048 + local.set $1 + loop $do-loop|0 + local.get $1 + call $~lib/rt/itcms/step + i32.sub + local.set $1 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + 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.set $7 + local.get $3 + i32.const 16 + i32.add + local.tee $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1632 + i32.const 1904 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $1 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $8 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + memory.size + local.tee $1 + local.get $8 + i32.const 256 + i32.ge_u + if (result i32) + local.get $8 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $8 + i32.const 1 + i32.const 27 + local.get $8 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $8 + end + else + local.get $8 + end + i32.const 4 + local.get $7 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $5 + local.get $1 + local.get $5 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $5 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $7 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $7 + local.get $8 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1904 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $8 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1904 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $9 + local.get $8 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1904 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const -4 + i32.and + local.get $8 + i32.sub + local.tee $5 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $8 + local.get $9 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $8 + i32.add + local.tee $8 + local.get $5 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $7 + local.get $8 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $9 + 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 $5 + local.get $5 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $6 + i32.store offset=12 + local.get $1 + local.get $3 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $5 + i32.load offset=8 + local.set $6 + local.get $1 + local.get $5 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $6 + i32.store offset=8 + local.get $6 + local.get $1 + local.get $6 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $5 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $1 + i32.const 20 + i32.add local.tee $1 + i32.const 0 + local.get $3 + memory.fill + local.get $1 local.get $2 local.get $3 local.get $4 @@ -2179,7 +1788,7 @@ i32.eqz if i32.const 0 - i32.const 1568 + i32.const 1696 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2240,11 +1849,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3956 + i32.const 1988 i32.lt_s if - i32.const 36752 - i32.const 36800 + i32.const 34784 + i32.const 34832 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2261,9 +1870,9 @@ i32.load i32.ge_u if - i32.const 1696 - i32.const 3840 - i32.const 114 + i32.const 1472 + i32.const 1536 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2290,11 +1899,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3956 + i32.const 1988 i32.lt_s if - i32.const 36752 - i32.const 36800 + i32.const 34784 + i32.const 34832 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2311,9 +1920,9 @@ i32.load i32.ge_u if - i32.const 1696 - i32.const 3840 - i32.const 114 + i32.const 1472 + i32.const 1536 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2340,11 +1949,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3956 + i32.const 1988 i32.lt_s if - i32.const 36752 - i32.const 36800 + i32.const 34784 + i32.const 34832 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2361,9 +1970,9 @@ i32.load i32.ge_u if - i32.const 1696 - i32.const 3840 - i32.const 114 + i32.const 1472 + i32.const 1536 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2390,44 +1999,12 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3956 + i32.const 1988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - memory.size - i32.const 16 - i32.shl - i32.const 36724 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1620 - i32.const 1616 - i32.store - i32.const 1624 - i32.const 1616 - i32.store - i32.const 1616 - global.set $~lib/rt/itcms/pinSpace - i32.const 1652 - i32.const 1648 - i32.store - i32.const 1656 - i32.const 1648 - i32.store - i32.const 1648 - global.set $~lib/rt/itcms/toSpace - i32.const 1796 - i32.const 1792 - i32.store - i32.const 1800 - i32.const 1792 - i32.store - i32.const 1792 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store @@ -2437,7 +2014,7 @@ i32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -2452,7 +2029,7 @@ i32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 7 i32.const 1 call $~lib/builtins/abort @@ -2467,12 +2044,44 @@ i32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 8 i32.const 1 call $~lib/builtins/abort unreachable end + memory.size + i32.const 16 + i32.shl + i32.const 34756 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + i32.store + i32.const 1744 + global.set $~lib/rt/itcms/pinSpace + i32.const 1780 + i32.const 1776 + i32.store + i32.const 1784 + i32.const 1776 + i32.store + i32.const 1776 + global.set $~lib/rt/itcms/toSpace + i32.const 1860 + i32.const 1856 + i32.store + i32.const 1864 + i32.const 1856 + i32.store + i32.const 1856 + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store @@ -2481,7 +2090,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3956 + i32.const 1988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2524,7 +2133,7 @@ i32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -2539,7 +2148,7 @@ i32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -2554,7 +2163,7 @@ i64.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -2569,7 +2178,7 @@ i64.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -2583,7 +2192,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3956 + i32.const 1988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2626,7 +2235,7 @@ i64.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -2641,7 +2250,7 @@ i32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -2656,7 +2265,7 @@ f32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -2671,7 +2280,7 @@ f32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -2685,7 +2294,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3956 + i32.const 1988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2728,7 +2337,7 @@ f32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -2743,7 +2352,7 @@ i32.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -2758,7 +2367,7 @@ f64.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -2773,7 +2382,7 @@ f64.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -2787,7 +2396,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3956 + i32.const 1988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2830,7 +2439,7 @@ f64.ne if i32.const 0 - i32.const 3776 + i32.const 1408 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -2842,8 +2451,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36752 - i32.const 36800 + i32.const 34784 + i32.const 34832 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2880,11 +2489,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3956 + i32.const 1988 i32.lt_s if - i32.const 36752 - i32.const 36800 + i32.const 34784 + i32.const 34832 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index 507448c1a1..cddaccc73c 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -3,25 +3,26 @@ (type $1 (func (param i32 i32))) (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32 i32 i32) (result i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func (param i32 i32 i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32))) (type $7 (func)) - (type $8 (func (result i32))) - (type $9 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $10 (func (param i32 i32 i32 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $11 (func (param i32 i32 i32 i32 i32))) (type $12 (func (param i32 i32 i64) (result i32))) - (type $13 (func (param i32 i64 i32))) - (type $14 (func (param i64 i32) (result i32))) - (type $15 (func (param i32 i64 i32 i32))) - (type $16 (func (param i32 i32 i32 i32 i32 i32))) - (type $17 (func (param i32 f64 i32) (result i32))) - (type $18 (func (param i32 f32 i32) (result i32))) + (type $13 (func (param i32 i32 i32 i32 i32 i32))) + (type $14 (func (param i32 f64 i32) (result i32))) + (type $15 (func (param i32 f32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/staticarray/arr1 i32 (i32.const 32)) (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $std/staticarray/arr2 i32 (i32.const 256)) (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)) @@ -33,103 +34,92 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $std/staticarray/arr2 i32 (i32.const 2560)) (global $std/staticarray/arr3 (mut i32) (i32.const 0)) - (global $std/staticarray/arr4 (mut i32) (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) + (global $std/staticarray/arr4 (mut i32) (i32.const 0)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $std/staticarray/maxVal (mut i32) (i32.const 0)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) - (global $~lib/rt/__rtti_base i32 (i32.const 4800)) - (global $~lib/memory/__data_end i32 (i32.const 4872)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37640)) - (global $~lib/memory/__heap_base i32 (i32.const 37640)) + (global $~lib/rt/__rtti_base i32 (i32.const 2864)) + (global $~lib/memory/__data_end i32 (i32.const 2936)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35704)) + (global $~lib/memory/__heap_base i32 (i32.const 35704)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") - (data $21 (i32.const 2476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data $23 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00") - (data $24 (i32.const 2604) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $25 (i32.const 2652) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\00\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05\00\00\00\00\00\00\00") - (data $26 (i32.const 2700) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $27 (i32.const 2748) "\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 $28 (i32.const 2780) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data $29 (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00P\0b\00\00p\0b\00\00\00\00\00\00") - (data $34 (i32.const 2972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\003\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 3004) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\04\00\00\00\b0\0b\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 3036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00n\00t\00\00\00\00\00\00\00") - (data $37 (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00b\00i\00s\00o\00n\00\00\00") - (data $38 (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00c\00a\00m\00e\00l\00\00\00") - (data $39 (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00d\00u\00c\00k\00\00\00\00\00") - (data $40 (i32.const 3164) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00e\00l\00e\00p\00h\00a\00n\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $41 (i32.const 3212) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\14\00\00\00\f0\0b\00\00\10\0c\00\000\0c\00\00P\0c\00\00p\0c\00\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 3260) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $43 (i32.const 3388) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\14\00\00\00\f0\0b\00\00\10\0c\00\000\0c\00\00P\0c\00\00p\0c\00\00\00\00\00\00\00\00\00\00") - (data $44 (i32.const 3436) "\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 $45 (i32.const 3468) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00f\00o\00o\00\00\00\00\00\00\00") - (data $46 (i32.const 3500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\a0\r\00\00\00\00\00\00\00\00\00\00") - (data $47 (i32.const 3532) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\14\00\00\00\f0\0b\00\00\10\0c\00\000\0c\00\00P\0c\00\00p\0c\00\00\00\00\00\00\00\00\00\00") - (data $48 (i32.const 3580) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00") - (data $49 (i32.const 3612) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\04\00\00\00\00\00\c0\7f\00\00\00\00\00\00\00\00") - (data $50 (i32.const 3644) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\02\00\00\00\t\00\00\00\t\00\00\00") - (data $51 (i32.const 3676) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $52 (i32.const 3724) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00F\00i\00r\00e\00\00\00\00\00") - (data $53 (i32.const 3756) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00i\00r\00\00\00\00\00\00\00") - (data $54 (i32.const 3788) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00W\00a\00t\00e\00r\00\00\00") - (data $55 (i32.const 3820) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\0c\00\00\00\a0\0e\00\00\c0\0e\00\00\e0\0e\00\00") - (data $56 (i32.const 3852) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data $57 (i32.const 3884) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00F\00i\00r\00e\00,\00A\00i\00r\00,\00W\00a\00t\00e\00r\00") - (data $58 (i32.const 3932) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00F\00i\00r\00e\00A\00i\00r\00W\00a\00t\00e\00r\00\00\00\00\00") - (data $59 (i32.const 3980) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data $60 (i32.const 4012) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00F\00i\00r\00e\00-\00A\00i\00r\00-\00W\00a\00t\00e\00r\00") - (data $61 (i32.const 4060) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00 \00+\00 \00\00\00\00\00\00\00") - (data $62 (i32.const 4092) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00F\00i\00r\00e\00 \00+\00 \00A\00i\00r\00 \00+\00 \00W\00a\00t\00e\00r\00\00\00\00\00\00\00\00\00") - (data $63 (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $64 (i32.const 4188) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data $65 (i32.const 4220) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $66 (i32.const 4268) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data $67 (i32.const 4300) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $68 (i32.const 4332) "\1c\00\00\00\00\00\00\00\00\00\00\00\r\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $69 (i32.const 4364) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $70 (i32.const 4396) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $71 (i32.const 4428) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $72 (i32.const 4460) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data $73 (i32.const 4492) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data $74 (i32.const 4524) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $75 (i32.const 4556) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $76 (i32.const 4588) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data $77 (i32.const 4620) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $78 (i32.const 4652) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data $79 (i32.const 4684) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") - (data $80 (i32.const 4716) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\00\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $81 (i32.const 4764) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") - (data $82 (i32.const 4800) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00$\t\00\00 \00\00\00\04A\00\00\02\t\00\00\04A\00\00\02A\00\00$\1a\00\00$\19\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00") + (data $3 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data $5 (i32.const 268) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00") + (data $6 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 464) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $14 (i32.const 684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\00\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05\00\00\00\00\00\00\00") + (data $15 (i32.const 732) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $16 (i32.const 780) "\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 $17 (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data $18 (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 876) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\08\00\00\00\a0\03\00\00\c0\03\00\00\00\00\00\00") + (data $23 (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\04\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 1068) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00n\00t\00\00\00\00\00\00\00") + (data $26 (i32.const 1100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00b\00i\00s\00o\00n\00\00\00") + (data $27 (i32.const 1132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00c\00a\00m\00e\00l\00\00\00") + (data $28 (i32.const 1164) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00d\00u\00c\00k\00\00\00\00\00") + (data $29 (i32.const 1196) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00e\00l\00e\00p\00h\00a\00n\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1244) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\14\00\00\00@\04\00\00`\04\00\00\80\04\00\00\a0\04\00\00\c0\04\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1292) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $32 (i32.const 1420) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\14\00\00\00@\04\00\00`\04\00\00\80\04\00\00\a0\04\00\00\c0\04\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1468) "\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 $34 (i32.const 1500) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00f\00o\00o\00\00\00\00\00\00\00") + (data $35 (i32.const 1532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\f0\05\00\00\00\00\00\00\00\00\00\00") + (data $36 (i32.const 1564) ",\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\14\00\00\00@\04\00\00`\04\00\00\80\04\00\00\a0\04\00\00\c0\04\00\00\00\00\00\00\00\00\00\00") + (data $37 (i32.const 1612) "\1c\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f\00\00\00\00") + (data $38 (i32.const 1644) "\1c\00\00\00\00\00\00\00\00\00\00\00\0b\00\00\00\04\00\00\00\00\00\c0\7f\00\00\00\00\00\00\00\00") + (data $39 (i32.const 1676) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\02\00\00\00\t\00\00\00\t\00\00\00") + (data $40 (i32.const 1708) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $41 (i32.const 1756) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00F\00i\00r\00e\00\00\00\00\00") + (data $42 (i32.const 1788) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00i\00r\00\00\00\00\00\00\00") + (data $43 (i32.const 1820) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00W\00a\00t\00e\00r\00\00\00") + (data $44 (i32.const 1852) "\1c\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\0c\00\00\00\f0\06\00\00\10\07\00\000\07\00\00") + (data $45 (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $46 (i32.const 1916) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data $47 (i32.const 1948) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00F\00i\00r\00e\00,\00A\00i\00r\00,\00W\00a\00t\00e\00r\00") + (data $48 (i32.const 1996) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00F\00i\00r\00e\00A\00i\00r\00W\00a\00t\00e\00r\00\00\00\00\00") + (data $49 (i32.const 2044) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data $50 (i32.const 2076) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00F\00i\00r\00e\00-\00A\00i\00r\00-\00W\00a\00t\00e\00r\00") + (data $51 (i32.const 2124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00 \00+\00 \00\00\00\00\00\00\00") + (data $52 (i32.const 2156) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00F\00i\00r\00e\00 \00+\00 \00A\00i\00r\00 \00+\00 \00W\00a\00t\00e\00r\00\00\00\00\00\00\00\00\00") + (data $53 (i32.const 2220) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $54 (i32.const 2252) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data $55 (i32.const 2284) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 2332) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data $57 (i32.const 2364) "\1c\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 2396) "\1c\00\00\00\00\00\00\00\00\00\00\00\r\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $59 (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $60 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $61 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $62 (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data $63 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data $64 (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $65 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $66 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data $67 (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data $68 (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data $69 (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") + (data $70 (i32.const 2780) ",\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\00\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $71 (i32.const 2828) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data $72 (i32.const 2864) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00$\t\00\00 \00\00\00\04A\00\00\02\t\00\00\04A\00\00\02A\00\00$\1a\00\00$\19\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 15 15 funcref) (elem $0 (i32.const 1) $start:std/staticarray~anonymous|0 $start:std/staticarray~anonymous|1 $start:std/staticarray~anonymous|2 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|4 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|7 $start:std/staticarray~anonymous|8 $start:std/staticarray~anonymous|9 $start:std/staticarray~anonymous|10 $start:std/staticarray~anonymous|11 $start:std/staticarray~anonymous|12 $~lib/util/sort/COMPARATOR~anonymous|0) (export "memory" (memory $0)) @@ -147,14 +137,20 @@ i32.shr_u return ) - (func $~lib/string/String#get:length (param $this i32) (result i32) + (func $~lib/staticarray/StaticArray#__uset (param $this i32) (param $index i32) (param $value i32) local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + ) + (func $~lib/rt/common/OBJECT#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -220,7 +216,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 384 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -290,7 +286,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 384 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -307,7 +303,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 384 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -337,9 +333,9 @@ i32.load i32.gt_u if - i32.const 352 - i32.const 416 - i32.const 21 + i32.const 64 + i32.const 512 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -406,7 +402,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 224 + i32.const 384 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -558,7 +554,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -578,7 +574,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -641,7 +637,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -794,7 +790,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -811,7 +807,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -900,7 +896,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -943,7 +939,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -961,7 +957,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1029,7 +1025,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1146,7 +1142,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1192,7 +1188,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1224,7 +1220,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1468,7 +1464,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1688,7 +1684,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 384 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1799,8 +1795,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 160 - i32.const 496 + i32.const 320 + i32.const 592 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1902,7 +1898,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1973,7 +1969,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2130,7 +2126,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2245,7 +2241,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2265,7 +2261,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 592 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2313,8 +2309,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 160 - i32.const 224 + i32.const 320 + i32.const 384 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2359,437 +2355,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/staticarray/StaticArray#__uset (param $this i32) (param $index i32) (param $value i32) - local.get $this - local.get $index - i32.const 2 - i32.shl - i32.add - local.get $value - i32.store - i32.const 0 - drop - ) - (func $~lib/rt/common/OBJECT#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) (func $~lib/rt/__newBuffer (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) local.get $size @@ -2810,7 +2375,7 @@ (local $0 i32) i32.const 12 i32.const 4 - i32.const 2592 + i32.const 288 call $~lib/rt/__newBuffer return ) @@ -2829,7 +2394,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 384 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2892,6 +2457,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -2914,6 +2483,15 @@ i32.shr_u return ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -3951,92 +3529,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 37664 - i32.const 37712 + i32.const 35728 + i32.const 35776 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4045,124 +3547,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/staticarray/StaticArray#__get (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -4185,9 +3590,9 @@ call $~lib/staticarray/StaticArray#get:length i32.ge_u if - i32.const 352 - i32.const 2432 - i32.const 78 + i32.const 64 + i32.const 128 + i32.const 80 i32.const 41 call $~lib/builtins/abort unreachable @@ -4230,9 +3635,9 @@ call $~lib/staticarray/StaticArray#get:length i32.ge_u if - i32.const 352 - i32.const 2432 - i32.const 93 + i32.const 64 + i32.const 128 + i32.const 95 i32.const 41 call $~lib/builtins/abort unreachable @@ -4387,9 +3792,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 352 - i32.const 2720 - i32.const 114 + i32.const 64 + i32.const 752 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -4462,9 +3867,9 @@ i32.shr_u i32.gt_u if - i32.const 2624 - i32.const 2432 - i32.const 178 + i32.const 656 + i32.const 128 + i32.const 184 i32.const 7 call $~lib/builtins/abort unreachable @@ -4567,9 +3972,9 @@ i32.shr_u i32.gt_u if - i32.const 2624 - i32.const 2432 - i32.const 178 + i32.const 656 + i32.const 128 + i32.const 184 i32.const 7 call $~lib/builtins/abort unreachable @@ -4619,6 +4024,10 @@ i32.add local.get $ref i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $ref i32.const 1 @@ -4655,6 +4064,10 @@ i32.add local.get $ref|14 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $ref|14 i32.const 1 @@ -4816,6 +4229,10 @@ i32.add local.get $ref i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $outStart local.get $ref i32.const 1 @@ -4898,9 +4315,9 @@ call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.ge_u if - i32.const 352 - i32.const 2432 - i32.const 78 + i32.const 64 + i32.const 128 + i32.const 80 i32.const 41 call $~lib/builtins/abort unreachable @@ -4922,9 +4339,9 @@ local.get $value i32.eqz if - i32.const 3280 - i32.const 2432 - i32.const 82 + i32.const 1312 + i32.const 128 + i32.const 84 i32.const 40 call $~lib/builtins/abort unreachable @@ -5108,9 +4525,9 @@ i32.shr_u i32.gt_u if - i32.const 2624 - i32.const 2432 - i32.const 178 + i32.const 656 + i32.const 128 + i32.const 184 i32.const 7 call $~lib/builtins/abort unreachable @@ -5170,6 +4587,10 @@ i32.add local.get $ref i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $ref i32.const 1 @@ -5206,6 +4627,10 @@ i32.add local.get $ref|14 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $ref|14 i32.const 1 @@ -5854,7 +5279,7 @@ i32.const 0 i32.lt_s if - i32.const 128 + i32.const 1904 local.set $13 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -5875,7 +5300,7 @@ if (result i32) local.get $4 else - i32.const 128 + i32.const 1904 end local.set $13 global.get $~lib/memory/__stack_pointer @@ -6114,7 +5539,7 @@ local.get $1 i32.store local.get $1 - i32.const 3872 + i32.const 1936 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -6565,7 +5990,7 @@ global.set $~argumentsLength local.get $fn i32.load - call_indirect (type $4) + call_indirect (type $5) local.get $i i32.const 1 i32.add @@ -6618,8 +6043,8 @@ i32.shr_u i32.gt_u if - i32.const 2624 - i32.const 2720 + i32.const 656 + i32.const 752 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -6683,6 +6108,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -6890,7 +6319,7 @@ global.set $~argumentsLength local.get $fn i32.load - call_indirect (type $5) + call_indirect (type $4) local.set $acc local.get $i i32.const 1 @@ -6955,7 +6384,7 @@ global.set $~argumentsLength local.get $fn i32.load - call_indirect (type $5) + call_indirect (type $4) local.set $acc local.get $i i32.const 1 @@ -7794,7 +7223,7 @@ i32.const 4 i32.le_u drop - i32.const 4784 + i32.const 2848 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -7883,23 +7312,6 @@ i32.const 0 i32.const 104 memory.fill - 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 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 448 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $std/staticarray/arr1 local.set $52 global.get $~lib/memory/__stack_pointer @@ -7913,7 +7325,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -7931,7 +7343,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -7959,7 +7371,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -7974,7 +7386,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -7993,7 +7405,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -8011,7 +7423,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -8039,12 +7451,29 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end + 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 432 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 464 + 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 call $std/staticarray/test global.set $std/staticarray/arr3 global.get $std/staticarray/arr3 @@ -8060,7 +7489,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -8079,7 +7508,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -8098,7 +7527,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -8116,7 +7545,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -8144,7 +7573,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -8165,7 +7594,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -8212,7 +7641,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -8244,7 +7673,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 46 i32.const 5 call $~lib/builtins/abort @@ -8261,7 +7690,7 @@ i32.const 6 i32.const 2 i32.const 7 - i32.const 2672 + i32.const 704 call $~lib/rt/__newArray local.tee $6 i32.store offset=12 @@ -8293,7 +7722,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -8332,7 +7761,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 58 i32.const 5 call $~lib/builtins/abort @@ -8349,7 +7778,7 @@ i32.const 0 i32.const 2 i32.const 7 - i32.const 2768 + i32.const 800 call $~lib/rt/__newArray local.set $52 global.get $~lib/memory/__stack_pointer @@ -8371,7 +7800,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -8380,7 +7809,7 @@ global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 4 - i32.const 2800 + i32.const 832 call $~lib/rt/__newBuffer local.tee $11 i32.store offset=20 @@ -8393,7 +7822,7 @@ local.get $52 i32.const 4 i32.const 4 - i32.const 2832 + i32.const 864 call $~lib/rt/__newBuffer local.set $52 global.get $~lib/memory/__stack_pointer @@ -8415,7 +7844,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 69 i32.const 3 call $~lib/builtins/abort @@ -8430,7 +7859,7 @@ local.get $52 i32.const 0 i32.const 4 - i32.const 2864 + i32.const 896 call $~lib/rt/__newBuffer local.set $52 global.get $~lib/memory/__stack_pointer @@ -8458,7 +7887,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 71 i32.const 3 call $~lib/builtins/abort @@ -8467,7 +7896,7 @@ global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 8 - i32.const 2960 + i32.const 992 call $~lib/rt/__newBuffer local.tee $16 i32.store offset=32 @@ -8480,7 +7909,7 @@ local.get $52 i32.const 4 i32.const 8 - i32.const 3024 + i32.const 1056 call $~lib/rt/__newBuffer local.set $52 global.get $~lib/memory/__stack_pointer @@ -8502,7 +7931,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 76 i32.const 3 call $~lib/builtins/abort @@ -8511,7 +7940,7 @@ global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 8 - i32.const 3232 + i32.const 1264 call $~lib/rt/__newBuffer local.tee $20 i32.store offset=40 @@ -8547,7 +7976,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -8596,7 +8025,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 86 i32.const 5 call $~lib/builtins/abort @@ -8633,7 +8062,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 90 i32.const 3 call $~lib/builtins/abort @@ -8652,12 +8081,12 @@ local.get $52 i32.store local.get $52 - i32.const 3088 + i32.const 1120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 91 i32.const 3 call $~lib/builtins/abort @@ -8676,12 +8105,12 @@ local.get $52 i32.store local.get $52 - i32.const 3120 + i32.const 1152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 92 i32.const 3 call $~lib/builtins/abort @@ -8721,7 +8150,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 95 i32.const 3 call $~lib/builtins/abort @@ -8757,7 +8186,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -8789,7 +8218,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 101 i32.const 3 call $~lib/builtins/abort @@ -8821,7 +8250,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -8840,12 +8269,12 @@ local.get $52 i32.store local.get $52 - i32.const 3184 + i32.const 1216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -8875,7 +8304,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -8905,7 +8334,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -8924,12 +8353,12 @@ local.get $52 i32.store local.get $52 - i32.const 3120 + i32.const 1152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 112 i32.const 3 call $~lib/builtins/abort @@ -8938,7 +8367,7 @@ global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 8 - i32.const 3408 + i32.const 1440 call $~lib/rt/__newBuffer local.tee $24 i32.store offset=52 @@ -8952,7 +8381,7 @@ i32.const 0 i32.const 2 i32.const 9 - i32.const 3456 + i32.const 1488 call $~lib/rt/__newArray local.set $52 global.get $~lib/memory/__stack_pointer @@ -8980,7 +8409,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 122 i32.const 3 call $~lib/builtins/abort @@ -8998,7 +8427,7 @@ i32.const 1 i32.const 2 i32.const 9 - i32.const 3520 + i32.const 1552 call $~lib/rt/__newArray local.set $52 global.get $~lib/memory/__stack_pointer @@ -9028,7 +8457,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -9039,7 +8468,7 @@ global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 8 - i32.const 3552 + i32.const 1584 call $~lib/rt/__newBuffer local.tee $29 i32.store offset=60 @@ -9049,7 +8478,7 @@ local.get $52 i32.store local.get $52 - i32.const 3088 + i32.const 1120 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -9057,7 +8486,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 133 i32.const 3 call $~lib/builtins/abort @@ -9069,7 +8498,7 @@ local.get $52 i32.store local.get $52 - i32.const 3488 + i32.const 1520 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -9077,7 +8506,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 134 i32.const 3 call $~lib/builtins/abort @@ -9089,7 +8518,7 @@ local.get $52 i32.store local.get $52 - i32.const 3184 + i32.const 1216 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -9097,7 +8526,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -9109,7 +8538,7 @@ local.get $52 i32.store local.get $52 - i32.const 3184 + i32.const 1216 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -9117,7 +8546,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 136 i32.const 3 call $~lib/builtins/abort @@ -9125,7 +8554,7 @@ end i32.const 8 i32.const 10 - i32.const 3600 + i32.const 1632 call $~lib/rt/__newBuffer local.set $52 global.get $~lib/memory/__stack_pointer @@ -9140,7 +8569,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -9148,7 +8577,7 @@ end i32.const 4 i32.const 11 - i32.const 3632 + i32.const 1664 call $~lib/rt/__newBuffer local.set $52 global.get $~lib/memory/__stack_pointer @@ -9163,7 +8592,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 139 i32.const 3 call $~lib/builtins/abort @@ -9172,7 +8601,7 @@ global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 - i32.const 3664 + i32.const 1696 call $~lib/rt/__newBuffer local.tee $33 i32.store offset=64 @@ -9190,7 +8619,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 145 i32.const 3 call $~lib/builtins/abort @@ -9210,7 +8639,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 146 i32.const 3 call $~lib/builtins/abort @@ -9230,7 +8659,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -9250,7 +8679,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 148 i32.const 3 call $~lib/builtins/abort @@ -9270,7 +8699,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 149 i32.const 3 call $~lib/builtins/abort @@ -9279,7 +8708,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 4 - i32.const 3696 + i32.const 1728 call $~lib/rt/__newBuffer local.tee $35 i32.store offset=68 @@ -9299,7 +8728,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -9321,7 +8750,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 156 i32.const 3 call $~lib/builtins/abort @@ -9341,7 +8770,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 157 i32.const 3 call $~lib/builtins/abort @@ -9361,7 +8790,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 158 i32.const 3 call $~lib/builtins/abort @@ -9381,7 +8810,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 159 i32.const 3 call $~lib/builtins/abort @@ -9401,7 +8830,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 160 i32.const 3 call $~lib/builtins/abort @@ -9410,7 +8839,7 @@ global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 - i32.const 3840 + i32.const 1872 call $~lib/rt/__newBuffer local.tee $37 i32.store offset=72 @@ -9420,19 +8849,19 @@ local.get $52 i32.store offset=24 local.get $52 - i32.const 3872 + i32.const 1936 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3904 + i32.const 1968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 166 i32.const 3 call $~lib/builtins/abort @@ -9444,19 +8873,19 @@ local.get $52 i32.store offset=24 local.get $52 - i32.const 128 + i32.const 1904 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3952 + i32.const 2016 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 167 i32.const 3 call $~lib/builtins/abort @@ -9468,19 +8897,19 @@ local.get $52 i32.store offset=24 local.get $52 - i32.const 4000 + i32.const 2064 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 4032 + i32.const 2096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 168 i32.const 3 call $~lib/builtins/abort @@ -9492,19 +8921,19 @@ local.get $52 i32.store offset=24 local.get $52 - i32.const 4080 + i32.const 2144 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 4112 + i32.const 2176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 169 i32.const 3 call $~lib/builtins/abort @@ -9516,7 +8945,7 @@ local.get $52 i32.store offset=48 local.get $52 - i32.const 3872 + i32.const 1936 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer @@ -9539,7 +8968,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 170 i32.const 3 call $~lib/builtins/abort @@ -9548,7 +8977,7 @@ global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 4 - i32.const 4176 + i32.const 2240 call $~lib/rt/__newBuffer local.tee $39 i32.store offset=76 @@ -9578,7 +9007,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 178 i32.const 3 call $~lib/builtins/abort @@ -9597,7 +9026,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 179 i32.const 3 call $~lib/builtins/abort @@ -9606,7 +9035,7 @@ global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 - i32.const 4208 + i32.const 2272 call $~lib/rt/__newBuffer local.tee $41 i32.store offset=80 @@ -9631,7 +9060,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 187 i32.const 3 call $~lib/builtins/abort @@ -9650,7 +9079,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 188 i32.const 3 call $~lib/builtins/abort @@ -9669,7 +9098,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 189 i32.const 3 call $~lib/builtins/abort @@ -9678,7 +9107,7 @@ global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 4 - i32.const 4240 + i32.const 2304 call $~lib/rt/__newBuffer local.tee $43 i32.store offset=84 @@ -9708,7 +9137,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 197 i32.const 3 call $~lib/builtins/abort @@ -9727,7 +9156,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 198 i32.const 3 call $~lib/builtins/abort @@ -9746,7 +9175,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 199 i32.const 3 call $~lib/builtins/abort @@ -9765,7 +9194,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 200 i32.const 3 call $~lib/builtins/abort @@ -9784,7 +9213,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 201 i32.const 3 call $~lib/builtins/abort @@ -9793,7 +9222,7 @@ global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 - i32.const 4288 + i32.const 2352 call $~lib/rt/__newBuffer local.tee $45 i32.store offset=88 @@ -9804,7 +9233,7 @@ local.get $52 i32.store local.get $52 - i32.const 4320 + i32.const 2384 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -9826,7 +9255,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 210 i32.const 3 call $~lib/builtins/abort @@ -9845,7 +9274,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 211 i32.const 3 call $~lib/builtins/abort @@ -9864,7 +9293,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 212 i32.const 3 call $~lib/builtins/abort @@ -9876,7 +9305,7 @@ local.get $52 i32.store local.get $52 - i32.const 4352 + i32.const 2416 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -9889,7 +9318,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 216 i32.const 3 call $~lib/builtins/abort @@ -9902,7 +9331,7 @@ local.get $52 i32.store local.get $52 - i32.const 4384 + i32.const 2448 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -9923,7 +9352,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 220 i32.const 3 call $~lib/builtins/abort @@ -9942,7 +9371,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 221 i32.const 3 call $~lib/builtins/abort @@ -9961,7 +9390,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 222 i32.const 3 call $~lib/builtins/abort @@ -9973,7 +9402,7 @@ local.get $52 i32.store local.get $52 - i32.const 4416 + i32.const 2480 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -9988,7 +9417,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 226 i32.const 3 call $~lib/builtins/abort @@ -10000,7 +9429,7 @@ local.get $52 i32.store local.get $52 - i32.const 4448 + i32.const 2512 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -10015,7 +9444,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 230 i32.const 3 call $~lib/builtins/abort @@ -10027,7 +9456,7 @@ local.get $52 i32.store local.get $52 - i32.const 4480 + i32.const 2544 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -10037,7 +9466,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 233 i32.const 3 call $~lib/builtins/abort @@ -10049,7 +9478,7 @@ local.get $52 i32.store local.get $52 - i32.const 4512 + i32.const 2576 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -10060,7 +9489,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 234 i32.const 3 call $~lib/builtins/abort @@ -10072,7 +9501,7 @@ local.get $52 i32.store local.get $52 - i32.const 4544 + i32.const 2608 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -10082,7 +9511,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 237 i32.const 3 call $~lib/builtins/abort @@ -10094,7 +9523,7 @@ local.get $52 i32.store local.get $52 - i32.const 4576 + i32.const 2640 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -10105,7 +9534,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 238 i32.const 3 call $~lib/builtins/abort @@ -10117,7 +9546,7 @@ local.get $52 i32.store local.get $52 - i32.const 4608 + i32.const 2672 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -10129,7 +9558,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 241 i32.const 3 call $~lib/builtins/abort @@ -10141,7 +9570,7 @@ local.get $52 i32.store local.get $52 - i32.const 4640 + i32.const 2704 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -10153,7 +9582,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 242 i32.const 3 call $~lib/builtins/abort @@ -10165,7 +9594,7 @@ local.get $52 i32.store local.get $52 - i32.const 4672 + i32.const 2736 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -10177,7 +9606,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 245 i32.const 3 call $~lib/builtins/abort @@ -10189,7 +9618,7 @@ local.get $52 i32.store local.get $52 - i32.const 4704 + i32.const 2768 local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 @@ -10201,7 +9630,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 246 i32.const 3 call $~lib/builtins/abort @@ -10210,7 +9639,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 4 - i32.const 4736 + i32.const 2800 call $~lib/rt/__newBuffer local.tee $51 i32.store offset=100 @@ -10238,7 +9667,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 255 i32.const 3 call $~lib/builtins/abort @@ -10257,7 +9686,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 256 i32.const 3 call $~lib/builtins/abort @@ -10276,7 +9705,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 257 i32.const 3 call $~lib/builtins/abort @@ -10295,7 +9724,7 @@ i32.eqz if i32.const 0 - i32.const 2496 + i32.const 192 i32.const 258 i32.const 3 call $~lib/builtins/abort @@ -10309,153 +9738,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -10502,9 +9784,9 @@ i32.shr_u i32.gt_u if - i32.const 2624 - i32.const 2432 - i32.const 51 + i32.const 656 + i32.const 128 + i32.const 53 i32.const 60 call $~lib/builtins/abort unreachable @@ -10563,6 +9845,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -10615,22 +9901,16 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2624 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3280 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit - i32.const 160 + i32.const 656 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1216 + i32.const 1312 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2272 + i32.const 320 local.get $0 call $~lib/rt/itcms/__visit ) @@ -10650,6 +9930,10 @@ (local $cur i32) (local $end i32) (local $val i32) + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -10707,6 +9991,10 @@ (local $cur i32) (local $end i32) (local $val i32) + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -10921,6 +10209,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -10950,6 +10242,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this @@ -11017,6 +10313,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -11041,6 +10341,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -11065,6 +10369,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -11089,6 +10397,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -11113,6 +10425,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index 40fec5c266..8d41612f9f 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -4,13 +4,14 @@ (type $2 (func (param i32))) (type $3 (func)) (type $4 (func (param i32 i32))) - (type $5 (func (param i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i32))) (type $7 (func (param i32 i32 i32 i32) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32) (result i32))) + (type $9 (func (result i32))) (type $10 (func (param i32 i32 i64))) (type $11 (func (param i32 i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -25,167 +26,148 @@ (global $std/staticarray/arr4 (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $std/staticarray/maxVal (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 38664)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36728)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) "<") - (data $20.1 (i32.const 3448) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") - (data $21 (i32.const 3500) "<") - (data $21.1 (i32.const 3512) "\02\00\00\00$\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") - (data $22 (i32.const 3564) "\1c") - (data $22.1 (i32.const 3576) "\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data $23 (i32.const 3596) "\1c") - (data $23.1 (i32.const 3608) "\04\00\00\00\0c\00\00\00\05\00\00\00\06\00\00\00\07") - (data $24 (i32.const 3628) ",") - (data $24.1 (i32.const 3640) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $25 (i32.const 3676) ",") - (data $25.1 (i32.const 3688) "\01\00\00\00\18\00\00\00\00\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05") - (data $26 (i32.const 3724) ",") - (data $26.1 (i32.const 3736) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $27 (i32.const 3772) "\1c") - (data $27.1 (i32.const 3784) "\01") - (data $28 (i32.const 3804) "\1c") - (data $28.1 (i32.const 3816) "\04\00\00\00\08\00\00\00\01\00\00\00\02") - (data $29 (i32.const 3836) "\1c") - (data $29.1 (i32.const 3848) "\04\00\00\00\04\00\00\00\01") - (data $30 (i32.const 3868) "\1c") - (data $30.1 (i32.const 3880) "\04") - (data $31 (i32.const 3900) "\1c") - (data $31.1 (i32.const 3912) "\02\00\00\00\02\00\00\001") - (data $32 (i32.const 3932) "\1c") - (data $32.1 (i32.const 3944) "\02\00\00\00\02\00\00\002") - (data $33 (i32.const 3964) "\1c") - (data $33.1 (i32.const 3976) "\08\00\00\00\08\00\00\00P\0f\00\00p\0f") - (data $34 (i32.const 3996) "\1c") - (data $34.1 (i32.const 4008) "\02\00\00\00\02\00\00\003") - (data $35 (i32.const 4028) "\1c") - (data $35.1 (i32.const 4040) "\08\00\00\00\04\00\00\00\b0\0f") - (data $36 (i32.const 4060) "\1c") - (data $36.1 (i32.const 4072) "\02\00\00\00\06\00\00\00a\00n\00t") - (data $37 (i32.const 4092) "\1c") - (data $37.1 (i32.const 4104) "\02\00\00\00\n\00\00\00b\00i\00s\00o\00n") - (data $38 (i32.const 4124) "\1c") - (data $38.1 (i32.const 4136) "\02\00\00\00\n\00\00\00c\00a\00m\00e\00l") - (data $39 (i32.const 4156) "\1c") - (data $39.1 (i32.const 4168) "\02\00\00\00\08\00\00\00d\00u\00c\00k") - (data $40 (i32.const 4188) ",") - (data $40.1 (i32.const 4200) "\02\00\00\00\10\00\00\00e\00l\00e\00p\00h\00a\00n\00t") - (data $41 (i32.const 4236) ",") - (data $41.1 (i32.const 4248) "\08\00\00\00\14\00\00\00\f0\0f\00\00\10\10\00\000\10\00\00P\10\00\00p\10") - (data $42 (i32.const 4284) "|") - (data $42.1 (i32.const 4296) "\02\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 $43 (i32.const 4412) ",") - (data $43.1 (i32.const 4424) "\08\00\00\00\14\00\00\00\f0\0f\00\00\10\10\00\000\10\00\00P\10\00\00p\10") - (data $44 (i32.const 4460) "\1c") - (data $44.1 (i32.const 4472) "\01") - (data $45 (i32.const 4492) "\1c") - (data $45.1 (i32.const 4504) "\02\00\00\00\06\00\00\00f\00o\00o") - (data $46 (i32.const 4524) "\1c") - (data $46.1 (i32.const 4536) "\01\00\00\00\04\00\00\00\a0\11") - (data $47 (i32.const 4556) ",") - (data $47.1 (i32.const 4568) "\08\00\00\00\14\00\00\00\f0\0f\00\00\10\10\00\000\10\00\00P\10\00\00p\10") - (data $48 (i32.const 4604) "\1c") - (data $48.1 (i32.const 4616) "\n\00\00\00\08") - (data $48.2 (i32.const 4630) "\f8\7f") - (data $49 (i32.const 4636) "\1c") - (data $49.1 (i32.const 4648) "\0b\00\00\00\04\00\00\00\00\00\c0\7f") - (data $50 (i32.const 4668) "\1c") - (data $50.1 (i32.const 4680) "\04\00\00\00\0c\00\00\00\02\00\00\00\t\00\00\00\t") - (data $51 (i32.const 4700) ",") - (data $51.1 (i32.const 4712) "\04\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02") - (data $52 (i32.const 4748) "\1c") - (data $52.1 (i32.const 4760) "\02\00\00\00\08\00\00\00F\00i\00r\00e") - (data $53 (i32.const 4780) "\1c") - (data $53.1 (i32.const 4792) "\02\00\00\00\06\00\00\00A\00i\00r") - (data $54 (i32.const 4812) "\1c") - (data $54.1 (i32.const 4824) "\02\00\00\00\n\00\00\00W\00a\00t\00e\00r") - (data $55 (i32.const 4844) "\1c") - (data $55.1 (i32.const 4856) "\08\00\00\00\0c\00\00\00\a0\12\00\00\c0\12\00\00\e0\12") - (data $56 (i32.const 4876) "\1c") - (data $56.1 (i32.const 4888) "\02\00\00\00\02\00\00\00,") - (data $57 (i32.const 4908) ",") - (data $57.1 (i32.const 4920) "\02\00\00\00\1c\00\00\00F\00i\00r\00e\00,\00A\00i\00r\00,\00W\00a\00t\00e\00r") - (data $58 (i32.const 4956) ",") - (data $58.1 (i32.const 4968) "\02\00\00\00\18\00\00\00F\00i\00r\00e\00A\00i\00r\00W\00a\00t\00e\00r") - (data $59 (i32.const 5004) "\1c") - (data $59.1 (i32.const 5016) "\02\00\00\00\02\00\00\00-") - (data $60 (i32.const 5036) ",") - (data $60.1 (i32.const 5048) "\02\00\00\00\1c\00\00\00F\00i\00r\00e\00-\00A\00i\00r\00-\00W\00a\00t\00e\00r") - (data $61 (i32.const 5084) "\1c") - (data $61.1 (i32.const 5096) "\02\00\00\00\06\00\00\00 \00+\00 ") - (data $62 (i32.const 5116) "<") - (data $62.1 (i32.const 5128) "\02\00\00\00$\00\00\00F\00i\00r\00e\00 \00+\00 \00A\00i\00r\00 \00+\00 \00W\00a\00t\00e\00r") - (data $63 (i32.const 5180) "\1c") - (data $63.1 (i32.const 5192) "\04\00\00\00\08") - (data $64 (i32.const 5212) "\1c") - (data $64.1 (i32.const 5224) "\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data $65 (i32.const 5244) ",") - (data $65.1 (i32.const 5256) "\04\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $66 (i32.const 5292) "\1c") - (data $66.1 (i32.const 5304) "\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data $67 (i32.const 5324) "\1c") - (data $67.1 (i32.const 5336) "\0c\00\00\00\08\00\00\00\01") - (data $68 (i32.const 5356) "\1c") - (data $68.1 (i32.const 5368) "\r\00\00\00\08\00\00\00\02") - (data $69 (i32.const 5388) "\1c") - (data $69.1 (i32.const 5400) "\0e\00\00\00\08\00\00\00\03") - (data $70 (i32.const 5420) "\1c") - (data $70.1 (i32.const 5432) "\0f\00\00\00\08\00\00\00\04") - (data $71 (i32.const 5452) "\1c") - (data $71.1 (i32.const 5464) "\0f\00\00\00\08\00\00\00\05") - (data $72 (i32.const 5484) "\1c") - (data $72.1 (i32.const 5496) "\0e\00\00\00\08\00\00\00\06") - (data $73 (i32.const 5516) "\1c") - (data $73.1 (i32.const 5528) "\0e\00\00\00\08\00\00\00\07") - (data $74 (i32.const 5548) "\1c") - (data $74.1 (i32.const 5560) "\0e\00\00\00\08\00\00\00\08") - (data $75 (i32.const 5580) "\1c") - (data $75.1 (i32.const 5592) "\0e\00\00\00\08\00\00\00\t") - (data $76 (i32.const 5612) "\1c") - (data $76.1 (i32.const 5624) "\0e\00\00\00\08\00\00\00\n") - (data $77 (i32.const 5644) "\1c") - (data $77.1 (i32.const 5656) "\0e\00\00\00\08\00\00\00\0b") - (data $78 (i32.const 5676) "\1c") - (data $78.1 (i32.const 5688) "\0e\00\00\00\08\00\00\00\0c") - (data $79 (i32.const 5708) "\1c") - (data $79.1 (i32.const 5720) "\0e\00\00\00\08\00\00\00\r") - (data $80 (i32.const 5740) ",") - (data $80.1 (i32.const 5752) "\04\00\00\00\10\00\00\00\00\00\00\00\03\00\00\00\02\00\00\00\01") - (data $81 (i32.const 5788) "\1c") - (data $81.1 (i32.const 5800) "\10\00\00\00\08\00\00\00\0e") - (data $82 (i32.const 5824) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00$\t\00\00 \00\00\00\04A\00\00\02\t\00\00\04A\00\00\02A\00\00$\1a\00\00$\19") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") + (data $3 (i32.const 1196) "<") + (data $3.1 (i32.const 1208) "\02\00\00\00$\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s") + (data $4 (i32.const 1260) "\1c") + (data $4.1 (i32.const 1272) "\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data $5 (i32.const 1292) "\1c") + (data $5.1 (i32.const 1304) "\04\00\00\00\0c\00\00\00\05\00\00\00\06\00\00\00\07") + (data $6 (i32.const 1324) "<") + (data $6.1 (i32.const 1336) "\02\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 $7 (i32.const 1388) "<") + (data $7.1 (i32.const 1400) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $10 (i32.const 1516) ",") + (data $10.1 (i32.const 1528) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $12 (i32.const 1596) "<") + (data $12.1 (i32.const 1608) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $13 (i32.const 1660) ",") + (data $13.1 (i32.const 1672) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $14 (i32.const 1708) ",") + (data $14.1 (i32.const 1720) "\01\00\00\00\18\00\00\00\00\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05") + (data $15 (i32.const 1756) ",") + (data $15.1 (i32.const 1768) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $16 (i32.const 1804) "\1c") + (data $16.1 (i32.const 1816) "\01") + (data $17 (i32.const 1836) "\1c") + (data $17.1 (i32.const 1848) "\04\00\00\00\08\00\00\00\01\00\00\00\02") + (data $18 (i32.const 1868) "\1c") + (data $18.1 (i32.const 1880) "\04\00\00\00\04\00\00\00\01") + (data $19 (i32.const 1900) "\1c") + (data $19.1 (i32.const 1912) "\04") + (data $20 (i32.const 1932) "\1c") + (data $20.1 (i32.const 1944) "\02\00\00\00\02\00\00\001") + (data $21 (i32.const 1964) "\1c") + (data $21.1 (i32.const 1976) "\02\00\00\00\02\00\00\002") + (data $22 (i32.const 1996) "\1c") + (data $22.1 (i32.const 2008) "\08\00\00\00\08\00\00\00\a0\07\00\00\c0\07") + (data $23 (i32.const 2028) "\1c") + (data $23.1 (i32.const 2040) "\02\00\00\00\02\00\00\003") + (data $24 (i32.const 2060) "\1c") + (data $24.1 (i32.const 2072) "\08\00\00\00\04\00\00\00\00\08") + (data $25 (i32.const 2092) "\1c") + (data $25.1 (i32.const 2104) "\02\00\00\00\06\00\00\00a\00n\00t") + (data $26 (i32.const 2124) "\1c") + (data $26.1 (i32.const 2136) "\02\00\00\00\n\00\00\00b\00i\00s\00o\00n") + (data $27 (i32.const 2156) "\1c") + (data $27.1 (i32.const 2168) "\02\00\00\00\n\00\00\00c\00a\00m\00e\00l") + (data $28 (i32.const 2188) "\1c") + (data $28.1 (i32.const 2200) "\02\00\00\00\08\00\00\00d\00u\00c\00k") + (data $29 (i32.const 2220) ",") + (data $29.1 (i32.const 2232) "\02\00\00\00\10\00\00\00e\00l\00e\00p\00h\00a\00n\00t") + (data $30 (i32.const 2268) ",") + (data $30.1 (i32.const 2280) "\08\00\00\00\14\00\00\00@\08\00\00`\08\00\00\80\08\00\00\a0\08\00\00\c0\08") + (data $31 (i32.const 2316) "|") + (data $31.1 (i32.const 2328) "\02\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 $32 (i32.const 2444) ",") + (data $32.1 (i32.const 2456) "\08\00\00\00\14\00\00\00@\08\00\00`\08\00\00\80\08\00\00\a0\08\00\00\c0\08") + (data $33 (i32.const 2492) "\1c") + (data $33.1 (i32.const 2504) "\01") + (data $34 (i32.const 2524) "\1c") + (data $34.1 (i32.const 2536) "\02\00\00\00\06\00\00\00f\00o\00o") + (data $35 (i32.const 2556) "\1c") + (data $35.1 (i32.const 2568) "\01\00\00\00\04\00\00\00\f0\t") + (data $36 (i32.const 2588) ",") + (data $36.1 (i32.const 2600) "\08\00\00\00\14\00\00\00@\08\00\00`\08\00\00\80\08\00\00\a0\08\00\00\c0\08") + (data $37 (i32.const 2636) "\1c") + (data $37.1 (i32.const 2648) "\n\00\00\00\08") + (data $37.2 (i32.const 2662) "\f8\7f") + (data $38 (i32.const 2668) "\1c") + (data $38.1 (i32.const 2680) "\0b\00\00\00\04\00\00\00\00\00\c0\7f") + (data $39 (i32.const 2700) "\1c") + (data $39.1 (i32.const 2712) "\04\00\00\00\0c\00\00\00\02\00\00\00\t\00\00\00\t") + (data $40 (i32.const 2732) ",") + (data $40.1 (i32.const 2744) "\04\00\00\00\10\00\00\00\02\00\00\00\05\00\00\00\t\00\00\00\02") + (data $41 (i32.const 2780) "\1c") + (data $41.1 (i32.const 2792) "\02\00\00\00\08\00\00\00F\00i\00r\00e") + (data $42 (i32.const 2812) "\1c") + (data $42.1 (i32.const 2824) "\02\00\00\00\06\00\00\00A\00i\00r") + (data $43 (i32.const 2844) "\1c") + (data $43.1 (i32.const 2856) "\02\00\00\00\n\00\00\00W\00a\00t\00e\00r") + (data $44 (i32.const 2876) "\1c") + (data $44.1 (i32.const 2888) "\08\00\00\00\0c\00\00\00\f0\n\00\00\10\0b\00\000\0b") + (data $45 (i32.const 2908) "\1c") + (data $45.1 (i32.const 2920) "\02") + (data $46 (i32.const 2940) "\1c") + (data $46.1 (i32.const 2952) "\02\00\00\00\02\00\00\00,") + (data $47 (i32.const 2972) ",") + (data $47.1 (i32.const 2984) "\02\00\00\00\1c\00\00\00F\00i\00r\00e\00,\00A\00i\00r\00,\00W\00a\00t\00e\00r") + (data $48 (i32.const 3020) ",") + (data $48.1 (i32.const 3032) "\02\00\00\00\18\00\00\00F\00i\00r\00e\00A\00i\00r\00W\00a\00t\00e\00r") + (data $49 (i32.const 3068) "\1c") + (data $49.1 (i32.const 3080) "\02\00\00\00\02\00\00\00-") + (data $50 (i32.const 3100) ",") + (data $50.1 (i32.const 3112) "\02\00\00\00\1c\00\00\00F\00i\00r\00e\00-\00A\00i\00r\00-\00W\00a\00t\00e\00r") + (data $51 (i32.const 3148) "\1c") + (data $51.1 (i32.const 3160) "\02\00\00\00\06\00\00\00 \00+\00 ") + (data $52 (i32.const 3180) "<") + (data $52.1 (i32.const 3192) "\02\00\00\00$\00\00\00F\00i\00r\00e\00 \00+\00 \00A\00i\00r\00 \00+\00 \00W\00a\00t\00e\00r") + (data $53 (i32.const 3244) "\1c") + (data $53.1 (i32.const 3256) "\04\00\00\00\08") + (data $54 (i32.const 3276) "\1c") + (data $54.1 (i32.const 3288) "\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data $55 (i32.const 3308) ",") + (data $55.1 (i32.const 3320) "\04\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $56 (i32.const 3356) "\1c") + (data $56.1 (i32.const 3368) "\04\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data $57 (i32.const 3388) "\1c") + (data $57.1 (i32.const 3400) "\0c\00\00\00\08\00\00\00\01") + (data $58 (i32.const 3420) "\1c") + (data $58.1 (i32.const 3432) "\r\00\00\00\08\00\00\00\02") + (data $59 (i32.const 3452) "\1c") + (data $59.1 (i32.const 3464) "\0e\00\00\00\08\00\00\00\03") + (data $60 (i32.const 3484) "\1c") + (data $60.1 (i32.const 3496) "\0f\00\00\00\08\00\00\00\04") + (data $61 (i32.const 3516) "\1c") + (data $61.1 (i32.const 3528) "\0f\00\00\00\08\00\00\00\05") + (data $62 (i32.const 3548) "\1c") + (data $62.1 (i32.const 3560) "\0e\00\00\00\08\00\00\00\06") + (data $63 (i32.const 3580) "\1c") + (data $63.1 (i32.const 3592) "\0e\00\00\00\08\00\00\00\07") + (data $64 (i32.const 3612) "\1c") + (data $64.1 (i32.const 3624) "\0e\00\00\00\08\00\00\00\08") + (data $65 (i32.const 3644) "\1c") + (data $65.1 (i32.const 3656) "\0e\00\00\00\08\00\00\00\t") + (data $66 (i32.const 3676) "\1c") + (data $66.1 (i32.const 3688) "\0e\00\00\00\08\00\00\00\n") + (data $67 (i32.const 3708) "\1c") + (data $67.1 (i32.const 3720) "\0e\00\00\00\08\00\00\00\0b") + (data $68 (i32.const 3740) "\1c") + (data $68.1 (i32.const 3752) "\0e\00\00\00\08\00\00\00\0c") + (data $69 (i32.const 3772) "\1c") + (data $69.1 (i32.const 3784) "\0e\00\00\00\08\00\00\00\r") + (data $70 (i32.const 3804) ",") + (data $70.1 (i32.const 3816) "\04\00\00\00\10\00\00\00\00\00\00\00\03\00\00\00\02\00\00\00\01") + (data $71 (i32.const 3852) "\1c") + (data $71.1 (i32.const 3864) "\10\00\00\00\08\00\00\00\0e") + (data $72 (i32.const 3888) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00$\t\00\00 \00\00\00\04A\00\00\02\t\00\00\04A\00\00\02A\00\00$\1a\00\00$\19") (table $0 15 15 funcref) (elem $0 (i32.const 1) $start:std/staticarray~anonymous|0 $start:std/staticarray~anonymous|1 $start:std/staticarray~anonymous|2 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|7 $start:std/staticarray~anonymous|8 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $~lib/util/sort/COMPARATOR~anonymous|0) (export "memory" (memory $0)) @@ -195,7 +177,7 @@ (local $1 i32) i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 3584 + i32.const 1280 call $~lib/rt/itcms/__visit global.get $std/staticarray/arr3 local.tee $0 @@ -209,17 +191,13 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 3648 - call $~lib/rt/itcms/__visit - i32.const 4304 + i32.const 1088 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 1680 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 2336 call $~lib/rt/itcms/__visit - i32.const 3296 + i32.const 1344 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -240,7 +218,7 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1408 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -273,7 +251,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1408 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -282,7 +260,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$279 + block $__inlined_func$~lib/rt/itcms/Object#unlink$268 local.get $0 i32.load offset=4 i32.const -4 @@ -294,19 +272,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 38664 + i32.const 36728 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1408 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$279 + br $__inlined_func$~lib/rt/itcms/Object#unlink$268 end local.get $0 i32.load offset=8 @@ -314,7 +292,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1408 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -343,13 +321,13 @@ i32.const 1 else local.get $1 - i32.const 5824 + i32.const 3888 i32.load i32.gt_u if - i32.const 1376 - i32.const 1440 - i32.const 21 + i32.const 1088 + i32.const 1536 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -357,7 +335,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 5828 + i32.const 3892 i32.add i32.load i32.const 32 @@ -428,7 +406,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -442,7 +420,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -488,7 +466,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -571,7 +549,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -585,7 +563,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -646,7 +624,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -679,7 +657,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -694,7 +672,7 @@ i32.ne if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -745,7 +723,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -817,7 +795,7 @@ i64.lt_u if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -842,7 +820,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -869,7 +847,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -941,10 +919,10 @@ if unreachable end - i32.const 38672 + i32.const 36736 i32.const 0 i32.store - i32.const 40240 + i32.const 38304 i32.const 0 i32.store loop $for-loop|0 @@ -955,7 +933,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 38672 + i32.const 36736 i32.add i32.const 0 i32.store offset=4 @@ -973,7 +951,7 @@ i32.add i32.const 2 i32.shl - i32.const 38672 + i32.const 36736 i32.add i32.const 0 i32.store offset=96 @@ -991,21 +969,21 @@ br $for-loop|0 end end - i32.const 38672 - i32.const 40244 + i32.const 36736 + i32.const 38308 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 38672 + i32.const 36736 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 38664 + i32.const 36728 i32.lt_u if return @@ -1036,7 +1014,7 @@ end if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1133,7 +1111,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 38664 + i32.const 36728 i32.lt_u if local.get $0 @@ -1222,14 +1200,14 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1408 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 38664 + i32.const 36728 i32.lt_u if local.get $0 @@ -1321,7 +1299,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1373,7 +1351,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1403,8 +1381,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1184 - i32.const 1520 + i32.const 1344 + i32.const 1616 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1506,7 +1484,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1521,7 +1499,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1540,7 +1518,7 @@ i32.and if i32.const 0 - i32.const 1520 + i32.const 1616 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1607,8 +1585,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1184 - i32.const 1248 + i32.const 1344 + i32.const 1408 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1618,7 +1596,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1635,7 +1613,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1711,204 +1689,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 5896 - i32.lt_s - if - i32.const 38688 - i32.const 38736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -1920,7 +1700,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1408 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2060,7 +1840,7 @@ global.set $~argumentsLength local.get $3 local.get $5 - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 0 @@ -2093,7 +1873,7 @@ global.set $~argumentsLength local.get $8 local.get $3 - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 0 @@ -2135,7 +1915,7 @@ global.set $~argumentsLength local.get $7 local.get $4 - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 0 @@ -2195,7 +1975,7 @@ i32.load i32.const 2 global.set $~argumentsLength - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 0 @@ -2217,7 +1997,7 @@ i32.load i32.const 2 global.set $~argumentsLength - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 31 @@ -2288,7 +2068,7 @@ i32.load i32.const 2 global.set $~argumentsLength - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 0 @@ -2393,7 +2173,7 @@ global.set $~argumentsLength local.get $6 local.get $7 - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 0 @@ -2439,205 +2219,40 @@ (func $~start call $start:std/staticarray ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 5896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 5896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$284 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$284 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 38688 - i32.const 38736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2645,11 +2260,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2670,9 +2285,9 @@ i32.shr_u i32.ge_u if - i32.const 1376 - i32.const 3456 - i32.const 78 + i32.const 1088 + i32.const 1152 + i32.const 80 i32.const 41 call $~lib/builtins/abort unreachable @@ -2694,11 +2309,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2719,9 +2334,9 @@ i32.const 1 i32.le_u if - i32.const 1376 - i32.const 3456 - i32.const 93 + i32.const 1088 + i32.const 1152 + i32.const 95 i32.const 41 call $~lib/builtins/abort unreachable @@ -2746,7 +2361,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2767,7 +2382,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2796,8 +2411,8 @@ local.get $0 return end - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2809,11 +2424,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2840,11 +2455,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2887,11 +2502,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2908,9 +2523,9 @@ i32.load offset=12 i32.ge_u if - i32.const 1376 - i32.const 3744 - i32.const 114 + i32.const 1088 + i32.const 1776 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -2939,11 +2554,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2978,9 +2593,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3648 - i32.const 3456 - i32.const 178 + i32.const 1680 + i32.const 1152 + i32.const 184 i32.const 7 call $~lib/builtins/abort unreachable @@ -3026,11 +2641,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3156,11 +2771,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3202,11 +2817,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3227,9 +2842,9 @@ i32.shr_u i32.ge_u if - i32.const 1376 - i32.const 3456 - i32.const 78 + i32.const 1088 + i32.const 1152 + i32.const 80 i32.const 41 call $~lib/builtins/abort unreachable @@ -3246,9 +2861,9 @@ local.get $0 i32.eqz if - i32.const 4304 - i32.const 3456 - i32.const 82 + i32.const 2336 + i32.const 1152 + i32.const 84 i32.const 40 call $~lib/builtins/abort unreachable @@ -3269,11 +2884,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3372,7 +2987,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$101 + block $__inlined_func$~lib/util/string/compareImpl$98 loop $while-continue|1 local.get $0 local.tee $3 @@ -3392,7 +3007,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$101 + br_if $__inlined_func$~lib/util/string/compareImpl$98 local.get $2 i32.const 2 i32.add @@ -3433,11 +3048,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3468,9 +3083,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3648 - i32.const 3456 - i32.const 178 + i32.const 1680 + i32.const 1152 + i32.const 184 i32.const 7 call $~lib/builtins/abort unreachable @@ -3578,7 +3193,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3595,7 +3210,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3604,7 +3219,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$285 + block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$273 local.get $0 i32.const 20 i32.sub @@ -3624,7 +3239,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $2 - br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$285 + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$273 end local.get $2 i32.const 0 @@ -3666,7 +3281,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$285 + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$273 end local.get $2 i32.const 1 @@ -3691,8 +3306,8 @@ i32.ge_s return end - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3705,11 +3320,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3797,11 +3412,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3886,11 +3501,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3943,11 +3558,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3970,7 +3585,7 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1152 + i32.const 2928 return end local.get $5 @@ -3986,7 +3601,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 1152 + i32.const 2928 local.get $0 select return @@ -4157,11 +3772,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4209,7 +3824,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4252,7 +3867,7 @@ local.get $8 local.get $9 local.get $0 - i32.const 5408 + i32.const 3472 i32.load call_indirect (type $1) if @@ -4264,7 +3879,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4285,7 +3900,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4306,8 +3921,8 @@ i32.const 268435455 i32.gt_u if - i32.const 3648 - i32.const 3744 + i32.const 1680 + i32.const 1776 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -4316,7 +3931,7 @@ global.get $~lib/memory/__stack_pointer local.get $10 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$226 + block $__inlined_func$~lib/rt/itcms/__renew$215 i32.const 1073741820 local.get $1 i32.const 1 @@ -4359,7 +3974,7 @@ i32.store offset=16 local.get $1 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$226 + br $__inlined_func$~lib/rt/itcms/__renew$215 end local.get $4 local.get $3 @@ -4436,8 +4051,8 @@ local.get $10 return end - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4452,11 +4067,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4526,11 +4141,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4601,11 +4216,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4674,11 +4289,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4760,11 +4375,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4807,7 +4422,7 @@ local.get $1 local.get $1 local.get $2 - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 0 @@ -4826,7 +4441,7 @@ select local.tee $1 local.get $4 - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 0 @@ -4858,7 +4473,7 @@ local.get $1 local.get $1 local.get $2 - i32.const 5808 + i32.const 3872 i32.load call_indirect (type $0) i32.const 0 @@ -4875,7 +4490,7 @@ br $folding-inner0 end global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store local.get $0 i32.const 0 @@ -4944,7 +4559,7 @@ i32.add local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store local.get $0 i32.const 0 @@ -4961,7 +4576,7 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store local.get $0 i32.const 0 @@ -4985,7 +4600,7 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store local.get $0 local.get $4 @@ -5004,7 +4619,7 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store local.get $0 local.get $5 @@ -5072,7 +4687,7 @@ i32.add local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store local.get $0 local.get $7 @@ -5137,7 +4752,7 @@ i32.add local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store local.get $0 local.get $3 @@ -5185,45 +4800,13 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 104 memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 38664 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store @@ -5234,7 +4817,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 5 i32.const 1 call $~lib/builtins/abort @@ -5251,7 +4834,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -5273,7 +4856,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -5285,32 +4868,32 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 9 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1280 i32.store - i32.const 3584 + i32.const 1280 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 13 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1280 i32.store - i32.const 3580 + i32.const 1276 i32.load i32.const 2 i32.shr_u @@ -5318,39 +4901,71 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1280 i32.store - i32.const 3584 + i32.const 1280 i32.const 4 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1280 i32.store - i32.const 3584 + i32.const 1280 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end + memory.size + i32.const 16 + i32.shl + i32.const 36728 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/pinSpace + i32.const 1492 + i32.const 1488 + i32.store + i32.const 1496 + i32.const 1488 + i32.store + i32.const 1488 + 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 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new local.tee $5 - i32.const 3616 + i32.const 1312 i32.const 12 memory.copy local.get $5 @@ -5366,7 +4981,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -5383,7 +4998,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -5400,7 +5015,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -5420,7 +5035,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -5444,7 +5059,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -5454,7 +5069,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $5 - i32.const 3616 + i32.const 1312 i32.const 12 memory.copy local.get $5 @@ -5470,7 +5085,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -5510,7 +5125,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5541,7 +5156,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -5568,7 +5183,7 @@ call $~lib/staticarray/StaticArray#__get if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 46 i32.const 5 call $~lib/builtins/abort @@ -5584,7 +5199,7 @@ global.get $~lib/memory/__stack_pointer i32.const 6 i32.const 7 - i32.const 3696 + i32.const 1728 call $~lib/rt/__newArray local.tee $0 i32.store offset=12 @@ -5615,7 +5230,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -5647,7 +5262,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 58 i32.const 5 call $~lib/builtins/abort @@ -5663,7 +5278,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 7 - i32.const 3792 + i32.const 1824 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -5684,7 +5299,7 @@ i32.shr_u if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 61 i32.const 3 call $~lib/builtins/abort @@ -5695,7 +5310,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $1 - i32.const 3824 + i32.const 1856 i64.load align=1 i64.store align=1 local.get $1 @@ -5708,7 +5323,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $5 - i32.const 3856 + i32.const 1888 i32.load align=1 i32.store align=1 global.get $~lib/memory/__stack_pointer @@ -5732,7 +5347,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 69 i32.const 3 call $~lib/builtins/abort @@ -5746,7 +5361,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $5 - i32.const 3888 + i32.const 1920 i32.const 0 memory.copy global.get $~lib/memory/__stack_pointer @@ -5778,7 +5393,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 71 i32.const 3 call $~lib/builtins/abort @@ -5789,7 +5404,7 @@ i32.const 8 call $~lib/rt/itcms/__new local.tee $1 - i32.const 3984 + i32.const 2016 i64.load align=1 i64.store align=1 local.get $1 @@ -5802,7 +5417,7 @@ i32.const 8 call $~lib/rt/itcms/__new local.tee $6 - i32.const 4048 + i32.const 2080 i32.load align=1 i32.store align=1 global.get $~lib/memory/__stack_pointer @@ -5813,7 +5428,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5845,9 +5460,9 @@ i32.const 268435455 i32.gt_u if - i32.const 3648 - i32.const 3456 - i32.const 178 + i32.const 1680 + i32.const 1152 + i32.const 184 i32.const 7 call $~lib/builtins/abort unreachable @@ -5867,7 +5482,7 @@ call $~lib/rt/itcms/__new local.tee $8 i32.store offset=4 - loop $for-loop|02 + loop $for-loop|03 local.get $0 local.get $2 i32.gt_u @@ -5889,7 +5504,7 @@ i32.const 4 i32.add local.set $2 - br $for-loop|02 + br $for-loop|03 end end local.get $0 @@ -5902,7 +5517,7 @@ local.set $2 i32.const 0 local.set $0 - loop $for-loop|13 + loop $for-loop|14 local.get $0 local.get $2 i32.lt_u @@ -5924,7 +5539,7 @@ i32.const 4 i32.add local.set $0 - br $for-loop|13 + br $for-loop|14 end end global.get $~lib/memory/__stack_pointer @@ -5946,7 +5561,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 76 i32.const 3 call $~lib/builtins/abort @@ -5957,7 +5572,7 @@ i32.const 8 call $~lib/rt/itcms/__new local.tee $2 - i32.const 4256 + i32.const 2288 i32.const 20 memory.copy local.get $2 @@ -5994,7 +5609,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -6041,7 +5656,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 86 i32.const 5 call $~lib/builtins/abort @@ -6077,7 +5692,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 90 i32.const 3 call $~lib/builtins/abort @@ -6094,12 +5709,12 @@ local.get $1 i32.store local.get $1 - i32.const 4112 + i32.const 2144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 91 i32.const 3 call $~lib/builtins/abort @@ -6116,12 +5731,12 @@ local.get $0 i32.store local.get $0 - i32.const 4144 + i32.const 2176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 92 i32.const 3 call $~lib/builtins/abort @@ -6161,7 +5776,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 95 i32.const 3 call $~lib/builtins/abort @@ -6198,7 +5813,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -6226,7 +5841,7 @@ i32.shr_u if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 101 i32.const 3 call $~lib/builtins/abort @@ -6256,7 +5871,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -6273,12 +5888,12 @@ local.get $0 i32.store local.get $0 - i32.const 4208 + i32.const 2240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -6305,7 +5920,7 @@ i32.shr_u if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -6334,7 +5949,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 111 i32.const 3 call $~lib/builtins/abort @@ -6351,12 +5966,12 @@ local.get $0 i32.store local.get $0 - i32.const 4144 + i32.const 2176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 112 i32.const 3 call $~lib/builtins/abort @@ -6367,7 +5982,7 @@ i32.const 8 call $~lib/rt/itcms/__new local.tee $1 - i32.const 4432 + i32.const 2464 i32.const 20 memory.copy local.get $1 @@ -6378,7 +5993,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 9 - i32.const 4480 + i32.const 2512 call $~lib/rt/__newArray local.set $2 global.get $~lib/memory/__stack_pointer @@ -6406,7 +6021,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 122 i32.const 3 call $~lib/builtins/abort @@ -6418,7 +6033,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 9 - i32.const 4544 + i32.const 2576 call $~lib/rt/__newArray local.set $2 global.get $~lib/memory/__stack_pointer @@ -6448,7 +6063,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -6459,7 +6074,7 @@ i32.const 8 call $~lib/rt/itcms/__new local.tee $1 - i32.const 4576 + i32.const 2608 i32.const 20 memory.copy local.get $1 @@ -6468,14 +6083,14 @@ local.get $1 i32.store local.get $1 - i32.const 4112 + i32.const 2144 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 133 i32.const 3 call $~lib/builtins/abort @@ -6485,12 +6100,12 @@ local.get $1 i32.store local.get $1 - i32.const 4512 + i32.const 2544 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 134 i32.const 3 call $~lib/builtins/abort @@ -6500,12 +6115,12 @@ local.get $1 i32.store local.get $1 - i32.const 4208 + i32.const 2240 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -6515,25 +6130,25 @@ local.get $1 i32.store local.get $1 - i32.const 4208 + i32.const 2240 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 136 i32.const 3 call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#includes$287 (result i32) + block $__inlined_func$~lib/staticarray/StaticArray#includes$275 (result i32) i32.const 8 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 - i32.const 4624 + i32.const 2656 i64.load align=1 i64.store align=1 global.get $~lib/memory/__stack_pointer @@ -6546,7 +6161,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6569,7 +6184,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/staticarray/StaticArray#includes$287 + br $__inlined_func$~lib/staticarray/StaticArray#includes$275 end loop $while-continue|0 local.get $1 @@ -6591,7 +6206,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/staticarray/StaticArray#includes$287 + br $__inlined_func$~lib/staticarray/StaticArray#includes$275 end local.get $1 i32.const 1 @@ -6609,18 +6224,18 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 138 i32.const 3 call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#includes$288 (result i32) + block $__inlined_func$~lib/staticarray/StaticArray#includes$276 (result i32) i32.const 4 i32.const 11 call $~lib/rt/itcms/__new local.tee $0 - i32.const 4656 + i32.const 2688 i32.load align=1 i32.store align=1 global.get $~lib/memory/__stack_pointer @@ -6633,7 +6248,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6656,7 +6271,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/staticarray/StaticArray#includes$288 + br $__inlined_func$~lib/staticarray/StaticArray#includes$276 end loop $while-continue|030 local.get $1 @@ -6678,7 +6293,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/staticarray/StaticArray#includes$288 + br $__inlined_func$~lib/staticarray/StaticArray#includes$276 end local.get $1 i32.const 1 @@ -6696,7 +6311,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 139 i32.const 3 call $~lib/builtins/abort @@ -6707,7 +6322,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $1 - i32.const 4688 + i32.const 2720 i32.const 12 memory.copy local.get $1 @@ -6721,7 +6336,7 @@ call $~lib/staticarray/StaticArray#indexOf if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 145 i32.const 3 call $~lib/builtins/abort @@ -6738,7 +6353,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 146 i32.const 3 call $~lib/builtins/abort @@ -6755,7 +6370,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -6772,7 +6387,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 148 i32.const 3 call $~lib/builtins/abort @@ -6787,7 +6402,7 @@ call $~lib/staticarray/StaticArray#indexOf if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 149 i32.const 3 call $~lib/builtins/abort @@ -6798,7 +6413,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $1 - i32.const 4720 + i32.const 2752 i32.const 16 memory.copy local.get $1 @@ -6815,7 +6430,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -6833,7 +6448,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 156 i32.const 3 call $~lib/builtins/abort @@ -6850,7 +6465,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 157 i32.const 3 call $~lib/builtins/abort @@ -6865,7 +6480,7 @@ call $~lib/staticarray/StaticArray#lastIndexOf if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 158 i32.const 3 call $~lib/builtins/abort @@ -6880,7 +6495,7 @@ call $~lib/staticarray/StaticArray#lastIndexOf if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 159 i32.const 3 call $~lib/builtins/abort @@ -6897,7 +6512,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 160 i32.const 3 call $~lib/builtins/abort @@ -6908,7 +6523,7 @@ i32.const 8 call $~lib/rt/itcms/__new local.tee $1 - i32.const 4864 + i32.const 2896 i32.const 12 memory.copy local.get $1 @@ -6917,19 +6532,19 @@ local.get $1 i32.store offset=24 local.get $1 - i32.const 4896 + i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4928 + i32.const 2992 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 166 i32.const 3 call $~lib/builtins/abort @@ -6939,19 +6554,19 @@ local.get $1 i32.store offset=24 local.get $1 - i32.const 1152 + i32.const 2928 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4976 + i32.const 3040 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 167 i32.const 3 call $~lib/builtins/abort @@ -6961,19 +6576,19 @@ local.get $1 i32.store offset=24 local.get $1 - i32.const 5024 + i32.const 3088 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5056 + i32.const 3120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 168 i32.const 3 call $~lib/builtins/abort @@ -6983,19 +6598,19 @@ local.get $1 i32.store offset=24 local.get $1 - i32.const 5104 + i32.const 3168 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5136 + i32.const 3200 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 169 i32.const 3 call $~lib/builtins/abort @@ -7005,7 +6620,7 @@ local.get $1 i32.store offset=48 local.get $1 - i32.const 4896 + i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -7019,7 +6634,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7029,7 +6644,7 @@ local.get $1 i32.store local.get $1 - i32.const 4896 + i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -7045,7 +6660,7 @@ i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 170 i32.const 3 call $~lib/builtins/abort @@ -7056,7 +6671,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $1 - i32.const 5200 + i32.const 3264 i64.load align=1 i64.store align=1 local.get $1 @@ -7071,7 +6686,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7085,7 +6700,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7142,7 +6757,7 @@ call $~lib/staticarray/StaticArray#__get if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 178 i32.const 3 call $~lib/builtins/abort @@ -7158,7 +6773,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 179 i32.const 3 call $~lib/builtins/abort @@ -7169,7 +6784,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $1 - i32.const 5232 + i32.const 3296 i32.const 12 memory.copy local.get $1 @@ -7182,7 +6797,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7260,7 +6875,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 187 i32.const 3 call $~lib/builtins/abort @@ -7276,7 +6891,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 188 i32.const 3 call $~lib/builtins/abort @@ -7292,7 +6907,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 189 i32.const 3 call $~lib/builtins/abort @@ -7303,7 +6918,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $1 - i32.const 5264 + i32.const 3328 i32.const 20 memory.copy local.get $1 @@ -7318,7 +6933,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7332,7 +6947,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7404,7 +7019,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 197 i32.const 3 call $~lib/builtins/abort @@ -7420,7 +7035,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 198 i32.const 3 call $~lib/builtins/abort @@ -7436,7 +7051,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 199 i32.const 3 call $~lib/builtins/abort @@ -7452,7 +7067,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 200 i32.const 3 call $~lib/builtins/abort @@ -7468,7 +7083,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 201 i32.const 3 call $~lib/builtins/abort @@ -7479,7 +7094,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $2 - i32.const 5312 + i32.const 3376 i32.const 12 memory.copy local.get $2 @@ -7489,14 +7104,14 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5344 + i32.const 3408 i32.store offset=24 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 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7550,7 +7165,7 @@ local.get $9 local.get $0 local.get $2 - i32.const 5344 + i32.const 3408 i32.load call_indirect (type $1) i32.store @@ -7577,7 +7192,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 210 i32.const 3 call $~lib/builtins/abort @@ -7593,7 +7208,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 211 i32.const 3 call $~lib/builtins/abort @@ -7609,7 +7224,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 212 i32.const 3 call $~lib/builtins/abort @@ -7619,14 +7234,14 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5376 + i32.const 3440 i32.store offset=24 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 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7662,7 +7277,7 @@ global.set $~argumentsLength local.get $1 local.get $2 - i32.const 5376 + i32.const 3440 i32.load call_indirect (type $6) local.get $1 @@ -7681,7 +7296,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 216 i32.const 3 call $~lib/builtins/abort @@ -7691,7 +7306,7 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5408 + i32.const 3472 i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $2 @@ -7707,7 +7322,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 220 i32.const 3 call $~lib/builtins/abort @@ -7723,7 +7338,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 221 i32.const 3 call $~lib/builtins/abort @@ -7739,7 +7354,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 222 i32.const 3 call $~lib/builtins/abort @@ -7749,7 +7364,7 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5440 + i32.const 3504 i32.store offset=24 i32.const 0 local.set $1 @@ -7758,7 +7373,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7797,7 +7412,7 @@ local.get $6 local.get $0 local.get $2 - i32.const 5440 + i32.const 3504 i32.load call_indirect (type $7) local.set $1 @@ -7817,7 +7432,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 226 i32.const 3 call $~lib/builtins/abort @@ -7827,7 +7442,7 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5472 + i32.const 3536 i32.store offset=24 i32.const 0 local.set $1 @@ -7836,7 +7451,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -7875,7 +7490,7 @@ local.get $5 local.get $0 local.get $2 - i32.const 5472 + i32.const 3536 i32.load call_indirect (type $7) local.set $1 @@ -7895,7 +7510,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 230 i32.const 3 call $~lib/builtins/abort @@ -7905,15 +7520,15 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5504 + i32.const 3568 i32.store offset=24 local.get $2 - i32.const 5504 + i32.const 3568 call $~lib/staticarray/StaticArray#some i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 233 i32.const 3 call $~lib/builtins/abort @@ -7923,14 +7538,14 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5536 + i32.const 3600 i32.store offset=24 local.get $2 - i32.const 5536 + i32.const 3600 call $~lib/staticarray/StaticArray#some if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 234 i32.const 3 call $~lib/builtins/abort @@ -7940,15 +7555,15 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5568 + i32.const 3632 i32.store offset=24 local.get $2 - i32.const 5568 + i32.const 3632 call $~lib/staticarray/StaticArray#every i32.eqz if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 237 i32.const 3 call $~lib/builtins/abort @@ -7958,14 +7573,14 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5600 + i32.const 3664 i32.store offset=24 local.get $2 - i32.const 5600 + i32.const 3664 call $~lib/staticarray/StaticArray#every if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 238 i32.const 3 call $~lib/builtins/abort @@ -7975,16 +7590,16 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5632 + i32.const 3696 i32.store offset=24 local.get $2 - i32.const 5632 + i32.const 3696 call $~lib/staticarray/StaticArray#findIndex i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 241 i32.const 3 call $~lib/builtins/abort @@ -7994,16 +7609,16 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5664 + i32.const 3728 i32.store offset=24 local.get $2 - i32.const 5664 + i32.const 3728 call $~lib/staticarray/StaticArray#findIndex i32.const -1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 242 i32.const 3 call $~lib/builtins/abort @@ -8013,16 +7628,16 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 3760 i32.store offset=24 local.get $2 - i32.const 5696 + i32.const 3760 call $~lib/staticarray/StaticArray#findLastIndex i32.const 1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 245 i32.const 3 call $~lib/builtins/abort @@ -8032,16 +7647,16 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5728 + i32.const 3792 i32.store offset=24 local.get $2 - i32.const 5728 + i32.const 3792 call $~lib/staticarray/StaticArray#findLastIndex i32.const -1 i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 246 i32.const 3 call $~lib/builtins/abort @@ -8052,7 +7667,7 @@ i32.const 4 call $~lib/rt/itcms/__new local.tee $1 - i32.const 5760 + i32.const 3824 i32.const 16 memory.copy local.get $1 @@ -8067,7 +7682,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -8077,20 +7692,20 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store offset=8 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 5896 + i32.const 3960 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -8107,7 +7722,7 @@ i32.shr_u local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3872 i32.store local.get $1 local.get $0 @@ -8128,7 +7743,7 @@ call $~lib/staticarray/StaticArray#__get if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 255 i32.const 3 call $~lib/builtins/abort @@ -8144,7 +7759,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 256 i32.const 3 call $~lib/builtins/abort @@ -8160,7 +7775,7 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 257 i32.const 3 call $~lib/builtins/abort @@ -8176,13 +7791,13 @@ i32.ne if i32.const 0 - i32.const 3520 + i32.const 1216 i32.const 258 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 38664 + i32.const 36728 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -8223,8 +7838,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8239,11 +7854,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s if - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8374,7 +7989,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -8391,7 +8006,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -8457,7 +8072,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5896 + i32.const 3960 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -8475,8 +8090,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38688 - i32.const 38736 + i32.const 36752 + i32.const 36800 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index 19b525c197..303dc0a7f9 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -6,21 +6,23 @@ (type $4 (func)) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i64 i32) (result i32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i32 i64 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i64 i32))) (type $9 (func (param i32 i32 i64) (result i32))) (type $10 (func (result i32))) (type $11 (func (param i32 i32 i32 i32 i32) (result i32))) (type $12 (func (param i32 i32 f64 f64 f64 f64 f64))) (type $13 (func (param i64) (result i32))) - (type $14 (func (param i32 i32 i32 i32))) + (type $14 (func (param i32 i64 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "string_casemapping" "toLowerCaseFromIndex" (func $std/string-casemapping/toLowerCaseFromIndex (param i32 i32) (result i32))) (import "string_casemapping" "toUpperCaseFromIndex" (func $std/string-casemapping/toUpperCaseFromIndex (param i32 i32) (result i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (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 $~lib/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -32,627 +34,208 @@ (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/util/casemap/SPECIALS_UPPER i32 (i32.const 2400)) - (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) - (global $~lib/rt/__rtti_base i32 (i32.const 20192)) - (global $~lib/memory/__data_end i32 (i32.const 20216)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 52984)) - (global $~lib/memory/__heap_base i32 (i32.const 52984)) - (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "L\03\00\00\00\00\00\00\00\00\00\00\04\00\00\000\03\00\00\df\00S\00S\00\00\00I\01\bc\02N\00\00\00\f0\01J\00\0c\03\00\00\90\03\99\03\08\03\01\03\b0\03\a5\03\08\03\01\03\87\055\05R\05\00\00\96\1eH\001\03\00\00\97\1eT\00\08\03\00\00\98\1eW\00\n\03\00\00\99\1eY\00\n\03\00\00\9a\1eA\00\be\02\00\00P\1f\a5\03\13\03\00\00R\1f\a5\03\13\03\00\03T\1f\a5\03\13\03\01\03V\1f\a5\03\13\03B\03\80\1f\08\1f\99\03\00\00\81\1f\t\1f\99\03\00\00\82\1f\n\1f\99\03\00\00\83\1f\0b\1f\99\03\00\00\84\1f\0c\1f\99\03\00\00\85\1f\r\1f\99\03\00\00\86\1f\0e\1f\99\03\00\00\87\1f\0f\1f\99\03\00\00\88\1f\08\1f\99\03\00\00\89\1f\t\1f\99\03\00\00\8a\1f\n\1f\99\03\00\00\8b\1f\0b\1f\99\03\00\00\8c\1f\0c\1f\99\03\00\00\8d\1f\r\1f\99\03\00\00\8e\1f\0e\1f\99\03\00\00\8f\1f\0f\1f\99\03\00\00\90\1f(\1f\99\03\00\00\91\1f)\1f\99\03\00\00\92\1f*\1f\99\03\00\00\93\1f+\1f\99\03\00\00\94\1f,\1f\99\03\00\00\95\1f-\1f\99\03\00\00\96\1f.\1f\99\03\00\00\97\1f/\1f\99\03\00\00\98\1f(\1f\99\03\00\00\99\1f)\1f\99\03\00\00\9a\1f*\1f\99\03\00\00\9b\1f+\1f\99\03\00\00\9c\1f,\1f\99\03\00\00\9d\1f-\1f\99\03\00\00\9e\1f.\1f\99\03\00\00\9f\1f/\1f\99\03\00\00\a0\1fh\1f\99\03\00\00\a1\1fi\1f\99\03\00\00\a2\1fj\1f\99\03\00\00\a3\1fk\1f\99\03\00\00\a4\1fl\1f\99\03\00\00\a5\1fm\1f\99\03\00\00\a6\1fn\1f\99\03\00\00\a7\1fo\1f\99\03\00\00\a8\1fh\1f\99\03\00\00\a9\1fi\1f\99\03\00\00\aa\1fj\1f\99\03\00\00\ab\1fk\1f\99\03\00\00\ac\1fl\1f\99\03\00\00\ad\1fm\1f\99\03\00\00\ae\1fn\1f\99\03\00\00\af\1fo\1f\99\03\00\00\b2\1f\ba\1f\99\03\00\00\b3\1f\91\03\99\03\00\00\b4\1f\86\03\99\03\00\00\b6\1f\91\03B\03\00\00\b7\1f\91\03B\03\99\03\bc\1f\91\03\99\03\00\00\c2\1f\ca\1f\99\03\00\00\c3\1f\97\03\99\03\00\00\c4\1f\89\03\99\03\00\00\c6\1f\97\03B\03\00\00\c7\1f\97\03B\03\99\03\cc\1f\97\03\99\03\00\00\d2\1f\99\03\08\03\00\03\d3\1f\99\03\08\03\01\03\d6\1f\99\03B\03\00\00\d7\1f\99\03\08\03B\03\e2\1f\a5\03\08\03\00\03\e3\1f\a5\03\08\03\01\03\e4\1f\a1\03\13\03\00\00\e6\1f\a5\03B\03\00\00\e7\1f\a5\03\08\03B\03\f2\1f\fa\1f\99\03\00\00\f3\1f\a9\03\99\03\00\00\f4\1f\8f\03\99\03\00\00\f6\1f\a9\03B\03\00\00\f7\1f\a9\03B\03\99\03\fc\1f\a9\03\99\03\00\00\00\fbF\00F\00\00\00\01\fbF\00I\00\00\00\02\fbF\00L\00\00\00\03\fbF\00F\00I\00\04\fbF\00F\00L\00\05\fbS\00T\00\00\00\06\fbS\00T\00\00\00\13\fbD\05F\05\00\00\14\fbD\055\05\00\00\15\fbD\05;\05\00\00\16\fbN\05F\05\00\00\17\fbD\05=\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 3228) "\00\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\7f") - (data $21 (i32.const 3356) "\07\08\t\n\0b\0c\06\06\06\06\06\06\06\06\06\06\r\06\06\0e\06\06\06\06\06\06\06\06\0f\10\11\12\06\13\06\06\06\06\06\06\06\06\06\06\14\15\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\16\17\06\06\06\18\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\19\06\06\06\06\1a\06\06\06\06\06\06\06\1b\06\06\06\06\06\06\06\06\06\06\06\1c\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1d\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1e\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$++++++++\01\00TVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00+++++++\07++[VVVVVVVJVV\051P1P1P1P1P1P1P1P$Py1P1P18P1P1P1P1P1P1P1PN1\02N\r\rN\03N\00$n\00N1&nQN$PN9\14\81\1b\1d\1dS1P1P\r1P1P1P\1bS$P1\02\\{\\{\\{\\{\\{\14y\\{\\{\\-+I\03H\03x\\{\14\00\96\n\01+(\06\06\00*\06**+\07\bb\b5+\1e\00+\07+++\01++++++++++++++++++++++++++++++++\01+++++++++++++++++++++++*+++++++++++++\cdF\cd+\00%+\07\01\06\01UVVVVVUVV\02$\81\81\81\81\81\15\81\81\81\00\00+\00\b2\d1\b2\d1\b2\d1\b2\d1\00\00\cd\cc\01\00\d7\d7\d7\d7\d7\83\81\81\81\81\81\81\81\81\81\81\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\1c\00\00\00\00\001P1P1P1P1P1\02\00\001P1P1P1P1P1P1P1P1PN1P1PN1P1P1P1P1P1P1P1\02\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6*++++++++++++\00\00\00TVVVVVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00TVVVVVVVVVVVV\0c\00\0c*+++++++++++++\07*\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*++++++++++++++++++++++++++VVl\81\15\00++++++++++++++++++++++++++++++++++++++++++\07l\03A++VVVVVVVVVVVVVV,V+++++++++++++++++++++\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0cl\00\00\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%Vz\9e&\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06\01++OVV,+\7fVV9++UVV++OVV,+\7fVV\817u[{\\++OVV\02\ac\04\00\009++UVV++OVV,++VV2\13\81W\00o\81~\c9\d7~-\81\81\0e~9\7foW\00\81\81~\15\00~\03++++++++++++\07+$+\97+++++++++*+++++VVVVV\80\81\81\81\819\bb*++++++++++++++++++++++++++++++++++++++++\01\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\c9\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\d0\r\00N1\02\b4\c1\c1\d7\d7$P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P\d7\d7S\c1G\d4\d7\d7\d7\05++++++++++++\07\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00N1P1P1P1P1P1P1P\r\00\00\00\00\00$P1P1P1P1P\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+++++++++++y\\{\\{O{\\{\\{\\{\\{\\{\\{\\{\\{\\{\\-++y\14\\{\\-y*\\\'\\{\\{\\{\a4\00\n\b4\\{\\{O\03x8+++++++++++++O-++\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\00\00\00\00\00\00*++++++++++++++++++++++++++\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00++++++++\07\00HVVVVVVVV\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+++++++++++++UVVVVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$+++++++++++\07\00VVVVVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$++++++++++++++++\07\00\00\00\00VVVVVVVVVVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*++++++++++VVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*++++++++++VVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+++++++++++UVVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 6024) "\00\08\00\00V\01\00\009\00\00\00") - (data $23 (i32.const 6036) "\00\00\00\00\01 \00\00\00\e0\ff\ff\00\bf\1d\00\00\e7\02\00\00y\00\00\02$\00\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\01\02\00\00\00\fe\ff\ff\019\ff\ff\00\18\ff\ff\01\87\ff\ff\00\d4\fe\ff\00\c3\00\00\01\d2\00\00\01\ce\00\00\01\cd\00\00\01O\00\00\01\ca\00\00\01\cb\00\00\01\cf\00\00\00a\00\00\01\d3\00\00\01\d1\00\00\00\a3\00\00\01\d5\00\00\00\82\00\00\01\d6\00\00\01\da\00\00\01\d9\00\00\01\db\00\00\008\00\00\03\00\00\00\00\b1\ff\ff\01\9f\ff\ff\01\c8\ff\ff\02($\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\003\ff\ff\00&\ff\ff\01~\ff\ff\01+*\00\01]\ff\ff\01(*\00\00?*\00\01=\ff\ff\01E\00\00\01G\00\00\00\1f*\00\00\1c*\00\00\1e*\00\00.\ff\ff\002\ff\ff\006\ff\ff\005\ff\ff\00O\a5\00\00K\a5\00\001\ff\ff\00(\a5\00\00D\a5\00\00/\ff\ff\00-\ff\ff\00\f7)\00\00A\a5\00\00\fd)\00\00+\ff\ff\00*\ff\ff\00\e7)\00\00C\a5\00\00*\a5\00\00\bb\ff\ff\00\'\ff\ff\00\b9\ff\ff\00%\ff\ff\00\15\a5\00\00\12\a5\00\02$L\00\00\00\00\00\01 \00\00\00\e0\ff\ff\01\01\00\00\00\ff\ff\ff\00T\00\00\01t\00\00\01&\00\00\01%\00\00\01@\00\00\01?\00\00\00\da\ff\ff\00\db\ff\ff\00\e1\ff\ff\00\c0\ff\ff\00\c1\ff\ff\01\08\00\00\00\c2\ff\ff\00\c7\ff\ff\00\d1\ff\ff\00\ca\ff\ff\00\f8\ff\ff\00\aa\ff\ff\00\b0\ff\ff\00\07\00\00\00\8c\ff\ff\01\c4\ff\ff\00\a0\ff\ff\01\f9\ff\ff\02\1ap\00\01\01\00\00\00\ff\ff\ff\01 \00\00\00\e0\ff\ff\01P\00\00\01\0f\00\00\00\f1\ff\ff\00\00\00\00\010\00\00\00\d0\ff\ff\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c0\0b\00\01`\1c\00\00\00\00\00\01\d0\97\00\01\08\00\00\00\f8\ff\ff\02\05\8a\00\00\00\00\00\01@\f4\ff\00\9e\e7\ff\00\c2\89\00\00\db\e7\ff\00\92\e7\ff\00\93\e7\ff\00\9c\e7\ff\00\9d\e7\ff\00\a4\e7\ff\00\00\00\00\008\8a\00\00\04\8a\00\00\e6\0e\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c5\ff\ff\01A\e2\ff\02\1d\8f\00\00\08\00\00\01\f8\ff\ff\00\00\00\00\00V\00\00\01\aa\ff\ff\00J\00\00\00d\00\00\00\80\00\00\00p\00\00\00~\00\00\00\t\00\00\01\b6\ff\ff\01\f7\ff\ff\00\db\e3\ff\01\9c\ff\ff\01\90\ff\ff\01\80\ff\ff\01\82\ff\ff\02\05\ac\00\00\00\00\00\01\10\00\00\00\f0\ff\ff\01\1c\00\00\01\01\00\00\01\a3\e2\ff\01A\df\ff\01\ba\df\ff\00\e4\ff\ff\02\0b\b1\00\01\01\00\00\00\ff\ff\ff\010\00\00\00\d0\ff\ff\00\00\00\00\01\t\d6\ff\01\1a\f1\ff\01\19\d6\ff\00\d5\d5\ff\00\d8\d5\ff\01\e4\d5\ff\01\03\d6\ff\01\e1\d5\ff\01\e2\d5\ff\01\c1\d5\ff\00\00\00\00\00\a0\e3\ff\00\00\00\00\01\01\00\00\00\ff\ff\ff\02\0c\bc\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\01\bcZ\ff\01\a0\03\00\01\fcu\ff\01\d8Z\ff\000\00\00\01\b1Z\ff\01\b5Z\ff\01\bfZ\ff\01\eeZ\ff\01\d6Z\ff\01\ebZ\ff\01\d0\ff\ff\01\bdZ\ff\01\c8u\ff\00\00\00\00\000h\ff\00`\fc\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01(\00\00\00\d8\ff\ff\00\00\00\00\01@\00\00\00\c0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01\"\00\00\00\de\ff\ff") - (data $24 (i32.const 6996) "\00\06\'Qow\00\00\00\00\00\00\00\00\00\00|\00\00\7f\00\00\00\00\00\00\00\00\83\8e\92\97\00\aa\00\00\00\00\00\00\00\00\00\00\b4\c4\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c6\c9\00\00\00\db\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\de\00\00\00\00\e1\00\00\00\00\00\00\00\e4\00\00\00\00\00\00\00\00\00\00\00\e7\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ea\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ed\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 7508) "0\0c1\rx\0e\7f\0f\80\10\81\11\86\12\89\13\8a\13\8e\14\8f\15\90\16\93\13\94\17\95\18\96\19\97\1a\9a\1b\9c\19\9d\1c\9e\1d\9f\1e\a6\1f\a9\1f\ae\1f\b1 \b2 \b7!\bf\"\c5#\c8#\cb#\dd$\f2#\f6%\f7& -:.=/>0?1@1C2D3E4P5Q6R7S8T9Y:[;\\e?f@hAiBj@kClDoBqErFuG}H\82I\87J\89K\8aL\8bL\8cM\92N\9dO\9ePEW{\1d|\1d}\1d\7fX\86Y\88Z\89Z\8aZ\8c[\8e\\\8f\\\ac]\ad^\ae^\af^\c2_\cc`\cda\cea\cfb\d0c\d1d\d5e\d6f\d7g\f0h\f1i\f2j\f3k\f4l\f5m\f9n\fd-\fe-\ff-PiQiRiSiTiUiViWiXiYiZi[i\\i]i^i_i\82\00\83\00\84\00\85\00\86\00\87\00\88\00\89\00\c0u\cfv\80\89\81\8a\82\8b\85\8c\86\8dp\9dq\9dv\9ew\9ex\9fy\9fz\a0{\a0|\a1}\a1\b3\a2\ba\a3\bb\a3\bc\a4\be\a5\c3\a2\cc\a4\da\a6\db\a6\e5j\ea\a7\eb\a7\ecn\f3\a2\f8\a8\f9\a8\fa\a9\fb\a9\fc\a4&\b0*\b1+\b2N\b3\84\08b\bac\bbd\bce\bdf\bem\bfn\c0o\c1p\c2~\c3\7f\c3}\cf\8d\d0\94\d1\ab\d2\ac\d3\ad\d4\b0\d5\b1\d6\b2\d7\c4\d8\c5\d9\c6\da") - (data $26 (i32.const 7916) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00c\00a\00s\00e\00m\00a\00p\00p\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 7996) "\00\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\7f") - (data $28 (i32.const 8124) "\12\10\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\10\10\"\10\10\10#$%&\'()\10*+\10\10\10\10\10\10\10\10\10\10\10,-.\10/\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\100\10\10\101\10234567\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\108\10\109:\10;<=\10\10\10\10\10\10>\10\10?@ABCDEFGHIJKL\10MNO\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10P\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10QR\10\10\10S\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10T\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10UV\10\10\10\10\10\10\10W\10\10\10\10\10XYZ\10\10\10\10\10[\\\10\10\10\10\10\10\10\10\10]\10\10\10\10\10\10\10\10\10\10\10\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\80@\00\04\00\00\00@\01\00\00\00\00\00\00\00\00\a1\90\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff0\04\b0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f8\03\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\82\00\00\00\00\00\00\fe\ff\ff\ff\ff\bf\b6\00\00\00\00\00\10\00?\00\ff\17\00\00\00\00\01\f8\ff\ff\00\00\01\00\00\00\00\00\00\00\00\00\00\00\c0\bf\ff=\00\00\00\80\02\00\00\00\ff\ff\ff\07\00\00\00\00\00\00\00\00\00\00\c0\ff\01\00\00\00\00\00\00\f8?$\00\00\c0\ff\ff?\00\00\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f8\ff\ff\ff\ff\ff\07\00\00\00\00\00\00\14\fe!\fe\00\0c\00\02\00\02\00\00\00\00\00\00\10\1e \00\00\0c\00\00@\06\00\00\00\00\00\00\10\869\02\00\00\00#\00\06\00\00\00\00\00\00\10\be!\00\00\0c\00\00\fc\02\00\00\00\00\00\00\90\1e `\00\0c\00\00\00\04\00\00\00\00\00\00\00\01 \00\00\00\00\00\00\11\00\00\00\00\00\00\c0\c1=`\00\0c\00\00\00\02\00\00\00\00\00\00\90@0\00\00\0c\00\00\00\03\00\00\00\00\00\00\18\1e \00\00\0c\00\00\00\02\00\00\00\00\00\00\00\00\04\\\00\00\00\00\00\00\00\00\00\00\00\f2\07\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00\f2\1f@?\00\00\00\00\00\00\00\00\00\03\00\00\a0\02\00\00\00\00\00\00\fe\7f\df\e0\ff\fe\ff\ff\ff\1f@\00\00\00\00\00\00\00\00\00\00\00\00\e0\fdf\00\00\00\c3\01\00\1e\00d \00 \00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\e0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\1c\00\00\00\0c\00\00\00\0c\00\00\00\00\00\00\00\b0?@\fe\8f \00\00\00\00\00x\00\00\00\00\00\00\08\00\00\00\00\00\00\00`\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\87\01\04\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\t\00\00\00\00\00\00@\7f\e5\1f\f8\9f\00\00\00\00\80\00\ff\ff\01\00\00\00\00\00\00\00\0f\00\00\00\00\00\d0\17\04\00\00\00\00\f8\0f\00\03\00\00\00<;\00\00\00\00\00\00@\a3\03\00\00\00\00\00\00\f0\cf\00\00\00\00\00\00\00\00?\00\00\00\00\00\00\00\00\00\00\f7\ff\fd!\10\03\00\00\00\00\00\f0\ff\ff\ff\ff\ff\ff\ff\07\00\01\00\00\00\f8\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fb\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\a0\03\e0\00\e0\00\e0\00`\00\f8\00\03\90|\00\00\00\00\00\00\df\ff\02\80\00\00\ff\1f\00\00\00\00\00\00\ff\ff\ff\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\80\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\00\80\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\00\00\00\00\00\80\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00<>\08\00\00\00\00\00\00\00\00\00\00\00~\00\00\00\00\00\00\00\00\00\00\00p\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00?\00\10\00\00\00\00\00\00\00\00\00\00\00\80\f7\bf\00\00\00\f0\00\00\00\00\00\00\00\00\00\00\03\00\ff\ff\ff\ff\03\00\00\00\00\00\00\00\00\00\01\00\00\07\00\00\00\00\00\00\00\00\00\00\00\00\00\03D\08\00\00`\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\000\00\00\00\ff\ff\03\80\00\00\00\00\c0?\00\00\80\ff\03\00\00\00\00\00\07\00\00\00\00\00\c83\00\80\00\00`\00\00\00\00\00\00\00\00~f\00\08\10\00\00\00\00\01\10\00\00\00\00\00\00\9d\c1\02\00\00 \000X\00\00\00\00\00\00\00\00\00\00\00\00\f8\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00 !\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\fc\ff\03\00\00\00\00\00\00\00\ff\ff\08\00\ff\ff\00\00\00\00$\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\80@\00\04\00\00\00@\01\00\00\00\00\00\01\00\00\00\00\c0\00\00\00\00\00\00\00\00\08\00\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c0\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00n\f0\00\00\00\00\00\87\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00`\00\00\00\00\00\00\00\f0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c0\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\ff\7f\00\00\00\00\00\00\80\03\00\00\00\00\00x&\00 \00\00\00\00\00\00\07\00\00\00\80\ef\1f\00\00\00\00\00\00\00\08\00\03\00\00\00\00\00\c0\7f\00\9e\00\00\00\00\00\00\00\00\00\00\00\80\d3@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\f8\07\00\00\03\00\00\00\00\00\00\18\01\00\00\00\c0\1f\1f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\\\00\00@\00\00\00\00\00\00\00\00\00\00\f8\85\r\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00<\b0\01\00\000\00\00\00\00\00\00\00\00\00\00\f8\a7\01\00\00\00\00\00\00\00\00\00\00\00\00(\bf\00\00\00\00\00\00\00\00\00\00\00\00\e0\bc\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\ff\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00X\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\0c\01\00\00\00\fe\07\00\00\00\00\f8y\80\00~\0e\00\00\00\00\00\fc\7f\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\7f\bf\00\00\00\00\00\00\00\00\00\00\fc\ff\ff\fcm\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00~\b4\bf\00\00\00\00\00\00\00\00\00\a3\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1f\00\00\00\00\00\00\00\7f\00\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\80\ff\ff\00\00\00\00\00\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00`\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\03\f8\ff\e7\0f\00\00\00<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\7f\f8\ff\ff\ff\ff\ff\1f \00\10\00\00\f8\fe\ff\00\00\00\00\00\00\00\00\00\00\7f\ff\ff\f9\db\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\7f\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f8") - (data $29 (i32.const 11132) "\12\13\14\15\16\17\10\10\10\10\10\10\10\10\10\10\18\10\10\19\10\10\10\10\10\10\10\10\1a\1b\11\1c\1d\1e\10\10\1f\10\10\10\10\10\10\10 !\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\"#\10\10\10$\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10%\10\10\10&\10\10\10\10\'\10\10\10\10\10\10\10(\10\10\10\10\10\10\10\10\10\10\10)\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10*\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10+,-.\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10/\10\10\10\10\10\10\100\10\10\10\10\10\10\10\10\10\10\10\10\10\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\fe\ff\ff\07\fe\ff\ff\07\00\00\00\00\00\04 \04\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\f7\f0\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ef\ff\ff\ff\ff\01\03\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\cf\bc@\d7\ff\ff\fb\ff\ff\ff\ff\ff\ff\ff\ff\ff\bf\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\03\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fe\ff\ff\ff\7f\00\ff\ff\ff\ff\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\bf \ff\ff\ff\ff\ff\e7\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff??\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\01\ff\ff\ff\ff\ff\e7\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\ff\ff??\ff\ff\ff\ff??\ff\aa\ff\ff\ff?\ff\ff\ff\ff\ff\ff\df_\dc\1f\cf\0f\ff\1f\dc\1f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\80\00\00\ff\1f\00\00\00\00\00\00\00\00\00\00\00\00\84\fc/>P\bd\1f\f2\e0C\00\00\ff\ff\ff\ff\18\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c0\ff\ff\ff\ff\ff\ff\03\00\00\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\1fx\0c\00\ff\ff\ff\ff\bf \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff?\00\00\ff\ff\ff?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ffx\ff\ff\ff\ff\ff\ff\fc\07\00\00\00\00`\07\00\00\00\00\00\00\ff\ff\ff\ff\ff\f7\ff\01\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\7f\00\f8\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\fe\ff\ff\07\fe\ff\ff\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\0f\ff\ff\ff\ff\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\07\00\ff\ff\ff\ff\ff\ff\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\df\ff\ff\ff\ff\ff\ff\ff\ff\dfd\de\ff\eb\ef\ff\ff\ff\ff\ff\ff\ff\bf\e7\df\df\ff\ff\ff{_\fc\fd\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff?\ff\ff\ff\fd\ff\ff\f7\ff\ff\ff\f7\ff\ff\df\ff\ff\ff\df\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\fd\ff\ff\ff\fd\ff\ff\f7\0f\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\03\ff\ff\ff\03\ff\ff\ff\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 12700) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\n\00\00\00\00\00\00\00") - (data $31 (i32.const 12748) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00A\00Z\00.\00!\00\n\00\00\00\00\00\00\00") - (data $32 (i32.const 12796) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\t\00\00\00\00\00\00\00") - (data $33 (i32.const 12844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\009\00_\00a\00z\00 \00a\00z\00.\00!\00\t\00\00\00\00\00\00\00") - (data $34 (i32.const 12892) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00J\00\00\00D\00e\00r\00 \00W\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00B\00e\00s\00t\00\e4\00n\00d\00i\00g\00e\00\00\00") - (data $35 (i32.const 12988) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00J\00\00\00D\00E\00R\00 \00W\00E\00C\00H\00S\00E\00L\00 \00A\00L\00L\00E\00I\00N\00 \00I\00S\00T\00 \00D\00A\00S\00 \00B\00E\00S\00T\00\c4\00N\00D\00I\00G\00E\00\00\00") - (data $36 (i32.const 13084) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00J\00\00\00d\00e\00r\00 \00w\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00b\00e\00s\00t\00\e4\00n\00d\00i\00g\00e\00\00\00") - (data $37 (i32.const 13180) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00@\00 \00\14 \00\14\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!\00\00\00\00\00\00\00\00\00") - (data $38 (i32.const 13244) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00@\00 \00\14 \00\14\04 \04#\04\13\04 \00\'\04\15\04\1b\04\1e\04\12\04\15\04\1a\04\10\04!\00\00\00\00\00\00\00\00\00") - (data $39 (i32.const 13308) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00@\00 \00\14 \004\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!\00\00\00\00\00\00\00\00\00") - (data $40 (i32.const 13372) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00\00\00\00\00\00\00\00\00") - (data $41 (i32.const 13468) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00.\" \00E\00\c5\"D\00A\00 \00=\00 \00Q\00,\00 \00N\00 \00\92! \00\1e\",\00 \00\11\" \00F\00(\00I\00)\00 \00=\00 \00\0f\" \00G\00(\00I\00)\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 13564) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00.\" \00e\00\c5\"d\00a\00 \00=\00 \00q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00\00\00\00\00\00\00\00\00") - (data $43 (i32.const 13660) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n\00\00\00\00\00") - (data $44 (i32.const 13756) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00\d0\00I\00 \00I\00N\00T\00\8f\01\c8\02N\00\c6\00\a9\01\8f\01N\00\8f\01L\00 \00F\00\8f\01\c8\02N\00\90\01T\00I\00K\00 \00\8f\01S\00O\00\b1\01S\00I\00\c8\02E\00I\00\a9\01N\00\00\00\00\00") - (data $45 (i32.const 13852) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00\f0\00i\00 \00i\00n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\00i\00k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\00i\00\83\02n\00\00\00\00\00") - (data $46 (i32.const 13948) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03\cc\03\c8\03\b7\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $47 (i32.const 14028) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00\9a\03\8c\03\a8\03\97\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $48 (i32.const 14108) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03\ae\03,\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $49 (i32.const 14188) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00\a4\03\9f\03\a5\03B\03 \00\a3\03\a0\03\91\03\98\03\99\03\9f\03\a5\03B\03 \00\a4\03\ca\1f\9d\03 \00\a4\03\a1\03\9f\03\9c\03\95\03\a1\03\89\03,\00\00\00\00\00\00\00\00\00") - (data $50 (i32.const 14268) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03") - (data $51 (i32.const 14332) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00L\1f\a8\03\97\03") - (data $52 (i32.const 14396) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03\af\03\b1\03 \00\bc\03\b5\03\c4\03\c1\03\ac\03\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.\00\00\00\00\00\00\00\00\00\00\00") - (data $53 (i32.const 14476) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00\a0\03\9f\03\ea\1f \00\9c\03\c8\1f \00\92\03\8a\03\91\03 \00\9c\03\95\03\a4\03\a1\03\86\03\95\03\99\03 \00\a4\03\ca\1f \00\93\03\97\03B\03.\00\00\00\00\00\00\00\00\00") - (data $54 (i32.const 14556) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03\cc\03\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03\ad\03\bd\03\b7\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $55 (i32.const 14636) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00\91\03\a0\03\bf\1f \00\a4\03\ba\1f \00\9a\03\8c\03\9a\03\9a\03\91\03\9b\03\91\03 \00\92\03\93\03\91\03\9b\03\9c\03\88\03\9d\03\97\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $56 (i32.const 14716) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03\ae\03\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03\ac\03\00\00\00\00") - (data $57 (i32.const 14780) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00\a4\03\a9\03B\03\9d\03 \00\fe\1f\95\03\9b\03\9b\03\89\03\9d\03\a9\03\9d\03 \00\a4\03\ba\1f \009\1f\95\03\a1\03\86\03\00\00") - (data $58 (i32.const 14844) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03\ad\03\bd\03\b7\03\00\00\00\00\00\00\00\00\00\00") - (data $59 (i32.const 14924) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00\9a\03\91\03\da\1f \00\a3\03\ba\1f\9d\03 \00\a0\03\a1\03\a9\03B\03\a4\03\91\03 \00\08\1f\9d\03\94\03\a1\03\95\03\99\03\a9\03\9c\03\88\03\9d\03\97\03\00\00\00\00\00\00\00\00") - (data $60 (i32.const 15004) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03\ac\03!\00\00\00\00\00\00\00") - (data $61 (i32.const 15084) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00n\1f \00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00\bf\1f\95\03\9b\03\95\03\a5\03\98\03\95\03\a1\03\99\03\86\03!\00\00\00") - (data $62 (i32.const 15164) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\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\00\00\00\00\00\00\00\00") - (data $63 (i32.const 15324) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\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\00\00\00\00\00\00\00\00") - (data $64 (i32.const 15484) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\80\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\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\00\00\00\00\00\00\00\00") - (data $65 (i32.const 15644) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\df\00\00\00\00\00\00\00\00\00\00\00") - (data $66 (i32.const 15676) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00S\00S\00\00\00\00\00\00\00\00\00") - (data $67 (i32.const 15708) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\01\00\00\00\00\00\00\00\00\00\00") - (data $68 (i32.const 15740) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00i\00\07\03\00\00\00\00\00\00\00\00") - (data $69 (i32.const 15772) "\cc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\ae\00\00\00\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $70 (i32.const 15980) "\cc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\b2\00\00\00\a3\00\a9\00\9c\03\c0\00\c6\00\d6\00\de\00S\00S\00\c9\00\d6\00x\01\13 \14 \18 \1c \1d \1e \" & 0 \"!R\01`\01x\01}\01\ac \00\91\03\92\03\93\03\94\03\a9\03\91\03\92\03\93\03\94\03\a9\03 \00\10\04\11\04\12\04\13\04\14\04\10\04\11\04\12\04\13\04\14\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00F\00I\00\fd\ff@$\82 (\1f\02\1e\e4\04\84\1eo,\d0\02N#\d0\051\05\90\1c\00\00\00\00\00\00\00\00\00\00") - (data $71 (i32.const 16188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00s\00s\00\00\00\00\00\00\00\00\00") - (data $72 (i32.const 16220) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\01\fb\00\00\00\00\00\00\00\00\00\00") - (data $73 (i32.const 16252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00f\00i\00\00\00\00\00\00\00\00\00") - (data $74 (i32.const 16284) "\cc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\b8\00\00\00A\d8\0e\df \00A\d81\df \00A\d8y\df \00C\d8S\dc \00C\d8x\dc \00C\d8\96\dc \00C\d8\cf\dc \00C\d8\d5\dc \00C\d8\15\dd \00C\d8|\dd \00C\d8\7f\dd \00C\d8\0e\de \00C\d8\0f\de \00C\d8w\de \00C\d8\9d\de \00C\d8\a2\de \00C\d8\d7\de \00C\d8\f9\de \00C\d8\fa\de \00C\d8-\df \00C\d8.\df \00C\d8L\df \00C\d8\b4\df \00C\d8\bc\df \00C\d8\ea\df \00D\d8\\\dc \00D\d8o\dc \00D\d8u\dc \00D\d8v\dc \00D\d8{\dc \00D\d8\c1\dc\00\00\00\00") - (data $75 (i32.const 16492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data $76 (i32.const 16540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\00\d8\00\dc\00\00\00\00\00\00\00\00") - (data $77 (i32.const 16572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\88\1f\00\00\00\00\00\00\00\00\00\00") - (data $78 (i32.const 16604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\80\1f\00\00\00\00\00\00\00\00\00\00") - (data $79 (i32.const 16636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\8f\1f\00\00\00\00\00\00\00\00\00\00") - (data $80 (i32.const 16668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\87\1f\00\00\00\00\00\00\00\00\00\00") - (data $81 (i32.const 16700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\fc\1f\00\00\00\00\00\00\00\00\00\00") - (data $82 (i32.const 16732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\f3\1f\00\00\00\00\00\00\00\00\00\00") - (data $83 (i32.const 16764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\a3\03\00\00\00\00\00\00\00\00\00\00") - (data $84 (i32.const 16796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\c3\03\00\00\00\00\00\00\00\00\00\00") - (data $85 (i32.const 16828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00 \00\a3\03\00\00\00\00\00\00\00\00") - (data $86 (i32.const 16860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00 \00\c3\03\00\00\00\00\00\00\00\00") - (data $87 (i32.const 16892) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\a3\03 \00\00\00\00\00\00\00\00\00") - (data $88 (i32.const 16924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\c3\03 \00\00\00\00\00\00\00\00\00") - (data $89 (i32.const 16956) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00 \00\a3\03 \00\00\00\00\00\00\00") - (data $90 (i32.const 16988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00 \00\c3\03 \00\00\00\00\00\00\00") - (data $91 (i32.const 17020) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\a3\03 \00\00\00\00\00\00\00") - (data $92 (i32.const 17052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c2\03 \00\00\00\00\00\00\00") - (data $93 (i32.const 17084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\a3\03\n\00\00\00\00\00\00\00") - (data $94 (i32.const 17116) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c2\03\n\00\00\00\00\00\00\00") - (data $95 (i32.const 17148) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00\a3\03\00\00\00\00\00\00\00\00") - (data $96 (i32.const 17180) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00\c2\03\00\00\00\00\00\00\00\00") - (data $97 (i32.const 17212) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\a3\03b\00\00\00\00\00\00\00") - (data $98 (i32.const 17244) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c3\03b\00\00\00\00\00\00\00") - (data $99 (i32.const 17276) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\a3\03\a3\03 \00\00\00\00\00\00\00") - (data $100 (i32.const 17308) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\c3\03\c2\03 \00\00\00\00\00\00\00") - (data $101 (i32.const 17340) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00\a3\03 \00\00\00\00\00\00\00") - (data $102 (i32.const 17372) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00\c3\03 \00\00\00\00\00\00\00") - (data $103 (i32.const 17404) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00;\00\a3\03 \00\00\00\00\00\00\00") - (data $104 (i32.const 17436) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00;\00\c3\03 \00\00\00\00\00\00\00") - (data $105 (i32.const 17468) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\01\03\a3\03 \00\00\00\00\00\00\00") - (data $106 (i32.const 17500) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\01\03\c3\03 \00\00\00\00\00\00\00") - (data $107 (i32.const 17532) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03 \00\00\00") - (data $108 (i32.const 17564) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03 \00\00\00") - (data $109 (i32.const 17596) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\a3\03\a3\03-\00\00\00\00\00\00\00") - (data $110 (i32.const 17628) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\c3\03\c2\03-\00\00\00\00\00\00\00") - (data $111 (i32.const 17660) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03-\00\00\00") - (data $112 (i32.const 17692) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03-\00\00\00") - (data $113 (i32.const 17724) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03*s\00\00") - (data $114 (i32.const 17756) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03*s\00\00") - (data $115 (i32.const 17788) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\005\d8\a2\dc\a3\03\00\00\00\00\00\00") - (data $116 (i32.const 17820) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\005\d8\a2\dc\c2\03\00\00\00\00\00\00") - (data $117 (i32.const 17852) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00.\00\a3\03\00\00\00\00\00\00") - (data $118 (i32.const 17884) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00.\00\c2\03\00\00\00\00\00\00") - (data $119 (i32.const 17916) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\ad\00\a3\03\00\00\00\00\00\00") - (data $120 (i32.const 17948) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\ad\00\c2\03\00\00\00\00\00\00") - (data $121 (i32.const 17980) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\004\d8B\de\a3\03\00\00\00\00") - (data $122 (i32.const 18012) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\004\d8B\de\c2\03\00\00\00\00") - (data $123 (i32.const 18044) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\03\a3\03\00\00\00\00\00\00\00\00") - (data $124 (i32.const 18076) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\03\c3\03\00\00\00\00\00\00\00\00") - (data $125 (i32.const 18108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\91\03E\03\a3\03\00\00\00\00\00\00") - (data $126 (i32.const 18140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\b1\03E\03\c2\03\00\00\00\00\00\00") - (data $127 (i32.const 18172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\a3\03B\00\00\00\00\00\00\00") - (data $128 (i32.const 18204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\035\d8\a2\dc\00\00\00\00") - (data $129 (i32.const 18236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\035\d8\a2\dc\00\00\00\00") - (data $130 (i32.const 18268) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\03.\00b\00\00\00\00\00") - (data $131 (i32.const 18300) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\03.\00b\00\00\00\00\00") - (data $132 (i32.const 18332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\03\ad\00B\00\00\00\00\00") - (data $133 (i32.const 18364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\03\ad\00b\00\00\00\00\00") - (data $134 (i32.const 18396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00A\00\a3\034\d8B\deB\00\00\00") - (data $135 (i32.const 18428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00\c3\034\d8B\deb\00\00\00") - (data $136 (i32.const 18460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\a3\03E\03\00\00\00\00\00\00") - (data $137 (i32.const 18492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c2\03E\03\00\00\00\00\00\00") - (data $138 (i32.const 18524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\03E\03\91\03\00\00\00\00") - (data $139 (i32.const 18556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\03E\03\b1\03\00\00\00\00") - (data $140 (i32.const 18588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\0e\18\a3\03\00\00\00\00\00\00") - (data $141 (i32.const 18620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\0e\18\c2\03\00\00\00\00\00\00") - (data $142 (i32.const 18652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\0e\18\a3\03B\00\00\00\00\00") - (data $143 (i32.const 18684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\0e\18\c3\03b\00\00\00\00\00") - (data $144 (i32.const 18716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\a3\03\0e\18\00\00\00\00\00\00") - (data $145 (i32.const 18748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c2\03\0e\18\00\00\00\00\00\00") - (data $146 (i32.const 18780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\03\0e\18B\00\00\00\00\00") - (data $147 (i32.const 18812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\03\0e\18b\00\00\00\00\00") - (data $148 (i32.const 18844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\0e\18\a3\03\0e\18\00\00\00\00") - (data $149 (i32.const 18876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\0e\18\c2\03\0e\18\00\00\00\00") - (data $150 (i32.const 18908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00A\00\0e\18\a3\03\0e\18B\00\00\00") - (data $151 (i32.const 18940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00\0e\18\c3\03\0e\18b\00\00\00") - (data $152 (i32.const 18972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\fb\00\00\00\00\00\00\00\00\00\00") - (data $153 (i32.const 19004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00F\00F\00\00\00\00\00\00\00\00\00") - (data $154 (i32.const 19036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00F\00I\00\00\00\00\00\00\00\00\00") - (data $155 (i32.const 19068) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\02\fb\00\00\00\00\00\00\00\00\00\00") - (data $156 (i32.const 19100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00F\00L\00\00\00\00\00\00\00\00\00") - (data $157 (i32.const 19132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\03\fb\00\00\00\00\00\00\00\00\00\00") - (data $158 (i32.const 19164) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00F\00F\00I\00\00\00\00\00\00\00") - (data $159 (i32.const 19196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\04\fb\00\00\00\00\00\00\00\00\00\00") - (data $160 (i32.const 19228) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00F\00F\00L\00\00\00\00\00\00\00") - (data $161 (i32.const 19260) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\05\fb\00\00\00\00\00\00\00\00\00\00") - (data $162 (i32.const 19292) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00S\00T\00\00\00\00\00\00\00\00\00") - (data $163 (i32.const 19324) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\06\fb\00\00\00\00\00\00\00\00\00\00") - (data $164 (i32.const 19356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\f0\01\00\00\00\00\00\00\00\00\00\00") - (data $165 (i32.const 19388) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00J\00\0c\03\00\00\00\00\00\00\00\00") - (data $166 (i32.const 19420) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\96\1e\00\00\00\00\00\00\00\00\00\00") - (data $167 (i32.const 19452) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00H\001\03\00\00\00\00\00\00\00\00") - (data $168 (i32.const 19484) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\97\1e\00\00\00\00\00\00\00\00\00\00") - (data $169 (i32.const 19516) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00T\00\08\03\00\00\00\00\00\00\00\00") - (data $170 (i32.const 19548) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\98\1e\00\00\00\00\00\00\00\00\00\00") - (data $171 (i32.const 19580) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00W\00\n\03\00\00\00\00\00\00\00\00") - (data $172 (i32.const 19612) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\99\1e\00\00\00\00\00\00\00\00\00\00") - (data $173 (i32.const 19644) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00Y\00\n\03\00\00\00\00\00\00\00\00") - (data $174 (i32.const 19676) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\9a\1e\00\00\00\00\00\00\00\00\00\00") - (data $175 (i32.const 19708) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00A\00\be\02\00\00\00\00\00\00\00\00") - (data $176 (i32.const 19740) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $177 (i32.const 19836) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00 \00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $178 (i32.const 19900) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00") - (data $179 (i32.const 19964) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $180 (i32.const 20060) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00 \00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $181 (i32.const 20124) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00") - (data $182 (i32.const 20192) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\a4\00\00\00") - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "memory" (memory $0)) - (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end + (global $~lib/util/casemap/SPECIALS_UPPER i32 (i32.const 464)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/rt/__rtti_base i32 (i32.const 20032)) + (global $~lib/memory/__data_end i32 (i32.const 20056)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 52824)) + (global $~lib/memory/__heap_base i32 (i32.const 52824)) + (memory $0 1) + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 300) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 352) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 444) "L\03\00\00\00\00\00\00\00\00\00\00\04\00\00\000\03\00\00\df\00S\00S\00\00\00I\01\bc\02N\00\00\00\f0\01J\00\0c\03\00\00\90\03\99\03\08\03\01\03\b0\03\a5\03\08\03\01\03\87\055\05R\05\00\00\96\1eH\001\03\00\00\97\1eT\00\08\03\00\00\98\1eW\00\n\03\00\00\99\1eY\00\n\03\00\00\9a\1eA\00\be\02\00\00P\1f\a5\03\13\03\00\00R\1f\a5\03\13\03\00\03T\1f\a5\03\13\03\01\03V\1f\a5\03\13\03B\03\80\1f\08\1f\99\03\00\00\81\1f\t\1f\99\03\00\00\82\1f\n\1f\99\03\00\00\83\1f\0b\1f\99\03\00\00\84\1f\0c\1f\99\03\00\00\85\1f\r\1f\99\03\00\00\86\1f\0e\1f\99\03\00\00\87\1f\0f\1f\99\03\00\00\88\1f\08\1f\99\03\00\00\89\1f\t\1f\99\03\00\00\8a\1f\n\1f\99\03\00\00\8b\1f\0b\1f\99\03\00\00\8c\1f\0c\1f\99\03\00\00\8d\1f\r\1f\99\03\00\00\8e\1f\0e\1f\99\03\00\00\8f\1f\0f\1f\99\03\00\00\90\1f(\1f\99\03\00\00\91\1f)\1f\99\03\00\00\92\1f*\1f\99\03\00\00\93\1f+\1f\99\03\00\00\94\1f,\1f\99\03\00\00\95\1f-\1f\99\03\00\00\96\1f.\1f\99\03\00\00\97\1f/\1f\99\03\00\00\98\1f(\1f\99\03\00\00\99\1f)\1f\99\03\00\00\9a\1f*\1f\99\03\00\00\9b\1f+\1f\99\03\00\00\9c\1f,\1f\99\03\00\00\9d\1f-\1f\99\03\00\00\9e\1f.\1f\99\03\00\00\9f\1f/\1f\99\03\00\00\a0\1fh\1f\99\03\00\00\a1\1fi\1f\99\03\00\00\a2\1fj\1f\99\03\00\00\a3\1fk\1f\99\03\00\00\a4\1fl\1f\99\03\00\00\a5\1fm\1f\99\03\00\00\a6\1fn\1f\99\03\00\00\a7\1fo\1f\99\03\00\00\a8\1fh\1f\99\03\00\00\a9\1fi\1f\99\03\00\00\aa\1fj\1f\99\03\00\00\ab\1fk\1f\99\03\00\00\ac\1fl\1f\99\03\00\00\ad\1fm\1f\99\03\00\00\ae\1fn\1f\99\03\00\00\af\1fo\1f\99\03\00\00\b2\1f\ba\1f\99\03\00\00\b3\1f\91\03\99\03\00\00\b4\1f\86\03\99\03\00\00\b6\1f\91\03B\03\00\00\b7\1f\91\03B\03\99\03\bc\1f\91\03\99\03\00\00\c2\1f\ca\1f\99\03\00\00\c3\1f\97\03\99\03\00\00\c4\1f\89\03\99\03\00\00\c6\1f\97\03B\03\00\00\c7\1f\97\03B\03\99\03\cc\1f\97\03\99\03\00\00\d2\1f\99\03\08\03\00\03\d3\1f\99\03\08\03\01\03\d6\1f\99\03B\03\00\00\d7\1f\99\03\08\03B\03\e2\1f\a5\03\08\03\00\03\e3\1f\a5\03\08\03\01\03\e4\1f\a1\03\13\03\00\00\e6\1f\a5\03B\03\00\00\e7\1f\a5\03\08\03B\03\f2\1f\fa\1f\99\03\00\00\f3\1f\a9\03\99\03\00\00\f4\1f\8f\03\99\03\00\00\f6\1f\a9\03B\03\00\00\f7\1f\a9\03B\03\99\03\fc\1f\a9\03\99\03\00\00\00\fbF\00F\00\00\00\01\fbF\00I\00\00\00\02\fbF\00L\00\00\00\03\fbF\00F\00I\00\04\fbF\00F\00L\00\05\fbS\00T\00\00\00\06\fbS\00T\00\00\00\13\fbD\05F\05\00\00\14\fbD\055\05\00\00\15\fbD\05;\05\00\00\16\fbN\05F\05\00\00\17\fbD\05=\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 1292) "\00\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\7f") + (data $11 (i32.const 1420) "\07\08\t\n\0b\0c\06\06\06\06\06\06\06\06\06\06\r\06\06\0e\06\06\06\06\06\06\06\06\0f\10\11\12\06\13\06\06\06\06\06\06\06\06\06\06\14\15\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\16\17\06\06\06\18\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\19\06\06\06\06\1a\06\06\06\06\06\06\06\1b\06\06\06\06\06\06\06\06\06\06\06\1c\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1d\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1e\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$++++++++\01\00TVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00+++++++\07++[VVVVVVVJVV\051P1P1P1P1P1P1P1P$Py1P1P18P1P1P1P1P1P1P1PN1\02N\r\rN\03N\00$n\00N1&nQN$PN9\14\81\1b\1d\1dS1P1P\r1P1P1P\1bS$P1\02\\{\\{\\{\\{\\{\14y\\{\\{\\-+I\03H\03x\\{\14\00\96\n\01+(\06\06\00*\06**+\07\bb\b5+\1e\00+\07+++\01++++++++++++++++++++++++++++++++\01+++++++++++++++++++++++*+++++++++++++\cdF\cd+\00%+\07\01\06\01UVVVVVUVV\02$\81\81\81\81\81\15\81\81\81\00\00+\00\b2\d1\b2\d1\b2\d1\b2\d1\00\00\cd\cc\01\00\d7\d7\d7\d7\d7\83\81\81\81\81\81\81\81\81\81\81\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\1c\00\00\00\00\001P1P1P1P1P1\02\00\001P1P1P1P1P1P1P1P1PN1P1PN1P1P1P1P1P1P1P1\02\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6*++++++++++++\00\00\00TVVVVVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00TVVVVVVVVVVVV\0c\00\0c*+++++++++++++\07*\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*++++++++++++++++++++++++++VVl\81\15\00++++++++++++++++++++++++++++++++++++++++++\07l\03A++VVVVVVVVVVVVVV,V+++++++++++++++++++++\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0cl\00\00\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%Vz\9e&\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06\01++OVV,+\7fVV9++UVV++OVV,+\7fVV\817u[{\\++OVV\02\ac\04\00\009++UVV++OVV,++VV2\13\81W\00o\81~\c9\d7~-\81\81\0e~9\7foW\00\81\81~\15\00~\03++++++++++++\07+$+\97+++++++++*+++++VVVVV\80\81\81\81\819\bb*++++++++++++++++++++++++++++++++++++++++\01\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\c9\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\d0\r\00N1\02\b4\c1\c1\d7\d7$P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P\d7\d7S\c1G\d4\d7\d7\d7\05++++++++++++\07\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00N1P1P1P1P1P1P1P\r\00\00\00\00\00$P1P1P1P1P\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+++++++++++y\\{\\{O{\\{\\{\\{\\{\\{\\{\\{\\{\\{\\-++y\14\\{\\-y*\\\'\\{\\{\\{\a4\00\n\b4\\{\\{O\03x8+++++++++++++O-++\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\00\00\00\00\00\00*++++++++++++++++++++++++++\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00++++++++\07\00HVVVVVVVV\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+++++++++++++UVVVVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$+++++++++++\07\00VVVVVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$++++++++++++++++\07\00\00\00\00VVVVVVVVVVVVVVVVV\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*++++++++++VVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*++++++++++VVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+++++++++++UVVVVVVVVVV\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 4088) "\00\08\00\00V\01\00\009\00\00\00") + (data $13 (i32.const 4100) "\00\00\00\00\01 \00\00\00\e0\ff\ff\00\bf\1d\00\00\e7\02\00\00y\00\00\02$\00\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\01\02\00\00\00\fe\ff\ff\019\ff\ff\00\18\ff\ff\01\87\ff\ff\00\d4\fe\ff\00\c3\00\00\01\d2\00\00\01\ce\00\00\01\cd\00\00\01O\00\00\01\ca\00\00\01\cb\00\00\01\cf\00\00\00a\00\00\01\d3\00\00\01\d1\00\00\00\a3\00\00\01\d5\00\00\00\82\00\00\01\d6\00\00\01\da\00\00\01\d9\00\00\01\db\00\00\008\00\00\03\00\00\00\00\b1\ff\ff\01\9f\ff\ff\01\c8\ff\ff\02($\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\003\ff\ff\00&\ff\ff\01~\ff\ff\01+*\00\01]\ff\ff\01(*\00\00?*\00\01=\ff\ff\01E\00\00\01G\00\00\00\1f*\00\00\1c*\00\00\1e*\00\00.\ff\ff\002\ff\ff\006\ff\ff\005\ff\ff\00O\a5\00\00K\a5\00\001\ff\ff\00(\a5\00\00D\a5\00\00/\ff\ff\00-\ff\ff\00\f7)\00\00A\a5\00\00\fd)\00\00+\ff\ff\00*\ff\ff\00\e7)\00\00C\a5\00\00*\a5\00\00\bb\ff\ff\00\'\ff\ff\00\b9\ff\ff\00%\ff\ff\00\15\a5\00\00\12\a5\00\02$L\00\00\00\00\00\01 \00\00\00\e0\ff\ff\01\01\00\00\00\ff\ff\ff\00T\00\00\01t\00\00\01&\00\00\01%\00\00\01@\00\00\01?\00\00\00\da\ff\ff\00\db\ff\ff\00\e1\ff\ff\00\c0\ff\ff\00\c1\ff\ff\01\08\00\00\00\c2\ff\ff\00\c7\ff\ff\00\d1\ff\ff\00\ca\ff\ff\00\f8\ff\ff\00\aa\ff\ff\00\b0\ff\ff\00\07\00\00\00\8c\ff\ff\01\c4\ff\ff\00\a0\ff\ff\01\f9\ff\ff\02\1ap\00\01\01\00\00\00\ff\ff\ff\01 \00\00\00\e0\ff\ff\01P\00\00\01\0f\00\00\00\f1\ff\ff\00\00\00\00\010\00\00\00\d0\ff\ff\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c0\0b\00\01`\1c\00\00\00\00\00\01\d0\97\00\01\08\00\00\00\f8\ff\ff\02\05\8a\00\00\00\00\00\01@\f4\ff\00\9e\e7\ff\00\c2\89\00\00\db\e7\ff\00\92\e7\ff\00\93\e7\ff\00\9c\e7\ff\00\9d\e7\ff\00\a4\e7\ff\00\00\00\00\008\8a\00\00\04\8a\00\00\e6\0e\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c5\ff\ff\01A\e2\ff\02\1d\8f\00\00\08\00\00\01\f8\ff\ff\00\00\00\00\00V\00\00\01\aa\ff\ff\00J\00\00\00d\00\00\00\80\00\00\00p\00\00\00~\00\00\00\t\00\00\01\b6\ff\ff\01\f7\ff\ff\00\db\e3\ff\01\9c\ff\ff\01\90\ff\ff\01\80\ff\ff\01\82\ff\ff\02\05\ac\00\00\00\00\00\01\10\00\00\00\f0\ff\ff\01\1c\00\00\01\01\00\00\01\a3\e2\ff\01A\df\ff\01\ba\df\ff\00\e4\ff\ff\02\0b\b1\00\01\01\00\00\00\ff\ff\ff\010\00\00\00\d0\ff\ff\00\00\00\00\01\t\d6\ff\01\1a\f1\ff\01\19\d6\ff\00\d5\d5\ff\00\d8\d5\ff\01\e4\d5\ff\01\03\d6\ff\01\e1\d5\ff\01\e2\d5\ff\01\c1\d5\ff\00\00\00\00\00\a0\e3\ff\00\00\00\00\01\01\00\00\00\ff\ff\ff\02\0c\bc\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\01\bcZ\ff\01\a0\03\00\01\fcu\ff\01\d8Z\ff\000\00\00\01\b1Z\ff\01\b5Z\ff\01\bfZ\ff\01\eeZ\ff\01\d6Z\ff\01\ebZ\ff\01\d0\ff\ff\01\bdZ\ff\01\c8u\ff\00\00\00\00\000h\ff\00`\fc\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01(\00\00\00\d8\ff\ff\00\00\00\00\01@\00\00\00\c0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01\"\00\00\00\de\ff\ff") + (data $14 (i32.const 5060) "\00\06\'Qow\00\00\00\00\00\00\00\00\00\00|\00\00\7f\00\00\00\00\00\00\00\00\83\8e\92\97\00\aa\00\00\00\00\00\00\00\00\00\00\b4\c4\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c6\c9\00\00\00\db\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\de\00\00\00\00\e1\00\00\00\00\00\00\00\e4\00\00\00\00\00\00\00\00\00\00\00\e7\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ea\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ed\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 5572) "0\0c1\rx\0e\7f\0f\80\10\81\11\86\12\89\13\8a\13\8e\14\8f\15\90\16\93\13\94\17\95\18\96\19\97\1a\9a\1b\9c\19\9d\1c\9e\1d\9f\1e\a6\1f\a9\1f\ae\1f\b1 \b2 \b7!\bf\"\c5#\c8#\cb#\dd$\f2#\f6%\f7& -:.=/>0?1@1C2D3E4P5Q6R7S8T9Y:[;\\e?f@hAiBj@kClDoBqErFuG}H\82I\87J\89K\8aL\8bL\8cM\92N\9dO\9ePEW{\1d|\1d}\1d\7fX\86Y\88Z\89Z\8aZ\8c[\8e\\\8f\\\ac]\ad^\ae^\af^\c2_\cc`\cda\cea\cfb\d0c\d1d\d5e\d6f\d7g\f0h\f1i\f2j\f3k\f4l\f5m\f9n\fd-\fe-\ff-PiQiRiSiTiUiViWiXiYiZi[i\\i]i^i_i\82\00\83\00\84\00\85\00\86\00\87\00\88\00\89\00\c0u\cfv\80\89\81\8a\82\8b\85\8c\86\8dp\9dq\9dv\9ew\9ex\9fy\9fz\a0{\a0|\a1}\a1\b3\a2\ba\a3\bb\a3\bc\a4\be\a5\c3\a2\cc\a4\da\a6\db\a6\e5j\ea\a7\eb\a7\ecn\f3\a2\f8\a8\f9\a8\fa\a9\fb\a9\fc\a4&\b0*\b1+\b2N\b3\84\08b\bac\bbd\bce\bdf\bem\bfn\c0o\c1p\c2~\c3\7f\c3}\cf\8d\d0\94\d1\ab\d2\ac\d3\ad\d4\b0\d5\b1\d6\b2\d7\c4\d8\c5\d9\c6\da") + (data $16 (i32.const 5980) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00c\00a\00s\00e\00m\00a\00p\00p\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 6060) "\00\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\7f") + (data $18 (i32.const 6188) "\12\10\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\10\10\"\10\10\10#$%&\'()\10*+\10\10\10\10\10\10\10\10\10\10\10,-.\10/\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\100\10\10\101\10234567\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\108\10\109:\10;<=\10\10\10\10\10\10>\10\10?@ABCDEFGHIJKL\10MNO\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10P\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10QR\10\10\10S\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10T\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10UV\10\10\10\10\10\10\10W\10\10\10\10\10XYZ\10\10\10\10\10[\\\10\10\10\10\10\10\10\10\10]\10\10\10\10\10\10\10\10\10\10\10\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\80@\00\04\00\00\00@\01\00\00\00\00\00\00\00\00\a1\90\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff0\04\b0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f8\03\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\82\00\00\00\00\00\00\fe\ff\ff\ff\ff\bf\b6\00\00\00\00\00\10\00?\00\ff\17\00\00\00\00\01\f8\ff\ff\00\00\01\00\00\00\00\00\00\00\00\00\00\00\c0\bf\ff=\00\00\00\80\02\00\00\00\ff\ff\ff\07\00\00\00\00\00\00\00\00\00\00\c0\ff\01\00\00\00\00\00\00\f8?$\00\00\c0\ff\ff?\00\00\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f8\ff\ff\ff\ff\ff\07\00\00\00\00\00\00\14\fe!\fe\00\0c\00\02\00\02\00\00\00\00\00\00\10\1e \00\00\0c\00\00@\06\00\00\00\00\00\00\10\869\02\00\00\00#\00\06\00\00\00\00\00\00\10\be!\00\00\0c\00\00\fc\02\00\00\00\00\00\00\90\1e `\00\0c\00\00\00\04\00\00\00\00\00\00\00\01 \00\00\00\00\00\00\11\00\00\00\00\00\00\c0\c1=`\00\0c\00\00\00\02\00\00\00\00\00\00\90@0\00\00\0c\00\00\00\03\00\00\00\00\00\00\18\1e \00\00\0c\00\00\00\02\00\00\00\00\00\00\00\00\04\\\00\00\00\00\00\00\00\00\00\00\00\f2\07\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00\f2\1f@?\00\00\00\00\00\00\00\00\00\03\00\00\a0\02\00\00\00\00\00\00\fe\7f\df\e0\ff\fe\ff\ff\ff\1f@\00\00\00\00\00\00\00\00\00\00\00\00\e0\fdf\00\00\00\c3\01\00\1e\00d \00 \00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\e0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\1c\00\00\00\0c\00\00\00\0c\00\00\00\00\00\00\00\b0?@\fe\8f \00\00\00\00\00x\00\00\00\00\00\00\08\00\00\00\00\00\00\00`\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\87\01\04\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\t\00\00\00\00\00\00@\7f\e5\1f\f8\9f\00\00\00\00\80\00\ff\ff\01\00\00\00\00\00\00\00\0f\00\00\00\00\00\d0\17\04\00\00\00\00\f8\0f\00\03\00\00\00<;\00\00\00\00\00\00@\a3\03\00\00\00\00\00\00\f0\cf\00\00\00\00\00\00\00\00?\00\00\00\00\00\00\00\00\00\00\f7\ff\fd!\10\03\00\00\00\00\00\f0\ff\ff\ff\ff\ff\ff\ff\07\00\01\00\00\00\f8\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fb\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\a0\03\e0\00\e0\00\e0\00`\00\f8\00\03\90|\00\00\00\00\00\00\df\ff\02\80\00\00\ff\1f\00\00\00\00\00\00\ff\ff\ff\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\80\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\00\80\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\00\00\00\00\00\80\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00<>\08\00\00\00\00\00\00\00\00\00\00\00~\00\00\00\00\00\00\00\00\00\00\00p\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00?\00\10\00\00\00\00\00\00\00\00\00\00\00\80\f7\bf\00\00\00\f0\00\00\00\00\00\00\00\00\00\00\03\00\ff\ff\ff\ff\03\00\00\00\00\00\00\00\00\00\01\00\00\07\00\00\00\00\00\00\00\00\00\00\00\00\00\03D\08\00\00`\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\000\00\00\00\ff\ff\03\80\00\00\00\00\c0?\00\00\80\ff\03\00\00\00\00\00\07\00\00\00\00\00\c83\00\80\00\00`\00\00\00\00\00\00\00\00~f\00\08\10\00\00\00\00\01\10\00\00\00\00\00\00\9d\c1\02\00\00 \000X\00\00\00\00\00\00\00\00\00\00\00\00\f8\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00 !\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\fc\ff\03\00\00\00\00\00\00\00\ff\ff\08\00\ff\ff\00\00\00\00$\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\80@\00\04\00\00\00@\01\00\00\00\00\00\01\00\00\00\00\c0\00\00\00\00\00\00\00\00\08\00\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c0\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00n\f0\00\00\00\00\00\87\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00`\00\00\00\00\00\00\00\f0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c0\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\ff\7f\00\00\00\00\00\00\80\03\00\00\00\00\00x&\00 \00\00\00\00\00\00\07\00\00\00\80\ef\1f\00\00\00\00\00\00\00\08\00\03\00\00\00\00\00\c0\7f\00\9e\00\00\00\00\00\00\00\00\00\00\00\80\d3@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\f8\07\00\00\03\00\00\00\00\00\00\18\01\00\00\00\c0\1f\1f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\\\00\00@\00\00\00\00\00\00\00\00\00\00\f8\85\r\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00<\b0\01\00\000\00\00\00\00\00\00\00\00\00\00\f8\a7\01\00\00\00\00\00\00\00\00\00\00\00\00(\bf\00\00\00\00\00\00\00\00\00\00\00\00\e0\bc\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\ff\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00X\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\0c\01\00\00\00\fe\07\00\00\00\00\f8y\80\00~\0e\00\00\00\00\00\fc\7f\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\7f\bf\00\00\00\00\00\00\00\00\00\00\fc\ff\ff\fcm\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00~\b4\bf\00\00\00\00\00\00\00\00\00\a3\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1f\00\00\00\00\00\00\00\7f\00\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\80\ff\ff\00\00\00\00\00\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00`\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\03\f8\ff\e7\0f\00\00\00<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\7f\f8\ff\ff\ff\ff\ff\1f \00\10\00\00\f8\fe\ff\00\00\00\00\00\00\00\00\00\00\7f\ff\ff\f9\db\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\7f\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f8") + (data $19 (i32.const 9196) "\12\13\14\15\16\17\10\10\10\10\10\10\10\10\10\10\18\10\10\19\10\10\10\10\10\10\10\10\1a\1b\11\1c\1d\1e\10\10\1f\10\10\10\10\10\10\10 !\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\"#\10\10\10$\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10%\10\10\10&\10\10\10\10\'\10\10\10\10\10\10\10(\10\10\10\10\10\10\10\10\10\10\10)\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10*\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10+,-.\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10/\10\10\10\10\10\10\100\10\10\10\10\10\10\10\10\10\10\10\10\10\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\fe\ff\ff\07\fe\ff\ff\07\00\00\00\00\00\04 \04\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\f7\f0\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ef\ff\ff\ff\ff\01\03\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\cf\bc@\d7\ff\ff\fb\ff\ff\ff\ff\ff\ff\ff\ff\ff\bf\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\03\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fe\ff\ff\ff\7f\00\ff\ff\ff\ff\ff\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\bf \ff\ff\ff\ff\ff\e7\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff??\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\01\ff\ff\ff\ff\ff\e7\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\ff\ff??\ff\ff\ff\ff??\ff\aa\ff\ff\ff?\ff\ff\ff\ff\ff\ff\df_\dc\1f\cf\0f\ff\1f\dc\1f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\80\00\00\ff\1f\00\00\00\00\00\00\00\00\00\00\00\00\84\fc/>P\bd\1f\f2\e0C\00\00\ff\ff\ff\ff\18\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c0\ff\ff\ff\ff\ff\ff\03\00\00\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\1fx\0c\00\ff\ff\ff\ff\bf \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff?\00\00\ff\ff\ff?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ffx\ff\ff\ff\ff\ff\ff\fc\07\00\00\00\00`\07\00\00\00\00\00\00\ff\ff\ff\ff\ff\f7\ff\01\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\7f\00\f8\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\fe\ff\ff\07\fe\ff\ff\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\0f\ff\ff\ff\ff\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\07\00\ff\ff\ff\ff\ff\ff\07\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\df\ff\ff\ff\ff\ff\ff\ff\ff\dfd\de\ff\eb\ef\ff\ff\ff\ff\ff\ff\ff\bf\e7\df\df\ff\ff\ff{_\fc\fd\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff?\ff\ff\ff\fd\ff\ff\f7\ff\ff\ff\f7\ff\ff\df\ff\ff\ff\df\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\fd\ff\ff\ff\fd\ff\ff\f7\0f\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\03\ff\ff\ff\03\ff\ff\ff\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 10764) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\n\00\00\00\00\00\00\00") + (data $21 (i32.const 10812) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00A\00Z\00.\00!\00\n\00\00\00\00\00\00\00") + (data $22 (i32.const 10860) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\t\00\00\00\00\00\00\00") + (data $23 (i32.const 10908) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\009\00_\00a\00z\00 \00a\00z\00.\00!\00\t\00\00\00\00\00\00\00") + (data $24 (i32.const 10956) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00J\00\00\00D\00e\00r\00 \00W\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00B\00e\00s\00t\00\e4\00n\00d\00i\00g\00e\00\00\00") + (data $25 (i32.const 11052) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00J\00\00\00D\00E\00R\00 \00W\00E\00C\00H\00S\00E\00L\00 \00A\00L\00L\00E\00I\00N\00 \00I\00S\00T\00 \00D\00A\00S\00 \00B\00E\00S\00T\00\c4\00N\00D\00I\00G\00E\00\00\00") + (data $26 (i32.const 11148) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00J\00\00\00d\00e\00r\00 \00w\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00b\00e\00s\00t\00\e4\00n\00d\00i\00g\00e\00\00\00") + (data $27 (i32.const 11244) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00@\00 \00\14 \00\14\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!\00\00\00\00\00\00\00\00\00") + (data $28 (i32.const 11308) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00@\00 \00\14 \00\14\04 \04#\04\13\04 \00\'\04\15\04\1b\04\1e\04\12\04\15\04\1a\04\10\04!\00\00\00\00\00\00\00\00\00") + (data $29 (i32.const 11372) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00@\00 \00\14 \004\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 11436) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 11532) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00.\" \00E\00\c5\"D\00A\00 \00=\00 \00Q\00,\00 \00N\00 \00\92! \00\1e\",\00 \00\11\" \00F\00(\00I\00)\00 \00=\00 \00\0f\" \00G\00(\00I\00)\00\00\00\00\00\00\00\00\00") + (data $32 (i32.const 11628) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00.\" \00e\00\c5\"d\00a\00 \00=\00 \00q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 11724) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n\00\00\00\00\00") + (data $34 (i32.const 11820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00\d0\00I\00 \00I\00N\00T\00\8f\01\c8\02N\00\c6\00\a9\01\8f\01N\00\8f\01L\00 \00F\00\8f\01\c8\02N\00\90\01T\00I\00K\00 \00\8f\01S\00O\00\b1\01S\00I\00\c8\02E\00I\00\a9\01N\00\00\00\00\00") + (data $35 (i32.const 11916) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00\f0\00i\00 \00i\00n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\00i\00k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\00i\00\83\02n\00\00\00\00\00") + (data $36 (i32.const 12012) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03\cc\03\c8\03\b7\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $37 (i32.const 12092) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00\9a\03\8c\03\a8\03\97\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $38 (i32.const 12172) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03\ae\03,\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $39 (i32.const 12252) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00\a4\03\9f\03\a5\03B\03 \00\a3\03\a0\03\91\03\98\03\99\03\9f\03\a5\03B\03 \00\a4\03\ca\1f\9d\03 \00\a4\03\a1\03\9f\03\9c\03\95\03\a1\03\89\03,\00\00\00\00\00\00\00\00\00") + (data $40 (i32.const 12332) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03") + (data $41 (i32.const 12396) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00L\1f\a8\03\97\03") + (data $42 (i32.const 12460) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03\af\03\b1\03 \00\bc\03\b5\03\c4\03\c1\03\ac\03\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.\00\00\00\00\00\00\00\00\00\00\00") + (data $43 (i32.const 12540) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00\a0\03\9f\03\ea\1f \00\9c\03\c8\1f \00\92\03\8a\03\91\03 \00\9c\03\95\03\a4\03\a1\03\86\03\95\03\99\03 \00\a4\03\ca\1f \00\93\03\97\03B\03.\00\00\00\00\00\00\00\00\00") + (data $44 (i32.const 12620) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03\cc\03\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03\ad\03\bd\03\b7\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $45 (i32.const 12700) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\00\91\03\a0\03\bf\1f \00\a4\03\ba\1f \00\9a\03\8c\03\9a\03\9a\03\91\03\9b\03\91\03 \00\92\03\93\03\91\03\9b\03\9c\03\88\03\9d\03\97\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $46 (i32.const 12780) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03\ae\03\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03\ac\03\00\00\00\00") + (data $47 (i32.const 12844) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00\a4\03\a9\03B\03\9d\03 \00\fe\1f\95\03\9b\03\9b\03\89\03\9d\03\a9\03\9d\03 \00\a4\03\ba\1f \009\1f\95\03\a1\03\86\03\00\00") + (data $48 (i32.const 12908) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03\ad\03\bd\03\b7\03\00\00\00\00\00\00\00\00\00\00") + (data $49 (i32.const 12988) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00\9a\03\91\03\da\1f \00\a3\03\ba\1f\9d\03 \00\a0\03\a1\03\a9\03B\03\a4\03\91\03 \00\08\1f\9d\03\94\03\a1\03\95\03\99\03\a9\03\9c\03\88\03\9d\03\97\03\00\00\00\00\00\00\00\00") + (data $50 (i32.const 13068) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03\ac\03!\00\00\00\00\00\00\00") + (data $51 (i32.const 13148) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00n\1f \00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00\bf\1f\95\03\9b\03\95\03\a5\03\98\03\95\03\a1\03\99\03\86\03!\00\00\00") + (data $52 (i32.const 13228) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\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\00\00\00\00\00\00\00\00") + (data $53 (i32.const 13388) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\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\00\00\00\00\00\00\00\00") + (data $54 (i32.const 13548) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\80\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\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\00\00\00\00\00\00\00\00") + (data $55 (i32.const 13708) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\df\00\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 13740) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00S\00S\00\00\00\00\00\00\00\00\00") + (data $57 (i32.const 13772) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\01\00\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 13804) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00i\00\07\03\00\00\00\00\00\00\00\00") + (data $59 (i32.const 13836) "\cc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\ae\00\00\00\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $60 (i32.const 14044) "\cc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\b2\00\00\00\a3\00\a9\00\9c\03\c0\00\c6\00\d6\00\de\00S\00S\00\c9\00\d6\00x\01\13 \14 \18 \1c \1d \1e \" & 0 \"!R\01`\01x\01}\01\ac \00\91\03\92\03\93\03\94\03\a9\03\91\03\92\03\93\03\94\03\a9\03 \00\10\04\11\04\12\04\13\04\14\04\10\04\11\04\12\04\13\04\14\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00F\00I\00\fd\ff@$\82 (\1f\02\1e\e4\04\84\1eo,\d0\02N#\d0\051\05\90\1c\00\00\00\00\00\00\00\00\00\00") + (data $61 (i32.const 14252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00s\00s\00\00\00\00\00\00\00\00\00") + (data $62 (i32.const 14284) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\01\fb\00\00\00\00\00\00\00\00\00\00") + (data $63 (i32.const 14316) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00f\00i\00\00\00\00\00\00\00\00\00") + (data $64 (i32.const 14348) "\cc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\b8\00\00\00A\d8\0e\df \00A\d81\df \00A\d8y\df \00C\d8S\dc \00C\d8x\dc \00C\d8\96\dc \00C\d8\cf\dc \00C\d8\d5\dc \00C\d8\15\dd \00C\d8|\dd \00C\d8\7f\dd \00C\d8\0e\de \00C\d8\0f\de \00C\d8w\de \00C\d8\9d\de \00C\d8\a2\de \00C\d8\d7\de \00C\d8\f9\de \00C\d8\fa\de \00C\d8-\df \00C\d8.\df \00C\d8L\df \00C\d8\b4\df \00C\d8\bc\df \00C\d8\ea\df \00D\d8\\\dc \00D\d8o\dc \00D\d8u\dc \00D\d8v\dc \00D\d8{\dc \00D\d8\c1\dc\00\00\00\00") + (data $65 (i32.const 14556) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data $66 (i32.const 14604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\00\d8\00\dc\00\00\00\00\00\00\00\00") + (data $67 (i32.const 14636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\88\1f\00\00\00\00\00\00\00\00\00\00") + (data $68 (i32.const 14668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\80\1f\00\00\00\00\00\00\00\00\00\00") + (data $69 (i32.const 14700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\8f\1f\00\00\00\00\00\00\00\00\00\00") + (data $70 (i32.const 14732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\87\1f\00\00\00\00\00\00\00\00\00\00") + (data $71 (i32.const 14764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\fc\1f\00\00\00\00\00\00\00\00\00\00") + (data $72 (i32.const 14796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\f3\1f\00\00\00\00\00\00\00\00\00\00") + (data $73 (i32.const 14828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\a3\03\00\00\00\00\00\00\00\00\00\00") + (data $74 (i32.const 14860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\c3\03\00\00\00\00\00\00\00\00\00\00") + (data $75 (i32.const 14892) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00 \00\a3\03\00\00\00\00\00\00\00\00") + (data $76 (i32.const 14924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00 \00\c3\03\00\00\00\00\00\00\00\00") + (data $77 (i32.const 14956) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\a3\03 \00\00\00\00\00\00\00\00\00") + (data $78 (i32.const 14988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\c3\03 \00\00\00\00\00\00\00\00\00") + (data $79 (i32.const 15020) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00 \00\a3\03 \00\00\00\00\00\00\00") + (data $80 (i32.const 15052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00 \00\c3\03 \00\00\00\00\00\00\00") + (data $81 (i32.const 15084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\a3\03 \00\00\00\00\00\00\00") + (data $82 (i32.const 15116) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c2\03 \00\00\00\00\00\00\00") + (data $83 (i32.const 15148) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\a3\03\n\00\00\00\00\00\00\00") + (data $84 (i32.const 15180) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c2\03\n\00\00\00\00\00\00\00") + (data $85 (i32.const 15212) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00\a3\03\00\00\00\00\00\00\00\00") + (data $86 (i32.const 15244) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00\c2\03\00\00\00\00\00\00\00\00") + (data $87 (i32.const 15276) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\a3\03b\00\00\00\00\00\00\00") + (data $88 (i32.const 15308) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c3\03b\00\00\00\00\00\00\00") + (data $89 (i32.const 15340) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\a3\03\a3\03 \00\00\00\00\00\00\00") + (data $90 (i32.const 15372) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\c3\03\c2\03 \00\00\00\00\00\00\00") + (data $91 (i32.const 15404) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00\a3\03 \00\00\00\00\00\00\00") + (data $92 (i32.const 15436) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00\c3\03 \00\00\00\00\00\00\00") + (data $93 (i32.const 15468) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00;\00\a3\03 \00\00\00\00\00\00\00") + (data $94 (i32.const 15500) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00;\00\c3\03 \00\00\00\00\00\00\00") + (data $95 (i32.const 15532) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\01\03\a3\03 \00\00\00\00\00\00\00") + (data $96 (i32.const 15564) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\01\03\c3\03 \00\00\00\00\00\00\00") + (data $97 (i32.const 15596) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03 \00\00\00") + (data $98 (i32.const 15628) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03 \00\00\00") + (data $99 (i32.const 15660) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\a3\03\a3\03-\00\00\00\00\00\00\00") + (data $100 (i32.const 15692) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\c3\03\c2\03-\00\00\00\00\00\00\00") + (data $101 (i32.const 15724) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03-\00\00\00") + (data $102 (i32.const 15756) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03-\00\00\00") + (data $103 (i32.const 15788) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03*s\00\00") + (data $104 (i32.const 15820) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03*s\00\00") + (data $105 (i32.const 15852) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\005\d8\a2\dc\a3\03\00\00\00\00\00\00") + (data $106 (i32.const 15884) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\005\d8\a2\dc\c2\03\00\00\00\00\00\00") + (data $107 (i32.const 15916) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00.\00\a3\03\00\00\00\00\00\00") + (data $108 (i32.const 15948) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00.\00\c2\03\00\00\00\00\00\00") + (data $109 (i32.const 15980) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\ad\00\a3\03\00\00\00\00\00\00") + (data $110 (i32.const 16012) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\ad\00\c2\03\00\00\00\00\00\00") + (data $111 (i32.const 16044) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\004\d8B\de\a3\03\00\00\00\00") + (data $112 (i32.const 16076) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\004\d8B\de\c2\03\00\00\00\00") + (data $113 (i32.const 16108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\03\a3\03\00\00\00\00\00\00\00\00") + (data $114 (i32.const 16140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\03\c3\03\00\00\00\00\00\00\00\00") + (data $115 (i32.const 16172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\91\03E\03\a3\03\00\00\00\00\00\00") + (data $116 (i32.const 16204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\b1\03E\03\c2\03\00\00\00\00\00\00") + (data $117 (i32.const 16236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\a3\03B\00\00\00\00\00\00\00") + (data $118 (i32.const 16268) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\035\d8\a2\dc\00\00\00\00") + (data $119 (i32.const 16300) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\035\d8\a2\dc\00\00\00\00") + (data $120 (i32.const 16332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\03.\00b\00\00\00\00\00") + (data $121 (i32.const 16364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\03.\00b\00\00\00\00\00") + (data $122 (i32.const 16396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\03\ad\00B\00\00\00\00\00") + (data $123 (i32.const 16428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\03\ad\00b\00\00\00\00\00") + (data $124 (i32.const 16460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00A\00\a3\034\d8B\deB\00\00\00") + (data $125 (i32.const 16492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00\c3\034\d8B\deb\00\00\00") + (data $126 (i32.const 16524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\a3\03E\03\00\00\00\00\00\00") + (data $127 (i32.const 16556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c2\03E\03\00\00\00\00\00\00") + (data $128 (i32.const 16588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\03E\03\91\03\00\00\00\00") + (data $129 (i32.const 16620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\03E\03\b1\03\00\00\00\00") + (data $130 (i32.const 16652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\0e\18\a3\03\00\00\00\00\00\00") + (data $131 (i32.const 16684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\0e\18\c2\03\00\00\00\00\00\00") + (data $132 (i32.const 16716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\0e\18\a3\03B\00\00\00\00\00") + (data $133 (i32.const 16748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\0e\18\c3\03b\00\00\00\00\00") + (data $134 (i32.const 16780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00\a3\03\0e\18\00\00\00\00\00\00") + (data $135 (i32.const 16812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00\c2\03\0e\18\00\00\00\00\00\00") + (data $136 (i32.const 16844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\a3\03\0e\18B\00\00\00\00\00") + (data $137 (i32.const 16876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\c3\03\0e\18b\00\00\00\00\00") + (data $138 (i32.const 16908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\00\0e\18\a3\03\0e\18\00\00\00\00") + (data $139 (i32.const 16940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00\0e\18\c2\03\0e\18\00\00\00\00") + (data $140 (i32.const 16972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00A\00\0e\18\a3\03\0e\18B\00\00\00") + (data $141 (i32.const 17004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00\0e\18\c3\03\0e\18b\00\00\00") + (data $142 (i32.const 17036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\fb\00\00\00\00\00\00\00\00\00\00") + (data $143 (i32.const 17068) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00F\00F\00\00\00\00\00\00\00\00\00") + (data $144 (i32.const 17100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00F\00I\00\00\00\00\00\00\00\00\00") + (data $145 (i32.const 17132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\02\fb\00\00\00\00\00\00\00\00\00\00") + (data $146 (i32.const 17164) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00F\00L\00\00\00\00\00\00\00\00\00") + (data $147 (i32.const 17196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\03\fb\00\00\00\00\00\00\00\00\00\00") + (data $148 (i32.const 17228) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00F\00F\00I\00\00\00\00\00\00\00") + (data $149 (i32.const 17260) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\04\fb\00\00\00\00\00\00\00\00\00\00") + (data $150 (i32.const 17292) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00F\00F\00L\00\00\00\00\00\00\00") + (data $151 (i32.const 17324) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\05\fb\00\00\00\00\00\00\00\00\00\00") + (data $152 (i32.const 17356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00S\00T\00\00\00\00\00\00\00\00\00") + (data $153 (i32.const 17388) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\06\fb\00\00\00\00\00\00\00\00\00\00") + (data $154 (i32.const 17420) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\f0\01\00\00\00\00\00\00\00\00\00\00") + (data $155 (i32.const 17452) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00J\00\0c\03\00\00\00\00\00\00\00\00") + (data $156 (i32.const 17484) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\96\1e\00\00\00\00\00\00\00\00\00\00") + (data $157 (i32.const 17516) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00H\001\03\00\00\00\00\00\00\00\00") + (data $158 (i32.const 17548) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\97\1e\00\00\00\00\00\00\00\00\00\00") + (data $159 (i32.const 17580) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00T\00\08\03\00\00\00\00\00\00\00\00") + (data $160 (i32.const 17612) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\98\1e\00\00\00\00\00\00\00\00\00\00") + (data $161 (i32.const 17644) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00W\00\n\03\00\00\00\00\00\00\00\00") + (data $162 (i32.const 17676) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\99\1e\00\00\00\00\00\00\00\00\00\00") + (data $163 (i32.const 17708) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00Y\00\n\03\00\00\00\00\00\00\00\00") + (data $164 (i32.const 17740) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\9a\1e\00\00\00\00\00\00\00\00\00\00") + (data $165 (i32.const 17772) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00A\00\be\02\00\00\00\00\00\00\00\00") + (data $166 (i32.const 17804) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $167 (i32.const 17900) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00 \00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $168 (i32.const 17964) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $169 (i32.const 18092) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $170 (i32.const 18156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $171 (i32.const 18188) "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 $172 (i32.const 18588) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $173 (i32.const 19644) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $174 (i32.const 19740) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00") + (data $175 (i32.const 19804) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $176 (i32.const 19900) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00 \00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $177 (i32.const 19964) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 \00\00\00\00\00\00\00") + (data $178 (i32.const 20032) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\a4\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) + (func $~lib/string/String#get:length (param $this i32) (result i32) local.get $this - local.get $radix - call $~lib/util/number/utoa32 + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u return ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) @@ -719,7 +302,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 128 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -789,7 +372,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 128 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -806,7 +389,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 128 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -836,9 +419,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 256 + i32.const 320 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -905,7 +488,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 128 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -1057,7 +640,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -1077,7 +660,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1140,7 +723,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1293,7 +876,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1310,7 +893,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1399,7 +982,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1442,7 +1025,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1460,7 +1043,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1528,7 +1111,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1645,7 +1228,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1691,7 +1274,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1723,7 +1306,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1967,7 +1550,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2187,7 +1770,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 128 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2298,8 +1881,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 64 + i32.const 400 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2401,7 +1984,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2472,7 +2055,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2629,7 +2212,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2744,7 +2327,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2764,7 +2347,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 400 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2812,8 +2395,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 64 + i32.const 128 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2898,8 +2481,8 @@ i32.const 3 i32.rem_u local.set $y - i32.const 3356 - i32.const 3356 + i32.const 1420 + i32.const 1420 local.get $b i32.add i32.load8_u @@ -2911,7 +2494,7 @@ i32.load8_u local.set $v local.get $v - i32.const 6024 + i32.const 4088 local.get $y i32.const 2 i32.shl @@ -2923,8 +2506,8 @@ i32.const 6 i32.rem_u local.set $v - i32.const 6036 - i32.const 6996 + i32.const 4100 + i32.const 5060 local.get $b i32.add i32.load8_u @@ -2973,7 +2556,7 @@ i32.const 1 i32.shr_u local.set $h - i32.const 7508 + i32.const 5572 local.get $xb local.get $h i32.add @@ -2986,8 +2569,8 @@ local.get $c i32.eq if - i32.const 6036 - i32.const 7508 + i32.const 4100 + i32.const 5572 local.get $xb local.get $h i32.add @@ -3177,63 +2760,258 @@ local.tee $7 i32.const 1 i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 - end + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 + end + end + i32.const 0 + return + ) + (func $~lib/util/string/stagedBinaryLookup (param $table i32) (param $c i32) (result i32) + local.get $table + local.get $table + local.get $c + i32.const 8 + i32.shr_u + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.add + local.get $c + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $c + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + return + ) + (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) + local.get $value + i32.const 100000 + i32.lt_u + if + local.get $value + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $value + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $value + i32.const 10000 + i32.ge_u + i32.add + local.get $value + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $value + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $value + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $value + i32.const 1000000000 + i32.ge_u + i32.add + local.get $value + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) + (local $t i32) + (local $r i32) + (local $d1 i32) + (local $d2 i32) + (local $digits1 i64) + (local $digits2 i64) + (local $t|9 i32) + (local $d1|10 i32) + (local $digits i32) + (local $digits|12 i32) + (local $digit i32) + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 18188 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 18188 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $num + i32.const 100 + i32.ge_u + if + local.get $num + i32.const 100 + i32.div_u + local.set $t|9 + local.get $num + i32.const 100 + i32.rem_u + local.set $d1|10 + local.get $t|9 + local.set $num + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 18188 + local.get $d1|10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits + i32.store + end + local.get $num + i32.const 10 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 18188 + local.get $num + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits|12 + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits|12 + i32.store + else + local.get $offset + i32.const 1 + i32.sub + local.set $offset + i32.const 48 + local.get $num + i32.add + local.set $digit + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digit + i32.store16 end - i32.const 0 - return - ) - (func $~lib/util/string/stagedBinaryLookup (param $table i32) (param $c i32) (result i32) - local.get $table - local.get $table - local.get $c - i32.const 8 - i32.shr_u - i32.add - i32.load8_u - i32.const 5 - i32.shl - i32.add - local.get $c - i32.const 255 - i32.and - i32.const 3 - i32.shr_u - i32.add - i32.load8_u - local.get $c - i32.const 7 - i32.and - i32.shr_u - i32.const 1 - i32.and - return ) (func $~lib/util/number/decimalCount64High (param $value i64) (result i32) local.get $value @@ -3347,14 +3125,14 @@ i32.const 100 i32.rem_u local.set $c2 - i32.const 364 + i32.const 18188 local.get $c1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 364 + i32.const 18188 local.get $c2 i32.const 2 i32.shl @@ -3362,7 +3140,211 @@ i64.load32_u local.set $digits2 local.get $offset - i32.const 4 + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 18188 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 18188 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $buffer + local.get $num + i32.wrap_i64 + local.get $offset + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 18608 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end + end + local.get $offset + i32.const 1 + i32.and + if + local.get $buffer + i32.const 18608 + local.get $num + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) + (local $value i32) + (local $b64 i64) + (local $b i64) + (local $e i32) + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end + if + i32.const 63 + local.get $num + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $base + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $base + i64.extend_i32_s + local.set $b64 + local.get $b64 + local.set $b + i32.const 1 + local.set $e + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end + end + local.get $e + i32.const 1 + i32.sub + return + ) + (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) + (local $base i64) + (local $shift i64) + (local $mask i64) + (local $q i64) + local.get $radix + i64.extend_i32_s + local.set $base + local.get $radix + local.get $radix + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $radix + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $shift + local.get $base + i64.const 1 + i64.sub + local.set $mask + loop $do-loop|0 + local.get $offset + i32.const 1 i32.sub local.set $offset local.get $buffer @@ -3370,49 +3352,60 @@ i32.const 1 i32.shl i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 364 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $b2 - i32.const 2 + i32.const 19664 + local.get $num + local.get $mask + i64.and + i32.wrap_i64 + i32.const 1 i32.shl i32.add - i64.load32_u - local.set $digits2 + i32.load16_u + i32.store16 + local.get $num + local.get $shift + i64.shr_u + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 local.get $offset - i32.const 4 + i32.const 1 i32.sub local.set $offset + local.get $num + local.get $base + i64.div_u + local.set $q local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.const 19664 + local.get $num + local.get $q + local.get $base + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $q + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|1 end end - local.get $buffer - local.get $num - i32.wrap_i64 - local.get $offset - call $~lib/util/number/utoa32_dec_lut ) (func $~lib/number/I64#toString (param $this i64) (param $radix i32) (result i32) local.get $this @@ -3428,92 +3421,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 53008 - i32.const 53056 + i32.const 52848 + i32.const 52896 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 32 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3521,125 +3438,28 @@ call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 - i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + i64.store + i32.const 0 + drop + local.get $message + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String#toUpperCase (param $this i32) (result i32) (local $len i32) @@ -3753,7 +3573,7 @@ i32.const 0 i32.gt_s drop - i32.const 3228 + i32.const 1292 local.get $c|9 i32.add i32.load8_u @@ -4252,7 +4072,7 @@ i32.const 0 i32.gt_s drop - i32.const 7996 + i32.const 6060 local.get $c|7 i32.add i32.load8_u @@ -4472,7 +4292,7 @@ i32.const 918000 i32.lt_u if (result i32) - i32.const 8124 + i32.const 6188 local.get $c|24 call $~lib/util/string/stagedBinaryLookup else @@ -4489,7 +4309,7 @@ i32.const 127370 i32.lt_u if (result i32) - i32.const 11132 + i32.const 9196 local.get $c|25 call $~lib/util/string/stagedBinaryLookup else @@ -4595,7 +4415,7 @@ i32.const 918000 i32.lt_u if (result i32) - i32.const 8124 + i32.const 6188 local.get $c|31 call $~lib/util/string/stagedBinaryLookup else @@ -4612,7 +4432,7 @@ i32.const 127370 i32.lt_u if (result i32) - i32.const 11132 + i32.const 9196 local.get $c|32 call $~lib/util/string/stagedBinaryLookup else @@ -4855,6 +4675,113 @@ local.get $5 return ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize + i32.add + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 32 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) (func $start:std/string-casemapping (local $0 i32) (local $1 i32) @@ -4884,13 +4811,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 208 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 352 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 32 @@ -4905,7 +4832,7 @@ i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -4923,427 +4850,427 @@ i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 9 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12720 + i32.const 10784 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 12768 + i32.const 10832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 10 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12816 + i32.const 10880 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 12864 + i32.const 10928 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 11 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12912 + i32.const 10976 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 13008 + i32.const 11072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 12 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13008 + i32.const 11072 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 13104 + i32.const 11168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 13 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13200 + i32.const 11264 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 13264 + i32.const 11328 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13264 + i32.const 11328 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 13328 + i32.const 11392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 15 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13392 + i32.const 11456 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 13488 + i32.const 11552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13488 + i32.const 11552 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 13584 + i32.const 11648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13680 + i32.const 11744 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 13776 + i32.const 11840 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 18 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13776 + i32.const 11840 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 13872 + i32.const 11936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 19 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13968 + i32.const 12032 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 14048 + i32.const 12112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 20 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14128 + i32.const 12192 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 14208 + i32.const 12272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14288 + i32.const 12352 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 14352 + i32.const 12416 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14416 + i32.const 12480 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 14496 + i32.const 12560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 23 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14576 + i32.const 12640 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 14656 + i32.const 12720 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 24 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14736 + i32.const 12800 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 14800 + i32.const 12864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 25 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14864 + i32.const 12928 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 14944 + i32.const 13008 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 26 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15024 + i32.const 13088 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 15104 + i32.const 13168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 27 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15184 + i32.const 13248 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 15344 + i32.const 13408 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 28 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15184 + i32.const 13248 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 15504 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 32 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15664 + i32.const 13728 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 15696 + i32.const 13760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 36 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15728 + i32.const 13792 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 15760 + i32.const 13824 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 37 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15792 + i32.const 13856 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 16000 + i32.const 14064 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 38 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15664 + i32.const 13728 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5356,18 +5283,18 @@ local.get $10 i32.store local.get $10 - i32.const 16208 + i32.const 14272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 42 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16240 + i32.const 14304 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5380,18 +5307,18 @@ local.get $10 i32.store local.get $10 - i32.const 16272 + i32.const 14336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 43 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16304 + i32.const 14368 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5404,12 +5331,12 @@ local.get $10 i32.store local.get $10 - i32.const 16304 + i32.const 14368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -5428,12 +5355,12 @@ local.get $10 i32.store local.get $10 - i32.const 16560 + i32.const 14624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -5452,930 +5379,930 @@ local.get $10 i32.store local.get $10 - i32.const 16560 + i32.const 14624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 51 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16592 + i32.const 14656 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 16624 + i32.const 14688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 54 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16656 + i32.const 14720 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 16688 + i32.const 14752 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 55 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16720 + i32.const 14784 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 16752 + i32.const 14816 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 56 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16784 + i32.const 14848 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 16816 + i32.const 14880 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 59 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16848 + i32.const 14912 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 16880 + i32.const 14944 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 60 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16912 + i32.const 14976 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 16944 + i32.const 15008 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 61 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16976 + i32.const 15040 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17008 + i32.const 15072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 62 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17040 + i32.const 15104 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17072 + i32.const 15136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 63 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17104 + i32.const 15168 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17136 + i32.const 15200 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 64 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17168 + i32.const 15232 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17200 + i32.const 15264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 65 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17232 + i32.const 15296 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17264 + i32.const 15328 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 66 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17296 + i32.const 15360 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17328 + i32.const 15392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 67 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17360 + i32.const 15424 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17392 + i32.const 15456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 68 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17424 + i32.const 15488 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17456 + i32.const 15520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 69 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17488 + i32.const 15552 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17520 + i32.const 15584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 70 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17552 + i32.const 15616 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17584 + i32.const 15648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 72 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17616 + i32.const 15680 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17648 + i32.const 15712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 73 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17680 + i32.const 15744 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17712 + i32.const 15776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 74 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17744 + i32.const 15808 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17776 + i32.const 15840 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 75 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17808 + i32.const 15872 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17840 + i32.const 15904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 78 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17872 + i32.const 15936 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17904 + i32.const 15968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 79 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17936 + i32.const 16000 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17968 + i32.const 16032 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 80 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18000 + i32.const 16064 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18032 + i32.const 16096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 81 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18064 + i32.const 16128 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18096 + i32.const 16160 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 82 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18128 + i32.const 16192 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18160 + i32.const 16224 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 83 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18192 + i32.const 16256 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 17264 + i32.const 15328 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 84 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18224 + i32.const 16288 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18256 + i32.const 16320 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 85 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18288 + i32.const 16352 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18320 + i32.const 16384 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18352 + i32.const 16416 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18384 + i32.const 16448 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 87 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18416 + i32.const 16480 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18448 + i32.const 16512 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 88 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18480 + i32.const 16544 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18512 + i32.const 16576 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 89 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18544 + i32.const 16608 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18576 + i32.const 16640 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 90 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18608 + i32.const 16672 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18640 + i32.const 16704 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 91 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18672 + i32.const 16736 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18704 + i32.const 16768 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 92 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18736 + i32.const 16800 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18768 + i32.const 16832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 93 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18800 + i32.const 16864 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18832 + i32.const 16896 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18864 + i32.const 16928 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18896 + i32.const 16960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 95 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18928 + i32.const 16992 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 18960 + i32.const 17024 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 96 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18992 + i32.const 17056 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19024 + i32.const 17088 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 99 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16240 + i32.const 14304 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19056 + i32.const 17120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 100 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19088 + i32.const 17152 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19120 + i32.const 17184 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 101 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19152 + i32.const 17216 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19184 + i32.const 17248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 102 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19216 + i32.const 17280 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19248 + i32.const 17312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 103 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19280 + i32.const 17344 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19312 + i32.const 17376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 104 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19344 + i32.const 17408 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19312 + i32.const 17376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 105 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19376 + i32.const 17440 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19408 + i32.const 17472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 106 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19440 + i32.const 17504 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19472 + i32.const 17536 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 107 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19504 + i32.const 17568 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19536 + i32.const 17600 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 108 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19568 + i32.const 17632 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19600 + i32.const 17664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 109 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19632 + i32.const 17696 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19664 + i32.const 17728 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 110 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19696 + i32.const 17760 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 i32.store local.get $10 - i32.const 19728 + i32.const 17792 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 7936 + i32.const 6000 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -6587,7 +6514,7 @@ local.get $8 i64.ne if - i32.const 19760 + i32.const 17824 i32.const 1 local.get $0 f64.convert_i32_s @@ -6596,7 +6523,7 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - i32.const 19856 + i32.const 17920 local.get $6 i32.const 10 call $~lib/number/I64#toString @@ -6618,7 +6545,7 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - i32.const 19920 + i32.const 19760 local.get $8 i32.const 10 call $~lib/number/I64#toString @@ -6645,7 +6572,7 @@ local.get $9 i64.ne if - i32.const 19984 + i32.const 19824 i32.const 1 local.get $0 f64.convert_i32_s @@ -6654,7 +6581,7 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - i32.const 20080 + i32.const 19920 local.get $7 i32.const 10 call $~lib/number/I64#toString @@ -6676,7 +6603,7 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - i32.const 20144 + i32.const 19984 local.get $9 i32.const 10 call $~lib/number/I64#toString @@ -6711,153 +6638,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/string/String.fromCodePoint (param $code i32) (result i32) (local $hasSur i32) (local $out i32) @@ -6897,8 +6677,8 @@ i32.eqz if i32.const 0 - i32.const 16512 - i32.const 39 + i32.const 14576 + i32.const 40 i32.const 7 call $~lib/builtins/abort unreachable @@ -6973,8 +6753,8 @@ i32.gt_s end if - i32.const 160 - i32.const 288 + i32.const 17984 + i32.const 18112 i32.const 431 i32.const 5 call $~lib/builtins/abort @@ -6985,7 +6765,7 @@ i64.ne i32.eqz if - i32.const 352 + i32.const 18176 local.set $18 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -7162,16 +6942,16 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2192 + i32.const 256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2000 + i32.const 64 local.get $0 call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 18608 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 19664 local.get $0 call $~lib/rt/itcms/__visit global.get $~lib/util/casemap/SPECIALS_UPPER diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index 4ae4dd1d37..272404c8ed 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -1,15 +1,16 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (param i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32))) + (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32 i64))) (type $7 (func (result i32))) (type $8 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $9 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i32))) (type $10 (func (param i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "string_casemapping" "toLowerCaseFromIndex" (func $std/string-casemapping/toLowerCaseFromIndex (param i32 i32) (result i32))) (import "string_casemapping" "toUpperCaseFromIndex" (func $std/string-casemapping/toUpperCaseFromIndex (param i32 i32) (result i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) @@ -23,686 +24,476 @@ (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/memory/__stack_pointer (mut i32) (i32.const 54008)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 53848)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3404) "L\03") - (data $19.1 (i32.const 3416) "\04\00\00\000\03\00\00\df\00S\00S\00\00\00I\01\bc\02N\00\00\00\f0\01J\00\0c\03\00\00\90\03\99\03\08\03\01\03\b0\03\a5\03\08\03\01\03\87\055\05R\05\00\00\96\1eH\001\03\00\00\97\1eT\00\08\03\00\00\98\1eW\00\n\03\00\00\99\1eY\00\n\03\00\00\9a\1eA\00\be\02\00\00P\1f\a5\03\13\03\00\00R\1f\a5\03\13\03\00\03T\1f\a5\03\13\03\01\03V\1f\a5\03\13\03B\03\80\1f\08\1f\99\03\00\00\81\1f\t\1f\99\03\00\00\82\1f\n\1f\99\03\00\00\83\1f\0b\1f\99\03\00\00\84\1f\0c\1f\99\03\00\00\85\1f\r\1f\99\03\00\00\86\1f\0e\1f\99\03\00\00\87\1f\0f\1f\99\03\00\00\88\1f\08\1f\99\03\00\00\89\1f\t\1f\99\03\00\00\8a\1f\n\1f\99\03\00\00\8b\1f\0b\1f\99\03\00\00\8c\1f\0c\1f\99\03\00\00\8d\1f\r\1f\99\03\00\00\8e\1f\0e\1f\99\03\00\00\8f\1f\0f\1f\99\03\00\00\90\1f(\1f\99\03\00\00\91\1f)\1f\99\03\00\00\92\1f*\1f\99\03\00\00\93\1f+\1f\99\03\00\00\94\1f,\1f\99\03\00\00\95\1f-\1f\99\03\00\00\96\1f.\1f\99\03\00\00\97\1f/\1f\99\03\00\00\98\1f(\1f\99\03\00\00\99\1f)\1f\99\03\00\00\9a\1f*\1f\99\03\00\00\9b\1f+\1f\99\03\00\00\9c\1f,\1f\99\03\00\00\9d\1f-\1f\99\03\00\00\9e\1f.\1f\99\03\00\00\9f\1f/\1f\99\03\00\00\a0\1fh\1f\99\03\00\00\a1\1fi\1f\99\03\00\00\a2\1fj\1f\99\03\00\00\a3\1fk\1f\99\03\00\00\a4\1fl\1f\99\03\00\00\a5\1fm\1f\99\03\00\00\a6\1fn\1f\99\03\00\00\a7\1fo\1f\99\03\00\00\a8\1fh\1f\99\03\00\00\a9\1fi\1f\99\03\00\00\aa\1fj\1f\99\03\00\00\ab\1fk\1f\99\03\00\00\ac\1fl\1f\99\03\00\00\ad\1fm\1f\99\03\00\00\ae\1fn\1f\99\03\00\00\af\1fo\1f\99\03\00\00\b2\1f\ba\1f\99\03\00\00\b3\1f\91\03\99\03\00\00\b4\1f\86\03\99\03\00\00\b6\1f\91\03B\03\00\00\b7\1f\91\03B\03\99\03\bc\1f\91\03\99\03\00\00\c2\1f\ca\1f\99\03\00\00\c3\1f\97\03\99\03\00\00\c4\1f\89\03\99\03\00\00\c6\1f\97\03B\03\00\00\c7\1f\97\03B\03\99\03\cc\1f\97\03\99\03\00\00\d2\1f\99\03\08\03\00\03\d3\1f\99\03\08\03\01\03\d6\1f\99\03B\03\00\00\d7\1f\99\03\08\03B\03\e2\1f\a5\03\08\03\00\03\e3\1f\a5\03\08\03\01\03\e4\1f\a1\03\13\03\00\00\e6\1f\a5\03B\03\00\00\e7\1f\a5\03\08\03B\03\f2\1f\fa\1f\99\03\00\00\f3\1f\a9\03\99\03\00\00\f4\1f\8f\03\99\03\00\00\f6\1f\a9\03B\03\00\00\f7\1f\a9\03B\03\99\03\fc\1f\a9\03\99\03\00\00\00\fbF\00F\00\00\00\01\fbF\00I\00\00\00\02\fbF\00L\00\00\00\03\fbF\00F\00I\00\04\fbF\00F\00L\00\05\fbS\00T\00\00\00\06\fbS\00T\00\00\00\13\fbD\05F\05\00\00\14\fbD\055\05\00\00\15\fbD\05;\05\00\00\16\fbN\05F\05\00\00\17\fbD\05=\05") - (data $20 (i32.const 4253) "\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\7f") - (data $21 (i32.const 4380) "\07\08\t\n\0b\0c\06\06\06\06\06\06\06\06\06\06\r\06\06\0e\06\06\06\06\06\06\06\06\0f\10\11\12\06\13\06\06\06\06\06\06\06\06\06\06\14\15\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\16\17\06\06\06\18\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\19\06\06\06\06\1a\06\06\06\06\06\06\06\1b\06\06\06\06\06\06\06\06\06\06\06\1c\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1d\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1e\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06") - (data $21.1 (i32.const 5003) "$++++++++\01\00TVVVVVVVV") - (data $21.2 (i32.const 5042) "\18\00\00\00+++++++\07++[VVVVVVVJVV\051P1P1P1P1P1P1P1P$Py1P1P18P1P1P1P1P1P1P1PN1\02N\r\rN\03N\00$n\00N1&nQN$PN9\14\81\1b\1d\1dS1P1P\r1P1P1P\1bS$P1\02\\{\\{\\{\\{\\{\14y\\{\\{\\-+I\03H\03x\\{\14\00\96\n\01+(\06\06\00*\06**+\07\bb\b5+\1e\00+\07+++\01++++++++++++++++++++++++++++++++\01+++++++++++++++++++++++*+++++++++++++\cdF\cd+\00%+\07\01\06\01UVVVVVUVV\02$\81\81\81\81\81\15\81\81\81\00\00+\00\b2\d1\b2\d1\b2\d1\b2\d1\00\00\cd\cc\01\00\d7\d7\d7\d7\d7\83\81\81\81\81\81\81\81\81\81\81\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\1c\00\00\00\00\001P1P1P1P1P1\02\00\001P1P1P1P1P1P1P1P1PN1P1PN1P1P1P1P1P1P1P1\02\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6*++++++++++++\00\00\00TVVVVVVVVVVVV") - (data $21.3 (i32.const 5551) "TVVVVVVVVVVVV\0c\00\0c*+++++++++++++\07*\01") - (data $21.4 (i32.const 5637) "*++++++++++++++++++++++++++VVl\81\15\00++++++++++++++++++++++++++++++++++++++++++\07l\03A++VVVVVVVVVVVVVV,V+++++++++++++++++++++\01") - (data $21.5 (i32.const 5796) "\0cl\00\00\00\00\00\06") - (data $21.6 (i32.const 5842) "\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%Vz\9e&\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06\01++OVV,+\7fVV9++UVV++OVV,+\7fVV\817u[{\\++OVV\02\ac\04\00\009++UVV++OVV,++VV2\13\81W\00o\81~\c9\d7~-\81\81\0e~9\7foW\00\81\81~\15\00~\03++++++++++++\07+$+\97+++++++++*+++++VVVVV\80\81\81\81\819\bb*++++++++++++++++++++++++++++++++++++++++\01\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\c9\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\d0\r\00N1\02\b4\c1\c1\d7\d7$P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P\d7\d7S\c1G\d4\d7\d7\d7\05++++++++++++\07\01\00\01") - (data $21.7 (i32.const 6293) "N1P1P1P1P1P1P1P\r\00\00\00\00\00$P1P1P1P1P") - (data $21.8 (i32.const 6358) "+++++++++++y\\{\\{O{\\{\\{\\{\\{\\{\\{\\{\\{\\{\\-++y\14\\{\\-y*\\\'\\{\\{\\{\a4\00\n\b4\\{\\{O\03x8+++++++++++++O-++\01") - (data $21.9 (i32.const 6471) "H") - (data $21.10 (i32.const 6481) "*++++++++++++++++++++++++++") - (data $21.11 (i32.const 6541) "++++++++\07\00HVVVVVVVV\02") - (data $21.12 (i32.const 6616) "+++++++++++++UVVVVVVVVVVVV\0e") - (data $21.13 (i32.const 6674) "$+++++++++++\07\00VVVVVVVVVVVV") - (data $21.14 (i32.const 6744) "$++++++++++++++++\07\00\00\00\00VVVVVVVVVVVVVVVVV") - (data $21.15 (i32.const 6841) "*++++++++++VVVVVVVVVV\0e") - (data $21.16 (i32.const 6895) "*++++++++++VVVVVVVVVV\0e") - (data $21.17 (i32.const 6960) "+++++++++++UVVVVVVVVVV\0e") - (data $22 (i32.const 7049) "\08\00\00V\01\00\009") - (data $23 (i32.const 7064) "\01 \00\00\00\e0\ff\ff\00\bf\1d\00\00\e7\02\00\00y\00\00\02$\00\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\01\02\00\00\00\fe\ff\ff\019\ff\ff\00\18\ff\ff\01\87\ff\ff\00\d4\fe\ff\00\c3\00\00\01\d2\00\00\01\ce\00\00\01\cd\00\00\01O\00\00\01\ca\00\00\01\cb\00\00\01\cf\00\00\00a\00\00\01\d3\00\00\01\d1\00\00\00\a3\00\00\01\d5\00\00\00\82\00\00\01\d6\00\00\01\da\00\00\01\d9\00\00\01\db\00\00\008\00\00\03\00\00\00\00\b1\ff\ff\01\9f\ff\ff\01\c8\ff\ff\02($\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\003\ff\ff\00&\ff\ff\01~\ff\ff\01+*\00\01]\ff\ff\01(*\00\00?*\00\01=\ff\ff\01E\00\00\01G\00\00\00\1f*\00\00\1c*\00\00\1e*\00\00.\ff\ff\002\ff\ff\006\ff\ff\005\ff\ff\00O\a5\00\00K\a5\00\001\ff\ff\00(\a5\00\00D\a5\00\00/\ff\ff\00-\ff\ff\00\f7)\00\00A\a5\00\00\fd)\00\00+\ff\ff\00*\ff\ff\00\e7)\00\00C\a5\00\00*\a5\00\00\bb\ff\ff\00\'\ff\ff\00\b9\ff\ff\00%\ff\ff\00\15\a5\00\00\12\a5\00\02$L\00\00\00\00\00\01 \00\00\00\e0\ff\ff\01\01\00\00\00\ff\ff\ff\00T\00\00\01t\00\00\01&\00\00\01%\00\00\01@\00\00\01?\00\00\00\da\ff\ff\00\db\ff\ff\00\e1\ff\ff\00\c0\ff\ff\00\c1\ff\ff\01\08\00\00\00\c2\ff\ff\00\c7\ff\ff\00\d1\ff\ff\00\ca\ff\ff\00\f8\ff\ff\00\aa\ff\ff\00\b0\ff\ff\00\07\00\00\00\8c\ff\ff\01\c4\ff\ff\00\a0\ff\ff\01\f9\ff\ff\02\1ap\00\01\01\00\00\00\ff\ff\ff\01 \00\00\00\e0\ff\ff\01P\00\00\01\0f\00\00\00\f1\ff\ff\00\00\00\00\010\00\00\00\d0\ff\ff\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c0\0b\00\01`\1c\00\00\00\00\00\01\d0\97\00\01\08\00\00\00\f8\ff\ff\02\05\8a\00\00\00\00\00\01@\f4\ff\00\9e\e7\ff\00\c2\89\00\00\db\e7\ff\00\92\e7\ff\00\93\e7\ff\00\9c\e7\ff\00\9d\e7\ff\00\a4\e7\ff\00\00\00\00\008\8a\00\00\04\8a\00\00\e6\0e\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c5\ff\ff\01A\e2\ff\02\1d\8f\00\00\08\00\00\01\f8\ff\ff\00\00\00\00\00V\00\00\01\aa\ff\ff\00J\00\00\00d\00\00\00\80\00\00\00p\00\00\00~\00\00\00\t\00\00\01\b6\ff\ff\01\f7\ff\ff\00\db\e3\ff\01\9c\ff\ff\01\90\ff\ff\01\80\ff\ff\01\82\ff\ff\02\05\ac\00\00\00\00\00\01\10\00\00\00\f0\ff\ff\01\1c\00\00\01\01\00\00\01\a3\e2\ff\01A\df\ff\01\ba\df\ff\00\e4\ff\ff\02\0b\b1\00\01\01\00\00\00\ff\ff\ff\010\00\00\00\d0\ff\ff\00\00\00\00\01\t\d6\ff\01\1a\f1\ff\01\19\d6\ff\00\d5\d5\ff\00\d8\d5\ff\01\e4\d5\ff\01\03\d6\ff\01\e1\d5\ff\01\e2\d5\ff\01\c1\d5\ff\00\00\00\00\00\a0\e3\ff\00\00\00\00\01\01\00\00\00\ff\ff\ff\02\0c\bc\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\01\bcZ\ff\01\a0\03\00\01\fcu\ff\01\d8Z\ff\000\00\00\01\b1Z\ff\01\b5Z\ff\01\bfZ\ff\01\eeZ\ff\01\d6Z\ff\01\ebZ\ff\01\d0\ff\ff\01\bdZ\ff\01\c8u\ff\00\00\00\00\000h\ff\00`\fc\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01(\00\00\00\d8\ff\ff\00\00\00\00\01@\00\00\00\c0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01\"\00\00\00\de\ff\ff") - (data $24 (i32.const 8021) "\06\'Qow") - (data $24.1 (i32.const 8036) "|\00\00\7f\00\00\00\00\00\00\00\00\83\8e\92\97\00\aa") - (data $24.2 (i32.const 8064) "\b4\c4") - (data $24.3 (i32.const 8186) "\c6\c9\00\00\00\db") - (data $24.4 (i32.const 8275) "\de\00\00\00\00\e1\00\00\00\00\00\00\00\e4") - (data $24.5 (i32.const 8300) "\e7") - (data $24.6 (i32.const 8386) "\ea") - (data $24.7 (i32.const 8509) "\ed") - (data $25 (i32.const 8532) "0\0c1\rx\0e\7f\0f\80\10\81\11\86\12\89\13\8a\13\8e\14\8f\15\90\16\93\13\94\17\95\18\96\19\97\1a\9a\1b\9c\19\9d\1c\9e\1d\9f\1e\a6\1f\a9\1f\ae\1f\b1 \b2 \b7!\bf\"\c5#\c8#\cb#\dd$\f2#\f6%\f7& -:.=/>0?1@1C2D3E4P5Q6R7S8T9Y:[;\\e?f@hAiBj@kClDoBqErFuG}H\82I\87J\89K\8aL\8bL\8cM\92N\9dO\9ePEW{\1d|\1d}\1d\7fX\86Y\88Z\89Z\8aZ\8c[\8e\\\8f\\\ac]\ad^\ae^\af^\c2_\cc`\cda\cea\cfb\d0c\d1d\d5e\d6f\d7g\f0h\f1i\f2j\f3k\f4l\f5m\f9n\fd-\fe-\ff-PiQiRiSiTiUiViWiXiYiZi[i\\i]i^i_i\82\00\83\00\84\00\85\00\86\00\87\00\88\00\89\00\c0u\cfv\80\89\81\8a\82\8b\85\8c\86\8dp\9dq\9dv\9ew\9ex\9fy\9fz\a0{\a0|\a1}\a1\b3\a2\ba\a3\bb\a3\bc\a4\be\a5\c3\a2\cc\a4\da\a6\db\a6\e5j\ea\a7\eb\a7\ecn\f3\a2\f8\a8\f9\a8\fa\a9\fb\a9\fc\a4&\b0*\b1+\b2N\b3\84\08b\bac\bbd\bce\bdf\bem\bfn\c0o\c1p\c2~\c3\7f\c3}\cf\8d\d0\94\d1\ab\d2\ac\d3\ad\d4\b0\d5\b1\d6\b2\d7\c4\d8\c5\d9\c6\da") - (data $26 (i32.const 8940) "L") - (data $26.1 (i32.const 8952) "\02\00\00\002\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00c\00a\00s\00e\00m\00a\00p\00p\00i\00n\00g\00.\00t\00s") - (data $27 (i32.const 9021) "\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\7f") - (data $28 (i32.const 9148) "\12\10\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\10\10\"\10\10\10#$%&\'()\10*+\10\10\10\10\10\10\10\10\10\10\10,-.\10/\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\100\10\10\101\10234567\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\108\10\109:\10;<=\10\10\10\10\10\10>\10\10?@ABCDEFGHIJKL\10MNO\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10P\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10QR\10\10\10S\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10T\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10UV\10\10\10\10\10\10\10W\10\10\10\10\10XYZ\10\10\10\10\10[\\\10\10\10\10\10\10\10\10\10]\10\10\10\10\10\10\10\10\10\10\10\10") - (data $28.1 (i32.const 9692) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\80@\00\04\00\00\00@\01\00\00\00\00\00\00\00\00\a1\90\01") - (data $28.2 (i32.const 9778) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff0\04\b0") - (data $28.3 (i32.const 9836) "\f8\03") - (data $28.4 (i32.const 9863) "\82\00\00\00\00\00\00\fe\ff\ff\ff\ff\bf\b6\00\00\00\00\00\10\00?\00\ff\17\00\00\00\00\01\f8\ff\ff\00\00\01") - (data $28.5 (i32.const 9910) "\c0\bf\ff=\00\00\00\80\02\00\00\00\ff\ff\ff\07") - (data $28.6 (i32.const 9936) "\c0\ff\01\00\00\00\00\00\00\f8?$\00\00\c0\ff\ff?\00\00\00\00\00\0e") - (data $28.7 (i32.const 9974) "\f8\ff\ff\ff\ff\ff\07\00\00\00\00\00\00\14\fe!\fe\00\0c\00\02\00\02\00\00\00\00\00\00\10\1e \00\00\0c\00\00@\06\00\00\00\00\00\00\10\869\02\00\00\00#\00\06\00\00\00\00\00\00\10\be!\00\00\0c\00\00\fc\02\00\00\00\00\00\00\90\1e `\00\0c\00\00\00\04\00\00\00\00\00\00\00\01 \00\00\00\00\00\00\11\00\00\00\00\00\00\c0\c1=`\00\0c\00\00\00\02\00\00\00\00\00\00\90@0\00\00\0c\00\00\00\03\00\00\00\00\00\00\18\1e \00\00\0c\00\00\00\02\00\00\00\00\00\00\00\00\04\\") - (data $28.8 (i32.const 10146) "\f2\07\c0\7f") - (data $28.9 (i32.const 10162) "\f2\1f@?") - (data $28.10 (i32.const 10175) "\03\00\00\a0\02\00\00\00\00\00\00\fe\7f\df\e0\ff\fe\ff\ff\ff\1f@") - (data $28.11 (i32.const 10209) "\e0\fdf\00\00\00\c3\01\00\1e\00d \00 ") - (data $28.12 (i32.const 10235) "\10") - (data $28.13 (i32.const 10247) "\e0") - (data $28.14 (i32.const 10270) "\1c\00\00\00\1c\00\00\00\0c\00\00\00\0c\00\00\00\00\00\00\00\b0?@\fe\8f \00\00\00\00\00x\00\00\00\00\00\00\08\00\00\00\00\00\00\00`\00\00\00\00\02") - (data $28.15 (i32.const 10336) "\87\01\04\0e") - (data $28.16 (i32.const 10366) "\80\t\00\00\00\00\00\00@\7f\e5\1f\f8\9f\00\00\00\00\80\00\ff\ff\01\00\00\00\00\00\00\00\0f\00\00\00\00\00\d0\17\04\00\00\00\00\f8\0f\00\03\00\00\00<;\00\00\00\00\00\00@\a3\03\00\00\00\00\00\00\f0\cf\00\00\00\00\00\00\00\00?") - (data $28.17 (i32.const 10454) "\f7\ff\fd!\10\03\00\00\00\00\00\f0\ff\ff\ff\ff\ff\ff\ff\07\00\01\00\00\00\f8\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fb") - (data $28.18 (i32.const 10515) "\a0\03\e0\00\e0\00\e0\00`\00\f8\00\03\90|\00\00\00\00\00\00\df\ff\02\80\00\00\ff\1f\00\00\00\00\00\00\ff\ff\ff\ff\01") - (data $28.19 (i32.const 10571) "0") - (data $28.20 (i32.const 10585) "\80\03") - (data $28.21 (i32.const 10601) "\80\00\80") - (data $28.22 (i32.const 10616) "\ff\ff\ff\ff\00\00\00\00\00\80") - (data $28.23 (i32.const 10652) " \00\00\00\00<>\08") - (data $28.24 (i32.const 10671) "~") - (data $28.25 (i32.const 10683) "p\00\00 ") - (data $28.26 (i32.const 10747) "?\00\10") - (data $28.27 (i32.const 10761) "\80\f7\bf\00\00\00\f0") - (data $28.28 (i32.const 10778) "\03\00\ff\ff\ff\ff\03") - (data $28.29 (i32.const 10794) "\01\00\00\07") - (data $28.30 (i32.const 10811) "\03D\08\00\00`\10") - (data $28.31 (i32.const 10836) "0\00\00\00\ff\ff\03\80\00\00\00\00\c0?\00\00\80\ff\03\00\00\00\00\00\07\00\00\00\00\00\c83\00\80\00\00`\00\00\00\00\00\00\00\00~f\00\08\10\00\00\00\00\01\10\00\00\00\00\00\00\9d\c1\02\00\00 \000X") - (data $28.32 (i32.const 10919) "\f8\00\0e") - (data $28.33 (i32.const 10936) " !\00\00\00\00\00@") - (data $28.34 (i32.const 10962) "\fc\ff\03\00\00\00\00\00\00\00\ff\ff\08\00\ff\ff\00\00\00\00$") - (data $28.35 (i32.const 11003) "\80\80@\00\04\00\00\00@\01\00\00\00\00\00\01\00\00\00\00\c0\00\00\00\00\00\00\00\00\08\00\00\0e") - (data $28.36 (i32.const 11067) " ") - (data $28.37 (i32.const 11096) "\01") - (data $28.38 (i32.const 11114) "\c0\07") - (data $28.39 (i32.const 11132) "n\f0\00\00\00\00\00\87") - (data $28.40 (i32.const 11160) "`\00\00\00\00\00\00\00\f0") - (data $28.41 (i32.const 11217) "\18") - (data $28.42 (i32.const 11236) "\c0\ff\01") - (data $28.43 (i32.const 11260) "\02\00\00\00\00\00\00\ff\7f\00\00\00\00\00\00\80\03\00\00\00\00\00x&\00 \00\00\00\00\00\00\07\00\00\00\80\ef\1f\00\00\00\00\00\00\00\08\00\03\00\00\00\00\00\c0\7f\00\9e") - (data $28.44 (i32.const 11329) "\80\d3@") - (data $28.45 (i32.const 11351) "\80\f8\07\00\00\03\00\00\00\00\00\00\18\01\00\00\00\c0\1f\1f") - (data $28.46 (i32.const 11395) "\ff\\\00\00@") - (data $28.47 (i32.const 11410) "\f8\85\r") - (data $28.48 (i32.const 11442) "<\b0\01\00\000") - (data $28.49 (i32.const 11458) "\f8\a7\01") - (data $28.50 (i32.const 11473) "(\bf") - (data $28.51 (i32.const 11487) "\e0\bc\0f") - (data $28.52 (i32.const 11521) "\80\ff\06") - (data $28.53 (i32.const 11555) "X\08") - (data $28.54 (i32.const 11574) "\f0\0c\01\00\00\00\fe\07\00\00\00\00\f8y\80\00~\0e\00\00\00\00\00\fc\7f\03") - (data $28.55 (i32.const 11618) "\7f\bf") - (data $28.56 (i32.const 11630) "\fc\ff\ff\fcm") - (data $28.57 (i32.const 11650) "~\b4\bf") - (data $28.58 (i32.const 11662) "\a3") - (data $28.59 (i32.const 11706) "\18\00\00\00\00\00\00\00\ff\01") - (data $28.60 (i32.const 11770) "\1f\00\00\00\00\00\00\00\7f\00\0f") - (data $28.61 (i32.const 11813) "\80\00\00\00\00\00\00\00\80\ff\ff\00\00\00\00\00\00\00\00\1b") - (data $28.62 (i32.const 11855) "`\0f") - (data $28.63 (i32.const 11880) "\80\03\f8\ff\e7\0f\00\00\00<") - (data $28.64 (i32.const 11908) "\1c") - (data $28.65 (i32.const 11932) "\ff\ff\ff\ff\ff\ff\7f\f8\ff\ff\ff\ff\ff\1f \00\10\00\00\f8\fe\ff") - (data $28.66 (i32.const 11964) "\7f\ff\ff\f9\db\07") - (data $28.67 (i32.const 12002) "\ff?") - (data $28.68 (i32.const 12057) "\f0") - (data $28.69 (i32.const 12086) "\7f") - (data $28.70 (i32.const 12100) "\f0\0f") - (data $28.71 (i32.const 12155) "\f8") - (data $29 (i32.const 12156) "\12\13\14\15\16\17\10\10\10\10\10\10\10\10\10\10\18\10\10\19\10\10\10\10\10\10\10\10\1a\1b\11\1c\1d\1e\10\10\1f\10\10\10\10\10\10\10 !\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\"#\10\10\10$\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10%\10\10\10&\10\10\10\10\'\10\10\10\10\10\10\10(\10\10\10\10\10\10\10\10\10\10\10)\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10*\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10+,-.\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10/\10\10\10\10\10\10\100\10\10\10\10\10\10\10\10\10\10\10\10\10\10") - (data $29.1 (i32.const 12700) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\fe\ff\ff\07\fe\ff\ff\07\00\00\00\00\00\04 \04\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\f7\f0\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ef\ff\ff\ff\ff\01\03\00\00\00\1f") - (data $29.2 (i32.const 12836) " \00\00\00\00\00\cf\bc@\d7\ff\ff\fb\ff\ff\ff\ff\ff\ff\ff\ff\ff\bf\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\03\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fe\ff\ff\ff\7f\00\ff\ff\ff\ff\ff\01") - (data $29.3 (i32.const 12944) "\ff\ff\ff\ff\bf \ff\ff\ff\ff\ff\e7") - (data $29.4 (i32.const 12976) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff??") - (data $29.5 (i32.const 13004) "\ff\01\ff\ff\ff\ff\ff\e7\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\ff\ff??\ff\ff\ff\ff??\ff\aa\ff\ff\ff?\ff\ff\ff\ff\ff\ff\df_\dc\1f\cf\0f\ff\1f\dc\1f") - (data $29.6 (i32.const 13098) "\02\80\00\00\ff\1f") - (data $29.7 (i32.const 13116) "\84\fc/>P\bd\1f\f2\e0C\00\00\ff\ff\ff\ff\18") - (data $29.8 (i32.const 13170) "\c0\ff\ff\ff\ff\ff\ff\03\00\00\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\1fx\0c\00\ff\ff\ff\ff\bf ") - (data $29.9 (i32.const 13252) "\ff\ff\ff\ff\ff?\00\00\ff\ff\ff?") - (data $29.10 (i32.const 13280) "\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ffx\ff\ff\ff\ff\ff\ff\fc\07\00\00\00\00`\07\00\00\00\00\00\00\ff\ff\ff\ff\ff\f7\ff\01\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\7f\00\f8") - (data $29.11 (i32.const 13376) "\fe\ff\ff\07\fe\ff\ff\07") - (data $29.12 (i32.const 13404) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff") - (data $29.13 (i32.const 13426) "\ff\ff\ff\ff\0f\ff\ff\ff\ff\0f") - (data $29.14 (i32.const 13452) "\ff\ff\ff\ff\ff\ff\07\00\ff\ff\ff\ff\ff\ff\07") - (data $29.15 (i32.const 13488) "\ff\ff\ff\ff\ff\ff\ff\ff") - (data $29.16 (i32.const 13508) "\ff\ff\ff\ff\ff\ff\ff\ff") - (data $29.17 (i32.const 13532) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\df\ff\ff\ff\ff\ff\ff\ff\ff\dfd\de\ff\eb\ef\ff\ff\ff\ff\ff\ff\ff\bf\e7\df\df\ff\ff\ff{_\fc\fd\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff?\ff\ff\ff\fd\ff\ff\f7\ff\ff\ff\f7\ff\ff\df\ff\ff\ff\df\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\fd\ff\ff\ff\fd\ff\ff\f7\0f\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\0f") - (data $29.18 (i32.const 13698) "\ff\ff\ff\03\ff\ff\ff\03\ff\ff\ff\03") - (data $30 (i32.const 13724) ",") - (data $30.1 (i32.const 13736) "\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\n") - (data $31 (i32.const 13772) ",") - (data $31.1 (i32.const 13784) "\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00A\00Z\00.\00!\00\n") - (data $32 (i32.const 13820) ",") - (data $32.1 (i32.const 13832) "\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\t") - (data $33 (i32.const 13868) ",") - (data $33.1 (i32.const 13880) "\02\00\00\00\16\00\00\000\009\00_\00a\00z\00 \00a\00z\00.\00!\00\t") - (data $34 (i32.const 13916) "\\") - (data $34.1 (i32.const 13928) "\02\00\00\00J\00\00\00D\00e\00r\00 \00W\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00B\00e\00s\00t\00\e4\00n\00d\00i\00g\00e") - (data $35 (i32.const 14012) "\\") - (data $35.1 (i32.const 14024) "\02\00\00\00J\00\00\00D\00E\00R\00 \00W\00E\00C\00H\00S\00E\00L\00 \00A\00L\00L\00E\00I\00N\00 \00I\00S\00T\00 \00D\00A\00S\00 \00B\00E\00S\00T\00\c4\00N\00D\00I\00G\00E") - (data $36 (i32.const 14108) "\\") - (data $36.1 (i32.const 14120) "\02\00\00\00J\00\00\00d\00e\00r\00 \00w\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00b\00e\00s\00t\00\e4\00n\00d\00i\00g\00e") - (data $37 (i32.const 14204) "<") - (data $37.1 (i32.const 14216) "\02\00\00\00$\00\00\00@\00 \00\14 \00\14\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!") - (data $38 (i32.const 14268) "<") - (data $38.1 (i32.const 14280) "\02\00\00\00$\00\00\00@\00 \00\14 \00\14\04 \04#\04\13\04 \00\'\04\15\04\1b\04\1e\04\12\04\15\04\1a\04\10\04!") - (data $39 (i32.const 14332) "<") - (data $39.1 (i32.const 14344) "\02\00\00\00$\00\00\00@\00 \00\14 \004\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!") - (data $40 (i32.const 14396) "\\") - (data $40.1 (i32.const 14408) "\02\00\00\00D\00\00\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)") - (data $41 (i32.const 14492) "\\") - (data $41.1 (i32.const 14504) "\02\00\00\00D\00\00\00.\" \00E\00\c5\"D\00A\00 \00=\00 \00Q\00,\00 \00N\00 \00\92! \00\1e\",\00 \00\11\" \00F\00(\00I\00)\00 \00=\00 \00\0f\" \00G\00(\00I\00)") - (data $42 (i32.const 14588) "\\") - (data $42.1 (i32.const 14600) "\02\00\00\00D\00\00\00.\" \00e\00\c5\"d\00a\00 \00=\00 \00q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)") - (data $43 (i32.const 14684) "\\") - (data $43.1 (i32.const 14696) "\02\00\00\00H\00\00\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n") - (data $44 (i32.const 14780) "\\") - (data $44.1 (i32.const 14792) "\02\00\00\00H\00\00\00\d0\00I\00 \00I\00N\00T\00\8f\01\c8\02N\00\c6\00\a9\01\8f\01N\00\8f\01L\00 \00F\00\8f\01\c8\02N\00\90\01T\00I\00K\00 \00\8f\01S\00O\00\b1\01S\00I\00\c8\02E\00I\00\a9\01N") - (data $45 (i32.const 14876) "\\") - (data $45.1 (i32.const 14888) "\02\00\00\00H\00\00\00\f0\00i\00 \00i\00n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\00i\00k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\00i\00\83\02n") - (data $46 (i32.const 14972) "L") - (data $46.1 (i32.const 14984) "\02\00\00\00.\00\00\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03\cc\03\c8\03\b7\03") - (data $47 (i32.const 15052) "L") - (data $47.1 (i32.const 15064) "\02\00\00\00.\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00\9a\03\8c\03\a8\03\97\03") - (data $48 (i32.const 15132) "L") - (data $48.1 (i32.const 15144) "\02\00\00\000\00\00\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03\ae\03,") - (data $49 (i32.const 15212) "L") - (data $49.1 (i32.const 15224) "\02\00\00\004\00\00\00\a4\03\9f\03\a5\03B\03 \00\a3\03\a0\03\91\03\98\03\99\03\9f\03\a5\03B\03 \00\a4\03\ca\1f\9d\03 \00\a4\03\a1\03\9f\03\9c\03\95\03\a1\03\89\03,") - (data $50 (i32.const 15292) "<") - (data $50.1 (i32.const 15304) "\02\00\00\00,\00\00\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03") - (data $51 (i32.const 15356) "<") - (data $51.1 (i32.const 15368) "\02\00\00\00,\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00L\1f\a8\03\97\03") - (data $52 (i32.const 15420) "L") - (data $52.1 (i32.const 15432) "\02\00\00\002\00\00\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03\af\03\b1\03 \00\bc\03\b5\03\c4\03\c1\03\ac\03\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.") - (data $53 (i32.const 15500) "L") - (data $53.1 (i32.const 15512) "\02\00\00\004\00\00\00\a0\03\9f\03\ea\1f \00\9c\03\c8\1f \00\92\03\8a\03\91\03 \00\9c\03\95\03\a4\03\a1\03\86\03\95\03\99\03 \00\a4\03\ca\1f \00\93\03\97\03B\03.") - (data $54 (i32.const 15580) "L") - (data $54.1 (i32.const 15592) "\02\00\00\00.\00\00\00\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03\cc\03\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03\ad\03\bd\03\b7\03") - (data $55 (i32.const 15660) "L") - (data $55.1 (i32.const 15672) "\02\00\00\00.\00\00\00\91\03\a0\03\bf\1f \00\a4\03\ba\1f \00\9a\03\8c\03\9a\03\9a\03\91\03\9b\03\91\03 \00\92\03\93\03\91\03\9b\03\9c\03\88\03\9d\03\97\03") - (data $56 (i32.const 15740) "<") - (data $56.1 (i32.const 15752) "\02\00\00\00(\00\00\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03\ae\03\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03\ac\03") - (data $57 (i32.const 15804) "<") - (data $57.1 (i32.const 15816) "\02\00\00\00*\00\00\00\a4\03\a9\03B\03\9d\03 \00\fe\1f\95\03\9b\03\9b\03\89\03\9d\03\a9\03\9d\03 \00\a4\03\ba\1f \009\1f\95\03\a1\03\86\03") - (data $58 (i32.const 15868) "L") - (data $58.1 (i32.const 15880) "\02\00\00\002\00\00\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03\ad\03\bd\03\b7\03") - (data $59 (i32.const 15948) "L") - (data $59.1 (i32.const 15960) "\02\00\00\004\00\00\00\9a\03\91\03\da\1f \00\a3\03\ba\1f\9d\03 \00\a0\03\a1\03\a9\03B\03\a4\03\91\03 \00\08\1f\9d\03\94\03\a1\03\95\03\99\03\a9\03\9c\03\88\03\9d\03\97\03") - (data $60 (i32.const 16028) "L") - (data $60.1 (i32.const 16040) "\02\00\00\006\00\00\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03\ac\03!") - (data $61 (i32.const 16108) "L") - (data $61.1 (i32.const 16120) "\02\00\00\00:\00\00\00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00n\1f \00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00\bf\1f\95\03\9b\03\95\03\a5\03\98\03\95\03\a1\03\99\03\86\03!") - (data $62 (i32.const 16188) "\9c") - (data $62.1 (i32.const 16200) "\02\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\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 $63 (i32.const 16348) "\9c") - (data $63.1 (i32.const 16360) "\02\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\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 $64 (i32.const 16508) "\9c") - (data $64.1 (i32.const 16520) "\02\00\00\00\80\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\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 $65 (i32.const 16668) "\1c") - (data $65.1 (i32.const 16680) "\02\00\00\00\02\00\00\00\df") - (data $66 (i32.const 16700) "\1c") - (data $66.1 (i32.const 16712) "\02\00\00\00\04\00\00\00S\00S") - (data $67 (i32.const 16732) "\1c") - (data $67.1 (i32.const 16744) "\02\00\00\00\02\00\00\000\01") - (data $68 (i32.const 16764) "\1c") - (data $68.1 (i32.const 16776) "\02\00\00\00\04\00\00\00i\00\07\03") - (data $69 (i32.const 16796) "\cc") - (data $69.1 (i32.const 16808) "\02\00\00\00\ae\00\00\00\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10") - (data $70 (i32.const 17004) "\cc") - (data $70.1 (i32.const 17016) "\02\00\00\00\b2\00\00\00\a3\00\a9\00\9c\03\c0\00\c6\00\d6\00\de\00S\00S\00\c9\00\d6\00x\01\13 \14 \18 \1c \1d \1e \" & 0 \"!R\01`\01x\01}\01\ac \00\91\03\92\03\93\03\94\03\a9\03\91\03\92\03\93\03\94\03\a9\03 \00\10\04\11\04\12\04\13\04\14\04\10\04\11\04\12\04\13\04\14\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00F\00I\00\fd\ff@$\82 (\1f\02\1e\e4\04\84\1eo,\d0\02N#\d0\051\05\90\1c") - (data $71 (i32.const 17212) "\1c") - (data $71.1 (i32.const 17224) "\02\00\00\00\04\00\00\00s\00s") - (data $72 (i32.const 17244) "\1c") - (data $72.1 (i32.const 17256) "\02\00\00\00\02\00\00\00\01\fb") - (data $73 (i32.const 17276) "\1c") - (data $73.1 (i32.const 17288) "\02\00\00\00\04\00\00\00f\00i") - (data $74 (i32.const 17308) "\cc") - (data $74.1 (i32.const 17320) "\02\00\00\00\b8\00\00\00A\d8\0e\df \00A\d81\df \00A\d8y\df \00C\d8S\dc \00C\d8x\dc \00C\d8\96\dc \00C\d8\cf\dc \00C\d8\d5\dc \00C\d8\15\dd \00C\d8|\dd \00C\d8\7f\dd \00C\d8\0e\de \00C\d8\0f\de \00C\d8w\de \00C\d8\9d\de \00C\d8\a2\de \00C\d8\d7\de \00C\d8\f9\de \00C\d8\fa\de \00C\d8-\df \00C\d8.\df \00C\d8L\df \00C\d8\b4\df \00C\d8\bc\df \00C\d8\ea\df \00D\d8\\\dc \00D\d8o\dc \00D\d8u\dc \00D\d8v\dc \00D\d8{\dc \00D\d8\c1\dc") - (data $75 (i32.const 17516) ",") - (data $75.1 (i32.const 17528) "\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data $76 (i32.const 17564) "\1c") - (data $76.1 (i32.const 17576) "\02\00\00\00\04\00\00\00\00\d8\00\dc") - (data $77 (i32.const 17596) "\1c") - (data $77.1 (i32.const 17608) "\02\00\00\00\02\00\00\00\88\1f") - (data $78 (i32.const 17628) "\1c") - (data $78.1 (i32.const 17640) "\02\00\00\00\02\00\00\00\80\1f") - (data $79 (i32.const 17660) "\1c") - (data $79.1 (i32.const 17672) "\02\00\00\00\02\00\00\00\8f\1f") - (data $80 (i32.const 17692) "\1c") - (data $80.1 (i32.const 17704) "\02\00\00\00\02\00\00\00\87\1f") - (data $81 (i32.const 17724) "\1c") - (data $81.1 (i32.const 17736) "\02\00\00\00\02\00\00\00\fc\1f") - (data $82 (i32.const 17756) "\1c") - (data $82.1 (i32.const 17768) "\02\00\00\00\02\00\00\00\f3\1f") - (data $83 (i32.const 17788) "\1c") - (data $83.1 (i32.const 17800) "\02\00\00\00\02\00\00\00\a3\03") - (data $84 (i32.const 17820) "\1c") - (data $84.1 (i32.const 17832) "\02\00\00\00\02\00\00\00\c3\03") - (data $85 (i32.const 17852) "\1c") - (data $85.1 (i32.const 17864) "\02\00\00\00\04\00\00\00 \00\a3\03") - (data $86 (i32.const 17884) "\1c") - (data $86.1 (i32.const 17896) "\02\00\00\00\04\00\00\00 \00\c3\03") - (data $87 (i32.const 17916) "\1c") - (data $87.1 (i32.const 17928) "\02\00\00\00\04\00\00\00\a3\03 ") - (data $88 (i32.const 17948) "\1c") - (data $88.1 (i32.const 17960) "\02\00\00\00\04\00\00\00\c3\03 ") - (data $89 (i32.const 17980) "\1c") - (data $89.1 (i32.const 17992) "\02\00\00\00\06\00\00\00 \00\a3\03 ") - (data $90 (i32.const 18012) "\1c") - (data $90.1 (i32.const 18024) "\02\00\00\00\06\00\00\00 \00\c3\03 ") - (data $91 (i32.const 18044) "\1c") - (data $91.1 (i32.const 18056) "\02\00\00\00\06\00\00\00a\00\a3\03 ") - (data $92 (i32.const 18076) "\1c") - (data $92.1 (i32.const 18088) "\02\00\00\00\06\00\00\00a\00\c2\03 ") - (data $93 (i32.const 18108) "\1c") - (data $93.1 (i32.const 18120) "\02\00\00\00\06\00\00\00a\00\a3\03\n") - (data $94 (i32.const 18140) "\1c") - (data $94.1 (i32.const 18152) "\02\00\00\00\06\00\00\00a\00\c2\03\n") - (data $95 (i32.const 18172) "\1c") - (data $95.1 (i32.const 18184) "\02\00\00\00\04\00\00\00a\00\a3\03") - (data $96 (i32.const 18204) "\1c") - (data $96.1 (i32.const 18216) "\02\00\00\00\04\00\00\00a\00\c2\03") - (data $97 (i32.const 18236) "\1c") - (data $97.1 (i32.const 18248) "\02\00\00\00\06\00\00\00a\00\a3\03b") - (data $98 (i32.const 18268) "\1c") - (data $98.1 (i32.const 18280) "\02\00\00\00\06\00\00\00a\00\c3\03b") - (data $99 (i32.const 18300) "\1c") - (data $99.1 (i32.const 18312) "\02\00\00\00\06\00\00\00\a3\03\a3\03 ") - (data $100 (i32.const 18332) "\1c") - (data $100.1 (i32.const 18344) "\02\00\00\00\06\00\00\00\c3\03\c2\03 ") - (data $101 (i32.const 18364) "\1c") - (data $101.1 (i32.const 18376) "\02\00\00\00\06\00\00\001\00\a3\03 ") - (data $102 (i32.const 18396) "\1c") - (data $102.1 (i32.const 18408) "\02\00\00\00\06\00\00\001\00\c3\03 ") - (data $103 (i32.const 18428) "\1c") - (data $103.1 (i32.const 18440) "\02\00\00\00\06\00\00\00;\00\a3\03 ") - (data $104 (i32.const 18460) "\1c") - (data $104.1 (i32.const 18472) "\02\00\00\00\06\00\00\00;\00\c3\03 ") - (data $105 (i32.const 18492) "\1c") - (data $105.1 (i32.const 18504) "\02\00\00\00\06\00\00\00\01\03\a3\03 ") - (data $106 (i32.const 18524) "\1c") - (data $106.1 (i32.const 18536) "\02\00\00\00\06\00\00\00\01\03\c3\03 ") - (data $107 (i32.const 18556) "\1c") - (data $107.1 (i32.const 18568) "\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03 ") - (data $108 (i32.const 18588) "\1c") - (data $108.1 (i32.const 18600) "\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03 ") - (data $109 (i32.const 18620) "\1c") - (data $109.1 (i32.const 18632) "\02\00\00\00\06\00\00\00\a3\03\a3\03-") - (data $110 (i32.const 18652) "\1c") - (data $110.1 (i32.const 18664) "\02\00\00\00\06\00\00\00\c3\03\c2\03-") - (data $111 (i32.const 18684) "\1c") - (data $111.1 (i32.const 18696) "\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03-") - (data $112 (i32.const 18716) "\1c") - (data $112.1 (i32.const 18728) "\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03-") - (data $113 (i32.const 18748) "\1c") - (data $113.1 (i32.const 18760) "\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03*s") - (data $114 (i32.const 18780) "\1c") - (data $114.1 (i32.const 18792) "\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03*s") - (data $115 (i32.const 18812) "\1c") - (data $115.1 (i32.const 18824) "\02\00\00\00\06\00\00\005\d8\a2\dc\a3\03") - (data $116 (i32.const 18844) "\1c") - (data $116.1 (i32.const 18856) "\02\00\00\00\06\00\00\005\d8\a2\dc\c2\03") - (data $117 (i32.const 18876) "\1c") - (data $117.1 (i32.const 18888) "\02\00\00\00\06\00\00\00A\00.\00\a3\03") - (data $118 (i32.const 18908) "\1c") - (data $118.1 (i32.const 18920) "\02\00\00\00\06\00\00\00a\00.\00\c2\03") - (data $119 (i32.const 18940) "\1c") - (data $119.1 (i32.const 18952) "\02\00\00\00\06\00\00\00A\00\ad\00\a3\03") - (data $120 (i32.const 18972) "\1c") - (data $120.1 (i32.const 18984) "\02\00\00\00\06\00\00\00a\00\ad\00\c2\03") - (data $121 (i32.const 19004) "\1c") - (data $121.1 (i32.const 19016) "\02\00\00\00\08\00\00\00A\004\d8B\de\a3\03") - (data $122 (i32.const 19036) "\1c") - (data $122.1 (i32.const 19048) "\02\00\00\00\08\00\00\00a\004\d8B\de\c2\03") - (data $123 (i32.const 19068) "\1c") - (data $123.1 (i32.const 19080) "\02\00\00\00\04\00\00\00E\03\a3\03") - (data $124 (i32.const 19100) "\1c") - (data $124.1 (i32.const 19112) "\02\00\00\00\04\00\00\00E\03\c3\03") - (data $125 (i32.const 19132) "\1c") - (data $125.1 (i32.const 19144) "\02\00\00\00\06\00\00\00\91\03E\03\a3\03") - (data $126 (i32.const 19164) "\1c") - (data $126.1 (i32.const 19176) "\02\00\00\00\06\00\00\00\b1\03E\03\c2\03") - (data $127 (i32.const 19196) "\1c") - (data $127.1 (i32.const 19208) "\02\00\00\00\06\00\00\00A\00\a3\03B") - (data $128 (i32.const 19228) "\1c") - (data $128.1 (i32.const 19240) "\02\00\00\00\08\00\00\00A\00\a3\035\d8\a2\dc") - (data $129 (i32.const 19260) "\1c") - (data $129.1 (i32.const 19272) "\02\00\00\00\08\00\00\00a\00\c3\035\d8\a2\dc") - (data $130 (i32.const 19292) "\1c") - (data $130.1 (i32.const 19304) "\02\00\00\00\08\00\00\00A\00\a3\03.\00b") - (data $131 (i32.const 19324) "\1c") - (data $131.1 (i32.const 19336) "\02\00\00\00\08\00\00\00a\00\c3\03.\00b") - (data $132 (i32.const 19356) "\1c") - (data $132.1 (i32.const 19368) "\02\00\00\00\08\00\00\00A\00\a3\03\ad\00B") - (data $133 (i32.const 19388) "\1c") - (data $133.1 (i32.const 19400) "\02\00\00\00\08\00\00\00a\00\c3\03\ad\00b") - (data $134 (i32.const 19420) "\1c") - (data $134.1 (i32.const 19432) "\02\00\00\00\n\00\00\00A\00\a3\034\d8B\deB") - (data $135 (i32.const 19452) "\1c") - (data $135.1 (i32.const 19464) "\02\00\00\00\n\00\00\00a\00\c3\034\d8B\deb") - (data $136 (i32.const 19484) "\1c") - (data $136.1 (i32.const 19496) "\02\00\00\00\06\00\00\00A\00\a3\03E\03") - (data $137 (i32.const 19516) "\1c") - (data $137.1 (i32.const 19528) "\02\00\00\00\06\00\00\00a\00\c2\03E\03") - (data $138 (i32.const 19548) "\1c") - (data $138.1 (i32.const 19560) "\02\00\00\00\08\00\00\00A\00\a3\03E\03\91\03") - (data $139 (i32.const 19580) "\1c") - (data $139.1 (i32.const 19592) "\02\00\00\00\08\00\00\00a\00\c3\03E\03\b1\03") - (data $140 (i32.const 19612) "\1c") - (data $140.1 (i32.const 19624) "\02\00\00\00\06\00\00\00A\00\0e\18\a3\03") - (data $141 (i32.const 19644) "\1c") - (data $141.1 (i32.const 19656) "\02\00\00\00\06\00\00\00a\00\0e\18\c2\03") - (data $142 (i32.const 19676) "\1c") - (data $142.1 (i32.const 19688) "\02\00\00\00\08\00\00\00A\00\0e\18\a3\03B") - (data $143 (i32.const 19708) "\1c") - (data $143.1 (i32.const 19720) "\02\00\00\00\08\00\00\00a\00\0e\18\c3\03b") - (data $144 (i32.const 19740) "\1c") - (data $144.1 (i32.const 19752) "\02\00\00\00\06\00\00\00A\00\a3\03\0e\18") - (data $145 (i32.const 19772) "\1c") - (data $145.1 (i32.const 19784) "\02\00\00\00\06\00\00\00a\00\c2\03\0e\18") - (data $146 (i32.const 19804) "\1c") - (data $146.1 (i32.const 19816) "\02\00\00\00\08\00\00\00A\00\a3\03\0e\18B") - (data $147 (i32.const 19836) "\1c") - (data $147.1 (i32.const 19848) "\02\00\00\00\08\00\00\00a\00\c3\03\0e\18b") - (data $148 (i32.const 19868) "\1c") - (data $148.1 (i32.const 19880) "\02\00\00\00\08\00\00\00A\00\0e\18\a3\03\0e\18") - (data $149 (i32.const 19900) "\1c") - (data $149.1 (i32.const 19912) "\02\00\00\00\08\00\00\00a\00\0e\18\c2\03\0e\18") - (data $150 (i32.const 19932) "\1c") - (data $150.1 (i32.const 19944) "\02\00\00\00\n\00\00\00A\00\0e\18\a3\03\0e\18B") - (data $151 (i32.const 19964) "\1c") - (data $151.1 (i32.const 19976) "\02\00\00\00\n\00\00\00a\00\0e\18\c3\03\0e\18b") - (data $152 (i32.const 19996) "\1c") - (data $152.1 (i32.const 20008) "\02\00\00\00\02\00\00\00\00\fb") - (data $153 (i32.const 20028) "\1c") - (data $153.1 (i32.const 20040) "\02\00\00\00\04\00\00\00F\00F") - (data $154 (i32.const 20060) "\1c") - (data $154.1 (i32.const 20072) "\02\00\00\00\04\00\00\00F\00I") - (data $155 (i32.const 20092) "\1c") - (data $155.1 (i32.const 20104) "\02\00\00\00\02\00\00\00\02\fb") - (data $156 (i32.const 20124) "\1c") - (data $156.1 (i32.const 20136) "\02\00\00\00\04\00\00\00F\00L") - (data $157 (i32.const 20156) "\1c") - (data $157.1 (i32.const 20168) "\02\00\00\00\02\00\00\00\03\fb") - (data $158 (i32.const 20188) "\1c") - (data $158.1 (i32.const 20200) "\02\00\00\00\06\00\00\00F\00F\00I") - (data $159 (i32.const 20220) "\1c") - (data $159.1 (i32.const 20232) "\02\00\00\00\02\00\00\00\04\fb") - (data $160 (i32.const 20252) "\1c") - (data $160.1 (i32.const 20264) "\02\00\00\00\06\00\00\00F\00F\00L") - (data $161 (i32.const 20284) "\1c") - (data $161.1 (i32.const 20296) "\02\00\00\00\02\00\00\00\05\fb") - (data $162 (i32.const 20316) "\1c") - (data $162.1 (i32.const 20328) "\02\00\00\00\04\00\00\00S\00T") - (data $163 (i32.const 20348) "\1c") - (data $163.1 (i32.const 20360) "\02\00\00\00\02\00\00\00\06\fb") - (data $164 (i32.const 20380) "\1c") - (data $164.1 (i32.const 20392) "\02\00\00\00\02\00\00\00\f0\01") - (data $165 (i32.const 20412) "\1c") - (data $165.1 (i32.const 20424) "\02\00\00\00\04\00\00\00J\00\0c\03") - (data $166 (i32.const 20444) "\1c") - (data $166.1 (i32.const 20456) "\02\00\00\00\02\00\00\00\96\1e") - (data $167 (i32.const 20476) "\1c") - (data $167.1 (i32.const 20488) "\02\00\00\00\04\00\00\00H\001\03") - (data $168 (i32.const 20508) "\1c") - (data $168.1 (i32.const 20520) "\02\00\00\00\02\00\00\00\97\1e") - (data $169 (i32.const 20540) "\1c") - (data $169.1 (i32.const 20552) "\02\00\00\00\04\00\00\00T\00\08\03") - (data $170 (i32.const 20572) "\1c") - (data $170.1 (i32.const 20584) "\02\00\00\00\02\00\00\00\98\1e") - (data $171 (i32.const 20604) "\1c") - (data $171.1 (i32.const 20616) "\02\00\00\00\04\00\00\00W\00\n\03") - (data $172 (i32.const 20636) "\1c") - (data $172.1 (i32.const 20648) "\02\00\00\00\02\00\00\00\99\1e") - (data $173 (i32.const 20668) "\1c") - (data $173.1 (i32.const 20680) "\02\00\00\00\04\00\00\00Y\00\n\03") - (data $174 (i32.const 20700) "\1c") - (data $174.1 (i32.const 20712) "\02\00\00\00\02\00\00\00\9a\1e") - (data $175 (i32.const 20732) "\1c") - (data $175.1 (i32.const 20744) "\02\00\00\00\04\00\00\00A\00\be\02") - (data $176 (i32.const 20764) "\\") - (data $176.1 (i32.const 20776) "\02\00\00\00@\00\00\00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e") - (data $177 (i32.const 20860) "<") - (data $177.1 (i32.const 20872) "\02\00\00\00\"\00\00\00 \00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 ") - (data $178 (i32.const 20924) "<") - (data $178.1 (i32.const 20936) "\02\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 ") - (data $179 (i32.const 20988) "\\") - (data $179.1 (i32.const 21000) "\02\00\00\00@\00\00\00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e") - (data $180 (i32.const 21084) "<") - (data $180.1 (i32.const 21096) "\02\00\00\00\"\00\00\00 \00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 ") - (data $181 (i32.const 21148) "<") - (data $181.1 (i32.const 21160) "\02\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 ") - (data $182 (i32.const 21216) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\a4") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\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 $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1324) ",") + (data $6.1 (i32.const 1336) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1404) "<") + (data $8.1 (i32.const 1416) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1468) "L\03") + (data $9.1 (i32.const 1480) "\04\00\00\000\03\00\00\df\00S\00S\00\00\00I\01\bc\02N\00\00\00\f0\01J\00\0c\03\00\00\90\03\99\03\08\03\01\03\b0\03\a5\03\08\03\01\03\87\055\05R\05\00\00\96\1eH\001\03\00\00\97\1eT\00\08\03\00\00\98\1eW\00\n\03\00\00\99\1eY\00\n\03\00\00\9a\1eA\00\be\02\00\00P\1f\a5\03\13\03\00\00R\1f\a5\03\13\03\00\03T\1f\a5\03\13\03\01\03V\1f\a5\03\13\03B\03\80\1f\08\1f\99\03\00\00\81\1f\t\1f\99\03\00\00\82\1f\n\1f\99\03\00\00\83\1f\0b\1f\99\03\00\00\84\1f\0c\1f\99\03\00\00\85\1f\r\1f\99\03\00\00\86\1f\0e\1f\99\03\00\00\87\1f\0f\1f\99\03\00\00\88\1f\08\1f\99\03\00\00\89\1f\t\1f\99\03\00\00\8a\1f\n\1f\99\03\00\00\8b\1f\0b\1f\99\03\00\00\8c\1f\0c\1f\99\03\00\00\8d\1f\r\1f\99\03\00\00\8e\1f\0e\1f\99\03\00\00\8f\1f\0f\1f\99\03\00\00\90\1f(\1f\99\03\00\00\91\1f)\1f\99\03\00\00\92\1f*\1f\99\03\00\00\93\1f+\1f\99\03\00\00\94\1f,\1f\99\03\00\00\95\1f-\1f\99\03\00\00\96\1f.\1f\99\03\00\00\97\1f/\1f\99\03\00\00\98\1f(\1f\99\03\00\00\99\1f)\1f\99\03\00\00\9a\1f*\1f\99\03\00\00\9b\1f+\1f\99\03\00\00\9c\1f,\1f\99\03\00\00\9d\1f-\1f\99\03\00\00\9e\1f.\1f\99\03\00\00\9f\1f/\1f\99\03\00\00\a0\1fh\1f\99\03\00\00\a1\1fi\1f\99\03\00\00\a2\1fj\1f\99\03\00\00\a3\1fk\1f\99\03\00\00\a4\1fl\1f\99\03\00\00\a5\1fm\1f\99\03\00\00\a6\1fn\1f\99\03\00\00\a7\1fo\1f\99\03\00\00\a8\1fh\1f\99\03\00\00\a9\1fi\1f\99\03\00\00\aa\1fj\1f\99\03\00\00\ab\1fk\1f\99\03\00\00\ac\1fl\1f\99\03\00\00\ad\1fm\1f\99\03\00\00\ae\1fn\1f\99\03\00\00\af\1fo\1f\99\03\00\00\b2\1f\ba\1f\99\03\00\00\b3\1f\91\03\99\03\00\00\b4\1f\86\03\99\03\00\00\b6\1f\91\03B\03\00\00\b7\1f\91\03B\03\99\03\bc\1f\91\03\99\03\00\00\c2\1f\ca\1f\99\03\00\00\c3\1f\97\03\99\03\00\00\c4\1f\89\03\99\03\00\00\c6\1f\97\03B\03\00\00\c7\1f\97\03B\03\99\03\cc\1f\97\03\99\03\00\00\d2\1f\99\03\08\03\00\03\d3\1f\99\03\08\03\01\03\d6\1f\99\03B\03\00\00\d7\1f\99\03\08\03B\03\e2\1f\a5\03\08\03\00\03\e3\1f\a5\03\08\03\01\03\e4\1f\a1\03\13\03\00\00\e6\1f\a5\03B\03\00\00\e7\1f\a5\03\08\03B\03\f2\1f\fa\1f\99\03\00\00\f3\1f\a9\03\99\03\00\00\f4\1f\8f\03\99\03\00\00\f6\1f\a9\03B\03\00\00\f7\1f\a9\03B\03\99\03\fc\1f\a9\03\99\03\00\00\00\fbF\00F\00\00\00\01\fbF\00I\00\00\00\02\fbF\00L\00\00\00\03\fbF\00F\00I\00\04\fbF\00F\00L\00\05\fbS\00T\00\00\00\06\fbS\00T\00\00\00\13\fbD\05F\05\00\00\14\fbD\055\05\00\00\15\fbD\05;\05\00\00\16\fbN\05F\05\00\00\17\fbD\05=\05") + (data $10 (i32.const 2317) "\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\7f") + (data $11 (i32.const 2444) "\07\08\t\n\0b\0c\06\06\06\06\06\06\06\06\06\06\r\06\06\0e\06\06\06\06\06\06\06\06\0f\10\11\12\06\13\06\06\06\06\06\06\06\06\06\06\14\15\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\16\17\06\06\06\18\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\19\06\06\06\06\1a\06\06\06\06\06\06\06\1b\06\06\06\06\06\06\06\06\06\06\06\1c\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1d\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\1e\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06") + (data $11.1 (i32.const 3067) "$++++++++\01\00TVVVVVVVV") + (data $11.2 (i32.const 3106) "\18\00\00\00+++++++\07++[VVVVVVVJVV\051P1P1P1P1P1P1P1P$Py1P1P18P1P1P1P1P1P1P1PN1\02N\r\rN\03N\00$n\00N1&nQN$PN9\14\81\1b\1d\1dS1P1P\r1P1P1P\1bS$P1\02\\{\\{\\{\\{\\{\14y\\{\\{\\-+I\03H\03x\\{\14\00\96\n\01+(\06\06\00*\06**+\07\bb\b5+\1e\00+\07+++\01++++++++++++++++++++++++++++++++\01+++++++++++++++++++++++*+++++++++++++\cdF\cd+\00%+\07\01\06\01UVVVVVUVV\02$\81\81\81\81\81\15\81\81\81\00\00+\00\b2\d1\b2\d1\b2\d1\b2\d1\00\00\cd\cc\01\00\d7\d7\d7\d7\d7\83\81\81\81\81\81\81\81\81\81\81\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\1c\00\00\00\00\001P1P1P1P1P1\02\00\001P1P1P1P1P1P1P1P1PN1P1PN1P1P1P1P1P1P1P1\02\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6\87\a6*++++++++++++\00\00\00TVVVVVVVVVVVV") + (data $11.3 (i32.const 3615) "TVVVVVVVVVVVV\0c\00\0c*+++++++++++++\07*\01") + (data $11.4 (i32.const 3701) "*++++++++++++++++++++++++++VVl\81\15\00++++++++++++++++++++++++++++++++++++++++++\07l\03A++VVVVVVVVVVVVVV,V+++++++++++++++++++++\01") + (data $11.5 (i32.const 3860) "\0cl\00\00\00\00\00\06") + (data $11.6 (i32.const 3906) "\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%Vz\9e&\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06%\06\01++OVV,+\7fVV9++UVV++OVV,+\7fVV\817u[{\\++OVV\02\ac\04\00\009++UVV++OVV,++VV2\13\81W\00o\81~\c9\d7~-\81\81\0e~9\7foW\00\81\81~\15\00~\03++++++++++++\07+$+\97+++++++++*+++++VVVVV\80\81\81\81\819\bb*++++++++++++++++++++++++++++++++++++++++\01\81\81\81\81\81\81\81\81\81\81\81\81\81\81\81\c9\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\ac\d0\r\00N1\02\b4\c1\c1\d7\d7$P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P\d7\d7S\c1G\d4\d7\d7\d7\05++++++++++++\07\01\00\01") + (data $11.7 (i32.const 4357) "N1P1P1P1P1P1P1P\r\00\00\00\00\00$P1P1P1P1P") + (data $11.8 (i32.const 4422) "+++++++++++y\\{\\{O{\\{\\{\\{\\{\\{\\{\\{\\{\\{\\-++y\14\\{\\-y*\\\'\\{\\{\\{\a4\00\n\b4\\{\\{O\03x8+++++++++++++O-++\01") + (data $11.9 (i32.const 4535) "H") + (data $11.10 (i32.const 4545) "*++++++++++++++++++++++++++") + (data $11.11 (i32.const 4605) "++++++++\07\00HVVVVVVVV\02") + (data $11.12 (i32.const 4680) "+++++++++++++UVVVVVVVVVVVV\0e") + (data $11.13 (i32.const 4738) "$+++++++++++\07\00VVVVVVVVVVVV") + (data $11.14 (i32.const 4808) "$++++++++++++++++\07\00\00\00\00VVVVVVVVVVVVVVVVV") + (data $11.15 (i32.const 4905) "*++++++++++VVVVVVVVVV\0e") + (data $11.16 (i32.const 4959) "*++++++++++VVVVVVVVVV\0e") + (data $11.17 (i32.const 5024) "+++++++++++UVVVVVVVVVV\0e") + (data $12 (i32.const 5113) "\08\00\00V\01\00\009") + (data $13 (i32.const 5128) "\01 \00\00\00\e0\ff\ff\00\bf\1d\00\00\e7\02\00\00y\00\00\02$\00\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\01\02\00\00\00\fe\ff\ff\019\ff\ff\00\18\ff\ff\01\87\ff\ff\00\d4\fe\ff\00\c3\00\00\01\d2\00\00\01\ce\00\00\01\cd\00\00\01O\00\00\01\ca\00\00\01\cb\00\00\01\cf\00\00\00a\00\00\01\d3\00\00\01\d1\00\00\00\a3\00\00\01\d5\00\00\00\82\00\00\01\d6\00\00\01\da\00\00\01\d9\00\00\01\db\00\00\008\00\00\03\00\00\00\00\b1\ff\ff\01\9f\ff\ff\01\c8\ff\ff\02($\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\003\ff\ff\00&\ff\ff\01~\ff\ff\01+*\00\01]\ff\ff\01(*\00\00?*\00\01=\ff\ff\01E\00\00\01G\00\00\00\1f*\00\00\1c*\00\00\1e*\00\00.\ff\ff\002\ff\ff\006\ff\ff\005\ff\ff\00O\a5\00\00K\a5\00\001\ff\ff\00(\a5\00\00D\a5\00\00/\ff\ff\00-\ff\ff\00\f7)\00\00A\a5\00\00\fd)\00\00+\ff\ff\00*\ff\ff\00\e7)\00\00C\a5\00\00*\a5\00\00\bb\ff\ff\00\'\ff\ff\00\b9\ff\ff\00%\ff\ff\00\15\a5\00\00\12\a5\00\02$L\00\00\00\00\00\01 \00\00\00\e0\ff\ff\01\01\00\00\00\ff\ff\ff\00T\00\00\01t\00\00\01&\00\00\01%\00\00\01@\00\00\01?\00\00\00\da\ff\ff\00\db\ff\ff\00\e1\ff\ff\00\c0\ff\ff\00\c1\ff\ff\01\08\00\00\00\c2\ff\ff\00\c7\ff\ff\00\d1\ff\ff\00\ca\ff\ff\00\f8\ff\ff\00\aa\ff\ff\00\b0\ff\ff\00\07\00\00\00\8c\ff\ff\01\c4\ff\ff\00\a0\ff\ff\01\f9\ff\ff\02\1ap\00\01\01\00\00\00\ff\ff\ff\01 \00\00\00\e0\ff\ff\01P\00\00\01\0f\00\00\00\f1\ff\ff\00\00\00\00\010\00\00\00\d0\ff\ff\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c0\0b\00\01`\1c\00\00\00\00\00\01\d0\97\00\01\08\00\00\00\f8\ff\ff\02\05\8a\00\00\00\00\00\01@\f4\ff\00\9e\e7\ff\00\c2\89\00\00\db\e7\ff\00\92\e7\ff\00\93\e7\ff\00\9c\e7\ff\00\9d\e7\ff\00\a4\e7\ff\00\00\00\00\008\8a\00\00\04\8a\00\00\e6\0e\00\01\01\00\00\00\ff\ff\ff\00\00\00\00\00\c5\ff\ff\01A\e2\ff\02\1d\8f\00\00\08\00\00\01\f8\ff\ff\00\00\00\00\00V\00\00\01\aa\ff\ff\00J\00\00\00d\00\00\00\80\00\00\00p\00\00\00~\00\00\00\t\00\00\01\b6\ff\ff\01\f7\ff\ff\00\db\e3\ff\01\9c\ff\ff\01\90\ff\ff\01\80\ff\ff\01\82\ff\ff\02\05\ac\00\00\00\00\00\01\10\00\00\00\f0\ff\ff\01\1c\00\00\01\01\00\00\01\a3\e2\ff\01A\df\ff\01\ba\df\ff\00\e4\ff\ff\02\0b\b1\00\01\01\00\00\00\ff\ff\ff\010\00\00\00\d0\ff\ff\00\00\00\00\01\t\d6\ff\01\1a\f1\ff\01\19\d6\ff\00\d5\d5\ff\00\d8\d5\ff\01\e4\d5\ff\01\03\d6\ff\01\e1\d5\ff\01\e2\d5\ff\01\c1\d5\ff\00\00\00\00\00\a0\e3\ff\00\00\00\00\01\01\00\00\00\ff\ff\ff\02\0c\bc\00\00\00\00\00\01\01\00\00\00\ff\ff\ff\01\bcZ\ff\01\a0\03\00\01\fcu\ff\01\d8Z\ff\000\00\00\01\b1Z\ff\01\b5Z\ff\01\bfZ\ff\01\eeZ\ff\01\d6Z\ff\01\ebZ\ff\01\d0\ff\ff\01\bdZ\ff\01\c8u\ff\00\00\00\00\000h\ff\00`\fc\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01(\00\00\00\d8\ff\ff\00\00\00\00\01@\00\00\00\c0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01 \00\00\00\e0\ff\ff\00\00\00\00\01\"\00\00\00\de\ff\ff") + (data $14 (i32.const 6085) "\06\'Qow") + (data $14.1 (i32.const 6100) "|\00\00\7f\00\00\00\00\00\00\00\00\83\8e\92\97\00\aa") + (data $14.2 (i32.const 6128) "\b4\c4") + (data $14.3 (i32.const 6250) "\c6\c9\00\00\00\db") + (data $14.4 (i32.const 6339) "\de\00\00\00\00\e1\00\00\00\00\00\00\00\e4") + (data $14.5 (i32.const 6364) "\e7") + (data $14.6 (i32.const 6450) "\ea") + (data $14.7 (i32.const 6573) "\ed") + (data $15 (i32.const 6596) "0\0c1\rx\0e\7f\0f\80\10\81\11\86\12\89\13\8a\13\8e\14\8f\15\90\16\93\13\94\17\95\18\96\19\97\1a\9a\1b\9c\19\9d\1c\9e\1d\9f\1e\a6\1f\a9\1f\ae\1f\b1 \b2 \b7!\bf\"\c5#\c8#\cb#\dd$\f2#\f6%\f7& -:.=/>0?1@1C2D3E4P5Q6R7S8T9Y:[;\\e?f@hAiBj@kClDoBqErFuG}H\82I\87J\89K\8aL\8bL\8cM\92N\9dO\9ePEW{\1d|\1d}\1d\7fX\86Y\88Z\89Z\8aZ\8c[\8e\\\8f\\\ac]\ad^\ae^\af^\c2_\cc`\cda\cea\cfb\d0c\d1d\d5e\d6f\d7g\f0h\f1i\f2j\f3k\f4l\f5m\f9n\fd-\fe-\ff-PiQiRiSiTiUiViWiXiYiZi[i\\i]i^i_i\82\00\83\00\84\00\85\00\86\00\87\00\88\00\89\00\c0u\cfv\80\89\81\8a\82\8b\85\8c\86\8dp\9dq\9dv\9ew\9ex\9fy\9fz\a0{\a0|\a1}\a1\b3\a2\ba\a3\bb\a3\bc\a4\be\a5\c3\a2\cc\a4\da\a6\db\a6\e5j\ea\a7\eb\a7\ecn\f3\a2\f8\a8\f9\a8\fa\a9\fb\a9\fc\a4&\b0*\b1+\b2N\b3\84\08b\bac\bbd\bce\bdf\bem\bfn\c0o\c1p\c2~\c3\7f\c3}\cf\8d\d0\94\d1\ab\d2\ac\d3\ad\d4\b0\d5\b1\d6\b2\d7\c4\d8\c5\d9\c6\da") + (data $16 (i32.const 7004) "L") + (data $16.1 (i32.const 7016) "\02\00\00\002\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00c\00a\00s\00e\00m\00a\00p\00p\00i\00n\00g\00.\00t\00s") + (data $17 (i32.const 7085) "\01\02\03\04\05\06\07\08\t\n\0b\0c\r\0e\0f\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\"#$%&\'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\7f") + (data $18 (i32.const 7212) "\12\10\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f !\10\10\"\10\10\10#$%&\'()\10*+\10\10\10\10\10\10\10\10\10\10\10,-.\10/\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\100\10\10\101\10234567\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\108\10\109:\10;<=\10\10\10\10\10\10>\10\10?@ABCDEFGHIJKL\10MNO\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10P\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10QR\10\10\10S\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10T\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10UV\10\10\10\10\10\10\10W\10\10\10\10\10XYZ\10\10\10\10\10[\\\10\10\10\10\10\10\10\10\10]\10\10\10\10\10\10\10\10\10\10\10\10") + (data $18.1 (i32.const 7756) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\80@\00\04\00\00\00@\01\00\00\00\00\00\00\00\00\a1\90\01") + (data $18.2 (i32.const 7842) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff0\04\b0") + (data $18.3 (i32.const 7900) "\f8\03") + (data $18.4 (i32.const 7927) "\82\00\00\00\00\00\00\fe\ff\ff\ff\ff\bf\b6\00\00\00\00\00\10\00?\00\ff\17\00\00\00\00\01\f8\ff\ff\00\00\01") + (data $18.5 (i32.const 7974) "\c0\bf\ff=\00\00\00\80\02\00\00\00\ff\ff\ff\07") + (data $18.6 (i32.const 8000) "\c0\ff\01\00\00\00\00\00\00\f8?$\00\00\c0\ff\ff?\00\00\00\00\00\0e") + (data $18.7 (i32.const 8038) "\f8\ff\ff\ff\ff\ff\07\00\00\00\00\00\00\14\fe!\fe\00\0c\00\02\00\02\00\00\00\00\00\00\10\1e \00\00\0c\00\00@\06\00\00\00\00\00\00\10\869\02\00\00\00#\00\06\00\00\00\00\00\00\10\be!\00\00\0c\00\00\fc\02\00\00\00\00\00\00\90\1e `\00\0c\00\00\00\04\00\00\00\00\00\00\00\01 \00\00\00\00\00\00\11\00\00\00\00\00\00\c0\c1=`\00\0c\00\00\00\02\00\00\00\00\00\00\90@0\00\00\0c\00\00\00\03\00\00\00\00\00\00\18\1e \00\00\0c\00\00\00\02\00\00\00\00\00\00\00\00\04\\") + (data $18.8 (i32.const 8210) "\f2\07\c0\7f") + (data $18.9 (i32.const 8226) "\f2\1f@?") + (data $18.10 (i32.const 8239) "\03\00\00\a0\02\00\00\00\00\00\00\fe\7f\df\e0\ff\fe\ff\ff\ff\1f@") + (data $18.11 (i32.const 8273) "\e0\fdf\00\00\00\c3\01\00\1e\00d \00 ") + (data $18.12 (i32.const 8299) "\10") + (data $18.13 (i32.const 8311) "\e0") + (data $18.14 (i32.const 8334) "\1c\00\00\00\1c\00\00\00\0c\00\00\00\0c\00\00\00\00\00\00\00\b0?@\fe\8f \00\00\00\00\00x\00\00\00\00\00\00\08\00\00\00\00\00\00\00`\00\00\00\00\02") + (data $18.15 (i32.const 8400) "\87\01\04\0e") + (data $18.16 (i32.const 8430) "\80\t\00\00\00\00\00\00@\7f\e5\1f\f8\9f\00\00\00\00\80\00\ff\ff\01\00\00\00\00\00\00\00\0f\00\00\00\00\00\d0\17\04\00\00\00\00\f8\0f\00\03\00\00\00<;\00\00\00\00\00\00@\a3\03\00\00\00\00\00\00\f0\cf\00\00\00\00\00\00\00\00?") + (data $18.17 (i32.const 8518) "\f7\ff\fd!\10\03\00\00\00\00\00\f0\ff\ff\ff\ff\ff\ff\ff\07\00\01\00\00\00\f8\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fb") + (data $18.18 (i32.const 8579) "\a0\03\e0\00\e0\00\e0\00`\00\f8\00\03\90|\00\00\00\00\00\00\df\ff\02\80\00\00\ff\1f\00\00\00\00\00\00\ff\ff\ff\ff\01") + (data $18.19 (i32.const 8635) "0") + (data $18.20 (i32.const 8649) "\80\03") + (data $18.21 (i32.const 8665) "\80\00\80") + (data $18.22 (i32.const 8680) "\ff\ff\ff\ff\00\00\00\00\00\80") + (data $18.23 (i32.const 8716) " \00\00\00\00<>\08") + (data $18.24 (i32.const 8735) "~") + (data $18.25 (i32.const 8747) "p\00\00 ") + (data $18.26 (i32.const 8811) "?\00\10") + (data $18.27 (i32.const 8825) "\80\f7\bf\00\00\00\f0") + (data $18.28 (i32.const 8842) "\03\00\ff\ff\ff\ff\03") + (data $18.29 (i32.const 8858) "\01\00\00\07") + (data $18.30 (i32.const 8875) "\03D\08\00\00`\10") + (data $18.31 (i32.const 8900) "0\00\00\00\ff\ff\03\80\00\00\00\00\c0?\00\00\80\ff\03\00\00\00\00\00\07\00\00\00\00\00\c83\00\80\00\00`\00\00\00\00\00\00\00\00~f\00\08\10\00\00\00\00\01\10\00\00\00\00\00\00\9d\c1\02\00\00 \000X") + (data $18.32 (i32.const 8983) "\f8\00\0e") + (data $18.33 (i32.const 9000) " !\00\00\00\00\00@") + (data $18.34 (i32.const 9026) "\fc\ff\03\00\00\00\00\00\00\00\ff\ff\08\00\ff\ff\00\00\00\00$") + (data $18.35 (i32.const 9067) "\80\80@\00\04\00\00\00@\01\00\00\00\00\00\01\00\00\00\00\c0\00\00\00\00\00\00\00\00\08\00\00\0e") + (data $18.36 (i32.const 9131) " ") + (data $18.37 (i32.const 9160) "\01") + (data $18.38 (i32.const 9178) "\c0\07") + (data $18.39 (i32.const 9196) "n\f0\00\00\00\00\00\87") + (data $18.40 (i32.const 9224) "`\00\00\00\00\00\00\00\f0") + (data $18.41 (i32.const 9281) "\18") + (data $18.42 (i32.const 9300) "\c0\ff\01") + (data $18.43 (i32.const 9324) "\02\00\00\00\00\00\00\ff\7f\00\00\00\00\00\00\80\03\00\00\00\00\00x&\00 \00\00\00\00\00\00\07\00\00\00\80\ef\1f\00\00\00\00\00\00\00\08\00\03\00\00\00\00\00\c0\7f\00\9e") + (data $18.44 (i32.const 9393) "\80\d3@") + (data $18.45 (i32.const 9415) "\80\f8\07\00\00\03\00\00\00\00\00\00\18\01\00\00\00\c0\1f\1f") + (data $18.46 (i32.const 9459) "\ff\\\00\00@") + (data $18.47 (i32.const 9474) "\f8\85\r") + (data $18.48 (i32.const 9506) "<\b0\01\00\000") + (data $18.49 (i32.const 9522) "\f8\a7\01") + (data $18.50 (i32.const 9537) "(\bf") + (data $18.51 (i32.const 9551) "\e0\bc\0f") + (data $18.52 (i32.const 9585) "\80\ff\06") + (data $18.53 (i32.const 9619) "X\08") + (data $18.54 (i32.const 9638) "\f0\0c\01\00\00\00\fe\07\00\00\00\00\f8y\80\00~\0e\00\00\00\00\00\fc\7f\03") + (data $18.55 (i32.const 9682) "\7f\bf") + (data $18.56 (i32.const 9694) "\fc\ff\ff\fcm") + (data $18.57 (i32.const 9714) "~\b4\bf") + (data $18.58 (i32.const 9726) "\a3") + (data $18.59 (i32.const 9770) "\18\00\00\00\00\00\00\00\ff\01") + (data $18.60 (i32.const 9834) "\1f\00\00\00\00\00\00\00\7f\00\0f") + (data $18.61 (i32.const 9877) "\80\00\00\00\00\00\00\00\80\ff\ff\00\00\00\00\00\00\00\00\1b") + (data $18.62 (i32.const 9919) "`\0f") + (data $18.63 (i32.const 9944) "\80\03\f8\ff\e7\0f\00\00\00<") + (data $18.64 (i32.const 9972) "\1c") + (data $18.65 (i32.const 9996) "\ff\ff\ff\ff\ff\ff\7f\f8\ff\ff\ff\ff\ff\1f \00\10\00\00\f8\fe\ff") + (data $18.66 (i32.const 10028) "\7f\ff\ff\f9\db\07") + (data $18.67 (i32.const 10066) "\ff?") + (data $18.68 (i32.const 10121) "\f0") + (data $18.69 (i32.const 10150) "\7f") + (data $18.70 (i32.const 10164) "\f0\0f") + (data $18.71 (i32.const 10219) "\f8") + (data $19 (i32.const 10220) "\12\13\14\15\16\17\10\10\10\10\10\10\10\10\10\10\18\10\10\19\10\10\10\10\10\10\10\10\1a\1b\11\1c\1d\1e\10\10\1f\10\10\10\10\10\10\10 !\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\"#\10\10\10$\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10%\10\10\10&\10\10\10\10\'\10\10\10\10\10\10\10(\10\10\10\10\10\10\10\10\10\10\10)\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10*\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10+,-.\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10\10/\10\10\10\10\10\10\100\10\10\10\10\10\10\10\10\10\10\10\10\10\10") + (data $19.1 (i32.const 10764) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\fe\ff\ff\07\fe\ff\ff\07\00\00\00\00\00\04 \04\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\f7\f0\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ef\ff\ff\ff\ff\01\03\00\00\00\1f") + (data $19.2 (i32.const 10900) " \00\00\00\00\00\cf\bc@\d7\ff\ff\fb\ff\ff\ff\ff\ff\ff\ff\ff\ff\bf\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\03\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\fe\ff\ff\ff\7f\00\ff\ff\ff\ff\ff\01") + (data $19.3 (i32.const 11008) "\ff\ff\ff\ff\bf \ff\ff\ff\ff\ff\e7") + (data $19.4 (i32.const 11040) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff??") + (data $19.5 (i32.const 11068) "\ff\01\ff\ff\ff\ff\ff\e7\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\ff\ff??\ff\ff\ff\ff??\ff\aa\ff\ff\ff?\ff\ff\ff\ff\ff\ff\df_\dc\1f\cf\0f\ff\1f\dc\1f") + (data $19.6 (i32.const 11162) "\02\80\00\00\ff\1f") + (data $19.7 (i32.const 11180) "\84\fc/>P\bd\1f\f2\e0C\00\00\ff\ff\ff\ff\18") + (data $19.8 (i32.const 11234) "\c0\ff\ff\ff\ff\ff\ff\03\00\00\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\7f\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\1fx\0c\00\ff\ff\ff\ff\bf ") + (data $19.9 (i32.const 11316) "\ff\ff\ff\ff\ff?\00\00\ff\ff\ff?") + (data $19.10 (i32.const 11344) "\fc\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ffx\ff\ff\ff\ff\ff\ff\fc\07\00\00\00\00`\07\00\00\00\00\00\00\ff\ff\ff\ff\ff\f7\ff\01\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\7f\00\f8") + (data $19.11 (i32.const 11440) "\fe\ff\ff\07\fe\ff\ff\07") + (data $19.12 (i32.const 11468) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff") + (data $19.13 (i32.const 11490) "\ff\ff\ff\ff\0f\ff\ff\ff\ff\0f") + (data $19.14 (i32.const 11516) "\ff\ff\ff\ff\ff\ff\07\00\ff\ff\ff\ff\ff\ff\07") + (data $19.15 (i32.const 11552) "\ff\ff\ff\ff\ff\ff\ff\ff") + (data $19.16 (i32.const 11572) "\ff\ff\ff\ff\ff\ff\ff\ff") + (data $19.17 (i32.const 11596) "\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\df\ff\ff\ff\ff\ff\ff\ff\ff\dfd\de\ff\eb\ef\ff\ff\ff\ff\ff\ff\ff\bf\e7\df\df\ff\ff\ff{_\fc\fd\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff?\ff\ff\ff\fd\ff\ff\f7\ff\ff\ff\f7\ff\ff\df\ff\ff\ff\df\ff\ff\7f\ff\ff\ff\7f\ff\ff\ff\fd\ff\ff\ff\fd\ff\ff\f7\0f\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\0f") + (data $19.18 (i32.const 11762) "\ff\ff\ff\03\ff\ff\ff\03\ff\ff\ff\03") + (data $20 (i32.const 11788) ",") + (data $20.1 (i32.const 11800) "\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\n") + (data $21 (i32.const 11836) ",") + (data $21.1 (i32.const 11848) "\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00A\00Z\00.\00!\00\n") + (data $22 (i32.const 11884) ",") + (data $22.1 (i32.const 11896) "\02\00\00\00\16\00\00\000\009\00_\00A\00Z\00 \00a\00z\00.\00!\00\t") + (data $23 (i32.const 11932) ",") + (data $23.1 (i32.const 11944) "\02\00\00\00\16\00\00\000\009\00_\00a\00z\00 \00a\00z\00.\00!\00\t") + (data $24 (i32.const 11980) "\\") + (data $24.1 (i32.const 11992) "\02\00\00\00J\00\00\00D\00e\00r\00 \00W\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00B\00e\00s\00t\00\e4\00n\00d\00i\00g\00e") + (data $25 (i32.const 12076) "\\") + (data $25.1 (i32.const 12088) "\02\00\00\00J\00\00\00D\00E\00R\00 \00W\00E\00C\00H\00S\00E\00L\00 \00A\00L\00L\00E\00I\00N\00 \00I\00S\00T\00 \00D\00A\00S\00 \00B\00E\00S\00T\00\c4\00N\00D\00I\00G\00E") + (data $26 (i32.const 12172) "\\") + (data $26.1 (i32.const 12184) "\02\00\00\00J\00\00\00d\00e\00r\00 \00w\00e\00c\00h\00s\00e\00l\00 \00a\00l\00l\00e\00i\00n\00 \00i\00s\00t\00 \00d\00a\00s\00 \00b\00e\00s\00t\00\e4\00n\00d\00i\00g\00e") + (data $27 (i32.const 12268) "<") + (data $27.1 (i32.const 12280) "\02\00\00\00$\00\00\00@\00 \00\14 \00\14\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!") + (data $28 (i32.const 12332) "<") + (data $28.1 (i32.const 12344) "\02\00\00\00$\00\00\00@\00 \00\14 \00\14\04 \04#\04\13\04 \00\'\04\15\04\1b\04\1e\04\12\04\15\04\1a\04\10\04!") + (data $29 (i32.const 12396) "<") + (data $29.1 (i32.const 12408) "\02\00\00\00$\00\00\00@\00 \00\14 \004\04@\04C\043\04 \00G\045\04;\04>\042\045\04:\040\04!") + (data $30 (i32.const 12460) "\\") + (data $30.1 (i32.const 12472) "\02\00\00\00D\00\00\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)") + (data $31 (i32.const 12556) "\\") + (data $31.1 (i32.const 12568) "\02\00\00\00D\00\00\00.\" \00E\00\c5\"D\00A\00 \00=\00 \00Q\00,\00 \00N\00 \00\92! \00\1e\",\00 \00\11\" \00F\00(\00I\00)\00 \00=\00 \00\0f\" \00G\00(\00I\00)") + (data $32 (i32.const 12652) "\\") + (data $32.1 (i32.const 12664) "\02\00\00\00D\00\00\00.\" \00e\00\c5\"d\00a\00 \00=\00 \00q\00,\00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)") + (data $33 (i32.const 12748) "\\") + (data $33.1 (i32.const 12760) "\02\00\00\00H\00\00\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n") + (data $34 (i32.const 12844) "\\") + (data $34.1 (i32.const 12856) "\02\00\00\00H\00\00\00\d0\00I\00 \00I\00N\00T\00\8f\01\c8\02N\00\c6\00\a9\01\8f\01N\00\8f\01L\00 \00F\00\8f\01\c8\02N\00\90\01T\00I\00K\00 \00\8f\01S\00O\00\b1\01S\00I\00\c8\02E\00I\00\a9\01N") + (data $35 (i32.const 12940) "\\") + (data $35.1 (i32.const 12952) "\02\00\00\00H\00\00\00\f0\00i\00 \00i\00n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\00i\00k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\00i\00\83\02n") + (data $36 (i32.const 13036) "L") + (data $36.1 (i32.const 13048) "\02\00\00\00.\00\00\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03\cc\03\c8\03\b7\03") + (data $37 (i32.const 13116) "L") + (data $37.1 (i32.const 13128) "\02\00\00\00.\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00\9a\03\8c\03\a8\03\97\03") + (data $38 (i32.const 13196) "L") + (data $38.1 (i32.const 13208) "\02\00\00\000\00\00\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03\ae\03,") + (data $39 (i32.const 13276) "L") + (data $39.1 (i32.const 13288) "\02\00\00\004\00\00\00\a4\03\9f\03\a5\03B\03 \00\a3\03\a0\03\91\03\98\03\99\03\9f\03\a5\03B\03 \00\a4\03\ca\1f\9d\03 \00\a4\03\a1\03\9f\03\9c\03\95\03\a1\03\89\03,") + (data $40 (i32.const 13356) "<") + (data $40.1 (i32.const 13368) "\02\00\00\00,\00\00\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03\af\03\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03") + (data $41 (i32.const 13420) "<") + (data $41.1 (i32.const 13432) "\02\00\00\00,\00\00\00\a3\03\c8\1f \00\93\03\9d\03\a9\03\a1\03\8a\03\96\03\a9\03 \00\08\1f\a0\03\f8\1f \00\a4\03\ca\1f\9d\03 \00L\1f\a8\03\97\03") + (data $42 (i32.const 13484) "L") + (data $42.1 (i32.const 13496) "\02\00\00\002\00\00\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03\af\03\b1\03 \00\bc\03\b5\03\c4\03\c1\03\ac\03\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.") + (data $43 (i32.const 13564) "L") + (data $43.1 (i32.const 13576) "\02\00\00\004\00\00\00\a0\03\9f\03\ea\1f \00\9c\03\c8\1f \00\92\03\8a\03\91\03 \00\9c\03\95\03\a4\03\a1\03\86\03\95\03\99\03 \00\a4\03\ca\1f \00\93\03\97\03B\03.") + (data $44 (i32.const 13644) "L") + (data $44.1 (i32.const 13656) "\02\00\00\00.\00\00\00\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03\cc\03\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03\ad\03\bd\03\b7\03") + (data $45 (i32.const 13724) "L") + (data $45.1 (i32.const 13736) "\02\00\00\00.\00\00\00\91\03\a0\03\bf\1f \00\a4\03\ba\1f \00\9a\03\8c\03\9a\03\9a\03\91\03\9b\03\91\03 \00\92\03\93\03\91\03\9b\03\9c\03\88\03\9d\03\97\03") + (data $46 (i32.const 13804) "<") + (data $46.1 (i32.const 13816) "\02\00\00\00(\00\00\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03\ae\03\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03\ac\03") + (data $47 (i32.const 13868) "<") + (data $47.1 (i32.const 13880) "\02\00\00\00*\00\00\00\a4\03\a9\03B\03\9d\03 \00\fe\1f\95\03\9b\03\9b\03\89\03\9d\03\a9\03\9d\03 \00\a4\03\ba\1f \009\1f\95\03\a1\03\86\03") + (data $48 (i32.const 13932) "L") + (data $48.1 (i32.const 13944) "\02\00\00\002\00\00\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03\ad\03\bd\03\b7\03") + (data $49 (i32.const 14012) "L") + (data $49.1 (i32.const 14024) "\02\00\00\004\00\00\00\9a\03\91\03\da\1f \00\a3\03\ba\1f\9d\03 \00\a0\03\a1\03\a9\03B\03\a4\03\91\03 \00\08\1f\9d\03\94\03\a1\03\95\03\99\03\a9\03\9c\03\88\03\9d\03\97\03") + (data $50 (i32.const 14092) "L") + (data $50.1 (i32.const 14104) "\02\00\00\006\00\00\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03\ac\03!") + (data $51 (i32.const 14172) "L") + (data $51.1 (i32.const 14184) "\02\00\00\00:\00\00\00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00n\1f \00\a7\03\91\03\99\03B\03\a1\03\95\03,\00 \00\bf\1f\95\03\9b\03\95\03\a5\03\98\03\95\03\a1\03\99\03\86\03!") + (data $52 (i32.const 14252) "\9c") + (data $52.1 (i32.const 14264) "\02\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\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 $53 (i32.const 14412) "\9c") + (data $53.1 (i32.const 14424) "\02\00\00\00\80\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\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 $54 (i32.const 14572) "\9c") + (data $54.1 (i32.const 14584) "\02\00\00\00\80\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\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 $55 (i32.const 14732) "\1c") + (data $55.1 (i32.const 14744) "\02\00\00\00\02\00\00\00\df") + (data $56 (i32.const 14764) "\1c") + (data $56.1 (i32.const 14776) "\02\00\00\00\04\00\00\00S\00S") + (data $57 (i32.const 14796) "\1c") + (data $57.1 (i32.const 14808) "\02\00\00\00\02\00\00\000\01") + (data $58 (i32.const 14828) "\1c") + (data $58.1 (i32.const 14840) "\02\00\00\00\04\00\00\00i\00\07\03") + (data $59 (i32.const 14860) "\cc") + (data $59.1 (i32.const 14872) "\02\00\00\00\ae\00\00\00\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10") + (data $60 (i32.const 15068) "\cc") + (data $60.1 (i32.const 15080) "\02\00\00\00\b2\00\00\00\a3\00\a9\00\9c\03\c0\00\c6\00\d6\00\de\00S\00S\00\c9\00\d6\00x\01\13 \14 \18 \1c \1d \1e \" & 0 \"!R\01`\01x\01}\01\ac \00\91\03\92\03\93\03\94\03\a9\03\91\03\92\03\93\03\94\03\a9\03 \00\10\04\11\04\12\04\13\04\14\04\10\04\11\04\12\04\13\04\14\04\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00F\00I\00\fd\ff@$\82 (\1f\02\1e\e4\04\84\1eo,\d0\02N#\d0\051\05\90\1c") + (data $61 (i32.const 15276) "\1c") + (data $61.1 (i32.const 15288) "\02\00\00\00\04\00\00\00s\00s") + (data $62 (i32.const 15308) "\1c") + (data $62.1 (i32.const 15320) "\02\00\00\00\02\00\00\00\01\fb") + (data $63 (i32.const 15340) "\1c") + (data $63.1 (i32.const 15352) "\02\00\00\00\04\00\00\00f\00i") + (data $64 (i32.const 15372) "\cc") + (data $64.1 (i32.const 15384) "\02\00\00\00\b8\00\00\00A\d8\0e\df \00A\d81\df \00A\d8y\df \00C\d8S\dc \00C\d8x\dc \00C\d8\96\dc \00C\d8\cf\dc \00C\d8\d5\dc \00C\d8\15\dd \00C\d8|\dd \00C\d8\7f\dd \00C\d8\0e\de \00C\d8\0f\de \00C\d8w\de \00C\d8\9d\de \00C\d8\a2\de \00C\d8\d7\de \00C\d8\f9\de \00C\d8\fa\de \00C\d8-\df \00C\d8.\df \00C\d8L\df \00C\d8\b4\df \00C\d8\bc\df \00C\d8\ea\df \00D\d8\\\dc \00D\d8o\dc \00D\d8u\dc \00D\d8v\dc \00D\d8{\dc \00D\d8\c1\dc") + (data $65 (i32.const 15580) ",") + (data $65.1 (i32.const 15592) "\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") + (data $66 (i32.const 15628) "\1c") + (data $66.1 (i32.const 15640) "\02\00\00\00\04\00\00\00\00\d8\00\dc") + (data $67 (i32.const 15660) "\1c") + (data $67.1 (i32.const 15672) "\02\00\00\00\02\00\00\00\88\1f") + (data $68 (i32.const 15692) "\1c") + (data $68.1 (i32.const 15704) "\02\00\00\00\02\00\00\00\80\1f") + (data $69 (i32.const 15724) "\1c") + (data $69.1 (i32.const 15736) "\02\00\00\00\02\00\00\00\8f\1f") + (data $70 (i32.const 15756) "\1c") + (data $70.1 (i32.const 15768) "\02\00\00\00\02\00\00\00\87\1f") + (data $71 (i32.const 15788) "\1c") + (data $71.1 (i32.const 15800) "\02\00\00\00\02\00\00\00\fc\1f") + (data $72 (i32.const 15820) "\1c") + (data $72.1 (i32.const 15832) "\02\00\00\00\02\00\00\00\f3\1f") + (data $73 (i32.const 15852) "\1c") + (data $73.1 (i32.const 15864) "\02\00\00\00\02\00\00\00\a3\03") + (data $74 (i32.const 15884) "\1c") + (data $74.1 (i32.const 15896) "\02\00\00\00\02\00\00\00\c3\03") + (data $75 (i32.const 15916) "\1c") + (data $75.1 (i32.const 15928) "\02\00\00\00\04\00\00\00 \00\a3\03") + (data $76 (i32.const 15948) "\1c") + (data $76.1 (i32.const 15960) "\02\00\00\00\04\00\00\00 \00\c3\03") + (data $77 (i32.const 15980) "\1c") + (data $77.1 (i32.const 15992) "\02\00\00\00\04\00\00\00\a3\03 ") + (data $78 (i32.const 16012) "\1c") + (data $78.1 (i32.const 16024) "\02\00\00\00\04\00\00\00\c3\03 ") + (data $79 (i32.const 16044) "\1c") + (data $79.1 (i32.const 16056) "\02\00\00\00\06\00\00\00 \00\a3\03 ") + (data $80 (i32.const 16076) "\1c") + (data $80.1 (i32.const 16088) "\02\00\00\00\06\00\00\00 \00\c3\03 ") + (data $81 (i32.const 16108) "\1c") + (data $81.1 (i32.const 16120) "\02\00\00\00\06\00\00\00a\00\a3\03 ") + (data $82 (i32.const 16140) "\1c") + (data $82.1 (i32.const 16152) "\02\00\00\00\06\00\00\00a\00\c2\03 ") + (data $83 (i32.const 16172) "\1c") + (data $83.1 (i32.const 16184) "\02\00\00\00\06\00\00\00a\00\a3\03\n") + (data $84 (i32.const 16204) "\1c") + (data $84.1 (i32.const 16216) "\02\00\00\00\06\00\00\00a\00\c2\03\n") + (data $85 (i32.const 16236) "\1c") + (data $85.1 (i32.const 16248) "\02\00\00\00\04\00\00\00a\00\a3\03") + (data $86 (i32.const 16268) "\1c") + (data $86.1 (i32.const 16280) "\02\00\00\00\04\00\00\00a\00\c2\03") + (data $87 (i32.const 16300) "\1c") + (data $87.1 (i32.const 16312) "\02\00\00\00\06\00\00\00a\00\a3\03b") + (data $88 (i32.const 16332) "\1c") + (data $88.1 (i32.const 16344) "\02\00\00\00\06\00\00\00a\00\c3\03b") + (data $89 (i32.const 16364) "\1c") + (data $89.1 (i32.const 16376) "\02\00\00\00\06\00\00\00\a3\03\a3\03 ") + (data $90 (i32.const 16396) "\1c") + (data $90.1 (i32.const 16408) "\02\00\00\00\06\00\00\00\c3\03\c2\03 ") + (data $91 (i32.const 16428) "\1c") + (data $91.1 (i32.const 16440) "\02\00\00\00\06\00\00\001\00\a3\03 ") + (data $92 (i32.const 16460) "\1c") + (data $92.1 (i32.const 16472) "\02\00\00\00\06\00\00\001\00\c3\03 ") + (data $93 (i32.const 16492) "\1c") + (data $93.1 (i32.const 16504) "\02\00\00\00\06\00\00\00;\00\a3\03 ") + (data $94 (i32.const 16524) "\1c") + (data $94.1 (i32.const 16536) "\02\00\00\00\06\00\00\00;\00\c3\03 ") + (data $95 (i32.const 16556) "\1c") + (data $95.1 (i32.const 16568) "\02\00\00\00\06\00\00\00\01\03\a3\03 ") + (data $96 (i32.const 16588) "\1c") + (data $96.1 (i32.const 16600) "\02\00\00\00\06\00\00\00\01\03\c3\03 ") + (data $97 (i32.const 16620) "\1c") + (data $97.1 (i32.const 16632) "\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03 ") + (data $98 (i32.const 16652) "\1c") + (data $98.1 (i32.const 16664) "\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03 ") + (data $99 (i32.const 16684) "\1c") + (data $99.1 (i32.const 16696) "\02\00\00\00\06\00\00\00\a3\03\a3\03-") + (data $100 (i32.const 16716) "\1c") + (data $100.1 (i32.const 16728) "\02\00\00\00\06\00\00\00\c3\03\c2\03-") + (data $101 (i32.const 16748) "\1c") + (data $101.1 (i32.const 16760) "\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03-") + (data $102 (i32.const 16780) "\1c") + (data $102.1 (i32.const 16792) "\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03-") + (data $103 (i32.const 16812) "\1c") + (data $103.1 (i32.const 16824) "\02\00\00\00\n\00\00\00\a3\03\01\03\a3\03\01\03*s") + (data $104 (i32.const 16844) "\1c") + (data $104.1 (i32.const 16856) "\02\00\00\00\n\00\00\00\c3\03\01\03\c2\03\01\03*s") + (data $105 (i32.const 16876) "\1c") + (data $105.1 (i32.const 16888) "\02\00\00\00\06\00\00\005\d8\a2\dc\a3\03") + (data $106 (i32.const 16908) "\1c") + (data $106.1 (i32.const 16920) "\02\00\00\00\06\00\00\005\d8\a2\dc\c2\03") + (data $107 (i32.const 16940) "\1c") + (data $107.1 (i32.const 16952) "\02\00\00\00\06\00\00\00A\00.\00\a3\03") + (data $108 (i32.const 16972) "\1c") + (data $108.1 (i32.const 16984) "\02\00\00\00\06\00\00\00a\00.\00\c2\03") + (data $109 (i32.const 17004) "\1c") + (data $109.1 (i32.const 17016) "\02\00\00\00\06\00\00\00A\00\ad\00\a3\03") + (data $110 (i32.const 17036) "\1c") + (data $110.1 (i32.const 17048) "\02\00\00\00\06\00\00\00a\00\ad\00\c2\03") + (data $111 (i32.const 17068) "\1c") + (data $111.1 (i32.const 17080) "\02\00\00\00\08\00\00\00A\004\d8B\de\a3\03") + (data $112 (i32.const 17100) "\1c") + (data $112.1 (i32.const 17112) "\02\00\00\00\08\00\00\00a\004\d8B\de\c2\03") + (data $113 (i32.const 17132) "\1c") + (data $113.1 (i32.const 17144) "\02\00\00\00\04\00\00\00E\03\a3\03") + (data $114 (i32.const 17164) "\1c") + (data $114.1 (i32.const 17176) "\02\00\00\00\04\00\00\00E\03\c3\03") + (data $115 (i32.const 17196) "\1c") + (data $115.1 (i32.const 17208) "\02\00\00\00\06\00\00\00\91\03E\03\a3\03") + (data $116 (i32.const 17228) "\1c") + (data $116.1 (i32.const 17240) "\02\00\00\00\06\00\00\00\b1\03E\03\c2\03") + (data $117 (i32.const 17260) "\1c") + (data $117.1 (i32.const 17272) "\02\00\00\00\06\00\00\00A\00\a3\03B") + (data $118 (i32.const 17292) "\1c") + (data $118.1 (i32.const 17304) "\02\00\00\00\08\00\00\00A\00\a3\035\d8\a2\dc") + (data $119 (i32.const 17324) "\1c") + (data $119.1 (i32.const 17336) "\02\00\00\00\08\00\00\00a\00\c3\035\d8\a2\dc") + (data $120 (i32.const 17356) "\1c") + (data $120.1 (i32.const 17368) "\02\00\00\00\08\00\00\00A\00\a3\03.\00b") + (data $121 (i32.const 17388) "\1c") + (data $121.1 (i32.const 17400) "\02\00\00\00\08\00\00\00a\00\c3\03.\00b") + (data $122 (i32.const 17420) "\1c") + (data $122.1 (i32.const 17432) "\02\00\00\00\08\00\00\00A\00\a3\03\ad\00B") + (data $123 (i32.const 17452) "\1c") + (data $123.1 (i32.const 17464) "\02\00\00\00\08\00\00\00a\00\c3\03\ad\00b") + (data $124 (i32.const 17484) "\1c") + (data $124.1 (i32.const 17496) "\02\00\00\00\n\00\00\00A\00\a3\034\d8B\deB") + (data $125 (i32.const 17516) "\1c") + (data $125.1 (i32.const 17528) "\02\00\00\00\n\00\00\00a\00\c3\034\d8B\deb") + (data $126 (i32.const 17548) "\1c") + (data $126.1 (i32.const 17560) "\02\00\00\00\06\00\00\00A\00\a3\03E\03") + (data $127 (i32.const 17580) "\1c") + (data $127.1 (i32.const 17592) "\02\00\00\00\06\00\00\00a\00\c2\03E\03") + (data $128 (i32.const 17612) "\1c") + (data $128.1 (i32.const 17624) "\02\00\00\00\08\00\00\00A\00\a3\03E\03\91\03") + (data $129 (i32.const 17644) "\1c") + (data $129.1 (i32.const 17656) "\02\00\00\00\08\00\00\00a\00\c3\03E\03\b1\03") + (data $130 (i32.const 17676) "\1c") + (data $130.1 (i32.const 17688) "\02\00\00\00\06\00\00\00A\00\0e\18\a3\03") + (data $131 (i32.const 17708) "\1c") + (data $131.1 (i32.const 17720) "\02\00\00\00\06\00\00\00a\00\0e\18\c2\03") + (data $132 (i32.const 17740) "\1c") + (data $132.1 (i32.const 17752) "\02\00\00\00\08\00\00\00A\00\0e\18\a3\03B") + (data $133 (i32.const 17772) "\1c") + (data $133.1 (i32.const 17784) "\02\00\00\00\08\00\00\00a\00\0e\18\c3\03b") + (data $134 (i32.const 17804) "\1c") + (data $134.1 (i32.const 17816) "\02\00\00\00\06\00\00\00A\00\a3\03\0e\18") + (data $135 (i32.const 17836) "\1c") + (data $135.1 (i32.const 17848) "\02\00\00\00\06\00\00\00a\00\c2\03\0e\18") + (data $136 (i32.const 17868) "\1c") + (data $136.1 (i32.const 17880) "\02\00\00\00\08\00\00\00A\00\a3\03\0e\18B") + (data $137 (i32.const 17900) "\1c") + (data $137.1 (i32.const 17912) "\02\00\00\00\08\00\00\00a\00\c3\03\0e\18b") + (data $138 (i32.const 17932) "\1c") + (data $138.1 (i32.const 17944) "\02\00\00\00\08\00\00\00A\00\0e\18\a3\03\0e\18") + (data $139 (i32.const 17964) "\1c") + (data $139.1 (i32.const 17976) "\02\00\00\00\08\00\00\00a\00\0e\18\c2\03\0e\18") + (data $140 (i32.const 17996) "\1c") + (data $140.1 (i32.const 18008) "\02\00\00\00\n\00\00\00A\00\0e\18\a3\03\0e\18B") + (data $141 (i32.const 18028) "\1c") + (data $141.1 (i32.const 18040) "\02\00\00\00\n\00\00\00a\00\0e\18\c3\03\0e\18b") + (data $142 (i32.const 18060) "\1c") + (data $142.1 (i32.const 18072) "\02\00\00\00\02\00\00\00\00\fb") + (data $143 (i32.const 18092) "\1c") + (data $143.1 (i32.const 18104) "\02\00\00\00\04\00\00\00F\00F") + (data $144 (i32.const 18124) "\1c") + (data $144.1 (i32.const 18136) "\02\00\00\00\04\00\00\00F\00I") + (data $145 (i32.const 18156) "\1c") + (data $145.1 (i32.const 18168) "\02\00\00\00\02\00\00\00\02\fb") + (data $146 (i32.const 18188) "\1c") + (data $146.1 (i32.const 18200) "\02\00\00\00\04\00\00\00F\00L") + (data $147 (i32.const 18220) "\1c") + (data $147.1 (i32.const 18232) "\02\00\00\00\02\00\00\00\03\fb") + (data $148 (i32.const 18252) "\1c") + (data $148.1 (i32.const 18264) "\02\00\00\00\06\00\00\00F\00F\00I") + (data $149 (i32.const 18284) "\1c") + (data $149.1 (i32.const 18296) "\02\00\00\00\02\00\00\00\04\fb") + (data $150 (i32.const 18316) "\1c") + (data $150.1 (i32.const 18328) "\02\00\00\00\06\00\00\00F\00F\00L") + (data $151 (i32.const 18348) "\1c") + (data $151.1 (i32.const 18360) "\02\00\00\00\02\00\00\00\05\fb") + (data $152 (i32.const 18380) "\1c") + (data $152.1 (i32.const 18392) "\02\00\00\00\04\00\00\00S\00T") + (data $153 (i32.const 18412) "\1c") + (data $153.1 (i32.const 18424) "\02\00\00\00\02\00\00\00\06\fb") + (data $154 (i32.const 18444) "\1c") + (data $154.1 (i32.const 18456) "\02\00\00\00\02\00\00\00\f0\01") + (data $155 (i32.const 18476) "\1c") + (data $155.1 (i32.const 18488) "\02\00\00\00\04\00\00\00J\00\0c\03") + (data $156 (i32.const 18508) "\1c") + (data $156.1 (i32.const 18520) "\02\00\00\00\02\00\00\00\96\1e") + (data $157 (i32.const 18540) "\1c") + (data $157.1 (i32.const 18552) "\02\00\00\00\04\00\00\00H\001\03") + (data $158 (i32.const 18572) "\1c") + (data $158.1 (i32.const 18584) "\02\00\00\00\02\00\00\00\97\1e") + (data $159 (i32.const 18604) "\1c") + (data $159.1 (i32.const 18616) "\02\00\00\00\04\00\00\00T\00\08\03") + (data $160 (i32.const 18636) "\1c") + (data $160.1 (i32.const 18648) "\02\00\00\00\02\00\00\00\98\1e") + (data $161 (i32.const 18668) "\1c") + (data $161.1 (i32.const 18680) "\02\00\00\00\04\00\00\00W\00\n\03") + (data $162 (i32.const 18700) "\1c") + (data $162.1 (i32.const 18712) "\02\00\00\00\02\00\00\00\99\1e") + (data $163 (i32.const 18732) "\1c") + (data $163.1 (i32.const 18744) "\02\00\00\00\04\00\00\00Y\00\n\03") + (data $164 (i32.const 18764) "\1c") + (data $164.1 (i32.const 18776) "\02\00\00\00\02\00\00\00\9a\1e") + (data $165 (i32.const 18796) "\1c") + (data $165.1 (i32.const 18808) "\02\00\00\00\04\00\00\00A\00\be\02") + (data $166 (i32.const 18828) "\\") + (data $166.1 (i32.const 18840) "\02\00\00\00@\00\00\00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e") + (data $167 (i32.const 18924) "<") + (data $167.1 (i32.const 18936) "\02\00\00\00\"\00\00\00 \00o\00r\00i\00g\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 ") + (data $168 (i32.const 18988) "|") + (data $168.1 (i32.const 19000) "\02\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 $169 (i32.const 19116) "<") + (data $169.1 (i32.const 19128) "\02\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 $170 (i32.const 19180) "\1c") + (data $170.1 (i32.const 19192) "\02\00\00\00\02\00\00\000") + (data $171 (i32.const 19212) "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 $172 (i32.const 19612) "\1c\04") + (data $172.1 (i32.const 19624) "\02\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 $173 (i32.const 20668) "\\") + (data $173.1 (i32.const 20680) "\02\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 $174 (i32.const 20764) "<") + (data $174.1 (i32.const 20776) "\02\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00L\00o\00w\00e\00r\00C\00o\00d\00e\00 \00=\00 ") + (data $175 (i32.const 20828) "\\") + (data $175.1 (i32.const 20840) "\02\00\00\00@\00\00\00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e") + (data $176 (i32.const 20924) "<") + (data $176.1 (i32.const 20936) "\02\00\00\00\"\00\00\00 \00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 ") + (data $177 (i32.const 20988) "<") + (data $177.1 (i32.const 21000) "\02\00\00\00&\00\00\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00=\00 ") + (data $178 (i32.const 21056) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\a4") (export "memory" (memory $0)) (start $~start) - (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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 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 21240 - i32.lt_s - if - i32.const 54032 - i32.const 54080 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $1 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $1 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3216 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 1088 call $~lib/rt/itcms/__visit - i32.const 1808 + i32.const 19632 call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 20688 call $~lib/rt/itcms/__visit - i32.const 3424 + i32.const 1488 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -723,7 +514,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -771,7 +562,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -780,7 +571,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$148 + block $__inlined_func$~lib/rt/itcms/Object#unlink$144 local.get $1 i32.load offset=4 i32.const -4 @@ -792,19 +583,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 54008 + i32.const 53848 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$148 + br $__inlined_func$~lib/rt/itcms/Object#unlink$144 end local.get $1 i32.load offset=8 @@ -812,7 +603,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -841,13 +632,13 @@ i32.const 1 else local.get $0 - i32.const 21216 + i32.const 21056 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1280 + i32.const 1344 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -855,7 +646,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 21220 + i32.const 21060 i32.add i32.load i32.const 32 @@ -907,7 +698,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -921,7 +712,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -967,7 +758,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1050,7 +841,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1064,7 +855,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1125,7 +916,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1158,7 +949,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1173,7 +964,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1224,7 +1015,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1296,7 +1087,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1321,7 +1112,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1348,7 +1139,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1420,10 +1211,10 @@ if unreachable end - i32.const 54016 + i32.const 53856 i32.const 0 i32.store - i32.const 55584 + i32.const 55424 i32.const 0 i32.store loop $for-loop|0 @@ -1434,7 +1225,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 54016 + i32.const 53856 i32.add i32.const 0 i32.store offset=4 @@ -1452,7 +1243,7 @@ i32.add i32.const 2 i32.shl - i32.const 54016 + i32.const 53856 i32.add i32.const 0 i32.store offset=96 @@ -1470,14 +1261,14 @@ br $for-loop|0 end end - i32.const 54016 - i32.const 55588 + i32.const 53856 + i32.const 55428 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 54016 + i32.const 53856 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1562,7 +1353,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 54008 + i32.const 53848 i32.lt_u if local.get $0 @@ -1651,14 +1442,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1152 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 54008 + i32.const 53848 i32.lt_u if local.get $0 @@ -1681,7 +1472,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 54008 + i32.const 53848 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1710,7 +1501,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1794,7 +1585,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1846,7 +1637,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1878,8 +1669,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3024 - i32.const 3088 + i32.const 1088 + i32.const 1152 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1889,7 +1680,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$70 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1906,7 +1697,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$70 end local.get $2 i32.const 0 @@ -1939,8 +1730,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3024 - i32.const 3360 + i32.const 1088 + i32.const 1424 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2042,7 +1833,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2057,7 +1848,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2076,7 +1867,7 @@ i32.and if i32.const 0 - i32.const 3360 + i32.const 1424 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2192,16 +1983,16 @@ i32.const 8 i32.shr_u local.tee $2 - i32.const 8020 + i32.const 6084 i32.add i32.load8_u local.get $2 - i32.const 4380 + i32.const 2444 i32.add i32.load8_u i32.const 86 i32.mul - i32.const 4380 + i32.const 2444 i32.add local.get $0 i32.const 255 @@ -2216,7 +2007,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 7048 + i32.const 5112 i32.add i32.load i32.mul @@ -2227,7 +2018,7 @@ i32.add i32.const 2 i32.shl - i32.const 7060 + i32.const 5124 i32.add i32.load local.tee $2 @@ -2262,7 +2053,7 @@ i32.add i32.const 1 i32.shl - i32.const 8532 + i32.const 6596 i32.add local.tee $5 i32.load8_u @@ -2274,7 +2065,7 @@ i32.load8_u offset=1 i32.const 2 i32.shl - i32.const 7060 + i32.const 5124 i32.add i32.load local.tee $2 @@ -2368,208 +2159,147 @@ memory.copy local.get $2 ) - (func $~start - call $start:std/string-casemapping - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 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 21240 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + 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 19212 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 19212 + 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 19212 + i32.add + i32.load i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - 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 21240 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if local.get $0 - local.tee $2 + 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 19212 + i32.add + i32.load i32.store + else local.get $0 - i32.const 20 + local.get $2 + i32.const 1 i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.shl + i32.add local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$153 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#concat$153 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 48 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.store16 end - i32.const 54032 - i32.const 54080 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + ) + (func $~start + call $start:std/string-casemapping ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 21240 + i32.const 21080 i32.lt_s if - i32.const 54032 - i32.const 54080 + i32.const 53872 + i32.const 53920 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String#toUpperCase (param $0 i32) (result i32) (local $1 i32) @@ -2587,11 +2317,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 21240 + i32.const 21080 i32.lt_s if - i32.const 54032 - i32.const 54080 + i32.const 53872 + i32.const 53920 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2628,9 +2358,9 @@ local.tee $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 3424 + i32.const 1488 i32.store - i32.const 3420 + i32.const 1484 i32.load i32.const 1 i32.shr_u @@ -2753,7 +2483,7 @@ local.tee $4 i32.const 1 i32.shl - i32.const 3424 + i32.const 1488 i32.add i32.load16_u local.get $2 @@ -2792,7 +2522,7 @@ local.get $1 i32.const 1 i32.shl - i32.const 3424 + i32.const 1488 i32.add local.tee $1 i32.load16_u offset=6 @@ -2872,7 +2602,7 @@ i32.shl i32.add local.get $2 - i32.const 4252 + i32.const 2316 i32.add i32.load8_u i32.store16 @@ -2908,11 +2638,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 21240 + i32.const 21080 i32.lt_s if - i32.const 54032 - i32.const 54080 + i32.const 53872 + i32.const 53920 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3011,7 +2741,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$84 + block $__inlined_func$~lib/util/string/compareImpl$81 loop $while-continue|1 local.get $0 local.tee $3 @@ -3031,7 +2761,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$84 + br_if $__inlined_func$~lib/util/string/compareImpl$81 local.get $2 i32.const 2 i32.add @@ -3076,11 +2806,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 21240 + i32.const 21080 i32.lt_s if - i32.const 54032 - i32.const 54080 + i32.const 53872 + i32.const 53920 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3312,12 +3042,12 @@ local.get $4 i32.const 8 i32.shr_u - i32.const 9148 + i32.const 7212 i32.add i32.load8_u i32.const 5 i32.shl - i32.const 9148 + i32.const 7212 i32.add local.get $4 i32.const 255 @@ -3345,12 +3075,12 @@ local.get $4 i32.const 8 i32.shr_u - i32.const 12156 + i32.const 10220 i32.add i32.load8_u i32.const 5 i32.shl - i32.const 12156 + i32.const 10220 i32.add local.get $4 i32.const 255 @@ -3452,12 +3182,12 @@ local.get $1 i32.const 8 i32.shr_u - i32.const 9148 + i32.const 7212 i32.add i32.load8_u i32.const 5 i32.shl - i32.const 9148 + i32.const 7212 i32.add local.get $1 i32.const 255 @@ -3484,12 +3214,12 @@ local.get $1 i32.const 8 i32.shr_u - i32.const 12156 + i32.const 10220 i32.add i32.load8_u i32.const 5 i32.shl - i32.const 12156 + i32.const 10220 i32.add local.get $1 i32.const 255 @@ -3600,7 +3330,7 @@ i32.shl i32.add local.get $4 - i32.const 9020 + i32.const 7084 i32.add i32.load8_u i32.store16 @@ -3633,11 +3363,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 21240 + i32.const 21080 i32.lt_s if - i32.const 54032 - i32.const 54080 + i32.const 53872 + i32.const 53920 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3713,6 +3443,109 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 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 21080 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 21080 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$149 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1056 + local.set $0 + br $__inlined_func$~lib/string/String#concat$149 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 53872 + i32.const 53920 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $start:std/string-casemapping (local $0 i64) (local $1 i64) @@ -3727,11 +3560,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 21240 + i32.const 21080 i32.lt_s if - i32.const 54032 - i32.const 54080 + i32.const 53872 + i32.const 53920 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3744,34 +3577,34 @@ memory.size i32.const 16 i32.shl - i32.const 54008 + i32.const 53848 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3136 + i32.const 1200 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1236 + i32.const 1232 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1240 + i32.const 1232 i32.store - i32.const 3168 + i32.const 1232 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1380 + i32.const 1376 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1384 + i32.const 1376 i32.store - i32.const 3312 + i32.const 1376 global.set $~lib/rt/itcms/fromSpace i32.const 1056 call $~lib/string/String#toUpperCase @@ -3785,7 +3618,7 @@ i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 8 i32.const 1 call $~lib/builtins/abort @@ -3803,427 +3636,427 @@ i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 9 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13744 + i32.const 11808 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 13792 + i32.const 11856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 10 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13840 + i32.const 11904 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 13888 + i32.const 11952 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 11 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13936 + i32.const 12000 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 14032 + i32.const 12096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 12 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14032 + i32.const 12096 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 14128 + i32.const 12192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 13 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14224 + i32.const 12288 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 14288 + i32.const 12352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14288 + i32.const 12352 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 14352 + i32.const 12416 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 15 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14416 + i32.const 12480 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 14512 + i32.const 12576 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14512 + i32.const 12576 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 14608 + i32.const 12672 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14704 + i32.const 12768 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 14800 + i32.const 12864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 18 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14800 + i32.const 12864 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 14896 + i32.const 12960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 19 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14992 + i32.const 13056 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 15072 + i32.const 13136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 20 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15152 + i32.const 13216 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 15232 + i32.const 13296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15312 + i32.const 13376 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 15376 + i32.const 13440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15440 + i32.const 13504 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 15520 + i32.const 13584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 23 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15600 + i32.const 13664 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 15680 + i32.const 13744 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 24 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15760 + i32.const 13824 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 15824 + i32.const 13888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 25 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15888 + i32.const 13952 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 15968 + i32.const 14032 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 26 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16048 + i32.const 14112 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 16128 + i32.const 14192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 27 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16208 + i32.const 14272 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 16368 + i32.const 14432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 28 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16208 + i32.const 14272 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 16528 + i32.const 14592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 32 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16688 + i32.const 14752 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 16720 + i32.const 14784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 36 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16752 + i32.const 14816 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 16784 + i32.const 14848 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 37 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16816 + i32.const 14880 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 17024 + i32.const 15088 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 38 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16688 + i32.const 14752 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer @@ -4236,18 +4069,18 @@ local.get $5 i32.store local.get $5 - i32.const 17232 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 42 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17264 + i32.const 15328 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer @@ -4260,18 +4093,18 @@ local.get $5 i32.store local.get $5 - i32.const 17296 + i32.const 15360 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 43 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17328 + i32.const 15392 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer @@ -4284,12 +4117,12 @@ local.get $5 i32.store local.get $5 - i32.const 17328 + i32.const 15392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -4308,12 +4141,12 @@ local.get $5 i32.store local.get $5 - i32.const 17584 + i32.const 15648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 50 i32.const 1 call $~lib/builtins/abort @@ -4332,930 +4165,930 @@ local.get $5 i32.store local.get $5 - i32.const 17584 + i32.const 15648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 51 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17616 + i32.const 15680 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 17648 + i32.const 15712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 54 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17680 + i32.const 15744 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 17712 + i32.const 15776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 55 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17744 + i32.const 15808 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 17776 + i32.const 15840 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 56 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17808 + i32.const 15872 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 17840 + i32.const 15904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 59 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17872 + i32.const 15936 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 17904 + i32.const 15968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 60 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17936 + i32.const 16000 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 17968 + i32.const 16032 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 61 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18000 + i32.const 16064 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18032 + i32.const 16096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 62 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18064 + i32.const 16128 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18096 + i32.const 16160 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 63 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18128 + i32.const 16192 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18160 + i32.const 16224 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 64 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18192 + i32.const 16256 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18224 + i32.const 16288 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 65 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18256 + i32.const 16320 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18288 + i32.const 16352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 66 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18320 + i32.const 16384 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18352 + i32.const 16416 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 67 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18384 + i32.const 16448 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18416 + i32.const 16480 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 68 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18448 + i32.const 16512 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18480 + i32.const 16544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 69 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18512 + i32.const 16576 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18544 + i32.const 16608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 70 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18576 + i32.const 16640 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18608 + i32.const 16672 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 72 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18640 + i32.const 16704 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18672 + i32.const 16736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 73 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18704 + i32.const 16768 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18736 + i32.const 16800 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 74 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18768 + i32.const 16832 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18800 + i32.const 16864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 75 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18832 + i32.const 16896 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18864 + i32.const 16928 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 78 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18896 + i32.const 16960 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18928 + i32.const 16992 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 79 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 18960 + i32.const 17024 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18992 + i32.const 17056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 80 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19024 + i32.const 17088 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19056 + i32.const 17120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 81 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19088 + i32.const 17152 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19120 + i32.const 17184 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 82 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19152 + i32.const 17216 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19184 + i32.const 17248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 83 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19216 + i32.const 17280 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 18288 + i32.const 16352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 84 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19248 + i32.const 17312 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19280 + i32.const 17344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 85 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19312 + i32.const 17376 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19344 + i32.const 17408 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19376 + i32.const 17440 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19408 + i32.const 17472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 87 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19440 + i32.const 17504 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19472 + i32.const 17536 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 88 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19504 + i32.const 17568 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19536 + i32.const 17600 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 89 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19568 + i32.const 17632 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19600 + i32.const 17664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 90 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19632 + i32.const 17696 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19664 + i32.const 17728 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 91 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19696 + i32.const 17760 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19728 + i32.const 17792 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 92 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19760 + i32.const 17824 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19792 + i32.const 17856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 93 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19824 + i32.const 17888 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19856 + i32.const 17920 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19888 + i32.const 17952 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19920 + i32.const 17984 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 95 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 19952 + i32.const 18016 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 19984 + i32.const 18048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 96 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20016 + i32.const 18080 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20048 + i32.const 18112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 99 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17264 + i32.const 15328 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20080 + i32.const 18144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 100 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20112 + i32.const 18176 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20144 + i32.const 18208 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 101 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20176 + i32.const 18240 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20208 + i32.const 18272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 102 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20240 + i32.const 18304 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20272 + i32.const 18336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 103 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20304 + i32.const 18368 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20336 + i32.const 18400 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 104 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20368 + i32.const 18432 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20336 + i32.const 18400 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 105 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20400 + i32.const 18464 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20432 + i32.const 18496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 106 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20464 + i32.const 18528 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20496 + i32.const 18560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 107 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20528 + i32.const 18592 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20560 + i32.const 18624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 108 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20592 + i32.const 18656 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20624 + i32.const 18688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 109 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20656 + i32.const 18720 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20688 + i32.const 18752 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 110 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 20720 + i32.const 18784 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - i32.const 20752 + i32.const 18816 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 8960 + i32.const 7024 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -5455,7 +5288,7 @@ local.get $3 i64.ne if - i32.const 20784 + i32.const 18848 i32.const 1 local.get $4 f64.convert_i32_s @@ -5470,7 +5303,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 - i32.const 20880 + i32.const 18944 local.get $5 call $~lib/string/String.__concat local.set $5 @@ -5491,7 +5324,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 - i32.const 20944 + i32.const 20784 local.get $5 call $~lib/string/String.__concat local.set $5 @@ -5511,7 +5344,7 @@ local.get $2 i64.ne if - i32.const 21008 + i32.const 20848 i32.const 1 local.get $4 f64.convert_i32_s @@ -5526,7 +5359,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 - i32.const 21104 + i32.const 20944 local.get $5 call $~lib/string/String.__concat local.set $5 @@ -5547,7 +5380,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 - i32.const 21168 + i32.const 21008 local.get $5 call $~lib/string/String.__concat local.set $5 @@ -5583,11 +5416,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 21240 + i32.const 21080 i32.lt_s if - i32.const 54032 - i32.const 54080 + i32.const 53872 + i32.const 53920 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5614,8 +5447,8 @@ i32.gt_u if i32.const 0 - i32.const 17536 - i32.const 39 + i32.const 15600 + i32.const 40 i32.const 7 call $~lib/builtins/abort unreachable @@ -5661,11 +5494,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 21240 + i32.const 21080 i32.lt_s if - i32.const 54032 - i32.const 54080 + i32.const 53872 + i32.const 53920 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5681,7 +5514,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1376 + i32.const 19200 return end i64.const 0 @@ -5859,7 +5692,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 1388 + i32.const 19212 i32.add i64.load32_u local.get $6 @@ -5867,7 +5700,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 1388 + i32.const 19212 i32.add i64.load32_u i64.const 32 @@ -5890,7 +5723,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 1388 + i32.const 19212 i32.add i64.load32_u local.get $4 @@ -5898,7 +5731,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 1388 + i32.const 19212 i32.add i64.load32_u i64.const 32 diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 35a0edfa26..777a26d25f 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -2,21 +2,21 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $8 (func (param i32 i32 i64) (result i32))) - (type $9 (func (result i32))) - (type $10 (func (param i32 i64 i32))) - (type $11 (func (param i64 i32) (result i32))) - (type $12 (func (param i32 i64 i32 i32))) - (type $13 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/string-encoding/str (mut i32) (i32.const 32)) (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -30,48 +30,38 @@ (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/rt/__rtti_base i32 (i32.const 23696)) - (global $~lib/memory/__data_end i32 (i32.const 23716)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 56484)) - (global $~lib/memory/__heap_base i32 (i32.const 56484)) + (global $~lib/rt/__rtti_base i32 (i32.const 21760)) + (global $~lib/memory/__data_end i32 (i32.const 21780)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 54548)) + (global $~lib/memory/__heap_base i32 (i32.const 54548)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00\01\d87\dch\00i\00R\d8b\df") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00e\00n\00c\00o\00d\00i\00n\00g\00.\00t\00s\00") - (data $21 (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\01\d87\dc\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00h\00i\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00R\d8b\df\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2604) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $26 (i32.const 2668) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data $27 (i32.const 2716) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\008\00\00\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00\00\00\00\00\00\00") - (data $28 (i32.const 2796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\004\d8\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\fd\ff\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\1e\dd\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2892) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\002\003\00\00\004\005\006\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") - (data $33 (i32.const 2972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00h\00i\00R\d8b\df\00\00\00\00") - (data $34 (i32.const 3004) "<3\00\00\00\00\00\00\00\00\00\00\02\00\00\00*3\00\00M\00a\00t\00h\00e\00m\00a\00t\00i\00c\00s\00 \00a\00n\00d\00 \00S\00c\00i\00e\00n\00c\00e\00s\00:\00\n\00\n\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00,\00 \00\00\"x\00\08\"\1d!:\00 \00\08#x\00\t# \00=\00 \00\12\"\n#\12\"x\00\0b#,\00 \00\b1\03 \00\'\" \00\ac\00\b2\03 \00=\00 \00\ac\00(\00\ac\00\b1\03 \00(\" \00\b2\03)\00,\00\n\00\n\00\15! \00\86\" \00\15!\80 \00\82\" \00$! \00\82\" \00\1a! \00\82\" \00\1d! \00\82\" \00\02!,\00 \00\a5\" \00<\00 \00a\00 \00`\" \00b\00 \00a\" \00c\00 \00d\" \00d\00 \00j\" \00\a4\" \00\d2! \00(\00A\00 \00\d4! \00B\00)\00,\00\n\00\n\002\00H\00\82 \00+\00 \00O\00\82 \00\cc! \002\00H\00\82 O\00,\00 \00R\00 \00=\00 \004\00.\007\00 \00k\00\a9\03,\00 \00\00# \002\000\000\00 \00m\00m\00\n\00\n\00L\00i\00n\00g\00u\00i\00s\00t\00i\00c\00s\00 \00a\00n\00d\00 \00d\00i\00c\00t\00i\00o\00n\00a\00r\00i\00e\00s\00:\00\n\00\n\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n\00\n\00Y\00 \00[\00\c8\02\8f\02p\00s\00i\00l\00T\02n\00]\00,\00 \00Y\00e\00n\00 \00[\00j\00[\02n\00]\00,\00 \00Y\00o\00g\00a\00 \00[\00\c8\02j\00o\00\d0\02g\00Q\02]\00\n\00\n\00A\00P\00L\00:\00\n\00\n\00(\00(\00V\00s#V\00)\00=\00s#t#V\00)\00/\00V\00\90!,\00V\00 \00 \00 \00 \007#\90!s#\92!t#\06\"\07\"\83\"> N#U#\08#\n\00\n\00N\00i\00c\00e\00r\00 \00t\00y\00p\00o\00g\00r\00a\00p\00h\00y\00 \00i\00n\00 \00p\00l\00a\00i\00n\00 \00t\00e\00x\00t\00 \00f\00i\00l\00e\00s\00:\00\n\00\n\00T%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%W%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\18 s\00i\00n\00g\00l\00e\00\19 \00a\00n\00d\00 \00\1c d\00o\00u\00b\00l\00e\00\1d \00q\00u\00o\00t\00e\00s\00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00C\00u\00r\00l\00y\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00s\00:\00 \00\1c W\00e\00\19 v\00e\00 \00b\00e\00e\00n\00 \00h\00e\00r\00e\00\1d \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00L\00a\00t\00i\00n\00-\001\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00 \00a\00n\00d\00 \00a\00c\00c\00e\00n\00t\00s\00:\00 \00\'\00\b4\00`\00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\1a d\00e\00u\00t\00s\00c\00h\00e\00\18 \00\1e A\00n\00f\00\fc\00h\00r\00u\00n\00g\00s\00z\00e\00i\00c\00h\00e\00n\00\1c \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00 ,\00 \00! ,\00 \000 ,\00 \00\" ,\00 \003\00\13 4\00,\00 \00\14 ,\00 \00\12\"5\00/\00+\005\00,\00 \00\"!,\00 \00& \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00A\00S\00C\00I\00I\00 \00s\00a\00f\00e\00t\00y\00 \00t\00e\00s\00t\00:\00 \001\00l\00I\00|\00,\00 \000\00O\00D\00,\00 \008\00B\00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00m%\00%\00%\00%\00%\00%\00%\00%\00%\00%n% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00t\00h\00e\00 \00e\00u\00r\00o\00 \00s\00y\00m\00b\00o\00l\00:\00 \00\02% \001\004\00.\009\005\00 \00\ac \00\02% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00p%\00%\00%\00%\00%\00%\00%\00%\00%\00%o% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Z%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%]%\n\00\n\00G\00r\00e\00e\00k\00 \00(\00i\00n\00 \00P\00o\00l\00y\00t\00o\00n\00i\00c\00)\00:\00\n\00\n\00T\00h\00e\00 \00G\00r\00e\00e\00k\00 \00a\00n\00t\00h\00e\00m\00:\00\n\00\n\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03y\1f\c8\03\b7\03\n\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03u\1f,\00\n\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03\n\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03w\1f\b1\03 \00\bc\03\b5\03\c4\03\c1\03q\1f\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.\00\n\00\n\00\bf\1f\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03y\1f\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03s\1f\bd\03\b7\03\n\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03u\1f\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03q\1f\n\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03s\1f\bd\03\b7\03\n\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03q\1f!\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00s\00p\00e\00e\00c\00h\00 \00o\00f\00 \00D\00e\00m\00o\00s\00t\00h\00e\00n\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \004\00t\00h\00 \00c\00e\00n\00t\00u\00r\00y\00 \00B\00C\00:\00\n\00\n\00\9f\03P\1f\c7\03v\1f \00\c4\03\b1\03P\1f\c4\03p\1f \00\c0\03\b1\03\c1\03w\1f\c3\03\c4\03\b1\03\c4\03\b1\03w\1f \00\bc\03\bf\03\b9\03 \00\b3\03\b9\03\b3\03\bd\03}\1f\c3\03\ba\03\b5\03\b9\03\bd\03,\00 \00f\1f \00\04\1f\bd\03\b4\03\c1\03\b5\03\c2\03 \00\bf\1f\91\03\b8\03\b7\03\bd\03\b1\03\d6\1f\bf\03\b9\03,\00\n\00E\1f\c4\03\b1\03\bd\03 \00\c4\03\bf\1f \00\b5\030\1f\c2\03 \00\c4\03p\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\b1\03 \00\00\1f\c0\03\bf\03\b2\03\bb\03s\1f\c8\03\c9\03 \00\ba\03\b1\03v\1f \00E\1f\c4\03\b1\03\bd\03 \00\c0\03\c1\03x\1f\c2\03 \00\c4\03\bf\03z\1f\c2\03\n\00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\bf\03S\1f\c2\03 \00\00\1f\ba\03\bf\03{\1f\c9\03\87\03 \00\c4\03\bf\03z\1f\c2\03 \00\bc\03r\1f\bd\03 \00\b3\03p\1f\c1\03 \00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03 \00A\1f\c1\03\f6\1f \00\b3\03\b9\03\b3\03\bd\03\bf\03\bc\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\c4\03p\1f \00\b4\03r\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\bf\1f\n\00\b5\030\1f\c2\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\c0\03\c1\03\bf\03u\1f\ba\03\bf\03\bd\03\c4\03\b1\03,\00 \00 \00e\1f\c3\03\b8\03\bf\1f \00E\1f\c0\03\c9\03\c2\03 \00\bc\03t\1f \00\c0\03\b5\03\b9\03\c3\03y\1f\bc\03\b5\03\b8\03\bf\1f \00\b1\03P\1f\c4\03\bf\03v\1f\n\00\c0\03\c1\03y\1f\c4\03\b5\03\c1\03\bf\03\bd\03 \00\ba\03\b1\03\ba\03\f6\1f\c2\03 \00\c3\03\ba\03s\1f\c8\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\b4\03s\1f\bf\03\bd\03.\00 \00\bf\03P\1f\b4\03s\1f\bd\03 \00\bf\03V\1f\bd\03 \00\04\1f\bb\03\bb\03\bf\03 \00\bc\03\bf\03\b9\03 \00\b4\03\bf\03\ba\03\bf\03\e6\1f\c3\03\b9\03\bd\03\n\00\bf\031\1f \00\c4\03p\1f \00\c4\03\bf\03\b9\03\b1\03\e6\1f\c4\03\b1\03 \00\bb\03s\1f\b3\03\bf\03\bd\03\c4\03\b5\03\c2\03 \00\"\1f \00\c4\03t\1f\bd\03 \00Q\1f\c0\03y\1f\b8\03\b5\03\c3\03\b9\03\bd\03,\00 \00\c0\03\b5\03\c1\03v\1f \00\'\1f\c2\03 \00\b2\03\bf\03\c5\03\bb\03\b5\03{\1f\b5\03\c3\03\b8\03\b1\03\b9\03,\00\n\00\bf\03P\1f\c7\03v\1f \00\c4\03t\1f\bd\03 \00\bf\03V\1f\c3\03\b1\03\bd\03 \00\c0\03\b1\03\c1\03\b9\03\c3\03\c4\03q\1f\bd\03\c4\03\b5\03\c2\03 \00Q\1f\bc\03\d6\1f\bd\03 \00\01\1f\bc\03\b1\03\c1\03\c4\03q\1f\bd\03\b5\03\b9\03\bd\03.\00 \00\10\1f\b3\03|\1f \00\b4\03s\1f,\00 \00E\1f\c4\03\b9\03 \00\bc\03s\1f\bd\03\n\00\c0\03\bf\03\c4\03\bf\1f \00\10\1f\be\03\c6\1f\bd\03 \00\c4\03\c7\1f \00\c0\03y\1f\bb\03\b5\03\b9\03 \00\ba\03\b1\03v\1f \00\c4\03p\1f \00\b1\03Q\1f\c4\03\c6\1f\c2\03 \00\14\1f\c7\03\b5\03\b9\03\bd\03 \00\00\1f\c3\03\c6\03\b1\03\bb\03\f6\1f\c2\03 \00\ba\03\b1\03v\1f \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03,\00 \00\ba\03\b1\03v\1f \00\bc\03q\1f\bb\03\bf\1f \00\00\1f\ba\03\c1\03\b9\03\b2\03\f6\1f\c2\03 \00\bf\036\1f\b4\03\b1\03\87\03 \00\10\1f\c0\03\bf\1f \00\10\1f\bc\03\bf\03\e6\1f \00\b3\03q\1f\c1\03,\00 \00\bf\03P\1f \00\c0\03q\1f\bb\03\b1\03\b9\03\n\00\b3\03s\1f\b3\03\bf\03\bd\03\b5\03\bd\03 \00\c4\03\b1\03\e6\1f\c4\03\bf\1f \00\00\1f\bc\03\c6\03y\1f\c4\03\b5\03\c1\03\b1\03\87\03 \00\bd\03\e6\1f\bd\03 \00\bc\03s\1f\bd\03\c4\03\bf\03\b9\03 \00\c0\03s\1f\c0\03\b5\03\b9\03\c3\03\bc\03\b1\03\b9\03 \00\c4\03\bf\03\e6\1f\b8\03\bf\1f \001\1f\ba\03\b1\03\bd\03x\1f\bd\03\n\00\c0\03\c1\03\bf\03\bb\03\b1\03\b2\03\b5\03\d6\1f\bd\03 \00!\1f\bc\03\d6\1f\bd\03 \00\b5\036\1f\bd\03\b1\03\b9\03 \00\c4\03t\1f\bd\03 \00\c0\03\c1\03}\1f\c4\03\b7\03\bd\03,\00 \00E\1f\c0\03\c9\03\c2\03 \00\c4\03\bf\03z\1f\c2\03 \00\c3\03\c5\03\bc\03\bc\03q\1f\c7\03\bf\03\c5\03\c2\03\n\00\c3\03}\1f\c3\03\bf\03\bc\03\b5\03\bd\03.\00 \00\10\1fp\1f\bd\03 \00\b3\03p\1f\c1\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\b2\03\b5\03\b2\03\b1\03w\1f\c9\03\c2\03 \00Q\1f\c0\03q\1f\c1\03\be\03\c3\1f,\00 \00\c4\03y\1f\c4\03\b5\03 \00\ba\03\b1\03v\1f \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03w\1f\bd\03\b1\03 \00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b5\03\c4\03\b1\03w\1f \00\c4\03\b9\03\c2\03 \00\ba\03\b1\03v\1f \00C\1f\bd\03 \00\c4\03\c1\03y\1f\c0\03\bf\03\bd\03 \00\10\1f\be\03s\1f\c3\03\c4\03\b1\03\b9\03 \00\c3\03\ba\03\bf\03\c0\03\b5\03\d6\1f\bd\03\87\03 \00\c0\03\c1\03v\1f\bd\03 \00\b4\03r\1f\n\00\c4\03t\1f\bd\03 \00\00\1f\c1\03\c7\03t\1f\bd\03 \00@\1f\c1\03\b8\03\f6\1f\c2\03 \00Q\1f\c0\03\bf\03\b8\03s\1f\c3\03\b8\03\b1\03\b9\03,\00 \00\bc\03q\1f\c4\03\b1\03\b9\03\bf\03\bd\03 \00!\1f\b3\03\bf\03\e6\1f\bc\03\b1\03\b9\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\c6\1f\c2\03\n\00\c4\03\b5\03\bb\03\b5\03\c5\03\c4\03\c6\1f\c2\03 \00A\1f\bd\03\c4\03\b9\03\bd\03\bf\03\e6\1f\bd\03 \00\c0\03\bf\03\b9\03\b5\03\d6\1f\c3\03\b8\03\b1\03\b9\03 \00\bb\03y\1f\b3\03\bf\03\bd\03.\00\n\00\n\00\94\03\b7\03\bc\03\bf\03\c3\03\b8\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\93\03\fd\1f \00\bf\1f\9f\03\bb\03\c5\03\bd\03\b8\03\b9\03\b1\03\ba\03x\1f\c2\03\n\00\n\00G\00e\00o\00r\00g\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\d2\10\d7\10\ee\10\dd\10\d5\10\d7\10 \00\d0\10\ee\10\da\10\d0\10\d5\10\d4\10 \00\d2\10\d0\10\d8\10\d0\10\e0\10\dd\10\d7\10 \00\e0\10\d4\10\d2\10\d8\10\e1\10\e2\10\e0\10\d0\10\ea\10\d8\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\db\10\d4\10\d0\10\d7\10\d4\10 \00\e1\10\d0\10\d4\10\e0\10\d7\10\d0\10\e8\10\dd\10\e0\10\d8\10\e1\10\dd\10\n\00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10\d6\10\d4\10 \00\d3\10\d0\10\e1\10\d0\10\e1\10\ec\10\e0\10\d4\10\d1\10\d0\10\d3\10,\00 \00\e0\10\dd\10\db\10\d4\10\da\10\d8\10\ea\10 \00\d2\10\d0\10\d8\10\db\10\d0\10\e0\10\d7\10\d4\10\d1\10\d0\10 \001\000\00-\001\002\00 \00\db\10\d0\10\e0\10\e2\10\e1\10,\00\n\00\e5\10.\00 \00\db\10\d0\10\d8\10\dc\10\ea\10\e8\10\d8\10,\00 \00\d2\10\d4\10\e0\10\db\10\d0\10\dc\10\d8\10\d0\10\e8\10\d8\10.\00 \00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10 \00\e8\10\d4\10\f0\10\d9\10\e0\10\d4\10\d1\10\e1\10 \00\d4\10\e0\10\d7\10\d0\10\d3\10 \00\db\10\e1\10\dd\10\e4\10\da\10\d8\10\dd\10\e1\10\n\00\d4\10\e5\10\e1\10\de\10\d4\10\e0\10\e2\10\d4\10\d1\10\e1\10 \00\d8\10\e1\10\d4\10\d7\10 \00\d3\10\d0\10\e0\10\d2\10\d4\10\d1\10\e8\10\d8\10 \00\e0\10\dd\10\d2\10\dd\10\e0\10\d8\10\ea\10\d0\10\d0\10 \00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d4\10\e2\10\d8\10 \00\d3\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10,\00\n\00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d0\10\ea\10\d8\10\dd\10\dc\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10 \00\d3\10\d0\10 \00\da\10\dd\10\d9\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10,\00 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d0\10\n\00\dd\10\de\10\d4\10\e0\10\d0\10\ea\10\d8\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e1\10\d0\10,\00 \00\d3\10\d0\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d8\10\d7\10 \00\de\10\e0\10\dd\10\d2\10\e0\10\d0\10\db\10\d4\10\d1\10\e8\10\d8\10,\00 \00\e8\10\e0\10\d8\10\e4\10\e2\10\d4\10\d1\10\e8\10\d8\10,\00\n\00\e2\10\d4\10\e5\10\e1\10\e2\10\d4\10\d1\10\d8\10\e1\10 \00\d3\10\d0\10\db\10\e3\10\e8\10\d0\10\d5\10\d4\10\d1\10\d0\10\e1\10\d0\10 \00\d3\10\d0\10 \00\db\10\e0\10\d0\10\d5\10\d0\10\da\10\d4\10\dc\10\dd\10\d5\10\d0\10\dc\10 \00\d9\10\dd\10\db\10\de\10\d8\10\e3\10\e2\10\d4\10\e0\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e8\10\d8\10.\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\17\040\04@\045\043\048\04A\04B\04@\048\04@\04C\049\04B\045\04A\04L\04 \00A\045\049\04G\040\04A\04 \00=\040\04 \00\14\045\04A\04O\04B\04C\04N\04 \00\1c\045\046\044\04C\04=\040\04@\04>\044\04=\04C\04N\04 \00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04N\04 \00?\04>\04\n\00U\00n\00i\00c\00o\00d\00e\00,\00 \00:\04>\04B\04>\04@\040\04O\04 \00A\04>\04A\04B\04>\048\04B\04A\04O\04 \001\000\00-\001\002\00 \00<\040\04@\04B\040\04 \001\009\009\007\00 \003\04>\044\040\04 \002\04 \00\1c\040\049\04=\04F\045\04 \002\04 \00\13\045\04@\04<\040\04=\048\048\04.\00\n\00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04O\04 \00A\04>\041\045\04@\045\04B\04 \00H\048\04@\04>\04:\048\049\04 \00:\04@\04C\043\04 \00M\04:\04A\04?\045\04@\04B\04>\042\04 \00?\04>\04 \00 \002\04>\04?\04@\04>\04A\040\04<\04 \003\04;\04>\041\040\04;\04L\04=\04>\043\04>\04\n\00\18\04=\04B\045\04@\04=\045\04B\040\04 \008\04 \00U\00n\00i\00c\00o\00d\00e\00,\00 \00;\04>\04:\040\04;\048\047\040\04F\048\048\04 \008\04 \008\04=\04B\045\04@\04=\040\04F\048\04>\04=\040\04;\048\047\040\04F\048\048\04,\00 \002\04>\04?\04;\04>\04I\045\04=\048\04N\04 \008\04\n\00?\04@\048\04<\045\04=\045\04=\048\04N\04 \00U\00n\00i\00c\00o\00d\00e\00 \002\04 \00@\040\047\04;\048\04G\04=\04K\04E\04 \00>\04?\045\04@\040\04F\048\04>\04=\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04 \008\04 \00?\04@\04>\043\04@\040\04<\04<\04=\04K\04E\04\n\00?\04@\048\04;\04>\046\045\04=\048\04O\04E\04,\00 \00H\04@\048\04D\04B\040\04E\04,\00 \002\045\04@\04A\04B\04:\045\04 \008\04 \00<\04=\04>\043\04>\04O\047\04K\04G\04=\04K\04E\04 \00:\04>\04<\04?\04L\04N\04B\045\04@\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04.\00\n\00\n\00T\00h\00a\00i\00 \00(\00U\00C\00S\00 \00L\00e\00v\00e\00l\00 \002\00)\00:\00\n\00\n\00E\00x\00c\00e\00r\00p\00t\00 \00f\00r\00o\00m\00 \00a\00 \00p\00o\00e\00t\00r\00y\00 \00o\00n\00 \00T\00h\00e\00 \00R\00o\00m\00a\00n\00c\00e\00 \00o\00f\00 \00T\00h\00e\00 \00T\00h\00r\00e\00e\00 \00K\00i\00n\00g\00d\00o\00m\00s\00 \00(\00a\00 \00C\00h\00i\00n\00e\00s\00e\00\n\00c\00l\00a\00s\00s\00i\00c\00 \00\'\00S\00a\00n\00 \00G\00u\00a\00\'\00)\00:\00\n\00\n\00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00A\0e\1c\0eH\0e\19\0e\14\0e4\0e\19\0e.\0e1\0eH\0e\19\0e@\0e*\0e7\0eH\0e-\0e!\0eB\0e\17\0e#\0e!\0eA\0e*\0e\19\0e*\0e1\0e\07\0e@\0e\'\0e\n\0e \00 \00\1e\0e#\0e0\0e\1b\0e\01\0e@\0e\01\0e(\0e\01\0e-\0e\07\0e\1a\0e9\0eJ\0e\01\0e9\0eI\0e\02\0e6\0eI\0e\19\0eC\0e+\0e!\0eH\0e\n\00*\0e4\0e\1a\0e*\0e-\0e\07\0e\01\0e)\0e1\0e\15\0e#\0e4\0e\"\0eL\0e\01\0eH\0e-\0e\19\0e+\0e\19\0eI\0e2\0eA\0e%\0e\16\0e1\0e\14\0eD\0e\1b\0e \00 \00 \00 \00 \00 \00 \00*\0e-\0e\07\0e-\0e\07\0e\04\0eL\0eD\0e\0b\0e#\0eI\0eB\0e\07\0eH\0e@\0e\02\0e%\0e2\0e@\0e\1a\0e2\0e\1b\0e1\0e\r\0e\r\0e2\0e\n\00 \00 \00\17\0e#\0e\07\0e\19\0e1\0e\1a\0e\16\0e7\0e-\0e\02\0e1\0e\19\0e\17\0e5\0e@\0e\1b\0eG\0e\19\0e\17\0e5\0eH\0e\1e\0e6\0eH\0e\07\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\1a\0eI\0e2\0e\19\0e@\0e!\0e7\0e-\0e\07\0e\08\0e6\0e\07\0e\'\0e4\0e\1b\0e#\0e4\0e\15\0e@\0e\1b\0eG\0e\19\0e\19\0e1\0e\01\0e+\0e\19\0e2\0e\n\00B\0e.\0e\08\0e4\0eK\0e\19\0e@\0e#\0e5\0e\"\0e\01\0e\17\0e1\0e\1e\0e\17\0e1\0eH\0e\'\0e+\0e1\0e\'\0e@\0e!\0e7\0e-\0e\07\0e!\0e2\0e \00 \00 \00 \00 \00 \00 \00 \00 \00+\0e!\0e2\0e\"\0e\08\0e0\0e\06\0eH\0e2\0e!\0e\14\0e\n\0e1\0eH\0e\'\0e\15\0e1\0e\'\0e*\0e3\0e\04\0e1\0e\r\0e\n\00 \00 \00@\0e+\0e!\0e7\0e-\0e\19\0e\02\0e1\0e\1a\0eD\0e*\0eD\0e%\0eH\0e@\0e*\0e7\0e-\0e\08\0e2\0e\01\0e@\0e\04\0e+\0e2\0e \00 \00 \00 \00 \00 \00#\0e1\0e\1a\0e+\0e!\0e2\0e\1b\0eH\0e2\0e@\0e\02\0eI\0e2\0e!\0e2\0e@\0e%\0e\"\0e-\0e2\0e*\0e1\0e\r\0e\n\00\1d\0eH\0e2\0e\"\0e-\0eI\0e-\0e\07\0e-\0e8\0eI\0e\19\0e\"\0e8\0eA\0e\"\0e\01\0eC\0e+\0eI\0eA\0e\15\0e\01\0e\01\0e1\0e\19\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00C\0e\n\0eI\0e*\0e2\0e\'\0e\19\0e1\0eI\0e\19\0e@\0e\1b\0eG\0e\19\0e\n\0e\19\0e\'\0e\19\0e\n\0e7\0eH\0e\19\0e\n\0e\'\0e\19\0eC\0e\08\0e\n\00 \00 \00\1e\0e%\0e1\0e\19\0e%\0e4\0e\t\0e8\0e\"\0e\01\0e8\0e\"\0e\01\0e5\0e\01\0e%\0e1\0e\1a\0e\01\0eH\0e-\0e@\0e+\0e\15\0e8\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\n\0eH\0e2\0e\07\0e-\0e2\0e@\0e\1e\0e(\0e\08\0e#\0e4\0e\07\0e+\0e\19\0e2\0e\1f\0eI\0e2\0e#\0eI\0e-\0e\07\0eD\0e+\0eI\0e\n\00\15\0eI\0e-\0e\07\0e#\0e\1a\0e#\0e2\0e\06\0eH\0e2\0e\1f\0e1\0e\19\0e\08\0e\19\0e\1a\0e#\0e#\0e%\0e1\0e\"\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00$\0eE\0e+\0e2\0eC\0e\04\0e#\0e\04\0eI\0e3\0e\n\0e9\0e\01\0e9\0eI\0e\1a\0e#\0e#\0e%\0e1\0e\07\0e\01\0eL\0e \00/\0e\n\00\n\00(\00T\00h\00e\00 \00a\00b\00o\00v\00e\00 \00i\00s\00 \00a\00 \00t\00w\00o\00-\00c\00o\00l\00u\00m\00n\00 \00t\00e\00x\00t\00.\00 \00I\00f\00 \00c\00o\00m\00b\00i\00n\00i\00n\00g\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00s\00 \00a\00r\00e\00 \00h\00a\00n\00d\00l\00e\00d\00\n\00c\00o\00r\00r\00e\00c\00t\00l\00y\00,\00 \00t\00h\00e\00 \00l\00i\00n\00e\00s\00 \00o\00f\00 \00t\00h\00e\00 \00s\00e\00c\00o\00n\00d\00 \00c\00o\00l\00u\00m\00n\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00a\00l\00i\00g\00n\00e\00d\00 \00w\00i\00t\00h\00 \00t\00h\00e\00\n\00|\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00 \00a\00b\00o\00v\00e\00.\00)\00\n\00\n\00E\00t\00h\00i\00o\00p\00i\00a\00n\00:\00\n\00\n\00P\00r\00o\00v\00e\00r\00b\00s\00 \00i\00n\00 \00t\00h\00e\00 \00A\00m\00h\00a\00r\00i\00c\00 \00l\00a\00n\00g\00u\00a\00g\00e\00:\00\n\00\n\000\12\1b\12\ed\12 \00\a0\12\ed\12s\12(\125\12 \00\95\12\t\13%\12 \00\a0\12\ed\12\a8\120\125\12b\13\n\00e\12\0b\12 \00\ab\12\08\12\9d\12 \00\a5\12\95\12\f0\12\a0\12c\12t\12 \00`\12F\12\18\12 \13\9d\12b\13\n\00\0c\13%\13 \00\eb\12\08\12d\12q\12 \00A\12\1d\12%\13\93\12 \00\90\12\cd\12b\13\n\00\f0\12\00\12 \00`\12\15\12\r\12\19\12 \00E\12d\12 \00c\12\ed\12 \13#\13 \00\95\12#\13u\12 \00`\12\08\13\f0\12\08\12\cd\12b\13\n\00\e8\12\a0\12M\13 \00\c8\12\08\12\1d\12s\12 \00`\12E\12d\12 \00\a0\12\ed\12s\12=\12\1d\12b\13\n\00\a0\12\ed\12%\13 \00`\12`\12\0b\12 \00\f3\12\cb\12 \00p\12\18\12s\12b\13\n\002\12p\12(\12\t\13\19\12 \00\ed\12\f0\12(\12\r\13\19\12b\13\n\00@\125\12 \00`\12@\125\12e\13 \00\d5\12\95\12A\12\0b\12\r\12 \00`\12\a5\12\r\13)\12 \00\ed\12\04\12\f3\12\r\12b\13\n\00\f5\12-\12 \00b\12\eb\12e\12-\12 \00\a0\12\95\12`\123\12 \00\eb\125\12-\12b\13\n\000\12\cd\12 \00\a5\12\95\12\f0\12d\12q\12 \00\a5\12\95\12\05\13 \00\a5\12\95\12\f0\12 \00\t\13(\12d\12q\12 \00\a0\12\ed\12p\12\f3\12\f0\12-\12\1d\12b\13\n\00\a5\12\r\13\dc\12-\12 \00\e8\12\a8\12H\13p\12\cd\12\95\12 \00\t\13.\12.\12 \003\12\ed\12\d8\12\0b\13\cd\12 \00\a0\12\ed\12\f5\12-\12\1d\12b\13\n\00\e8\12\0e\13(\12d\12u\12 \00\0c\12c\12e\13 \00b\12\eb\12\e9\12u\12 \00\ed\125\12E\12 \00c\12\eb\12\e9\12u\12 \00\eb\12 \13\r\12E\12b\13\n\00%\12+\12 \00\a8\12\18\12M\13s\12u\12 \00\r\12\04\13\95\12 \00\0b\12K\13s\12u\12b\13\n\00\d3\12c\12\ed\12 \00\1b\12\f0\12*\12\eb\12 \00\e8\12\08\12\cd\12e\13 \00\r\13\95\12\f5\12 \00\ed\12\de\12 \00\ed\12\de\12+\12\r\12b\13\n\00\e8\12\a5\125\12\0b\12\1d\12 \00\a0\12\08\13)\12 \00\18\12\ab\12 \00\e8\12\a0\12\1e\12+\12 \00\a0\12\08\13)\12 \00\cb\12-\12\ab\12b\13\n\00p\12\95\12\0b\13\0e\12 \00b\12p\12I\13 \00p\12\18\12\r\126\12 \00c\12I\13b\13\n\00\c8\12\f3\12\05\13\05\12 \00\1b\12-\12 \00b\12\06\12\95\12 \00(\13-\125\12\05\12 \00\a0\12u\12\0b\120\12\cd\12b\13\n\00\a5\12\r\13-\12\05\12\95\12 \00`\12M\13+\12=\12\05\12 \00\r\12\ad\12 \00\d8\12-\12\0b\13b\13\n\00\n\00R\00u\00n\00e\00s\00:\00\n\00\n\00\bb\16\d6\16 \00\b3\16\b9\16\ab\16\a6\16 \00\a6\16\ab\16\cf\16 \00\bb\16\d6\16 \00\d2\16\a2\16\de\16\d6\16 \00\a9\16\be\16 \00\a6\16\ab\16\d7\16 \00\da\16\aa\16\be\16\de\16\d6\16 \00\be\16\a9\16\b1\16\a6\16\b9\16\d6\16\aa\16\b1\16\de\16\a2\16\d7\16 \00\b9\16\c1\16\a6\16 \00\a6\16\aa\16 \00\b9\16\d6\16\e5\16\ab\16\n\00\n\00(\00O\00l\00d\00 \00E\00n\00g\00l\00i\00s\00h\00,\00 \00w\00h\00i\00c\00h\00 \00t\00r\00a\00n\00s\00c\00r\00i\00b\00e\00d\00 \00i\00n\00t\00o\00 \00L\00a\00t\00i\00n\00 \00r\00e\00a\00d\00s\00 \00\'\00H\00e\00 \00c\00w\00a\00e\00t\00h\00 \00t\00h\00a\00t\00 \00h\00e\00\n\00b\00u\00d\00e\00 \00t\00h\00a\00e\00m\00 \00l\00a\00n\00d\00e\00 \00n\00o\00r\00t\00h\00w\00e\00a\00r\00d\00u\00m\00 \00w\00i\00t\00h\00 \00t\00h\00a\00 \00W\00e\00s\00t\00s\00a\00e\00.\00\'\00 \00a\00n\00d\00 \00m\00e\00a\00n\00s\00 \00\'\00H\00e\00 \00s\00a\00i\00d\00\n\00t\00h\00a\00t\00 \00h\00e\00 \00l\00i\00v\00e\00d\00 \00i\00n\00 \00t\00h\00e\00 \00n\00o\00r\00t\00h\00e\00r\00n\00 \00l\00a\00n\00d\00 \00n\00e\00a\00r\00 \00t\00h\00e\00 \00W\00e\00s\00t\00e\00r\00n\00 \00S\00e\00a\00.\00\'\00)\00\n\00\n\00B\00r\00a\00i\00l\00l\00e\00:\00\n\00\n\00L(\01(\'(\11( \00<(\01(\12( \00 \00M(\1c(\07(\11(9(0(\0e( \00c(\15(\0c(\n\00\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\19(\11(\01(\19(\12( \00\1e(\15( \00\03(\11(\1b(\14( \00:(\n(9(2( \00y(;(\11( \00\n(\0e( \00\1d(\15( \00\19(3(\03(\1e(\n\001(\01(\1e(\11(\'(;( \00\01(\03(3(\1e( \009(\01(\1e(2( \00y(\11( \00\17(\11(\1b(\n(\0c(;( \00\15(\0b( \00\19(\n(\0e( \00\03(%(\17(\n(\01(\07( \00:(\01(\0e(\n\00\0e(\n(\1b(\1d(+( \00\03(9( \009(\11( \00\n(\07(;(\1b(9(\r(\01(\1d(\02( \009(\11( \00\n(\07(;(\05(\02( \009(\11( \00%(\1d(\19(;(\1e(\01(\05(;(\02(\n\00\01(\1d(\19( \009(\11( \00!(\n(\11(\0b( \00\r(3(\17(\1d(;(2( \00N(\n(\17(\15(\15(\1b(\11( \00\0e(\n(\1b(\1d(+( \00\n(\1e(2( \00A(\1d(\19(\n\00N(\n(\17(\15(\15(\1b(\11(0(\0e( \00\1d(\01(\r(\11( \00:(\01(\0e( \00\1b(\15(\15(\19( \00%(\0f(\15(\1d( \000(a(\01(\1d(\1b(\11(\02( \00\0b(\15(\17( \00\01(\1d(9(9(\14(\1b( \00\19(\11(\n\00!(\15(\0e(\11( \00\1e(\15( \00\0f(%(\1e( \00\19(\n(\0e( \00\19(\01(\1d(\19( \00\1e(\15(2(\n\00\n\00U(\07(\19( \00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00M(\14(\19(\16( \00J( \00\19(\15(\1d(0(\1e( \00\r(\11(\01(\1d( \00\1e(\15( \00\0e(\01(9( \009(\01(\1e( \00J( \00\05(\1d(*(\02( \00\15(\0b( \00\r(9(\n\00*(\1d( \00\05(\1d(*(\07(+(\1b(\11(\02( \001(\01(\1e( \009(;(\11( \00\n(\0e( \00\0f(\1c(\1e(\n(\n(%(\07(\1c(\07(9( \00\19(\11(\01(\19( \00\01(\03(3(\1e(\n\00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2( \00J( \00\r(\n(#(\1e( \00\19(\01(\'(\11( \00\03(\11(2( \00\14(\n(\07(\14(+(\02( \00\r(9(\0e(\11(\07(\0b(\02( \00\1e(\15(\n\00\17(\11(\1b(\1c(\19( \00\01( \00\n(\15(\0b(\0b(\14($(\1d(\01(\n(\07( \00\01(\0e( \009(\11( \00\19(\11(\01(\19(\11(\0c( \00\0f(\n(\11(\n(\11( \00\15(\0b( \00\n(\17(\15(\1d(\r(\15(\1d(\1b(;(9(\n\00\14( \009(\11( \00\1e(\17(\01(\19(\11(2( \00C(%(\1e( \009(\11( \00:(\n(\0e(\19(\15(\r( \00\15(\0b( \003(\17( \00\01(\1d(\n(\11(\0c(\15(\17(\0e(\n\00\n(\0e( \00\14( \009(\11( \00\0e(\n(\r(\n(\07(\11(\06( \00\01(\1d(\19( \00\r(9( \00%(\1d(\19(\01(\07(\07(*(+( \00\19(\01(\1d(\19(\0e(\n\00)(\01(\07(\07( \00\1d(\15(\1e( \00\19(\n(\0c(%(\17(\03( \00\n(\1e(\02( \00\15(\17( \009(\11( \00J(3(\1d(\1e(\17(9(0(\0e( \00\19(\15(\1d(\11( \00\0b(\15(\17(2( \00y(3(\n\00:(\n(\07(\07( \009(;(\11(\0b(\15(\17(\11( \00\0f(;(\r(\n(\1e( \00\r(\11( \00\1e(\15( \00\17(\11(\0f(\11(\01(\1e(\02( \00\11(\r(\0f(\19(\01(\1e(\n(\n(\01(\07(\07(9(\02( \009(\01(\1e(\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00(\00T\00h\00e\00 \00f\00i\00r\00s\00t\00 \00c\00o\00u\00p\00l\00e\00 \00o\00f\00 \00p\00a\00r\00a\00g\00r\00a\00p\00h\00s\00 \00o\00f\00 \00\"\00A\00 \00C\00h\00r\00i\00s\00t\00m\00a\00s\00 \00C\00a\00r\00o\00l\00\"\00 \00b\00y\00 \00D\00i\00c\00k\00e\00n\00s\00)\00\n\00\n\00C\00o\00m\00p\00a\00c\00t\00 \00f\00o\00n\00t\00 \00s\00e\00l\00e\00c\00t\00i\00o\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00x\00t\00:\00\n\00\n\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/\000\001\002\003\004\005\006\007\008\009\00\n\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\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\n\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\n\00\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10\n\00\n\00G\00r\00e\00e\00t\00i\00n\00g\00s\00 \00i\00n\00 \00v\00a\00r\00i\00o\00u\00s\00 \00l\00a\00n\00g\00u\00a\00g\00e\00s\00:\00\n\00\n\00H\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00,\00 \00\9a\03\b1\03\bb\03\b7\03\bc\03s\1f\c1\03\b1\03 \00\ba\03y\1f\c3\03\bc\03\b5\03,\00 \00\b30\f30\cb0\c10\cf0\n\00\n\00B\00o\00x\00 \00d\00r\00a\00w\00i\00n\00g\00 \00a\00l\00i\00g\00n\00m\00e\00n\00t\00 \00t\00e\00s\00t\00s\00:\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\88%\n\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\89%\n\00T%P%P%f%P%P%W% \00 \00\0c%\00%\00%,%\00%\00%\10% \00 \00m%\00%\00%,%\00%\00%n% \00 \00m%\00%\00%,%\00%\00%n% \00 \00\0f%\01%\01%3%\01%\01%\13% \00 \00\0e%\12%\0f%\11% \00 \00 \00w% \00 \00{% \00\0f%/%\13% \00\0c%0%\10% \00 \00 \00 \00\8a% \00q%r%q%r%s%s%s%\n\00Q%\0c%\00%h%\00%\10%Q% \00 \00\02%T%P%g%P%W%\02% \00 \00\02%R%P%j%P%U%\02% \00 \00\02%S%\00%A%\00%V%\02% \00 \00\03%\0c%\00%B%\00%\10%\03% \00 \00\17%C%D%\19% \00 \00v%<%t%z%K%x% %<%(% \00\1d%K%%% \00 \00 \00 \00\8b% \00r%q%r%q%s%s%s%\n\00Q%\02%r% \00q%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00\7f% \00\02%\03% \00 \00\r%E%F%\13% \00 \00 \00u% \00 \00y% \00\17%7%\1b% \00\14%8%\18% \00 \00 \00 \00\8c% \00q%r%q%r%s%s%s%\n\00`%a% \00s% \00^%c% \00 \00\1c%b% \00 \00 \00_%$% \00 \00\1c%<%\00%<%\00%<%$% \00 \00\1c%k%\00%B%\00%k%$% \00 \00#%?%~%<%|%?%+% \00 \00\15%\1b%\16%\1a% \00 \00 \00 \00 \00\0c%\04%\04%\10% \00N% \00\0f%\05%\05%\13% \00\0b% \00\8d% \00r%q%r%q%s%s%s%\n\00Q%\02%q% \00r%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00}% \00\02%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8e%\n\00Q%\14%\00%e%\00%\18%Q% \00 \00\02%Z%P%d%P%]%\02% \00 \00\02%X%P%j%P%[%\02% \00 \00\02%Y%\00%@%\00%\\%\02% \00 \00\03%\14%\00%B%\00%\18%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8f%\n\00Z%P%P%i%P%P%]% \00 \00\14%\00%\00%4%\00%\00%\18% \00 \00p%\00%\00%4%\00%\00%o% \00 \00p%\00%\00%4%\00%\00%o% \00 \00\17%\01%\01%;%\01%\01%\1b% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\14%L%L%\18% \00N% \00\17%M%M%\1b% \00\0b% \00 \00\81%\82%\83%\84%\85%\86%\87%\88%\n\00\00\00") - (data $35 (i32.const 16124) "\8c\1d\00\00\00\00\00\00\00\00\00\00\02\00\00\00p\1d\00\00S\00e\00n\00t\00e\00n\00c\00e\00s\00 \00t\00h\00a\00t\00 \00c\00o\00n\00t\00a\00i\00n\00 \00a\00l\00l\00 \00l\00e\00t\00t\00e\00r\00s\00 \00c\00o\00m\00m\00o\00n\00l\00y\00 \00u\00s\00e\00d\00 \00i\00n\00 \00a\00 \00l\00a\00n\00g\00u\00a\00g\00e\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00M\00a\00r\00k\00u\00s\00 \00K\00u\00h\00n\00 \00<\00h\00t\00t\00p\00:\00/\00/\00w\00w\00w\00.\00c\00l\00.\00c\00a\00m\00.\00a\00c\00.\00u\00k\00/\00~\00m\00g\00k\002\005\00/\00>\00 \00-\00-\00 \002\000\001\002\00-\000\004\00-\001\001\00\n\00\n\00T\00h\00i\00s\00 \00i\00s\00 \00a\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00o\00f\00 \00a\00 \00p\00l\00a\00i\00n\00-\00t\00e\00x\00t\00 \00f\00i\00l\00e\00 \00e\00n\00c\00o\00d\00e\00d\00 \00i\00n\00 \00U\00T\00F\00-\008\00.\00\n\00\n\00\n\00D\00a\00n\00i\00s\00h\00 \00(\00d\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00Q\00u\00i\00z\00d\00e\00l\00t\00a\00g\00e\00r\00n\00e\00 \00s\00p\00i\00s\00t\00e\00 \00j\00o\00r\00d\00b\00\e6\00r\00 \00m\00e\00d\00 \00f\00l\00\f8\00d\00e\00,\00 \00m\00e\00n\00s\00 \00c\00i\00r\00k\00u\00s\00k\00l\00o\00v\00n\00e\00n\00\n\00 \00 \00W\00o\00l\00t\00h\00e\00r\00 \00s\00p\00i\00l\00l\00e\00d\00e\00 \00p\00\e5\00 \00x\00y\00l\00o\00f\00o\00n\00.\00\n\00 \00 \00(\00=\00 \00Q\00u\00i\00z\00 \00c\00o\00n\00t\00e\00s\00t\00a\00n\00t\00s\00 \00w\00e\00r\00e\00 \00e\00a\00t\00i\00n\00g\00 \00s\00t\00r\00a\00w\00b\00e\00r\00y\00 \00w\00i\00t\00h\00 \00c\00r\00e\00a\00m\00 \00w\00h\00i\00l\00e\00 \00W\00o\00l\00t\00h\00e\00r\00\n\00 \00 \00t\00h\00e\00 \00c\00i\00r\00c\00u\00s\00 \00c\00l\00o\00w\00n\00 \00p\00l\00a\00y\00e\00d\00 \00o\00n\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00.\00)\00\n\00\n\00G\00e\00r\00m\00a\00n\00 \00(\00d\00e\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00F\00a\00l\00s\00c\00h\00e\00s\00 \00\dc\00b\00e\00n\00 \00v\00o\00n\00 \00X\00y\00l\00o\00p\00h\00o\00n\00m\00u\00s\00i\00k\00 \00q\00u\00\e4\00l\00t\00 \00j\00e\00d\00e\00n\00 \00g\00r\00\f6\00\df\00e\00r\00e\00n\00 \00Z\00w\00e\00r\00g\00\n\00 \00 \00(\00=\00 \00W\00r\00o\00n\00g\00f\00u\00l\00 \00p\00r\00a\00c\00t\00i\00c\00i\00n\00g\00 \00o\00f\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00 \00m\00u\00s\00i\00c\00 \00t\00o\00r\00t\00u\00r\00e\00s\00 \00e\00v\00e\00r\00y\00 \00l\00a\00r\00g\00e\00r\00 \00d\00w\00a\00r\00f\00)\00\n\00\n\00 \00 \00Z\00w\00\f6\00l\00f\00 \00B\00o\00x\00k\00\e4\00m\00p\00f\00e\00r\00 \00j\00a\00g\00t\00e\00n\00 \00E\00v\00a\00 \00q\00u\00e\00r\00 \00\fc\00b\00e\00r\00 \00d\00e\00n\00 \00S\00y\00l\00t\00e\00r\00 \00D\00e\00i\00c\00h\00\n\00 \00 \00(\00=\00 \00T\00w\00e\00l\00v\00e\00 \00b\00o\00x\00i\00n\00g\00 \00f\00i\00g\00h\00t\00e\00r\00s\00 \00h\00u\00n\00t\00e\00d\00 \00E\00v\00a\00 \00a\00c\00r\00o\00s\00s\00 \00t\00h\00e\00 \00d\00i\00k\00e\00 \00o\00f\00 \00S\00y\00l\00t\00)\00\n\00\n\00 \00 \00H\00e\00i\00z\00\f6\00l\00r\00\fc\00c\00k\00s\00t\00o\00\df\00a\00b\00d\00\e4\00m\00p\00f\00u\00n\00g\00\n\00 \00 \00(\00=\00 \00f\00u\00e\00l\00 \00o\00i\00l\00 \00r\00e\00c\00o\00i\00l\00 \00a\00b\00s\00o\00r\00b\00e\00r\00)\00\n\00 \00 \00(\00j\00q\00v\00w\00x\00y\00 \00m\00i\00s\00s\00i\00n\00g\00,\00 \00b\00u\00t\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00i\00n\00 \00o\00n\00e\00 \00w\00o\00r\00d\00)\00\n\00\n\00G\00r\00e\00e\00k\00 \00(\00e\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\93\03\b1\03\b6\03\ad\03\b5\03\c2\03 \00\ba\03\b1\03v\1f \00\bc\03\c5\03\c1\03\c4\03\b9\03r\1f\c2\03 \00\b4\03r\1f\bd\03 \00\b8\03p\1f \00\b2\03\c1\03\f6\1f \00\c0\03\b9\03p\1f \00\c3\03\c4\03x\1f \00\c7\03\c1\03\c5\03\c3\03\b1\03\c6\03v\1f \00\be\03\ad\03\c6\03\c9\03\c4\03\bf\03\n\00 \00 \00(\00=\00 \00N\00o\00 \00m\00o\00r\00e\00 \00s\00h\00a\00l\00l\00 \00I\00 \00s\00e\00e\00 \00a\00c\00a\00c\00i\00a\00s\00 \00o\00r\00 \00m\00y\00r\00t\00l\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \00g\00o\00l\00d\00e\00n\00 \00c\00l\00e\00a\00r\00i\00n\00g\00)\00\n\00\n\00 \00 \00\9e\03\b5\03\c3\03\ba\03\b5\03\c0\03\ac\03\b6\03\c9\03 \00\c4\03t\1f\bd\03 \00\c8\03\c5\03\c7\03\bf\03\c6\03\b8\03\cc\03\c1\03\b1\03 \00\b2\03\b4\03\b5\03\bb\03\c5\03\b3\03\bc\03\af\03\b1\03\n\00 \00 \00(\00=\00 \00I\00 \00u\00n\00c\00o\00v\00e\00r\00 \00t\00h\00e\00 \00s\00o\00u\00l\00-\00d\00e\00s\00t\00r\00o\00y\00i\00n\00g\00 \00a\00b\00h\00o\00r\00r\00e\00n\00c\00e\00)\00\n\00\n\00E\00n\00g\00l\00i\00s\00h\00 \00(\00e\00n\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00T\00h\00e\00 \00q\00u\00i\00c\00k\00 \00b\00r\00o\00w\00n\00 \00f\00o\00x\00 \00j\00u\00m\00p\00s\00 \00o\00v\00e\00r\00 \00t\00h\00e\00 \00l\00a\00z\00y\00 \00d\00o\00g\00\n\00\n\00S\00p\00a\00n\00i\00s\00h\00 \00(\00e\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00E\00l\00 \00p\00i\00n\00g\00\fc\00i\00n\00o\00 \00W\00e\00n\00c\00e\00s\00l\00a\00o\00 \00h\00i\00z\00o\00 \00k\00i\00l\00\f3\00m\00e\00t\00r\00o\00s\00 \00b\00a\00j\00o\00 \00e\00x\00h\00a\00u\00s\00t\00i\00v\00a\00 \00l\00l\00u\00v\00i\00a\00 \00y\00\n\00 \00 \00f\00r\00\ed\00o\00,\00 \00a\00\f1\00o\00r\00a\00b\00a\00 \00a\00 \00s\00u\00 \00q\00u\00e\00r\00i\00d\00o\00 \00c\00a\00c\00h\00o\00r\00r\00o\00.\00\n\00 \00 \00(\00C\00o\00n\00t\00a\00i\00n\00s\00 \00e\00v\00e\00r\00y\00 \00l\00e\00t\00t\00e\00r\00 \00a\00n\00d\00 \00e\00v\00e\00r\00y\00 \00a\00c\00c\00e\00n\00t\00,\00 \00b\00u\00t\00 \00n\00o\00t\00 \00e\00v\00e\00r\00y\00 \00c\00o\00m\00b\00i\00n\00a\00t\00i\00o\00n\00\n\00 \00 \00o\00f\00 \00v\00o\00w\00e\00l\00 \00+\00 \00a\00c\00u\00t\00e\00.\00)\00\n\00\n\00F\00r\00e\00n\00c\00h\00 \00(\00f\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00o\00r\00t\00e\00z\00 \00c\00e\00 \00v\00i\00e\00u\00x\00 \00w\00h\00i\00s\00k\00y\00 \00a\00u\00 \00j\00u\00g\00e\00 \00b\00l\00o\00n\00d\00 \00q\00u\00i\00 \00f\00u\00m\00e\00 \00s\00u\00r\00 \00s\00o\00n\00 \00\ee\00l\00e\00 \00i\00n\00t\00\e9\00r\00i\00e\00u\00r\00e\00,\00 \00\e0\00\n\00 \00 \00c\00\f4\00t\00\e9\00 \00d\00e\00 \00l\00\'\00a\00l\00c\00\f4\00v\00e\00 \00o\00v\00o\00\ef\00d\00e\00,\00 \00o\00\f9\00 \00l\00e\00s\00 \00b\00\fb\00c\00h\00e\00s\00 \00s\00e\00 \00c\00o\00n\00s\00u\00m\00e\00n\00t\00 \00d\00a\00n\00s\00 \00l\00\'\00\e2\00t\00r\00e\00,\00 \00c\00e\00\n\00 \00 \00q\00u\00i\00 \00l\00u\00i\00 \00p\00e\00r\00m\00e\00t\00 \00d\00e\00 \00p\00e\00n\00s\00e\00r\00 \00\e0\00 \00l\00a\00 \00c\00\e6\00n\00o\00g\00e\00n\00\e8\00s\00e\00 \00d\00e\00 \00l\00\'\00\ea\00t\00r\00e\00 \00d\00o\00n\00t\00 \00i\00l\00 \00e\00s\00t\00 \00q\00u\00e\00s\00t\00i\00o\00n\00\n\00 \00 \00d\00a\00n\00s\00 \00l\00a\00 \00c\00a\00u\00s\00e\00 \00a\00m\00b\00i\00g\00u\00\eb\00 \00e\00n\00t\00e\00n\00d\00u\00e\00 \00\e0\00 \00M\00o\00\ff\00,\00 \00d\00a\00n\00s\00 \00u\00n\00 \00c\00a\00p\00h\00a\00r\00n\00a\00\fc\00m\00 \00q\00u\00i\00,\00\n\00 \00 \00p\00e\00n\00s\00e\00-\00t\00-\00i\00l\00,\00 \00d\00i\00m\00i\00n\00u\00e\00 \00\e7\00\e0\00 \00e\00t\00 \00l\00\e0\00 \00l\00a\00 \00q\00u\00a\00l\00i\00t\00\e9\00 \00d\00e\00 \00s\00o\00n\00 \00S\01u\00v\00r\00e\00.\00\n\00\n\00 \00 \00l\00\'\00\ee\00l\00e\00 \00e\00x\00i\00g\00u\00\eb\00\n\00 \00 \00O\00\f9\00 \00l\00\'\00o\00b\00\e8\00s\00e\00 \00j\00u\00r\00y\00 \00m\00\fb\00r\00\n\00 \00 \00F\00\ea\00t\00e\00 \00l\00\'\00h\00a\00\ef\00 \00v\00o\00l\00a\00p\00\fc\00k\00,\00\n\00 \00 \00\c2\00n\00e\00 \00e\00x\00 \00a\00\e9\00q\00u\00o\00 \00a\00u\00 \00w\00h\00i\00s\00t\00,\00\n\00 \00 \00\d4\00t\00e\00z\00 \00c\00e\00 \00v\00S\01u\00 \00d\00\e9\00\e7\00u\00.\00\n\00\n\00 \00 \00L\00e\00 \00c\00S\01u\00r\00 \00d\00\e9\00\e7\00u\00 \00m\00a\00i\00s\00 \00l\00\'\00\e2\00m\00e\00 \00p\00l\00u\00t\00\f4\00t\00 \00n\00a\00\ef\00v\00e\00,\00 \00L\00o\00u\00\ff\00s\00 \00r\00\ea\00v\00a\00 \00d\00e\00 \00c\00r\00a\00p\00a\00\fc\00t\00e\00r\00 \00e\00n\00\n\00 \00 \00c\00a\00n\00o\00\eb\00 \00a\00u\00 \00d\00e\00l\00\e0\00 \00d\00e\00s\00 \00\ee\00l\00e\00s\00,\00 \00p\00r\00\e8\00s\00 \00d\00u\00 \00m\00\e4\00l\00s\00t\00r\00\f6\00m\00 \00o\00\f9\00 \00b\00r\00\fb\00l\00e\00n\00t\00 \00l\00e\00s\00 \00n\00o\00v\00\e6\00.\00\n\00\n\00I\00r\00i\00s\00h\00 \00G\00a\00e\00l\00i\00c\00 \00(\00g\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00D\00\'\00f\00h\00u\00a\00s\00c\00a\00i\00l\00 \00\cd\00o\00s\00a\00,\00 \00\da\00r\00m\00h\00a\00c\00 \00n\00a\00 \00h\00\d3\00i\00g\00h\00e\00 \00B\00e\00a\00n\00n\00a\00i\00t\00h\00e\00,\00 \00p\00\f3\00r\00 \00\c9\00a\00v\00a\00 \00a\00g\00u\00s\00 \00\c1\00d\00h\00a\00i\00m\00h\00\n\00\n\00H\00u\00n\00g\00a\00r\00i\00a\00n\00 \00(\00h\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c1\00r\00v\00\ed\00z\00t\00q\01r\00Q\01 \00t\00\fc\00k\00\f6\00r\00f\00\fa\00r\00\f3\00g\00\e9\00p\00\n\00 \00 \00(\00=\00 \00f\00l\00o\00o\00d\00-\00p\00r\00o\00o\00f\00 \00m\00i\00r\00r\00o\00r\00-\00d\00r\00i\00l\00l\00i\00n\00g\00 \00m\00a\00c\00h\00i\00n\00e\00,\00 \00o\00n\00l\00y\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00)\00\n\00\n\00I\00c\00e\00l\00a\00n\00d\00i\00c\00 \00(\00i\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00K\00\e6\00m\00i\00 \00n\00\fd\00 \00\f6\00x\00i\00 \00h\00\e9\00r\00 \00y\00k\00i\00s\00t\00 \00\fe\00j\00\f3\00f\00u\00m\00 \00n\00\fa\00 \00b\00\e6\00\f0\00i\00 \00v\00\ed\00l\00 \00o\00g\00 \00\e1\00d\00r\00e\00p\00a\00\n\00\n\00 \00 \00S\00\e6\00v\00\f6\00r\00 \00g\00r\00\e9\00t\00 \00\e1\00\f0\00a\00n\00 \00\fe\00v\00\ed\00 \00\fa\00l\00p\00a\00n\00 \00v\00a\00r\00 \00\f3\00n\00\fd\00t\00\n\00 \00 \00(\00s\00o\00m\00e\00 \00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00m\00i\00s\00s\00i\00n\00g\00)\00\n\00\n\00J\00a\00p\00a\00n\00e\00s\00e\00 \00(\00j\00p\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00H\00i\00r\00a\00g\00a\00n\00a\00:\00 \00(\00I\00r\00o\00h\00a\00)\00\n\00\n\00 \00 \00D0\8d0o0k0{0x0h0a0\8a0l0\8b0\920\n\00 \00 \00\8f0K0\880_0\8c0]0d0m0j0\890\800\n\00 \00 \00F0\900n0J0O0\840~0Q0u0S0H0f0\n\00 \00 \00B0U0M0\860\810\7f0W0\910r0\820[0Y0\n\00\n\00 \00 \00K\00a\00t\00a\00k\00a\00n\00a\00:\00\n\00\n\00 \00 \00\a40\ed0\cf0\cb0\db0\d80\c80 \00\c10\ea0\cc0\eb0\f20 \00\ef0\ab0\e80\bf0\ec0\bd0 \00\c40\cd0\ca0\e90\e00\n\00 \00 \00\a60\f00\ce0\aa0\af0\e40\de0 \00\b10\d50\b30\a80\c60 \00\a20\b50\ad0\e60\e10\df0\b70 \00\f10\d20\e20\bb0\b90\f30\n\00\n\00H\00e\00b\00r\00e\00w\00 \00(\00i\00w\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00?\00 \00\d3\05\d2\05 \00\e1\05\e7\05\e8\05\df\05 \00\e9\05\d8\05 \00\d1\05\d9\05\dd\05 \00\de\05\d0\05\d5\05\db\05\d6\05\d1\05 \00\d5\05\dc\05\e4\05\ea\05\e2\05 \00\de\05\e6\05\d0\05 \00\dc\05\d5\05 \00\d7\05\d1\05\e8\05\d4\05 \00\d0\05\d9\05\da\05 \00\d4\05\e7\05\dc\05\d9\05\d8\05\d4\05\n\00\n\00P\00o\00l\00i\00s\00h\00 \00(\00p\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00c\00h\00n\00\05\01\07\01 \00w\00 \00t\00\19\01 \00B\01\f3\00d\00z\01 \00j\00e\00|\01a\00 \00l\00u\00b\00 \00o\00[\01m\00 \00s\00k\00r\00z\00y\00D\01 \00f\00i\00g\00\n\00 \00 \00(\00=\00 \00T\00o\00 \00p\00u\00s\00h\00 \00a\00 \00h\00e\00d\00g\00e\00h\00o\00g\00 \00o\00r\00 \00e\00i\00g\00h\00t\00 \00b\00i\00n\00s\00 \00o\00f\00 \00f\00i\00g\00s\00 \00i\00n\00 \00t\00h\00i\00s\00 \00b\00o\00a\00t\00)\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00 \00(\00r\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\12\04 \00G\040\04I\040\04E\04 \00N\043\040\04 \006\048\04;\04 \001\04K\04 \00F\048\04B\04@\04C\04A\04?\00 \00\14\040\04,\00 \00=\04>\04 \00D\040\04;\04L\04H\048\042\04K\049\04 \00M\04:\047\045\04<\04?\04;\04O\04@\04!\00\n\00 \00 \00(\00=\00 \00W\00o\00u\00l\00d\00 \00a\00 \00c\00i\00t\00r\00u\00s\00 \00l\00i\00v\00e\00 \00i\00n\00 \00t\00h\00e\00 \00b\00u\00s\00h\00e\00s\00 \00o\00f\00 \00s\00o\00u\00t\00h\00?\00 \00Y\00e\00s\00,\00 \00b\00u\00t\00 \00o\00n\00l\00y\00 \00a\00 \00f\00a\00k\00e\00 \00o\00n\00e\00!\00)\00\n\00\n\00 \00 \00!\04J\045\04H\04L\04 \006\045\04 \005\04I\04Q\04 \00M\04B\048\04E\04 \00<\04O\043\04:\048\04E\04 \00D\04@\040\04=\04F\04C\047\04A\04:\048\04E\04 \001\04C\04;\04>\04:\04 \004\040\04 \002\04K\04?\045\049\04 \00G\040\04N\04\n\00 \00 \00(\00=\00 \00E\00a\00t\00 \00s\00o\00m\00e\00 \00m\00o\00r\00e\00 \00o\00f\00 \00t\00h\00e\00s\00e\00 \00f\00r\00e\00s\00h\00 \00F\00r\00e\00n\00c\00h\00 \00l\00o\00a\00f\00s\00 \00a\00n\00d\00 \00h\00a\00v\00e\00 \00s\00o\00m\00e\00 \00t\00e\00a\00)\00\n\00\n\00T\00h\00a\00i\00 \00(\00t\00h\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00@\0e\1b\0eG\0e\19\0e!\0e\19\0e8\0e)\0e\"\0eL\0e*\0e8\0e\14\0e\1b\0e#\0e0\0e@\0e*\0e#\0e4\0e\10\0e@\0e%\0e4\0e(\0e\04\0e8\0e\13\0e\04\0eH\0e2\0e \00 \00\01\0e\'\0eH\0e2\0e\1a\0e#\0e#\0e\14\0e2\0e\1d\0e9\0e\07\0e*\0e1\0e\15\0e\'\0eL\0e@\0e\14\0e#\0e1\0e\08\0e\t\0e2\0e\19\0e\n\00 \00 \00\08\0e\07\0e\1d\0eH\0e2\0e\1f\0e1\0e\19\0e\1e\0e1\0e\12\0e\19\0e2\0e\'\0e4\0e\n\0e2\0e\01\0e2\0e#\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00-\0e\"\0eH\0e2\0e%\0eI\0e2\0e\07\0e\1c\0e%\0e2\0e\r\0e$\0eE\0e@\0e\02\0eH\0e\19\0e\06\0eH\0e2\0e\1a\0e5\0e\11\0e2\0eC\0e\04\0e#\0e\n\00 \00 \00D\0e!\0eH\0e\16\0e7\0e-\0eB\0e\17\0e)\0eB\0e\01\0e#\0e\18\0eA\0e\n\0eH\0e\07\0e\0b\0e1\0e\14\0e.\0e6\0e\14\0e.\0e1\0e\14\0e\14\0eH\0e2\0e \00 \00 \00 \00 \00+\0e1\0e\14\0e-\0e \0e1\0e\"\0e@\0e+\0e!\0e7\0e-\0e\19\0e\01\0e5\0e,\0e2\0e-\0e1\0e\n\0e\0c\0e2\0e*\0e1\0e\"\0e\n\00 \00 \00\1b\0e\0f\0e4\0e\1a\0e1\0e\15\0e4\0e\1b\0e#\0e0\0e\1e\0e$\0e\15\0e4\0e\01\0e\0e\0e\01\0e3\0e+\0e\19\0e\14\0eC\0e\08\0e \00 \00 \00 \00 \00 \00 \00 \00\1e\0e9\0e\14\0e\08\0e2\0eC\0e+\0eI\0e\08\0eJ\0e0\0eF\0e \00\08\0eK\0e2\0eF\0e \00\19\0eH\0e2\0e\1f\0e1\0e\07\0e@\0e-\0e\"\0e \00/\0e\n\00\n\00 \00 \00[\00T\00h\00e\00 \00c\00o\00p\00y\00r\00i\00g\00h\00t\00 \00f\00o\00r\00 \00t\00h\00e\00 \00T\00h\00a\00i\00 \00e\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \00o\00w\00n\00e\00d\00 \00b\00y\00 \00T\00h\00e\00 \00C\00o\00m\00p\00u\00t\00e\00r\00\n\00 \00 \00A\00s\00s\00o\00c\00i\00a\00t\00i\00o\00n\00 \00o\00f\00 \00T\00h\00a\00i\00l\00a\00n\00d\00 \00u\00n\00d\00e\00r\00 \00t\00h\00e\00 \00R\00o\00y\00a\00l\00 \00P\00a\00t\00r\00o\00n\00a\00g\00e\00 \00o\00f\00 \00H\00i\00s\00 \00M\00a\00j\00e\00s\00t\00y\00 \00t\00h\00e\00\n\00 \00 \00K\00i\00n\00g\00.\00]\00\n\00\n\00T\00u\00r\00k\00i\00s\00h\00 \00(\00t\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00i\00j\00a\00m\00a\00l\001\01 \00h\00a\00s\00t\00a\00,\00 \00y\00a\00\1f\011\01z\00 \00_\01o\00f\00\f6\00r\00e\00 \00\e7\00a\00b\00u\00c\00a\00k\00 \00g\00\fc\00v\00e\00n\00d\00i\00.\00\n\00 \00 \00(\00=\00P\00a\00t\00i\00e\00n\00t\00 \00w\00i\00t\00h\00 \00p\00a\00j\00a\00m\00a\00s\00,\00 \00t\00r\00u\00s\00t\00e\00d\00 \00s\00w\00a\00r\00t\00h\00y\00 \00d\00r\00i\00v\00e\00r\00 \00q\00u\00i\00c\00k\00l\00y\00)\00\n\00\n\00O\00t\00h\00e\00r\00\n\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c0\00\c8\00 \00/\00 \00c\003\00_\008\000\00 \00c\003\00_\008\008\00\n\00 \00 \00\d8S\cf\91 \00/\00 \00e\005\00_\008\00f\00_\009\008\00 \00e\009\00_\008\007\00_\008\00f\00\n\00 \00 \00A\d8\0e\dfA\d81\df \00/\00 \00f\000\00_\00a\000\00_\009\00c\00_\008\00e\00 \00f\000\00_\00a\000\00_\009\00c\00_\00b\001\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 23696) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00e\00n\00c\00o\00d\00i\00n\00g\00.\00t\00s\00") + (data $2 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\01\d87\dc\00\00\00\00\00\00\00\00") + (data $12 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00h\00i\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00R\d8b\df\00\00\00\00\00\00\00\00") + (data $15 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 732) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data $17 (i32.const 780) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\008\00\00\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00\00\00\00\00\00\00") + (data $18 (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\004\d8\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\fd\ff\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\1e\dd\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 956) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\002\003\00\00\004\005\006\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") + (data $23 (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00h\00i\00R\d8b\df\00\00\00\00") + (data $24 (i32.const 1068) "<3\00\00\00\00\00\00\00\00\00\00\02\00\00\00*3\00\00M\00a\00t\00h\00e\00m\00a\00t\00i\00c\00s\00 \00a\00n\00d\00 \00S\00c\00i\00e\00n\00c\00e\00s\00:\00\n\00\n\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00,\00 \00\00\"x\00\08\"\1d!:\00 \00\08#x\00\t# \00=\00 \00\12\"\n#\12\"x\00\0b#,\00 \00\b1\03 \00\'\" \00\ac\00\b2\03 \00=\00 \00\ac\00(\00\ac\00\b1\03 \00(\" \00\b2\03)\00,\00\n\00\n\00\15! \00\86\" \00\15!\80 \00\82\" \00$! \00\82\" \00\1a! \00\82\" \00\1d! \00\82\" \00\02!,\00 \00\a5\" \00<\00 \00a\00 \00`\" \00b\00 \00a\" \00c\00 \00d\" \00d\00 \00j\" \00\a4\" \00\d2! \00(\00A\00 \00\d4! \00B\00)\00,\00\n\00\n\002\00H\00\82 \00+\00 \00O\00\82 \00\cc! \002\00H\00\82 O\00,\00 \00R\00 \00=\00 \004\00.\007\00 \00k\00\a9\03,\00 \00\00# \002\000\000\00 \00m\00m\00\n\00\n\00L\00i\00n\00g\00u\00i\00s\00t\00i\00c\00s\00 \00a\00n\00d\00 \00d\00i\00c\00t\00i\00o\00n\00a\00r\00i\00e\00s\00:\00\n\00\n\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n\00\n\00Y\00 \00[\00\c8\02\8f\02p\00s\00i\00l\00T\02n\00]\00,\00 \00Y\00e\00n\00 \00[\00j\00[\02n\00]\00,\00 \00Y\00o\00g\00a\00 \00[\00\c8\02j\00o\00\d0\02g\00Q\02]\00\n\00\n\00A\00P\00L\00:\00\n\00\n\00(\00(\00V\00s#V\00)\00=\00s#t#V\00)\00/\00V\00\90!,\00V\00 \00 \00 \00 \007#\90!s#\92!t#\06\"\07\"\83\"> N#U#\08#\n\00\n\00N\00i\00c\00e\00r\00 \00t\00y\00p\00o\00g\00r\00a\00p\00h\00y\00 \00i\00n\00 \00p\00l\00a\00i\00n\00 \00t\00e\00x\00t\00 \00f\00i\00l\00e\00s\00:\00\n\00\n\00T%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%W%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\18 s\00i\00n\00g\00l\00e\00\19 \00a\00n\00d\00 \00\1c d\00o\00u\00b\00l\00e\00\1d \00q\00u\00o\00t\00e\00s\00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00C\00u\00r\00l\00y\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00s\00:\00 \00\1c W\00e\00\19 v\00e\00 \00b\00e\00e\00n\00 \00h\00e\00r\00e\00\1d \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00L\00a\00t\00i\00n\00-\001\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00 \00a\00n\00d\00 \00a\00c\00c\00e\00n\00t\00s\00:\00 \00\'\00\b4\00`\00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\1a d\00e\00u\00t\00s\00c\00h\00e\00\18 \00\1e A\00n\00f\00\fc\00h\00r\00u\00n\00g\00s\00z\00e\00i\00c\00h\00e\00n\00\1c \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00 ,\00 \00! ,\00 \000 ,\00 \00\" ,\00 \003\00\13 4\00,\00 \00\14 ,\00 \00\12\"5\00/\00+\005\00,\00 \00\"!,\00 \00& \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00A\00S\00C\00I\00I\00 \00s\00a\00f\00e\00t\00y\00 \00t\00e\00s\00t\00:\00 \001\00l\00I\00|\00,\00 \000\00O\00D\00,\00 \008\00B\00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00m%\00%\00%\00%\00%\00%\00%\00%\00%\00%n% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00t\00h\00e\00 \00e\00u\00r\00o\00 \00s\00y\00m\00b\00o\00l\00:\00 \00\02% \001\004\00.\009\005\00 \00\ac \00\02% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00p%\00%\00%\00%\00%\00%\00%\00%\00%\00%o% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Z%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%]%\n\00\n\00G\00r\00e\00e\00k\00 \00(\00i\00n\00 \00P\00o\00l\00y\00t\00o\00n\00i\00c\00)\00:\00\n\00\n\00T\00h\00e\00 \00G\00r\00e\00e\00k\00 \00a\00n\00t\00h\00e\00m\00:\00\n\00\n\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03y\1f\c8\03\b7\03\n\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03u\1f,\00\n\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03\n\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03w\1f\b1\03 \00\bc\03\b5\03\c4\03\c1\03q\1f\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.\00\n\00\n\00\bf\1f\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03y\1f\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03s\1f\bd\03\b7\03\n\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03u\1f\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03q\1f\n\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03s\1f\bd\03\b7\03\n\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03q\1f!\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00s\00p\00e\00e\00c\00h\00 \00o\00f\00 \00D\00e\00m\00o\00s\00t\00h\00e\00n\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \004\00t\00h\00 \00c\00e\00n\00t\00u\00r\00y\00 \00B\00C\00:\00\n\00\n\00\9f\03P\1f\c7\03v\1f \00\c4\03\b1\03P\1f\c4\03p\1f \00\c0\03\b1\03\c1\03w\1f\c3\03\c4\03\b1\03\c4\03\b1\03w\1f \00\bc\03\bf\03\b9\03 \00\b3\03\b9\03\b3\03\bd\03}\1f\c3\03\ba\03\b5\03\b9\03\bd\03,\00 \00f\1f \00\04\1f\bd\03\b4\03\c1\03\b5\03\c2\03 \00\bf\1f\91\03\b8\03\b7\03\bd\03\b1\03\d6\1f\bf\03\b9\03,\00\n\00E\1f\c4\03\b1\03\bd\03 \00\c4\03\bf\1f \00\b5\030\1f\c2\03 \00\c4\03p\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\b1\03 \00\00\1f\c0\03\bf\03\b2\03\bb\03s\1f\c8\03\c9\03 \00\ba\03\b1\03v\1f \00E\1f\c4\03\b1\03\bd\03 \00\c0\03\c1\03x\1f\c2\03 \00\c4\03\bf\03z\1f\c2\03\n\00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\bf\03S\1f\c2\03 \00\00\1f\ba\03\bf\03{\1f\c9\03\87\03 \00\c4\03\bf\03z\1f\c2\03 \00\bc\03r\1f\bd\03 \00\b3\03p\1f\c1\03 \00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03 \00A\1f\c1\03\f6\1f \00\b3\03\b9\03\b3\03\bd\03\bf\03\bc\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\c4\03p\1f \00\b4\03r\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\bf\1f\n\00\b5\030\1f\c2\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\c0\03\c1\03\bf\03u\1f\ba\03\bf\03\bd\03\c4\03\b1\03,\00 \00 \00e\1f\c3\03\b8\03\bf\1f \00E\1f\c0\03\c9\03\c2\03 \00\bc\03t\1f \00\c0\03\b5\03\b9\03\c3\03y\1f\bc\03\b5\03\b8\03\bf\1f \00\b1\03P\1f\c4\03\bf\03v\1f\n\00\c0\03\c1\03y\1f\c4\03\b5\03\c1\03\bf\03\bd\03 \00\ba\03\b1\03\ba\03\f6\1f\c2\03 \00\c3\03\ba\03s\1f\c8\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\b4\03s\1f\bf\03\bd\03.\00 \00\bf\03P\1f\b4\03s\1f\bd\03 \00\bf\03V\1f\bd\03 \00\04\1f\bb\03\bb\03\bf\03 \00\bc\03\bf\03\b9\03 \00\b4\03\bf\03\ba\03\bf\03\e6\1f\c3\03\b9\03\bd\03\n\00\bf\031\1f \00\c4\03p\1f \00\c4\03\bf\03\b9\03\b1\03\e6\1f\c4\03\b1\03 \00\bb\03s\1f\b3\03\bf\03\bd\03\c4\03\b5\03\c2\03 \00\"\1f \00\c4\03t\1f\bd\03 \00Q\1f\c0\03y\1f\b8\03\b5\03\c3\03\b9\03\bd\03,\00 \00\c0\03\b5\03\c1\03v\1f \00\'\1f\c2\03 \00\b2\03\bf\03\c5\03\bb\03\b5\03{\1f\b5\03\c3\03\b8\03\b1\03\b9\03,\00\n\00\bf\03P\1f\c7\03v\1f \00\c4\03t\1f\bd\03 \00\bf\03V\1f\c3\03\b1\03\bd\03 \00\c0\03\b1\03\c1\03\b9\03\c3\03\c4\03q\1f\bd\03\c4\03\b5\03\c2\03 \00Q\1f\bc\03\d6\1f\bd\03 \00\01\1f\bc\03\b1\03\c1\03\c4\03q\1f\bd\03\b5\03\b9\03\bd\03.\00 \00\10\1f\b3\03|\1f \00\b4\03s\1f,\00 \00E\1f\c4\03\b9\03 \00\bc\03s\1f\bd\03\n\00\c0\03\bf\03\c4\03\bf\1f \00\10\1f\be\03\c6\1f\bd\03 \00\c4\03\c7\1f \00\c0\03y\1f\bb\03\b5\03\b9\03 \00\ba\03\b1\03v\1f \00\c4\03p\1f \00\b1\03Q\1f\c4\03\c6\1f\c2\03 \00\14\1f\c7\03\b5\03\b9\03\bd\03 \00\00\1f\c3\03\c6\03\b1\03\bb\03\f6\1f\c2\03 \00\ba\03\b1\03v\1f \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03,\00 \00\ba\03\b1\03v\1f \00\bc\03q\1f\bb\03\bf\1f \00\00\1f\ba\03\c1\03\b9\03\b2\03\f6\1f\c2\03 \00\bf\036\1f\b4\03\b1\03\87\03 \00\10\1f\c0\03\bf\1f \00\10\1f\bc\03\bf\03\e6\1f \00\b3\03q\1f\c1\03,\00 \00\bf\03P\1f \00\c0\03q\1f\bb\03\b1\03\b9\03\n\00\b3\03s\1f\b3\03\bf\03\bd\03\b5\03\bd\03 \00\c4\03\b1\03\e6\1f\c4\03\bf\1f \00\00\1f\bc\03\c6\03y\1f\c4\03\b5\03\c1\03\b1\03\87\03 \00\bd\03\e6\1f\bd\03 \00\bc\03s\1f\bd\03\c4\03\bf\03\b9\03 \00\c0\03s\1f\c0\03\b5\03\b9\03\c3\03\bc\03\b1\03\b9\03 \00\c4\03\bf\03\e6\1f\b8\03\bf\1f \001\1f\ba\03\b1\03\bd\03x\1f\bd\03\n\00\c0\03\c1\03\bf\03\bb\03\b1\03\b2\03\b5\03\d6\1f\bd\03 \00!\1f\bc\03\d6\1f\bd\03 \00\b5\036\1f\bd\03\b1\03\b9\03 \00\c4\03t\1f\bd\03 \00\c0\03\c1\03}\1f\c4\03\b7\03\bd\03,\00 \00E\1f\c0\03\c9\03\c2\03 \00\c4\03\bf\03z\1f\c2\03 \00\c3\03\c5\03\bc\03\bc\03q\1f\c7\03\bf\03\c5\03\c2\03\n\00\c3\03}\1f\c3\03\bf\03\bc\03\b5\03\bd\03.\00 \00\10\1fp\1f\bd\03 \00\b3\03p\1f\c1\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\b2\03\b5\03\b2\03\b1\03w\1f\c9\03\c2\03 \00Q\1f\c0\03q\1f\c1\03\be\03\c3\1f,\00 \00\c4\03y\1f\c4\03\b5\03 \00\ba\03\b1\03v\1f \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03w\1f\bd\03\b1\03 \00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b5\03\c4\03\b1\03w\1f \00\c4\03\b9\03\c2\03 \00\ba\03\b1\03v\1f \00C\1f\bd\03 \00\c4\03\c1\03y\1f\c0\03\bf\03\bd\03 \00\10\1f\be\03s\1f\c3\03\c4\03\b1\03\b9\03 \00\c3\03\ba\03\bf\03\c0\03\b5\03\d6\1f\bd\03\87\03 \00\c0\03\c1\03v\1f\bd\03 \00\b4\03r\1f\n\00\c4\03t\1f\bd\03 \00\00\1f\c1\03\c7\03t\1f\bd\03 \00@\1f\c1\03\b8\03\f6\1f\c2\03 \00Q\1f\c0\03\bf\03\b8\03s\1f\c3\03\b8\03\b1\03\b9\03,\00 \00\bc\03q\1f\c4\03\b1\03\b9\03\bf\03\bd\03 \00!\1f\b3\03\bf\03\e6\1f\bc\03\b1\03\b9\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\c6\1f\c2\03\n\00\c4\03\b5\03\bb\03\b5\03\c5\03\c4\03\c6\1f\c2\03 \00A\1f\bd\03\c4\03\b9\03\bd\03\bf\03\e6\1f\bd\03 \00\c0\03\bf\03\b9\03\b5\03\d6\1f\c3\03\b8\03\b1\03\b9\03 \00\bb\03y\1f\b3\03\bf\03\bd\03.\00\n\00\n\00\94\03\b7\03\bc\03\bf\03\c3\03\b8\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\93\03\fd\1f \00\bf\1f\9f\03\bb\03\c5\03\bd\03\b8\03\b9\03\b1\03\ba\03x\1f\c2\03\n\00\n\00G\00e\00o\00r\00g\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\d2\10\d7\10\ee\10\dd\10\d5\10\d7\10 \00\d0\10\ee\10\da\10\d0\10\d5\10\d4\10 \00\d2\10\d0\10\d8\10\d0\10\e0\10\dd\10\d7\10 \00\e0\10\d4\10\d2\10\d8\10\e1\10\e2\10\e0\10\d0\10\ea\10\d8\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\db\10\d4\10\d0\10\d7\10\d4\10 \00\e1\10\d0\10\d4\10\e0\10\d7\10\d0\10\e8\10\dd\10\e0\10\d8\10\e1\10\dd\10\n\00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10\d6\10\d4\10 \00\d3\10\d0\10\e1\10\d0\10\e1\10\ec\10\e0\10\d4\10\d1\10\d0\10\d3\10,\00 \00\e0\10\dd\10\db\10\d4\10\da\10\d8\10\ea\10 \00\d2\10\d0\10\d8\10\db\10\d0\10\e0\10\d7\10\d4\10\d1\10\d0\10 \001\000\00-\001\002\00 \00\db\10\d0\10\e0\10\e2\10\e1\10,\00\n\00\e5\10.\00 \00\db\10\d0\10\d8\10\dc\10\ea\10\e8\10\d8\10,\00 \00\d2\10\d4\10\e0\10\db\10\d0\10\dc\10\d8\10\d0\10\e8\10\d8\10.\00 \00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10 \00\e8\10\d4\10\f0\10\d9\10\e0\10\d4\10\d1\10\e1\10 \00\d4\10\e0\10\d7\10\d0\10\d3\10 \00\db\10\e1\10\dd\10\e4\10\da\10\d8\10\dd\10\e1\10\n\00\d4\10\e5\10\e1\10\de\10\d4\10\e0\10\e2\10\d4\10\d1\10\e1\10 \00\d8\10\e1\10\d4\10\d7\10 \00\d3\10\d0\10\e0\10\d2\10\d4\10\d1\10\e8\10\d8\10 \00\e0\10\dd\10\d2\10\dd\10\e0\10\d8\10\ea\10\d0\10\d0\10 \00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d4\10\e2\10\d8\10 \00\d3\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10,\00\n\00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d0\10\ea\10\d8\10\dd\10\dc\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10 \00\d3\10\d0\10 \00\da\10\dd\10\d9\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10,\00 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d0\10\n\00\dd\10\de\10\d4\10\e0\10\d0\10\ea\10\d8\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e1\10\d0\10,\00 \00\d3\10\d0\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d8\10\d7\10 \00\de\10\e0\10\dd\10\d2\10\e0\10\d0\10\db\10\d4\10\d1\10\e8\10\d8\10,\00 \00\e8\10\e0\10\d8\10\e4\10\e2\10\d4\10\d1\10\e8\10\d8\10,\00\n\00\e2\10\d4\10\e5\10\e1\10\e2\10\d4\10\d1\10\d8\10\e1\10 \00\d3\10\d0\10\db\10\e3\10\e8\10\d0\10\d5\10\d4\10\d1\10\d0\10\e1\10\d0\10 \00\d3\10\d0\10 \00\db\10\e0\10\d0\10\d5\10\d0\10\da\10\d4\10\dc\10\dd\10\d5\10\d0\10\dc\10 \00\d9\10\dd\10\db\10\de\10\d8\10\e3\10\e2\10\d4\10\e0\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e8\10\d8\10.\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\17\040\04@\045\043\048\04A\04B\04@\048\04@\04C\049\04B\045\04A\04L\04 \00A\045\049\04G\040\04A\04 \00=\040\04 \00\14\045\04A\04O\04B\04C\04N\04 \00\1c\045\046\044\04C\04=\040\04@\04>\044\04=\04C\04N\04 \00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04N\04 \00?\04>\04\n\00U\00n\00i\00c\00o\00d\00e\00,\00 \00:\04>\04B\04>\04@\040\04O\04 \00A\04>\04A\04B\04>\048\04B\04A\04O\04 \001\000\00-\001\002\00 \00<\040\04@\04B\040\04 \001\009\009\007\00 \003\04>\044\040\04 \002\04 \00\1c\040\049\04=\04F\045\04 \002\04 \00\13\045\04@\04<\040\04=\048\048\04.\00\n\00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04O\04 \00A\04>\041\045\04@\045\04B\04 \00H\048\04@\04>\04:\048\049\04 \00:\04@\04C\043\04 \00M\04:\04A\04?\045\04@\04B\04>\042\04 \00?\04>\04 \00 \002\04>\04?\04@\04>\04A\040\04<\04 \003\04;\04>\041\040\04;\04L\04=\04>\043\04>\04\n\00\18\04=\04B\045\04@\04=\045\04B\040\04 \008\04 \00U\00n\00i\00c\00o\00d\00e\00,\00 \00;\04>\04:\040\04;\048\047\040\04F\048\048\04 \008\04 \008\04=\04B\045\04@\04=\040\04F\048\04>\04=\040\04;\048\047\040\04F\048\048\04,\00 \002\04>\04?\04;\04>\04I\045\04=\048\04N\04 \008\04\n\00?\04@\048\04<\045\04=\045\04=\048\04N\04 \00U\00n\00i\00c\00o\00d\00e\00 \002\04 \00@\040\047\04;\048\04G\04=\04K\04E\04 \00>\04?\045\04@\040\04F\048\04>\04=\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04 \008\04 \00?\04@\04>\043\04@\040\04<\04<\04=\04K\04E\04\n\00?\04@\048\04;\04>\046\045\04=\048\04O\04E\04,\00 \00H\04@\048\04D\04B\040\04E\04,\00 \002\045\04@\04A\04B\04:\045\04 \008\04 \00<\04=\04>\043\04>\04O\047\04K\04G\04=\04K\04E\04 \00:\04>\04<\04?\04L\04N\04B\045\04@\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04.\00\n\00\n\00T\00h\00a\00i\00 \00(\00U\00C\00S\00 \00L\00e\00v\00e\00l\00 \002\00)\00:\00\n\00\n\00E\00x\00c\00e\00r\00p\00t\00 \00f\00r\00o\00m\00 \00a\00 \00p\00o\00e\00t\00r\00y\00 \00o\00n\00 \00T\00h\00e\00 \00R\00o\00m\00a\00n\00c\00e\00 \00o\00f\00 \00T\00h\00e\00 \00T\00h\00r\00e\00e\00 \00K\00i\00n\00g\00d\00o\00m\00s\00 \00(\00a\00 \00C\00h\00i\00n\00e\00s\00e\00\n\00c\00l\00a\00s\00s\00i\00c\00 \00\'\00S\00a\00n\00 \00G\00u\00a\00\'\00)\00:\00\n\00\n\00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00A\0e\1c\0eH\0e\19\0e\14\0e4\0e\19\0e.\0e1\0eH\0e\19\0e@\0e*\0e7\0eH\0e-\0e!\0eB\0e\17\0e#\0e!\0eA\0e*\0e\19\0e*\0e1\0e\07\0e@\0e\'\0e\n\0e \00 \00\1e\0e#\0e0\0e\1b\0e\01\0e@\0e\01\0e(\0e\01\0e-\0e\07\0e\1a\0e9\0eJ\0e\01\0e9\0eI\0e\02\0e6\0eI\0e\19\0eC\0e+\0e!\0eH\0e\n\00*\0e4\0e\1a\0e*\0e-\0e\07\0e\01\0e)\0e1\0e\15\0e#\0e4\0e\"\0eL\0e\01\0eH\0e-\0e\19\0e+\0e\19\0eI\0e2\0eA\0e%\0e\16\0e1\0e\14\0eD\0e\1b\0e \00 \00 \00 \00 \00 \00 \00*\0e-\0e\07\0e-\0e\07\0e\04\0eL\0eD\0e\0b\0e#\0eI\0eB\0e\07\0eH\0e@\0e\02\0e%\0e2\0e@\0e\1a\0e2\0e\1b\0e1\0e\r\0e\r\0e2\0e\n\00 \00 \00\17\0e#\0e\07\0e\19\0e1\0e\1a\0e\16\0e7\0e-\0e\02\0e1\0e\19\0e\17\0e5\0e@\0e\1b\0eG\0e\19\0e\17\0e5\0eH\0e\1e\0e6\0eH\0e\07\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\1a\0eI\0e2\0e\19\0e@\0e!\0e7\0e-\0e\07\0e\08\0e6\0e\07\0e\'\0e4\0e\1b\0e#\0e4\0e\15\0e@\0e\1b\0eG\0e\19\0e\19\0e1\0e\01\0e+\0e\19\0e2\0e\n\00B\0e.\0e\08\0e4\0eK\0e\19\0e@\0e#\0e5\0e\"\0e\01\0e\17\0e1\0e\1e\0e\17\0e1\0eH\0e\'\0e+\0e1\0e\'\0e@\0e!\0e7\0e-\0e\07\0e!\0e2\0e \00 \00 \00 \00 \00 \00 \00 \00 \00+\0e!\0e2\0e\"\0e\08\0e0\0e\06\0eH\0e2\0e!\0e\14\0e\n\0e1\0eH\0e\'\0e\15\0e1\0e\'\0e*\0e3\0e\04\0e1\0e\r\0e\n\00 \00 \00@\0e+\0e!\0e7\0e-\0e\19\0e\02\0e1\0e\1a\0eD\0e*\0eD\0e%\0eH\0e@\0e*\0e7\0e-\0e\08\0e2\0e\01\0e@\0e\04\0e+\0e2\0e \00 \00 \00 \00 \00 \00#\0e1\0e\1a\0e+\0e!\0e2\0e\1b\0eH\0e2\0e@\0e\02\0eI\0e2\0e!\0e2\0e@\0e%\0e\"\0e-\0e2\0e*\0e1\0e\r\0e\n\00\1d\0eH\0e2\0e\"\0e-\0eI\0e-\0e\07\0e-\0e8\0eI\0e\19\0e\"\0e8\0eA\0e\"\0e\01\0eC\0e+\0eI\0eA\0e\15\0e\01\0e\01\0e1\0e\19\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00C\0e\n\0eI\0e*\0e2\0e\'\0e\19\0e1\0eI\0e\19\0e@\0e\1b\0eG\0e\19\0e\n\0e\19\0e\'\0e\19\0e\n\0e7\0eH\0e\19\0e\n\0e\'\0e\19\0eC\0e\08\0e\n\00 \00 \00\1e\0e%\0e1\0e\19\0e%\0e4\0e\t\0e8\0e\"\0e\01\0e8\0e\"\0e\01\0e5\0e\01\0e%\0e1\0e\1a\0e\01\0eH\0e-\0e@\0e+\0e\15\0e8\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\n\0eH\0e2\0e\07\0e-\0e2\0e@\0e\1e\0e(\0e\08\0e#\0e4\0e\07\0e+\0e\19\0e2\0e\1f\0eI\0e2\0e#\0eI\0e-\0e\07\0eD\0e+\0eI\0e\n\00\15\0eI\0e-\0e\07\0e#\0e\1a\0e#\0e2\0e\06\0eH\0e2\0e\1f\0e1\0e\19\0e\08\0e\19\0e\1a\0e#\0e#\0e%\0e1\0e\"\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00$\0eE\0e+\0e2\0eC\0e\04\0e#\0e\04\0eI\0e3\0e\n\0e9\0e\01\0e9\0eI\0e\1a\0e#\0e#\0e%\0e1\0e\07\0e\01\0eL\0e \00/\0e\n\00\n\00(\00T\00h\00e\00 \00a\00b\00o\00v\00e\00 \00i\00s\00 \00a\00 \00t\00w\00o\00-\00c\00o\00l\00u\00m\00n\00 \00t\00e\00x\00t\00.\00 \00I\00f\00 \00c\00o\00m\00b\00i\00n\00i\00n\00g\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00s\00 \00a\00r\00e\00 \00h\00a\00n\00d\00l\00e\00d\00\n\00c\00o\00r\00r\00e\00c\00t\00l\00y\00,\00 \00t\00h\00e\00 \00l\00i\00n\00e\00s\00 \00o\00f\00 \00t\00h\00e\00 \00s\00e\00c\00o\00n\00d\00 \00c\00o\00l\00u\00m\00n\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00a\00l\00i\00g\00n\00e\00d\00 \00w\00i\00t\00h\00 \00t\00h\00e\00\n\00|\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00 \00a\00b\00o\00v\00e\00.\00)\00\n\00\n\00E\00t\00h\00i\00o\00p\00i\00a\00n\00:\00\n\00\n\00P\00r\00o\00v\00e\00r\00b\00s\00 \00i\00n\00 \00t\00h\00e\00 \00A\00m\00h\00a\00r\00i\00c\00 \00l\00a\00n\00g\00u\00a\00g\00e\00:\00\n\00\n\000\12\1b\12\ed\12 \00\a0\12\ed\12s\12(\125\12 \00\95\12\t\13%\12 \00\a0\12\ed\12\a8\120\125\12b\13\n\00e\12\0b\12 \00\ab\12\08\12\9d\12 \00\a5\12\95\12\f0\12\a0\12c\12t\12 \00`\12F\12\18\12 \13\9d\12b\13\n\00\0c\13%\13 \00\eb\12\08\12d\12q\12 \00A\12\1d\12%\13\93\12 \00\90\12\cd\12b\13\n\00\f0\12\00\12 \00`\12\15\12\r\12\19\12 \00E\12d\12 \00c\12\ed\12 \13#\13 \00\95\12#\13u\12 \00`\12\08\13\f0\12\08\12\cd\12b\13\n\00\e8\12\a0\12M\13 \00\c8\12\08\12\1d\12s\12 \00`\12E\12d\12 \00\a0\12\ed\12s\12=\12\1d\12b\13\n\00\a0\12\ed\12%\13 \00`\12`\12\0b\12 \00\f3\12\cb\12 \00p\12\18\12s\12b\13\n\002\12p\12(\12\t\13\19\12 \00\ed\12\f0\12(\12\r\13\19\12b\13\n\00@\125\12 \00`\12@\125\12e\13 \00\d5\12\95\12A\12\0b\12\r\12 \00`\12\a5\12\r\13)\12 \00\ed\12\04\12\f3\12\r\12b\13\n\00\f5\12-\12 \00b\12\eb\12e\12-\12 \00\a0\12\95\12`\123\12 \00\eb\125\12-\12b\13\n\000\12\cd\12 \00\a5\12\95\12\f0\12d\12q\12 \00\a5\12\95\12\05\13 \00\a5\12\95\12\f0\12 \00\t\13(\12d\12q\12 \00\a0\12\ed\12p\12\f3\12\f0\12-\12\1d\12b\13\n\00\a5\12\r\13\dc\12-\12 \00\e8\12\a8\12H\13p\12\cd\12\95\12 \00\t\13.\12.\12 \003\12\ed\12\d8\12\0b\13\cd\12 \00\a0\12\ed\12\f5\12-\12\1d\12b\13\n\00\e8\12\0e\13(\12d\12u\12 \00\0c\12c\12e\13 \00b\12\eb\12\e9\12u\12 \00\ed\125\12E\12 \00c\12\eb\12\e9\12u\12 \00\eb\12 \13\r\12E\12b\13\n\00%\12+\12 \00\a8\12\18\12M\13s\12u\12 \00\r\12\04\13\95\12 \00\0b\12K\13s\12u\12b\13\n\00\d3\12c\12\ed\12 \00\1b\12\f0\12*\12\eb\12 \00\e8\12\08\12\cd\12e\13 \00\r\13\95\12\f5\12 \00\ed\12\de\12 \00\ed\12\de\12+\12\r\12b\13\n\00\e8\12\a5\125\12\0b\12\1d\12 \00\a0\12\08\13)\12 \00\18\12\ab\12 \00\e8\12\a0\12\1e\12+\12 \00\a0\12\08\13)\12 \00\cb\12-\12\ab\12b\13\n\00p\12\95\12\0b\13\0e\12 \00b\12p\12I\13 \00p\12\18\12\r\126\12 \00c\12I\13b\13\n\00\c8\12\f3\12\05\13\05\12 \00\1b\12-\12 \00b\12\06\12\95\12 \00(\13-\125\12\05\12 \00\a0\12u\12\0b\120\12\cd\12b\13\n\00\a5\12\r\13-\12\05\12\95\12 \00`\12M\13+\12=\12\05\12 \00\r\12\ad\12 \00\d8\12-\12\0b\13b\13\n\00\n\00R\00u\00n\00e\00s\00:\00\n\00\n\00\bb\16\d6\16 \00\b3\16\b9\16\ab\16\a6\16 \00\a6\16\ab\16\cf\16 \00\bb\16\d6\16 \00\d2\16\a2\16\de\16\d6\16 \00\a9\16\be\16 \00\a6\16\ab\16\d7\16 \00\da\16\aa\16\be\16\de\16\d6\16 \00\be\16\a9\16\b1\16\a6\16\b9\16\d6\16\aa\16\b1\16\de\16\a2\16\d7\16 \00\b9\16\c1\16\a6\16 \00\a6\16\aa\16 \00\b9\16\d6\16\e5\16\ab\16\n\00\n\00(\00O\00l\00d\00 \00E\00n\00g\00l\00i\00s\00h\00,\00 \00w\00h\00i\00c\00h\00 \00t\00r\00a\00n\00s\00c\00r\00i\00b\00e\00d\00 \00i\00n\00t\00o\00 \00L\00a\00t\00i\00n\00 \00r\00e\00a\00d\00s\00 \00\'\00H\00e\00 \00c\00w\00a\00e\00t\00h\00 \00t\00h\00a\00t\00 \00h\00e\00\n\00b\00u\00d\00e\00 \00t\00h\00a\00e\00m\00 \00l\00a\00n\00d\00e\00 \00n\00o\00r\00t\00h\00w\00e\00a\00r\00d\00u\00m\00 \00w\00i\00t\00h\00 \00t\00h\00a\00 \00W\00e\00s\00t\00s\00a\00e\00.\00\'\00 \00a\00n\00d\00 \00m\00e\00a\00n\00s\00 \00\'\00H\00e\00 \00s\00a\00i\00d\00\n\00t\00h\00a\00t\00 \00h\00e\00 \00l\00i\00v\00e\00d\00 \00i\00n\00 \00t\00h\00e\00 \00n\00o\00r\00t\00h\00e\00r\00n\00 \00l\00a\00n\00d\00 \00n\00e\00a\00r\00 \00t\00h\00e\00 \00W\00e\00s\00t\00e\00r\00n\00 \00S\00e\00a\00.\00\'\00)\00\n\00\n\00B\00r\00a\00i\00l\00l\00e\00:\00\n\00\n\00L(\01(\'(\11( \00<(\01(\12( \00 \00M(\1c(\07(\11(9(0(\0e( \00c(\15(\0c(\n\00\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\19(\11(\01(\19(\12( \00\1e(\15( \00\03(\11(\1b(\14( \00:(\n(9(2( \00y(;(\11( \00\n(\0e( \00\1d(\15( \00\19(3(\03(\1e(\n\001(\01(\1e(\11(\'(;( \00\01(\03(3(\1e( \009(\01(\1e(2( \00y(\11( \00\17(\11(\1b(\n(\0c(;( \00\15(\0b( \00\19(\n(\0e( \00\03(%(\17(\n(\01(\07( \00:(\01(\0e(\n\00\0e(\n(\1b(\1d(+( \00\03(9( \009(\11( \00\n(\07(;(\1b(9(\r(\01(\1d(\02( \009(\11( \00\n(\07(;(\05(\02( \009(\11( \00%(\1d(\19(;(\1e(\01(\05(;(\02(\n\00\01(\1d(\19( \009(\11( \00!(\n(\11(\0b( \00\r(3(\17(\1d(;(2( \00N(\n(\17(\15(\15(\1b(\11( \00\0e(\n(\1b(\1d(+( \00\n(\1e(2( \00A(\1d(\19(\n\00N(\n(\17(\15(\15(\1b(\11(0(\0e( \00\1d(\01(\r(\11( \00:(\01(\0e( \00\1b(\15(\15(\19( \00%(\0f(\15(\1d( \000(a(\01(\1d(\1b(\11(\02( \00\0b(\15(\17( \00\01(\1d(9(9(\14(\1b( \00\19(\11(\n\00!(\15(\0e(\11( \00\1e(\15( \00\0f(%(\1e( \00\19(\n(\0e( \00\19(\01(\1d(\19( \00\1e(\15(2(\n\00\n\00U(\07(\19( \00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00M(\14(\19(\16( \00J( \00\19(\15(\1d(0(\1e( \00\r(\11(\01(\1d( \00\1e(\15( \00\0e(\01(9( \009(\01(\1e( \00J( \00\05(\1d(*(\02( \00\15(\0b( \00\r(9(\n\00*(\1d( \00\05(\1d(*(\07(+(\1b(\11(\02( \001(\01(\1e( \009(;(\11( \00\n(\0e( \00\0f(\1c(\1e(\n(\n(%(\07(\1c(\07(9( \00\19(\11(\01(\19( \00\01(\03(3(\1e(\n\00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2( \00J( \00\r(\n(#(\1e( \00\19(\01(\'(\11( \00\03(\11(2( \00\14(\n(\07(\14(+(\02( \00\r(9(\0e(\11(\07(\0b(\02( \00\1e(\15(\n\00\17(\11(\1b(\1c(\19( \00\01( \00\n(\15(\0b(\0b(\14($(\1d(\01(\n(\07( \00\01(\0e( \009(\11( \00\19(\11(\01(\19(\11(\0c( \00\0f(\n(\11(\n(\11( \00\15(\0b( \00\n(\17(\15(\1d(\r(\15(\1d(\1b(;(9(\n\00\14( \009(\11( \00\1e(\17(\01(\19(\11(2( \00C(%(\1e( \009(\11( \00:(\n(\0e(\19(\15(\r( \00\15(\0b( \003(\17( \00\01(\1d(\n(\11(\0c(\15(\17(\0e(\n\00\n(\0e( \00\14( \009(\11( \00\0e(\n(\r(\n(\07(\11(\06( \00\01(\1d(\19( \00\r(9( \00%(\1d(\19(\01(\07(\07(*(+( \00\19(\01(\1d(\19(\0e(\n\00)(\01(\07(\07( \00\1d(\15(\1e( \00\19(\n(\0c(%(\17(\03( \00\n(\1e(\02( \00\15(\17( \009(\11( \00J(3(\1d(\1e(\17(9(0(\0e( \00\19(\15(\1d(\11( \00\0b(\15(\17(2( \00y(3(\n\00:(\n(\07(\07( \009(;(\11(\0b(\15(\17(\11( \00\0f(;(\r(\n(\1e( \00\r(\11( \00\1e(\15( \00\17(\11(\0f(\11(\01(\1e(\02( \00\11(\r(\0f(\19(\01(\1e(\n(\n(\01(\07(\07(9(\02( \009(\01(\1e(\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00(\00T\00h\00e\00 \00f\00i\00r\00s\00t\00 \00c\00o\00u\00p\00l\00e\00 \00o\00f\00 \00p\00a\00r\00a\00g\00r\00a\00p\00h\00s\00 \00o\00f\00 \00\"\00A\00 \00C\00h\00r\00i\00s\00t\00m\00a\00s\00 \00C\00a\00r\00o\00l\00\"\00 \00b\00y\00 \00D\00i\00c\00k\00e\00n\00s\00)\00\n\00\n\00C\00o\00m\00p\00a\00c\00t\00 \00f\00o\00n\00t\00 \00s\00e\00l\00e\00c\00t\00i\00o\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00x\00t\00:\00\n\00\n\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/\000\001\002\003\004\005\006\007\008\009\00\n\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\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\n\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\n\00\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10\n\00\n\00G\00r\00e\00e\00t\00i\00n\00g\00s\00 \00i\00n\00 \00v\00a\00r\00i\00o\00u\00s\00 \00l\00a\00n\00g\00u\00a\00g\00e\00s\00:\00\n\00\n\00H\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00,\00 \00\9a\03\b1\03\bb\03\b7\03\bc\03s\1f\c1\03\b1\03 \00\ba\03y\1f\c3\03\bc\03\b5\03,\00 \00\b30\f30\cb0\c10\cf0\n\00\n\00B\00o\00x\00 \00d\00r\00a\00w\00i\00n\00g\00 \00a\00l\00i\00g\00n\00m\00e\00n\00t\00 \00t\00e\00s\00t\00s\00:\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\88%\n\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\89%\n\00T%P%P%f%P%P%W% \00 \00\0c%\00%\00%,%\00%\00%\10% \00 \00m%\00%\00%,%\00%\00%n% \00 \00m%\00%\00%,%\00%\00%n% \00 \00\0f%\01%\01%3%\01%\01%\13% \00 \00\0e%\12%\0f%\11% \00 \00 \00w% \00 \00{% \00\0f%/%\13% \00\0c%0%\10% \00 \00 \00 \00\8a% \00q%r%q%r%s%s%s%\n\00Q%\0c%\00%h%\00%\10%Q% \00 \00\02%T%P%g%P%W%\02% \00 \00\02%R%P%j%P%U%\02% \00 \00\02%S%\00%A%\00%V%\02% \00 \00\03%\0c%\00%B%\00%\10%\03% \00 \00\17%C%D%\19% \00 \00v%<%t%z%K%x% %<%(% \00\1d%K%%% \00 \00 \00 \00\8b% \00r%q%r%q%s%s%s%\n\00Q%\02%r% \00q%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00\7f% \00\02%\03% \00 \00\r%E%F%\13% \00 \00 \00u% \00 \00y% \00\17%7%\1b% \00\14%8%\18% \00 \00 \00 \00\8c% \00q%r%q%r%s%s%s%\n\00`%a% \00s% \00^%c% \00 \00\1c%b% \00 \00 \00_%$% \00 \00\1c%<%\00%<%\00%<%$% \00 \00\1c%k%\00%B%\00%k%$% \00 \00#%?%~%<%|%?%+% \00 \00\15%\1b%\16%\1a% \00 \00 \00 \00 \00\0c%\04%\04%\10% \00N% \00\0f%\05%\05%\13% \00\0b% \00\8d% \00r%q%r%q%s%s%s%\n\00Q%\02%q% \00r%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00}% \00\02%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8e%\n\00Q%\14%\00%e%\00%\18%Q% \00 \00\02%Z%P%d%P%]%\02% \00 \00\02%X%P%j%P%[%\02% \00 \00\02%Y%\00%@%\00%\\%\02% \00 \00\03%\14%\00%B%\00%\18%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8f%\n\00Z%P%P%i%P%P%]% \00 \00\14%\00%\00%4%\00%\00%\18% \00 \00p%\00%\00%4%\00%\00%o% \00 \00p%\00%\00%4%\00%\00%o% \00 \00\17%\01%\01%;%\01%\01%\1b% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\14%L%L%\18% \00N% \00\17%M%M%\1b% \00\0b% \00 \00\81%\82%\83%\84%\85%\86%\87%\88%\n\00\00\00") + (data $25 (i32.const 14188) "\8c\1d\00\00\00\00\00\00\00\00\00\00\02\00\00\00p\1d\00\00S\00e\00n\00t\00e\00n\00c\00e\00s\00 \00t\00h\00a\00t\00 \00c\00o\00n\00t\00a\00i\00n\00 \00a\00l\00l\00 \00l\00e\00t\00t\00e\00r\00s\00 \00c\00o\00m\00m\00o\00n\00l\00y\00 \00u\00s\00e\00d\00 \00i\00n\00 \00a\00 \00l\00a\00n\00g\00u\00a\00g\00e\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00M\00a\00r\00k\00u\00s\00 \00K\00u\00h\00n\00 \00<\00h\00t\00t\00p\00:\00/\00/\00w\00w\00w\00.\00c\00l\00.\00c\00a\00m\00.\00a\00c\00.\00u\00k\00/\00~\00m\00g\00k\002\005\00/\00>\00 \00-\00-\00 \002\000\001\002\00-\000\004\00-\001\001\00\n\00\n\00T\00h\00i\00s\00 \00i\00s\00 \00a\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00o\00f\00 \00a\00 \00p\00l\00a\00i\00n\00-\00t\00e\00x\00t\00 \00f\00i\00l\00e\00 \00e\00n\00c\00o\00d\00e\00d\00 \00i\00n\00 \00U\00T\00F\00-\008\00.\00\n\00\n\00\n\00D\00a\00n\00i\00s\00h\00 \00(\00d\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00Q\00u\00i\00z\00d\00e\00l\00t\00a\00g\00e\00r\00n\00e\00 \00s\00p\00i\00s\00t\00e\00 \00j\00o\00r\00d\00b\00\e6\00r\00 \00m\00e\00d\00 \00f\00l\00\f8\00d\00e\00,\00 \00m\00e\00n\00s\00 \00c\00i\00r\00k\00u\00s\00k\00l\00o\00v\00n\00e\00n\00\n\00 \00 \00W\00o\00l\00t\00h\00e\00r\00 \00s\00p\00i\00l\00l\00e\00d\00e\00 \00p\00\e5\00 \00x\00y\00l\00o\00f\00o\00n\00.\00\n\00 \00 \00(\00=\00 \00Q\00u\00i\00z\00 \00c\00o\00n\00t\00e\00s\00t\00a\00n\00t\00s\00 \00w\00e\00r\00e\00 \00e\00a\00t\00i\00n\00g\00 \00s\00t\00r\00a\00w\00b\00e\00r\00y\00 \00w\00i\00t\00h\00 \00c\00r\00e\00a\00m\00 \00w\00h\00i\00l\00e\00 \00W\00o\00l\00t\00h\00e\00r\00\n\00 \00 \00t\00h\00e\00 \00c\00i\00r\00c\00u\00s\00 \00c\00l\00o\00w\00n\00 \00p\00l\00a\00y\00e\00d\00 \00o\00n\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00.\00)\00\n\00\n\00G\00e\00r\00m\00a\00n\00 \00(\00d\00e\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00F\00a\00l\00s\00c\00h\00e\00s\00 \00\dc\00b\00e\00n\00 \00v\00o\00n\00 \00X\00y\00l\00o\00p\00h\00o\00n\00m\00u\00s\00i\00k\00 \00q\00u\00\e4\00l\00t\00 \00j\00e\00d\00e\00n\00 \00g\00r\00\f6\00\df\00e\00r\00e\00n\00 \00Z\00w\00e\00r\00g\00\n\00 \00 \00(\00=\00 \00W\00r\00o\00n\00g\00f\00u\00l\00 \00p\00r\00a\00c\00t\00i\00c\00i\00n\00g\00 \00o\00f\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00 \00m\00u\00s\00i\00c\00 \00t\00o\00r\00t\00u\00r\00e\00s\00 \00e\00v\00e\00r\00y\00 \00l\00a\00r\00g\00e\00r\00 \00d\00w\00a\00r\00f\00)\00\n\00\n\00 \00 \00Z\00w\00\f6\00l\00f\00 \00B\00o\00x\00k\00\e4\00m\00p\00f\00e\00r\00 \00j\00a\00g\00t\00e\00n\00 \00E\00v\00a\00 \00q\00u\00e\00r\00 \00\fc\00b\00e\00r\00 \00d\00e\00n\00 \00S\00y\00l\00t\00e\00r\00 \00D\00e\00i\00c\00h\00\n\00 \00 \00(\00=\00 \00T\00w\00e\00l\00v\00e\00 \00b\00o\00x\00i\00n\00g\00 \00f\00i\00g\00h\00t\00e\00r\00s\00 \00h\00u\00n\00t\00e\00d\00 \00E\00v\00a\00 \00a\00c\00r\00o\00s\00s\00 \00t\00h\00e\00 \00d\00i\00k\00e\00 \00o\00f\00 \00S\00y\00l\00t\00)\00\n\00\n\00 \00 \00H\00e\00i\00z\00\f6\00l\00r\00\fc\00c\00k\00s\00t\00o\00\df\00a\00b\00d\00\e4\00m\00p\00f\00u\00n\00g\00\n\00 \00 \00(\00=\00 \00f\00u\00e\00l\00 \00o\00i\00l\00 \00r\00e\00c\00o\00i\00l\00 \00a\00b\00s\00o\00r\00b\00e\00r\00)\00\n\00 \00 \00(\00j\00q\00v\00w\00x\00y\00 \00m\00i\00s\00s\00i\00n\00g\00,\00 \00b\00u\00t\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00i\00n\00 \00o\00n\00e\00 \00w\00o\00r\00d\00)\00\n\00\n\00G\00r\00e\00e\00k\00 \00(\00e\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\93\03\b1\03\b6\03\ad\03\b5\03\c2\03 \00\ba\03\b1\03v\1f \00\bc\03\c5\03\c1\03\c4\03\b9\03r\1f\c2\03 \00\b4\03r\1f\bd\03 \00\b8\03p\1f \00\b2\03\c1\03\f6\1f \00\c0\03\b9\03p\1f \00\c3\03\c4\03x\1f \00\c7\03\c1\03\c5\03\c3\03\b1\03\c6\03v\1f \00\be\03\ad\03\c6\03\c9\03\c4\03\bf\03\n\00 \00 \00(\00=\00 \00N\00o\00 \00m\00o\00r\00e\00 \00s\00h\00a\00l\00l\00 \00I\00 \00s\00e\00e\00 \00a\00c\00a\00c\00i\00a\00s\00 \00o\00r\00 \00m\00y\00r\00t\00l\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \00g\00o\00l\00d\00e\00n\00 \00c\00l\00e\00a\00r\00i\00n\00g\00)\00\n\00\n\00 \00 \00\9e\03\b5\03\c3\03\ba\03\b5\03\c0\03\ac\03\b6\03\c9\03 \00\c4\03t\1f\bd\03 \00\c8\03\c5\03\c7\03\bf\03\c6\03\b8\03\cc\03\c1\03\b1\03 \00\b2\03\b4\03\b5\03\bb\03\c5\03\b3\03\bc\03\af\03\b1\03\n\00 \00 \00(\00=\00 \00I\00 \00u\00n\00c\00o\00v\00e\00r\00 \00t\00h\00e\00 \00s\00o\00u\00l\00-\00d\00e\00s\00t\00r\00o\00y\00i\00n\00g\00 \00a\00b\00h\00o\00r\00r\00e\00n\00c\00e\00)\00\n\00\n\00E\00n\00g\00l\00i\00s\00h\00 \00(\00e\00n\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00T\00h\00e\00 \00q\00u\00i\00c\00k\00 \00b\00r\00o\00w\00n\00 \00f\00o\00x\00 \00j\00u\00m\00p\00s\00 \00o\00v\00e\00r\00 \00t\00h\00e\00 \00l\00a\00z\00y\00 \00d\00o\00g\00\n\00\n\00S\00p\00a\00n\00i\00s\00h\00 \00(\00e\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00E\00l\00 \00p\00i\00n\00g\00\fc\00i\00n\00o\00 \00W\00e\00n\00c\00e\00s\00l\00a\00o\00 \00h\00i\00z\00o\00 \00k\00i\00l\00\f3\00m\00e\00t\00r\00o\00s\00 \00b\00a\00j\00o\00 \00e\00x\00h\00a\00u\00s\00t\00i\00v\00a\00 \00l\00l\00u\00v\00i\00a\00 \00y\00\n\00 \00 \00f\00r\00\ed\00o\00,\00 \00a\00\f1\00o\00r\00a\00b\00a\00 \00a\00 \00s\00u\00 \00q\00u\00e\00r\00i\00d\00o\00 \00c\00a\00c\00h\00o\00r\00r\00o\00.\00\n\00 \00 \00(\00C\00o\00n\00t\00a\00i\00n\00s\00 \00e\00v\00e\00r\00y\00 \00l\00e\00t\00t\00e\00r\00 \00a\00n\00d\00 \00e\00v\00e\00r\00y\00 \00a\00c\00c\00e\00n\00t\00,\00 \00b\00u\00t\00 \00n\00o\00t\00 \00e\00v\00e\00r\00y\00 \00c\00o\00m\00b\00i\00n\00a\00t\00i\00o\00n\00\n\00 \00 \00o\00f\00 \00v\00o\00w\00e\00l\00 \00+\00 \00a\00c\00u\00t\00e\00.\00)\00\n\00\n\00F\00r\00e\00n\00c\00h\00 \00(\00f\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00o\00r\00t\00e\00z\00 \00c\00e\00 \00v\00i\00e\00u\00x\00 \00w\00h\00i\00s\00k\00y\00 \00a\00u\00 \00j\00u\00g\00e\00 \00b\00l\00o\00n\00d\00 \00q\00u\00i\00 \00f\00u\00m\00e\00 \00s\00u\00r\00 \00s\00o\00n\00 \00\ee\00l\00e\00 \00i\00n\00t\00\e9\00r\00i\00e\00u\00r\00e\00,\00 \00\e0\00\n\00 \00 \00c\00\f4\00t\00\e9\00 \00d\00e\00 \00l\00\'\00a\00l\00c\00\f4\00v\00e\00 \00o\00v\00o\00\ef\00d\00e\00,\00 \00o\00\f9\00 \00l\00e\00s\00 \00b\00\fb\00c\00h\00e\00s\00 \00s\00e\00 \00c\00o\00n\00s\00u\00m\00e\00n\00t\00 \00d\00a\00n\00s\00 \00l\00\'\00\e2\00t\00r\00e\00,\00 \00c\00e\00\n\00 \00 \00q\00u\00i\00 \00l\00u\00i\00 \00p\00e\00r\00m\00e\00t\00 \00d\00e\00 \00p\00e\00n\00s\00e\00r\00 \00\e0\00 \00l\00a\00 \00c\00\e6\00n\00o\00g\00e\00n\00\e8\00s\00e\00 \00d\00e\00 \00l\00\'\00\ea\00t\00r\00e\00 \00d\00o\00n\00t\00 \00i\00l\00 \00e\00s\00t\00 \00q\00u\00e\00s\00t\00i\00o\00n\00\n\00 \00 \00d\00a\00n\00s\00 \00l\00a\00 \00c\00a\00u\00s\00e\00 \00a\00m\00b\00i\00g\00u\00\eb\00 \00e\00n\00t\00e\00n\00d\00u\00e\00 \00\e0\00 \00M\00o\00\ff\00,\00 \00d\00a\00n\00s\00 \00u\00n\00 \00c\00a\00p\00h\00a\00r\00n\00a\00\fc\00m\00 \00q\00u\00i\00,\00\n\00 \00 \00p\00e\00n\00s\00e\00-\00t\00-\00i\00l\00,\00 \00d\00i\00m\00i\00n\00u\00e\00 \00\e7\00\e0\00 \00e\00t\00 \00l\00\e0\00 \00l\00a\00 \00q\00u\00a\00l\00i\00t\00\e9\00 \00d\00e\00 \00s\00o\00n\00 \00S\01u\00v\00r\00e\00.\00\n\00\n\00 \00 \00l\00\'\00\ee\00l\00e\00 \00e\00x\00i\00g\00u\00\eb\00\n\00 \00 \00O\00\f9\00 \00l\00\'\00o\00b\00\e8\00s\00e\00 \00j\00u\00r\00y\00 \00m\00\fb\00r\00\n\00 \00 \00F\00\ea\00t\00e\00 \00l\00\'\00h\00a\00\ef\00 \00v\00o\00l\00a\00p\00\fc\00k\00,\00\n\00 \00 \00\c2\00n\00e\00 \00e\00x\00 \00a\00\e9\00q\00u\00o\00 \00a\00u\00 \00w\00h\00i\00s\00t\00,\00\n\00 \00 \00\d4\00t\00e\00z\00 \00c\00e\00 \00v\00S\01u\00 \00d\00\e9\00\e7\00u\00.\00\n\00\n\00 \00 \00L\00e\00 \00c\00S\01u\00r\00 \00d\00\e9\00\e7\00u\00 \00m\00a\00i\00s\00 \00l\00\'\00\e2\00m\00e\00 \00p\00l\00u\00t\00\f4\00t\00 \00n\00a\00\ef\00v\00e\00,\00 \00L\00o\00u\00\ff\00s\00 \00r\00\ea\00v\00a\00 \00d\00e\00 \00c\00r\00a\00p\00a\00\fc\00t\00e\00r\00 \00e\00n\00\n\00 \00 \00c\00a\00n\00o\00\eb\00 \00a\00u\00 \00d\00e\00l\00\e0\00 \00d\00e\00s\00 \00\ee\00l\00e\00s\00,\00 \00p\00r\00\e8\00s\00 \00d\00u\00 \00m\00\e4\00l\00s\00t\00r\00\f6\00m\00 \00o\00\f9\00 \00b\00r\00\fb\00l\00e\00n\00t\00 \00l\00e\00s\00 \00n\00o\00v\00\e6\00.\00\n\00\n\00I\00r\00i\00s\00h\00 \00G\00a\00e\00l\00i\00c\00 \00(\00g\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00D\00\'\00f\00h\00u\00a\00s\00c\00a\00i\00l\00 \00\cd\00o\00s\00a\00,\00 \00\da\00r\00m\00h\00a\00c\00 \00n\00a\00 \00h\00\d3\00i\00g\00h\00e\00 \00B\00e\00a\00n\00n\00a\00i\00t\00h\00e\00,\00 \00p\00\f3\00r\00 \00\c9\00a\00v\00a\00 \00a\00g\00u\00s\00 \00\c1\00d\00h\00a\00i\00m\00h\00\n\00\n\00H\00u\00n\00g\00a\00r\00i\00a\00n\00 \00(\00h\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c1\00r\00v\00\ed\00z\00t\00q\01r\00Q\01 \00t\00\fc\00k\00\f6\00r\00f\00\fa\00r\00\f3\00g\00\e9\00p\00\n\00 \00 \00(\00=\00 \00f\00l\00o\00o\00d\00-\00p\00r\00o\00o\00f\00 \00m\00i\00r\00r\00o\00r\00-\00d\00r\00i\00l\00l\00i\00n\00g\00 \00m\00a\00c\00h\00i\00n\00e\00,\00 \00o\00n\00l\00y\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00)\00\n\00\n\00I\00c\00e\00l\00a\00n\00d\00i\00c\00 \00(\00i\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00K\00\e6\00m\00i\00 \00n\00\fd\00 \00\f6\00x\00i\00 \00h\00\e9\00r\00 \00y\00k\00i\00s\00t\00 \00\fe\00j\00\f3\00f\00u\00m\00 \00n\00\fa\00 \00b\00\e6\00\f0\00i\00 \00v\00\ed\00l\00 \00o\00g\00 \00\e1\00d\00r\00e\00p\00a\00\n\00\n\00 \00 \00S\00\e6\00v\00\f6\00r\00 \00g\00r\00\e9\00t\00 \00\e1\00\f0\00a\00n\00 \00\fe\00v\00\ed\00 \00\fa\00l\00p\00a\00n\00 \00v\00a\00r\00 \00\f3\00n\00\fd\00t\00\n\00 \00 \00(\00s\00o\00m\00e\00 \00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00m\00i\00s\00s\00i\00n\00g\00)\00\n\00\n\00J\00a\00p\00a\00n\00e\00s\00e\00 \00(\00j\00p\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00H\00i\00r\00a\00g\00a\00n\00a\00:\00 \00(\00I\00r\00o\00h\00a\00)\00\n\00\n\00 \00 \00D0\8d0o0k0{0x0h0a0\8a0l0\8b0\920\n\00 \00 \00\8f0K0\880_0\8c0]0d0m0j0\890\800\n\00 \00 \00F0\900n0J0O0\840~0Q0u0S0H0f0\n\00 \00 \00B0U0M0\860\810\7f0W0\910r0\820[0Y0\n\00\n\00 \00 \00K\00a\00t\00a\00k\00a\00n\00a\00:\00\n\00\n\00 \00 \00\a40\ed0\cf0\cb0\db0\d80\c80 \00\c10\ea0\cc0\eb0\f20 \00\ef0\ab0\e80\bf0\ec0\bd0 \00\c40\cd0\ca0\e90\e00\n\00 \00 \00\a60\f00\ce0\aa0\af0\e40\de0 \00\b10\d50\b30\a80\c60 \00\a20\b50\ad0\e60\e10\df0\b70 \00\f10\d20\e20\bb0\b90\f30\n\00\n\00H\00e\00b\00r\00e\00w\00 \00(\00i\00w\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00?\00 \00\d3\05\d2\05 \00\e1\05\e7\05\e8\05\df\05 \00\e9\05\d8\05 \00\d1\05\d9\05\dd\05 \00\de\05\d0\05\d5\05\db\05\d6\05\d1\05 \00\d5\05\dc\05\e4\05\ea\05\e2\05 \00\de\05\e6\05\d0\05 \00\dc\05\d5\05 \00\d7\05\d1\05\e8\05\d4\05 \00\d0\05\d9\05\da\05 \00\d4\05\e7\05\dc\05\d9\05\d8\05\d4\05\n\00\n\00P\00o\00l\00i\00s\00h\00 \00(\00p\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00c\00h\00n\00\05\01\07\01 \00w\00 \00t\00\19\01 \00B\01\f3\00d\00z\01 \00j\00e\00|\01a\00 \00l\00u\00b\00 \00o\00[\01m\00 \00s\00k\00r\00z\00y\00D\01 \00f\00i\00g\00\n\00 \00 \00(\00=\00 \00T\00o\00 \00p\00u\00s\00h\00 \00a\00 \00h\00e\00d\00g\00e\00h\00o\00g\00 \00o\00r\00 \00e\00i\00g\00h\00t\00 \00b\00i\00n\00s\00 \00o\00f\00 \00f\00i\00g\00s\00 \00i\00n\00 \00t\00h\00i\00s\00 \00b\00o\00a\00t\00)\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00 \00(\00r\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\12\04 \00G\040\04I\040\04E\04 \00N\043\040\04 \006\048\04;\04 \001\04K\04 \00F\048\04B\04@\04C\04A\04?\00 \00\14\040\04,\00 \00=\04>\04 \00D\040\04;\04L\04H\048\042\04K\049\04 \00M\04:\047\045\04<\04?\04;\04O\04@\04!\00\n\00 \00 \00(\00=\00 \00W\00o\00u\00l\00d\00 \00a\00 \00c\00i\00t\00r\00u\00s\00 \00l\00i\00v\00e\00 \00i\00n\00 \00t\00h\00e\00 \00b\00u\00s\00h\00e\00s\00 \00o\00f\00 \00s\00o\00u\00t\00h\00?\00 \00Y\00e\00s\00,\00 \00b\00u\00t\00 \00o\00n\00l\00y\00 \00a\00 \00f\00a\00k\00e\00 \00o\00n\00e\00!\00)\00\n\00\n\00 \00 \00!\04J\045\04H\04L\04 \006\045\04 \005\04I\04Q\04 \00M\04B\048\04E\04 \00<\04O\043\04:\048\04E\04 \00D\04@\040\04=\04F\04C\047\04A\04:\048\04E\04 \001\04C\04;\04>\04:\04 \004\040\04 \002\04K\04?\045\049\04 \00G\040\04N\04\n\00 \00 \00(\00=\00 \00E\00a\00t\00 \00s\00o\00m\00e\00 \00m\00o\00r\00e\00 \00o\00f\00 \00t\00h\00e\00s\00e\00 \00f\00r\00e\00s\00h\00 \00F\00r\00e\00n\00c\00h\00 \00l\00o\00a\00f\00s\00 \00a\00n\00d\00 \00h\00a\00v\00e\00 \00s\00o\00m\00e\00 \00t\00e\00a\00)\00\n\00\n\00T\00h\00a\00i\00 \00(\00t\00h\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00@\0e\1b\0eG\0e\19\0e!\0e\19\0e8\0e)\0e\"\0eL\0e*\0e8\0e\14\0e\1b\0e#\0e0\0e@\0e*\0e#\0e4\0e\10\0e@\0e%\0e4\0e(\0e\04\0e8\0e\13\0e\04\0eH\0e2\0e \00 \00\01\0e\'\0eH\0e2\0e\1a\0e#\0e#\0e\14\0e2\0e\1d\0e9\0e\07\0e*\0e1\0e\15\0e\'\0eL\0e@\0e\14\0e#\0e1\0e\08\0e\t\0e2\0e\19\0e\n\00 \00 \00\08\0e\07\0e\1d\0eH\0e2\0e\1f\0e1\0e\19\0e\1e\0e1\0e\12\0e\19\0e2\0e\'\0e4\0e\n\0e2\0e\01\0e2\0e#\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00-\0e\"\0eH\0e2\0e%\0eI\0e2\0e\07\0e\1c\0e%\0e2\0e\r\0e$\0eE\0e@\0e\02\0eH\0e\19\0e\06\0eH\0e2\0e\1a\0e5\0e\11\0e2\0eC\0e\04\0e#\0e\n\00 \00 \00D\0e!\0eH\0e\16\0e7\0e-\0eB\0e\17\0e)\0eB\0e\01\0e#\0e\18\0eA\0e\n\0eH\0e\07\0e\0b\0e1\0e\14\0e.\0e6\0e\14\0e.\0e1\0e\14\0e\14\0eH\0e2\0e \00 \00 \00 \00 \00+\0e1\0e\14\0e-\0e \0e1\0e\"\0e@\0e+\0e!\0e7\0e-\0e\19\0e\01\0e5\0e,\0e2\0e-\0e1\0e\n\0e\0c\0e2\0e*\0e1\0e\"\0e\n\00 \00 \00\1b\0e\0f\0e4\0e\1a\0e1\0e\15\0e4\0e\1b\0e#\0e0\0e\1e\0e$\0e\15\0e4\0e\01\0e\0e\0e\01\0e3\0e+\0e\19\0e\14\0eC\0e\08\0e \00 \00 \00 \00 \00 \00 \00 \00\1e\0e9\0e\14\0e\08\0e2\0eC\0e+\0eI\0e\08\0eJ\0e0\0eF\0e \00\08\0eK\0e2\0eF\0e \00\19\0eH\0e2\0e\1f\0e1\0e\07\0e@\0e-\0e\"\0e \00/\0e\n\00\n\00 \00 \00[\00T\00h\00e\00 \00c\00o\00p\00y\00r\00i\00g\00h\00t\00 \00f\00o\00r\00 \00t\00h\00e\00 \00T\00h\00a\00i\00 \00e\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \00o\00w\00n\00e\00d\00 \00b\00y\00 \00T\00h\00e\00 \00C\00o\00m\00p\00u\00t\00e\00r\00\n\00 \00 \00A\00s\00s\00o\00c\00i\00a\00t\00i\00o\00n\00 \00o\00f\00 \00T\00h\00a\00i\00l\00a\00n\00d\00 \00u\00n\00d\00e\00r\00 \00t\00h\00e\00 \00R\00o\00y\00a\00l\00 \00P\00a\00t\00r\00o\00n\00a\00g\00e\00 \00o\00f\00 \00H\00i\00s\00 \00M\00a\00j\00e\00s\00t\00y\00 \00t\00h\00e\00\n\00 \00 \00K\00i\00n\00g\00.\00]\00\n\00\n\00T\00u\00r\00k\00i\00s\00h\00 \00(\00t\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00i\00j\00a\00m\00a\00l\001\01 \00h\00a\00s\00t\00a\00,\00 \00y\00a\00\1f\011\01z\00 \00_\01o\00f\00\f6\00r\00e\00 \00\e7\00a\00b\00u\00c\00a\00k\00 \00g\00\fc\00v\00e\00n\00d\00i\00.\00\n\00 \00 \00(\00=\00P\00a\00t\00i\00e\00n\00t\00 \00w\00i\00t\00h\00 \00p\00a\00j\00a\00m\00a\00s\00,\00 \00t\00r\00u\00s\00t\00e\00d\00 \00s\00w\00a\00r\00t\00h\00y\00 \00d\00r\00i\00v\00e\00r\00 \00q\00u\00i\00c\00k\00l\00y\00)\00\n\00\n\00O\00t\00h\00e\00r\00\n\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c0\00\c8\00 \00/\00 \00c\003\00_\008\000\00 \00c\003\00_\008\008\00\n\00 \00 \00\d8S\cf\91 \00/\00 \00e\005\00_\008\00f\00_\009\008\00 \00e\009\00_\008\007\00_\008\00f\00\n\00 \00 \00A\d8\0e\dfA\d81\df \00/\00 \00f\000\00_\00a\000\00_\009\00c\00_\008\00e\00 \00f\000\00_\00a\000\00_\009\00c\00_\00b\001\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 21760) "\04\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 "memory" (memory $0)) @@ -87,15 +77,6 @@ call $~lib/rt/common/OBJECT#get:rtSize return ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -160,7 +141,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 192 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -230,7 +211,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 192 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -247,7 +228,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 192 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -277,9 +258,9 @@ i32.load i32.gt_u if - i32.const 352 - i32.const 416 - i32.const 21 + i32.const 320 + i32.const 384 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -346,7 +327,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 224 + i32.const 192 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -498,7 +479,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -518,7 +499,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -581,7 +562,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -734,7 +715,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -751,7 +732,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -840,7 +821,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -883,7 +864,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -901,7 +882,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -969,7 +950,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1086,7 +1067,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1132,7 +1113,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1164,7 +1145,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1408,7 +1389,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1628,7 +1609,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 192 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1739,8 +1720,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 160 - i32.const 496 + i32.const 128 + i32.const 464 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1842,7 +1823,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1913,7 +1894,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2070,7 +2051,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2185,7 +2166,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2205,7 +2186,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 464 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2253,8 +2234,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 160 - i32.const 224 + i32.const 128 + i32.const 192 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2299,420 +2280,13 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 + i32.shr_u return ) (func $~lib/string/String.UTF16.encodeUnsafe (param $str i32) (param $len i32) (param $buf i32) (result i32) @@ -3124,9 +2698,9 @@ i32.const 2 i32.eq if - i32.const 2624 - i32.const 2688 - i32.const 742 + i32.const 688 + i32.const 752 + i32.const 745 i32.const 49 call $~lib/builtins/abort unreachable @@ -3291,6 +2865,7 @@ drop ) (func $start:std/string-encoding + call $std/string-encoding/testUTF16Length memory.size i32.const 16 i32.shl @@ -3299,16 +2874,15 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 272 + i32.const 240 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 304 + i32.const 272 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 448 + i32.const 416 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace - call $std/string-encoding/testUTF16Length call $std/string-encoding/testUTF16Encode call $std/string-encoding/testUTF16Decode call $std/string-encoding/testUTF16DecodeUnsafe @@ -3319,9 +2893,9 @@ call $std/string-encoding/testUTF8Decode call $std/string-encoding/testUTF8DecodeNullTerminated call $std/string-encoding/testUTF8DecodeUnsafe - i32.const 3024 + i32.const 1088 call $std/string-encoding/testRoundtrip - i32.const 16144 + i32.const 14208 call $std/string-encoding/testRoundtrip call $~lib/rt/itcms/__collect ) @@ -3333,20 +2907,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 56512 - i32.const 56560 + i32.const 54576 + i32.const 54624 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3355,196 +2925,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $std/string-encoding/testUTF16Length (local $0 i32) @@ -3568,7 +2969,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -3658,7 +3059,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 15 i32.const 3 call $~lib/builtins/abort @@ -3671,7 +3072,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -3684,7 +3085,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 17 i32.const 3 call $~lib/builtins/abort @@ -3697,7 +3098,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -3710,7 +3111,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 19 i32.const 3 call $~lib/builtins/abort @@ -3723,7 +3124,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 20 i32.const 3 call $~lib/builtins/abort @@ -3736,7 +3137,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -3749,7 +3150,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -3762,7 +3163,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 23 i32.const 3 call $~lib/builtins/abort @@ -3775,7 +3176,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 24 i32.const 3 call $~lib/builtins/abort @@ -3788,7 +3189,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 25 i32.const 3 call $~lib/builtins/abort @@ -3801,7 +3202,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 26 i32.const 3 call $~lib/builtins/abort @@ -3814,7 +3215,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -3994,7 +3395,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -4049,12 +3450,12 @@ local.get $3 i32.store local.get $3 - i32.const 128 + i32.const 528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -4078,7 +3479,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -4092,12 +3493,12 @@ local.get $3 i32.store local.get $3 - i32.const 2496 + i32.const 560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -4113,12 +3514,12 @@ local.get $3 i32.store local.get $3 - i32.const 2528 + i32.const 592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -4134,12 +3535,12 @@ local.get $3 i32.store local.get $3 - i32.const 2560 + i32.const 624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -4155,12 +3556,12 @@ local.get $3 i32.store local.get $3 - i32.const 2592 + i32.const 656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -4176,12 +3577,12 @@ local.get $3 i32.store local.get $3 - i32.const 128 + i32.const 528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 48 i32.const 3 call $~lib/builtins/abort @@ -4215,7 +3616,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 55 i32.const 3 call $~lib/builtins/abort @@ -4234,7 +3635,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -4374,7 +3775,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 63 i32.const 3 call $~lib/builtins/abort @@ -4387,7 +3788,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -4400,7 +3801,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -4413,7 +3814,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 66 i32.const 3 call $~lib/builtins/abort @@ -4426,7 +3827,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -4439,7 +3840,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -4452,7 +3853,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 69 i32.const 3 call $~lib/builtins/abort @@ -4465,7 +3866,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 70 i32.const 3 call $~lib/builtins/abort @@ -4478,7 +3879,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 71 i32.const 3 call $~lib/builtins/abort @@ -4491,7 +3892,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 72 i32.const 3 call $~lib/builtins/abort @@ -4504,7 +3905,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 73 i32.const 3 call $~lib/builtins/abort @@ -4560,7 +3961,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 80 i32.const 3 call $~lib/builtins/abort @@ -4573,7 +3974,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -4586,7 +3987,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 82 i32.const 3 call $~lib/builtins/abort @@ -4599,7 +4000,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -4612,7 +4013,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -4625,7 +4026,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 85 i32.const 3 call $~lib/builtins/abort @@ -4638,7 +4039,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 86 i32.const 3 call $~lib/builtins/abort @@ -4651,7 +4052,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 87 i32.const 3 call $~lib/builtins/abort @@ -4664,7 +4065,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 88 i32.const 3 call $~lib/builtins/abort @@ -4677,7 +4078,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 89 i32.const 3 call $~lib/builtins/abort @@ -4690,7 +4091,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 90 i32.const 3 call $~lib/builtins/abort @@ -4703,14 +4104,14 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 91 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2736 + i32.const 800 local.tee $str2 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -4746,7 +4147,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 94 i32.const 3 call $~lib/builtins/abort @@ -4797,7 +4198,7 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 880 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode @@ -4816,19 +4217,19 @@ local.get $1 i32.store local.get $1 - i32.const 2816 + i32.const 880 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 101 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 880 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode @@ -4847,19 +4248,19 @@ local.get $1 i32.store local.get $1 - i32.const 2848 + i32.const 912 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 103 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 944 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode @@ -4878,19 +4279,19 @@ local.get $1 i32.store local.get $1 - i32.const 2880 + i32.const 944 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 106 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 944 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode @@ -4909,12 +4310,12 @@ local.get $1 i32.store local.get $1 - i32.const 2848 + i32.const 912 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -4976,7 +4377,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -5040,14 +4441,14 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 120 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2912 + i32.const 976 local.tee $str2 i32.store offset=16 local.get $str2 @@ -5063,7 +4464,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 122 i32.const 3 call $~lib/builtins/abort @@ -5095,14 +4496,14 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 124 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2960 + i32.const 1024 local.tee $str3 i32.store offset=24 local.get $str3 @@ -5118,7 +4519,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -5147,7 +4548,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 127 i32.const 3 call $~lib/builtins/abort @@ -5190,7 +4591,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 129 i32.const 3 call $~lib/builtins/abort @@ -5251,12 +4652,12 @@ local.get $3 i32.store local.get $3 - i32.const 128 + i32.const 528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -5281,7 +4682,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 139 i32.const 3 call $~lib/builtins/abort @@ -5296,12 +4697,12 @@ local.get $3 i32.store local.get $3 - i32.const 2496 + i32.const 560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 140 i32.const 3 call $~lib/builtins/abort @@ -5318,12 +4719,12 @@ local.get $3 i32.store local.get $3 - i32.const 2560 + i32.const 624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -5340,12 +4741,12 @@ local.get $3 i32.store local.get $3 - i32.const 2592 + i32.const 656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 142 i32.const 3 call $~lib/builtins/abort @@ -5362,12 +4763,12 @@ local.get $3 i32.store local.get $3 - i32.const 128 + i32.const 528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 143 i32.const 3 call $~lib/builtins/abort @@ -5384,12 +4785,12 @@ local.get $3 i32.store local.get $3 - i32.const 2992 + i32.const 1056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 145 i32.const 3 call $~lib/builtins/abort @@ -5406,12 +4807,12 @@ local.get $3 i32.store local.get $3 - i32.const 2592 + i32.const 656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 146 i32.const 3 call $~lib/builtins/abort @@ -5428,12 +4829,12 @@ local.get $3 i32.store local.get $3 - i32.const 128 + i32.const 528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -5494,7 +4895,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 153 i32.const 3 call $~lib/builtins/abort @@ -5532,7 +4933,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -5543,153 +4944,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/string/String.UTF16.decodeUnsafe (param $buf i32) (param $len i32) (result i32) (local $str i32) (local $3 i32) @@ -5756,8 +5010,8 @@ i32.eqz if i32.const 0 - i32.const 2688 - i32.const 770 + i32.const 752 + i32.const 773 i32.const 7 call $~lib/builtins/abort unreachable @@ -5964,19 +5218,13 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 160 + i32.const 320 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2624 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1216 + i32.const 128 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2272 + i32.const 688 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index 516a206087..b59cdbe7de 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -2,12 +2,13 @@ (type $0 (func (param i32 i32) (result i32))) (type $1 (func)) (type $2 (func (param i32))) - (type $3 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -19,74 +20,55 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 57508)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 55572)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\0c\00\00\00\01\d87\dch\00i\00R\d8b\df") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) "<") - (data $20.1 (i32.const 3448) "\02\00\00\00,\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00e\00n\00c\00o\00d\00i\00n\00g\00.\00t\00s") - (data $21 (i32.const 3500) "\1c") - (data $21.1 (i32.const 3512) "\02\00\00\00\04\00\00\00\01\d87\dc") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\02\00\00\00\02\00\00\00h") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\02\00\00\00\04\00\00\00h\00i") - (data $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\02\00\00\00\04\00\00\00R\d8b\df") - (data $25 (i32.const 3628) "<") - (data $25.1 (i32.const 3640) "\02\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e") - (data $26 (i32.const 3692) ",") - (data $26.1 (i32.const 3704) "\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data $27 (i32.const 3740) "L") - (data $27.1 (i32.const 3752) "\02\00\00\008\00\00\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a") - (data $28 (i32.const 3820) "\1c") - (data $28.1 (i32.const 3832) "\02\00\00\00\02\00\00\004\d8") - (data $29 (i32.const 3852) "\1c") - (data $29.1 (i32.const 3864) "\02\00\00\00\02\00\00\00\fd\ff") - (data $30 (i32.const 3884) "\1c") - (data $30.1 (i32.const 3896) "\02\00\00\00\02\00\00\00\1e\dd") - (data $31 (i32.const 3916) ",") - (data $31.1 (i32.const 3928) "\02\00\00\00\0e\00\00\001\002\003\00\00\004\005\006") - (data $32 (i32.const 3964) "\1c") - (data $32.1 (i32.const 3976) "\02\00\00\00\06\00\00\001\002\003") - (data $33 (i32.const 3996) "\1c") - (data $33.1 (i32.const 4008) "\02\00\00\00\08\00\00\00h\00i\00R\d8b\df") - (data $34 (i32.const 4028) "<3") - (data $34.1 (i32.const 4040) "\02\00\00\00*3\00\00M\00a\00t\00h\00e\00m\00a\00t\00i\00c\00s\00 \00a\00n\00d\00 \00S\00c\00i\00e\00n\00c\00e\00s\00:\00\n\00\n\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00,\00 \00\00\"x\00\08\"\1d!:\00 \00\08#x\00\t# \00=\00 \00\12\"\n#\12\"x\00\0b#,\00 \00\b1\03 \00\'\" \00\ac\00\b2\03 \00=\00 \00\ac\00(\00\ac\00\b1\03 \00(\" \00\b2\03)\00,\00\n\00\n\00\15! \00\86\" \00\15!\80 \00\82\" \00$! \00\82\" \00\1a! \00\82\" \00\1d! \00\82\" \00\02!,\00 \00\a5\" \00<\00 \00a\00 \00`\" \00b\00 \00a\" \00c\00 \00d\" \00d\00 \00j\" \00\a4\" \00\d2! \00(\00A\00 \00\d4! \00B\00)\00,\00\n\00\n\002\00H\00\82 \00+\00 \00O\00\82 \00\cc! \002\00H\00\82 O\00,\00 \00R\00 \00=\00 \004\00.\007\00 \00k\00\a9\03,\00 \00\00# \002\000\000\00 \00m\00m\00\n\00\n\00L\00i\00n\00g\00u\00i\00s\00t\00i\00c\00s\00 \00a\00n\00d\00 \00d\00i\00c\00t\00i\00o\00n\00a\00r\00i\00e\00s\00:\00\n\00\n\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n\00\n\00Y\00 \00[\00\c8\02\8f\02p\00s\00i\00l\00T\02n\00]\00,\00 \00Y\00e\00n\00 \00[\00j\00[\02n\00]\00,\00 \00Y\00o\00g\00a\00 \00[\00\c8\02j\00o\00\d0\02g\00Q\02]\00\n\00\n\00A\00P\00L\00:\00\n\00\n\00(\00(\00V\00s#V\00)\00=\00s#t#V\00)\00/\00V\00\90!,\00V\00 \00 \00 \00 \007#\90!s#\92!t#\06\"\07\"\83\"> N#U#\08#\n\00\n\00N\00i\00c\00e\00r\00 \00t\00y\00p\00o\00g\00r\00a\00p\00h\00y\00 \00i\00n\00 \00p\00l\00a\00i\00n\00 \00t\00e\00x\00t\00 \00f\00i\00l\00e\00s\00:\00\n\00\n\00T%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%W%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\18 s\00i\00n\00g\00l\00e\00\19 \00a\00n\00d\00 \00\1c d\00o\00u\00b\00l\00e\00\1d \00q\00u\00o\00t\00e\00s\00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00C\00u\00r\00l\00y\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00s\00:\00 \00\1c W\00e\00\19 v\00e\00 \00b\00e\00e\00n\00 \00h\00e\00r\00e\00\1d \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00L\00a\00t\00i\00n\00-\001\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00 \00a\00n\00d\00 \00a\00c\00c\00e\00n\00t\00s\00:\00 \00\'\00\b4\00`\00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\1a d\00e\00u\00t\00s\00c\00h\00e\00\18 \00\1e A\00n\00f\00\fc\00h\00r\00u\00n\00g\00s\00z\00e\00i\00c\00h\00e\00n\00\1c \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00 ,\00 \00! ,\00 \000 ,\00 \00\" ,\00 \003\00\13 4\00,\00 \00\14 ,\00 \00\12\"5\00/\00+\005\00,\00 \00\"!,\00 \00& \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00A\00S\00C\00I\00I\00 \00s\00a\00f\00e\00t\00y\00 \00t\00e\00s\00t\00:\00 \001\00l\00I\00|\00,\00 \000\00O\00D\00,\00 \008\00B\00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00m%\00%\00%\00%\00%\00%\00%\00%\00%\00%n% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00t\00h\00e\00 \00e\00u\00r\00o\00 \00s\00y\00m\00b\00o\00l\00:\00 \00\02% \001\004\00.\009\005\00 \00\ac \00\02% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00p%\00%\00%\00%\00%\00%\00%\00%\00%\00%o% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Z%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%]%\n\00\n\00G\00r\00e\00e\00k\00 \00(\00i\00n\00 \00P\00o\00l\00y\00t\00o\00n\00i\00c\00)\00:\00\n\00\n\00T\00h\00e\00 \00G\00r\00e\00e\00k\00 \00a\00n\00t\00h\00e\00m\00:\00\n\00\n\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03y\1f\c8\03\b7\03\n\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03u\1f,\00\n\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03\n\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03w\1f\b1\03 \00\bc\03\b5\03\c4\03\c1\03q\1f\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.\00\n\00\n\00\bf\1f\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03y\1f\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03s\1f\bd\03\b7\03\n\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03u\1f\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03q\1f\n\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03s\1f\bd\03\b7\03\n\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03q\1f!\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00s\00p\00e\00e\00c\00h\00 \00o\00f\00 \00D\00e\00m\00o\00s\00t\00h\00e\00n\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \004\00t\00h\00 \00c\00e\00n\00t\00u\00r\00y\00 \00B\00C\00:\00\n\00\n\00\9f\03P\1f\c7\03v\1f \00\c4\03\b1\03P\1f\c4\03p\1f \00\c0\03\b1\03\c1\03w\1f\c3\03\c4\03\b1\03\c4\03\b1\03w\1f \00\bc\03\bf\03\b9\03 \00\b3\03\b9\03\b3\03\bd\03}\1f\c3\03\ba\03\b5\03\b9\03\bd\03,\00 \00f\1f \00\04\1f\bd\03\b4\03\c1\03\b5\03\c2\03 \00\bf\1f\91\03\b8\03\b7\03\bd\03\b1\03\d6\1f\bf\03\b9\03,\00\n\00E\1f\c4\03\b1\03\bd\03 \00\c4\03\bf\1f \00\b5\030\1f\c2\03 \00\c4\03p\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\b1\03 \00\00\1f\c0\03\bf\03\b2\03\bb\03s\1f\c8\03\c9\03 \00\ba\03\b1\03v\1f \00E\1f\c4\03\b1\03\bd\03 \00\c0\03\c1\03x\1f\c2\03 \00\c4\03\bf\03z\1f\c2\03\n\00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\bf\03S\1f\c2\03 \00\00\1f\ba\03\bf\03{\1f\c9\03\87\03 \00\c4\03\bf\03z\1f\c2\03 \00\bc\03r\1f\bd\03 \00\b3\03p\1f\c1\03 \00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03 \00A\1f\c1\03\f6\1f \00\b3\03\b9\03\b3\03\bd\03\bf\03\bc\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\c4\03p\1f \00\b4\03r\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\bf\1f\n\00\b5\030\1f\c2\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\c0\03\c1\03\bf\03u\1f\ba\03\bf\03\bd\03\c4\03\b1\03,\00 \00 \00e\1f\c3\03\b8\03\bf\1f \00E\1f\c0\03\c9\03\c2\03 \00\bc\03t\1f \00\c0\03\b5\03\b9\03\c3\03y\1f\bc\03\b5\03\b8\03\bf\1f \00\b1\03P\1f\c4\03\bf\03v\1f\n\00\c0\03\c1\03y\1f\c4\03\b5\03\c1\03\bf\03\bd\03 \00\ba\03\b1\03\ba\03\f6\1f\c2\03 \00\c3\03\ba\03s\1f\c8\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\b4\03s\1f\bf\03\bd\03.\00 \00\bf\03P\1f\b4\03s\1f\bd\03 \00\bf\03V\1f\bd\03 \00\04\1f\bb\03\bb\03\bf\03 \00\bc\03\bf\03\b9\03 \00\b4\03\bf\03\ba\03\bf\03\e6\1f\c3\03\b9\03\bd\03\n\00\bf\031\1f \00\c4\03p\1f \00\c4\03\bf\03\b9\03\b1\03\e6\1f\c4\03\b1\03 \00\bb\03s\1f\b3\03\bf\03\bd\03\c4\03\b5\03\c2\03 \00\"\1f \00\c4\03t\1f\bd\03 \00Q\1f\c0\03y\1f\b8\03\b5\03\c3\03\b9\03\bd\03,\00 \00\c0\03\b5\03\c1\03v\1f \00\'\1f\c2\03 \00\b2\03\bf\03\c5\03\bb\03\b5\03{\1f\b5\03\c3\03\b8\03\b1\03\b9\03,\00\n\00\bf\03P\1f\c7\03v\1f \00\c4\03t\1f\bd\03 \00\bf\03V\1f\c3\03\b1\03\bd\03 \00\c0\03\b1\03\c1\03\b9\03\c3\03\c4\03q\1f\bd\03\c4\03\b5\03\c2\03 \00Q\1f\bc\03\d6\1f\bd\03 \00\01\1f\bc\03\b1\03\c1\03\c4\03q\1f\bd\03\b5\03\b9\03\bd\03.\00 \00\10\1f\b3\03|\1f \00\b4\03s\1f,\00 \00E\1f\c4\03\b9\03 \00\bc\03s\1f\bd\03\n\00\c0\03\bf\03\c4\03\bf\1f \00\10\1f\be\03\c6\1f\bd\03 \00\c4\03\c7\1f \00\c0\03y\1f\bb\03\b5\03\b9\03 \00\ba\03\b1\03v\1f \00\c4\03p\1f \00\b1\03Q\1f\c4\03\c6\1f\c2\03 \00\14\1f\c7\03\b5\03\b9\03\bd\03 \00\00\1f\c3\03\c6\03\b1\03\bb\03\f6\1f\c2\03 \00\ba\03\b1\03v\1f \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03,\00 \00\ba\03\b1\03v\1f \00\bc\03q\1f\bb\03\bf\1f \00\00\1f\ba\03\c1\03\b9\03\b2\03\f6\1f\c2\03 \00\bf\036\1f\b4\03\b1\03\87\03 \00\10\1f\c0\03\bf\1f \00\10\1f\bc\03\bf\03\e6\1f \00\b3\03q\1f\c1\03,\00 \00\bf\03P\1f \00\c0\03q\1f\bb\03\b1\03\b9\03\n\00\b3\03s\1f\b3\03\bf\03\bd\03\b5\03\bd\03 \00\c4\03\b1\03\e6\1f\c4\03\bf\1f \00\00\1f\bc\03\c6\03y\1f\c4\03\b5\03\c1\03\b1\03\87\03 \00\bd\03\e6\1f\bd\03 \00\bc\03s\1f\bd\03\c4\03\bf\03\b9\03 \00\c0\03s\1f\c0\03\b5\03\b9\03\c3\03\bc\03\b1\03\b9\03 \00\c4\03\bf\03\e6\1f\b8\03\bf\1f \001\1f\ba\03\b1\03\bd\03x\1f\bd\03\n\00\c0\03\c1\03\bf\03\bb\03\b1\03\b2\03\b5\03\d6\1f\bd\03 \00!\1f\bc\03\d6\1f\bd\03 \00\b5\036\1f\bd\03\b1\03\b9\03 \00\c4\03t\1f\bd\03 \00\c0\03\c1\03}\1f\c4\03\b7\03\bd\03,\00 \00E\1f\c0\03\c9\03\c2\03 \00\c4\03\bf\03z\1f\c2\03 \00\c3\03\c5\03\bc\03\bc\03q\1f\c7\03\bf\03\c5\03\c2\03\n\00\c3\03}\1f\c3\03\bf\03\bc\03\b5\03\bd\03.\00 \00\10\1fp\1f\bd\03 \00\b3\03p\1f\c1\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\b2\03\b5\03\b2\03\b1\03w\1f\c9\03\c2\03 \00Q\1f\c0\03q\1f\c1\03\be\03\c3\1f,\00 \00\c4\03y\1f\c4\03\b5\03 \00\ba\03\b1\03v\1f \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03w\1f\bd\03\b1\03 \00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b5\03\c4\03\b1\03w\1f \00\c4\03\b9\03\c2\03 \00\ba\03\b1\03v\1f \00C\1f\bd\03 \00\c4\03\c1\03y\1f\c0\03\bf\03\bd\03 \00\10\1f\be\03s\1f\c3\03\c4\03\b1\03\b9\03 \00\c3\03\ba\03\bf\03\c0\03\b5\03\d6\1f\bd\03\87\03 \00\c0\03\c1\03v\1f\bd\03 \00\b4\03r\1f\n\00\c4\03t\1f\bd\03 \00\00\1f\c1\03\c7\03t\1f\bd\03 \00@\1f\c1\03\b8\03\f6\1f\c2\03 \00Q\1f\c0\03\bf\03\b8\03s\1f\c3\03\b8\03\b1\03\b9\03,\00 \00\bc\03q\1f\c4\03\b1\03\b9\03\bf\03\bd\03 \00!\1f\b3\03\bf\03\e6\1f\bc\03\b1\03\b9\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\c6\1f\c2\03\n\00\c4\03\b5\03\bb\03\b5\03\c5\03\c4\03\c6\1f\c2\03 \00A\1f\bd\03\c4\03\b9\03\bd\03\bf\03\e6\1f\bd\03 \00\c0\03\bf\03\b9\03\b5\03\d6\1f\c3\03\b8\03\b1\03\b9\03 \00\bb\03y\1f\b3\03\bf\03\bd\03.\00\n\00\n\00\94\03\b7\03\bc\03\bf\03\c3\03\b8\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\93\03\fd\1f \00\bf\1f\9f\03\bb\03\c5\03\bd\03\b8\03\b9\03\b1\03\ba\03x\1f\c2\03\n\00\n\00G\00e\00o\00r\00g\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\d2\10\d7\10\ee\10\dd\10\d5\10\d7\10 \00\d0\10\ee\10\da\10\d0\10\d5\10\d4\10 \00\d2\10\d0\10\d8\10\d0\10\e0\10\dd\10\d7\10 \00\e0\10\d4\10\d2\10\d8\10\e1\10\e2\10\e0\10\d0\10\ea\10\d8\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\db\10\d4\10\d0\10\d7\10\d4\10 \00\e1\10\d0\10\d4\10\e0\10\d7\10\d0\10\e8\10\dd\10\e0\10\d8\10\e1\10\dd\10\n\00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10\d6\10\d4\10 \00\d3\10\d0\10\e1\10\d0\10\e1\10\ec\10\e0\10\d4\10\d1\10\d0\10\d3\10,\00 \00\e0\10\dd\10\db\10\d4\10\da\10\d8\10\ea\10 \00\d2\10\d0\10\d8\10\db\10\d0\10\e0\10\d7\10\d4\10\d1\10\d0\10 \001\000\00-\001\002\00 \00\db\10\d0\10\e0\10\e2\10\e1\10,\00\n\00\e5\10.\00 \00\db\10\d0\10\d8\10\dc\10\ea\10\e8\10\d8\10,\00 \00\d2\10\d4\10\e0\10\db\10\d0\10\dc\10\d8\10\d0\10\e8\10\d8\10.\00 \00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10 \00\e8\10\d4\10\f0\10\d9\10\e0\10\d4\10\d1\10\e1\10 \00\d4\10\e0\10\d7\10\d0\10\d3\10 \00\db\10\e1\10\dd\10\e4\10\da\10\d8\10\dd\10\e1\10\n\00\d4\10\e5\10\e1\10\de\10\d4\10\e0\10\e2\10\d4\10\d1\10\e1\10 \00\d8\10\e1\10\d4\10\d7\10 \00\d3\10\d0\10\e0\10\d2\10\d4\10\d1\10\e8\10\d8\10 \00\e0\10\dd\10\d2\10\dd\10\e0\10\d8\10\ea\10\d0\10\d0\10 \00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d4\10\e2\10\d8\10 \00\d3\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10,\00\n\00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d0\10\ea\10\d8\10\dd\10\dc\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10 \00\d3\10\d0\10 \00\da\10\dd\10\d9\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10,\00 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d0\10\n\00\dd\10\de\10\d4\10\e0\10\d0\10\ea\10\d8\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e1\10\d0\10,\00 \00\d3\10\d0\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d8\10\d7\10 \00\de\10\e0\10\dd\10\d2\10\e0\10\d0\10\db\10\d4\10\d1\10\e8\10\d8\10,\00 \00\e8\10\e0\10\d8\10\e4\10\e2\10\d4\10\d1\10\e8\10\d8\10,\00\n\00\e2\10\d4\10\e5\10\e1\10\e2\10\d4\10\d1\10\d8\10\e1\10 \00\d3\10\d0\10\db\10\e3\10\e8\10\d0\10\d5\10\d4\10\d1\10\d0\10\e1\10\d0\10 \00\d3\10\d0\10 \00\db\10\e0\10\d0\10\d5\10\d0\10\da\10\d4\10\dc\10\dd\10\d5\10\d0\10\dc\10 \00\d9\10\dd\10\db\10\de\10\d8\10\e3\10\e2\10\d4\10\e0\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e8\10\d8\10.\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\17\040\04@\045\043\048\04A\04B\04@\048\04@\04C\049\04B\045\04A\04L\04 \00A\045\049\04G\040\04A\04 \00=\040\04 \00\14\045\04A\04O\04B\04C\04N\04 \00\1c\045\046\044\04C\04=\040\04@\04>\044\04=\04C\04N\04 \00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04N\04 \00?\04>\04\n\00U\00n\00i\00c\00o\00d\00e\00,\00 \00:\04>\04B\04>\04@\040\04O\04 \00A\04>\04A\04B\04>\048\04B\04A\04O\04 \001\000\00-\001\002\00 \00<\040\04@\04B\040\04 \001\009\009\007\00 \003\04>\044\040\04 \002\04 \00\1c\040\049\04=\04F\045\04 \002\04 \00\13\045\04@\04<\040\04=\048\048\04.\00\n\00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04O\04 \00A\04>\041\045\04@\045\04B\04 \00H\048\04@\04>\04:\048\049\04 \00:\04@\04C\043\04 \00M\04:\04A\04?\045\04@\04B\04>\042\04 \00?\04>\04 \00 \002\04>\04?\04@\04>\04A\040\04<\04 \003\04;\04>\041\040\04;\04L\04=\04>\043\04>\04\n\00\18\04=\04B\045\04@\04=\045\04B\040\04 \008\04 \00U\00n\00i\00c\00o\00d\00e\00,\00 \00;\04>\04:\040\04;\048\047\040\04F\048\048\04 \008\04 \008\04=\04B\045\04@\04=\040\04F\048\04>\04=\040\04;\048\047\040\04F\048\048\04,\00 \002\04>\04?\04;\04>\04I\045\04=\048\04N\04 \008\04\n\00?\04@\048\04<\045\04=\045\04=\048\04N\04 \00U\00n\00i\00c\00o\00d\00e\00 \002\04 \00@\040\047\04;\048\04G\04=\04K\04E\04 \00>\04?\045\04@\040\04F\048\04>\04=\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04 \008\04 \00?\04@\04>\043\04@\040\04<\04<\04=\04K\04E\04\n\00?\04@\048\04;\04>\046\045\04=\048\04O\04E\04,\00 \00H\04@\048\04D\04B\040\04E\04,\00 \002\045\04@\04A\04B\04:\045\04 \008\04 \00<\04=\04>\043\04>\04O\047\04K\04G\04=\04K\04E\04 \00:\04>\04<\04?\04L\04N\04B\045\04@\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04.\00\n\00\n\00T\00h\00a\00i\00 \00(\00U\00C\00S\00 \00L\00e\00v\00e\00l\00 \002\00)\00:\00\n\00\n\00E\00x\00c\00e\00r\00p\00t\00 \00f\00r\00o\00m\00 \00a\00 \00p\00o\00e\00t\00r\00y\00 \00o\00n\00 \00T\00h\00e\00 \00R\00o\00m\00a\00n\00c\00e\00 \00o\00f\00 \00T\00h\00e\00 \00T\00h\00r\00e\00e\00 \00K\00i\00n\00g\00d\00o\00m\00s\00 \00(\00a\00 \00C\00h\00i\00n\00e\00s\00e\00\n\00c\00l\00a\00s\00s\00i\00c\00 \00\'\00S\00a\00n\00 \00G\00u\00a\00\'\00)\00:\00\n\00\n\00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00A\0e\1c\0eH\0e\19\0e\14\0e4\0e\19\0e.\0e1\0eH\0e\19\0e@\0e*\0e7\0eH\0e-\0e!\0eB\0e\17\0e#\0e!\0eA\0e*\0e\19\0e*\0e1\0e\07\0e@\0e\'\0e\n\0e \00 \00\1e\0e#\0e0\0e\1b\0e\01\0e@\0e\01\0e(\0e\01\0e-\0e\07\0e\1a\0e9\0eJ\0e\01\0e9\0eI\0e\02\0e6\0eI\0e\19\0eC\0e+\0e!\0eH\0e\n\00*\0e4\0e\1a\0e*\0e-\0e\07\0e\01\0e)\0e1\0e\15\0e#\0e4\0e\"\0eL\0e\01\0eH\0e-\0e\19\0e+\0e\19\0eI\0e2\0eA\0e%\0e\16\0e1\0e\14\0eD\0e\1b\0e \00 \00 \00 \00 \00 \00 \00*\0e-\0e\07\0e-\0e\07\0e\04\0eL\0eD\0e\0b\0e#\0eI\0eB\0e\07\0eH\0e@\0e\02\0e%\0e2\0e@\0e\1a\0e2\0e\1b\0e1\0e\r\0e\r\0e2\0e\n\00 \00 \00\17\0e#\0e\07\0e\19\0e1\0e\1a\0e\16\0e7\0e-\0e\02\0e1\0e\19\0e\17\0e5\0e@\0e\1b\0eG\0e\19\0e\17\0e5\0eH\0e\1e\0e6\0eH\0e\07\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\1a\0eI\0e2\0e\19\0e@\0e!\0e7\0e-\0e\07\0e\08\0e6\0e\07\0e\'\0e4\0e\1b\0e#\0e4\0e\15\0e@\0e\1b\0eG\0e\19\0e\19\0e1\0e\01\0e+\0e\19\0e2\0e\n\00B\0e.\0e\08\0e4\0eK\0e\19\0e@\0e#\0e5\0e\"\0e\01\0e\17\0e1\0e\1e\0e\17\0e1\0eH\0e\'\0e+\0e1\0e\'\0e@\0e!\0e7\0e-\0e\07\0e!\0e2\0e \00 \00 \00 \00 \00 \00 \00 \00 \00+\0e!\0e2\0e\"\0e\08\0e0\0e\06\0eH\0e2\0e!\0e\14\0e\n\0e1\0eH\0e\'\0e\15\0e1\0e\'\0e*\0e3\0e\04\0e1\0e\r\0e\n\00 \00 \00@\0e+\0e!\0e7\0e-\0e\19\0e\02\0e1\0e\1a\0eD\0e*\0eD\0e%\0eH\0e@\0e*\0e7\0e-\0e\08\0e2\0e\01\0e@\0e\04\0e+\0e2\0e \00 \00 \00 \00 \00 \00#\0e1\0e\1a\0e+\0e!\0e2\0e\1b\0eH\0e2\0e@\0e\02\0eI\0e2\0e!\0e2\0e@\0e%\0e\"\0e-\0e2\0e*\0e1\0e\r\0e\n\00\1d\0eH\0e2\0e\"\0e-\0eI\0e-\0e\07\0e-\0e8\0eI\0e\19\0e\"\0e8\0eA\0e\"\0e\01\0eC\0e+\0eI\0eA\0e\15\0e\01\0e\01\0e1\0e\19\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00C\0e\n\0eI\0e*\0e2\0e\'\0e\19\0e1\0eI\0e\19\0e@\0e\1b\0eG\0e\19\0e\n\0e\19\0e\'\0e\19\0e\n\0e7\0eH\0e\19\0e\n\0e\'\0e\19\0eC\0e\08\0e\n\00 \00 \00\1e\0e%\0e1\0e\19\0e%\0e4\0e\t\0e8\0e\"\0e\01\0e8\0e\"\0e\01\0e5\0e\01\0e%\0e1\0e\1a\0e\01\0eH\0e-\0e@\0e+\0e\15\0e8\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\n\0eH\0e2\0e\07\0e-\0e2\0e@\0e\1e\0e(\0e\08\0e#\0e4\0e\07\0e+\0e\19\0e2\0e\1f\0eI\0e2\0e#\0eI\0e-\0e\07\0eD\0e+\0eI\0e\n\00\15\0eI\0e-\0e\07\0e#\0e\1a\0e#\0e2\0e\06\0eH\0e2\0e\1f\0e1\0e\19\0e\08\0e\19\0e\1a\0e#\0e#\0e%\0e1\0e\"\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00$\0eE\0e+\0e2\0eC\0e\04\0e#\0e\04\0eI\0e3\0e\n\0e9\0e\01\0e9\0eI\0e\1a\0e#\0e#\0e%\0e1\0e\07\0e\01\0eL\0e \00/\0e\n\00\n\00(\00T\00h\00e\00 \00a\00b\00o\00v\00e\00 \00i\00s\00 \00a\00 \00t\00w\00o\00-\00c\00o\00l\00u\00m\00n\00 \00t\00e\00x\00t\00.\00 \00I\00f\00 \00c\00o\00m\00b\00i\00n\00i\00n\00g\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00s\00 \00a\00r\00e\00 \00h\00a\00n\00d\00l\00e\00d\00\n\00c\00o\00r\00r\00e\00c\00t\00l\00y\00,\00 \00t\00h\00e\00 \00l\00i\00n\00e\00s\00 \00o\00f\00 \00t\00h\00e\00 \00s\00e\00c\00o\00n\00d\00 \00c\00o\00l\00u\00m\00n\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00a\00l\00i\00g\00n\00e\00d\00 \00w\00i\00t\00h\00 \00t\00h\00e\00\n\00|\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00 \00a\00b\00o\00v\00e\00.\00)\00\n\00\n\00E\00t\00h\00i\00o\00p\00i\00a\00n\00:\00\n\00\n\00P\00r\00o\00v\00e\00r\00b\00s\00 \00i\00n\00 \00t\00h\00e\00 \00A\00m\00h\00a\00r\00i\00c\00 \00l\00a\00n\00g\00u\00a\00g\00e\00:\00\n\00\n\000\12\1b\12\ed\12 \00\a0\12\ed\12s\12(\125\12 \00\95\12\t\13%\12 \00\a0\12\ed\12\a8\120\125\12b\13\n\00e\12\0b\12 \00\ab\12\08\12\9d\12 \00\a5\12\95\12\f0\12\a0\12c\12t\12 \00`\12F\12\18\12 \13\9d\12b\13\n\00\0c\13%\13 \00\eb\12\08\12d\12q\12 \00A\12\1d\12%\13\93\12 \00\90\12\cd\12b\13\n\00\f0\12\00\12 \00`\12\15\12\r\12\19\12 \00E\12d\12 \00c\12\ed\12 \13#\13 \00\95\12#\13u\12 \00`\12\08\13\f0\12\08\12\cd\12b\13\n\00\e8\12\a0\12M\13 \00\c8\12\08\12\1d\12s\12 \00`\12E\12d\12 \00\a0\12\ed\12s\12=\12\1d\12b\13\n\00\a0\12\ed\12%\13 \00`\12`\12\0b\12 \00\f3\12\cb\12 \00p\12\18\12s\12b\13\n\002\12p\12(\12\t\13\19\12 \00\ed\12\f0\12(\12\r\13\19\12b\13\n\00@\125\12 \00`\12@\125\12e\13 \00\d5\12\95\12A\12\0b\12\r\12 \00`\12\a5\12\r\13)\12 \00\ed\12\04\12\f3\12\r\12b\13\n\00\f5\12-\12 \00b\12\eb\12e\12-\12 \00\a0\12\95\12`\123\12 \00\eb\125\12-\12b\13\n\000\12\cd\12 \00\a5\12\95\12\f0\12d\12q\12 \00\a5\12\95\12\05\13 \00\a5\12\95\12\f0\12 \00\t\13(\12d\12q\12 \00\a0\12\ed\12p\12\f3\12\f0\12-\12\1d\12b\13\n\00\a5\12\r\13\dc\12-\12 \00\e8\12\a8\12H\13p\12\cd\12\95\12 \00\t\13.\12.\12 \003\12\ed\12\d8\12\0b\13\cd\12 \00\a0\12\ed\12\f5\12-\12\1d\12b\13\n\00\e8\12\0e\13(\12d\12u\12 \00\0c\12c\12e\13 \00b\12\eb\12\e9\12u\12 \00\ed\125\12E\12 \00c\12\eb\12\e9\12u\12 \00\eb\12 \13\r\12E\12b\13\n\00%\12+\12 \00\a8\12\18\12M\13s\12u\12 \00\r\12\04\13\95\12 \00\0b\12K\13s\12u\12b\13\n\00\d3\12c\12\ed\12 \00\1b\12\f0\12*\12\eb\12 \00\e8\12\08\12\cd\12e\13 \00\r\13\95\12\f5\12 \00\ed\12\de\12 \00\ed\12\de\12+\12\r\12b\13\n\00\e8\12\a5\125\12\0b\12\1d\12 \00\a0\12\08\13)\12 \00\18\12\ab\12 \00\e8\12\a0\12\1e\12+\12 \00\a0\12\08\13)\12 \00\cb\12-\12\ab\12b\13\n\00p\12\95\12\0b\13\0e\12 \00b\12p\12I\13 \00p\12\18\12\r\126\12 \00c\12I\13b\13\n\00\c8\12\f3\12\05\13\05\12 \00\1b\12-\12 \00b\12\06\12\95\12 \00(\13-\125\12\05\12 \00\a0\12u\12\0b\120\12\cd\12b\13\n\00\a5\12\r\13-\12\05\12\95\12 \00`\12M\13+\12=\12\05\12 \00\r\12\ad\12 \00\d8\12-\12\0b\13b\13\n\00\n\00R\00u\00n\00e\00s\00:\00\n\00\n\00\bb\16\d6\16 \00\b3\16\b9\16\ab\16\a6\16 \00\a6\16\ab\16\cf\16 \00\bb\16\d6\16 \00\d2\16\a2\16\de\16\d6\16 \00\a9\16\be\16 \00\a6\16\ab\16\d7\16 \00\da\16\aa\16\be\16\de\16\d6\16 \00\be\16\a9\16\b1\16\a6\16\b9\16\d6\16\aa\16\b1\16\de\16\a2\16\d7\16 \00\b9\16\c1\16\a6\16 \00\a6\16\aa\16 \00\b9\16\d6\16\e5\16\ab\16\n\00\n\00(\00O\00l\00d\00 \00E\00n\00g\00l\00i\00s\00h\00,\00 \00w\00h\00i\00c\00h\00 \00t\00r\00a\00n\00s\00c\00r\00i\00b\00e\00d\00 \00i\00n\00t\00o\00 \00L\00a\00t\00i\00n\00 \00r\00e\00a\00d\00s\00 \00\'\00H\00e\00 \00c\00w\00a\00e\00t\00h\00 \00t\00h\00a\00t\00 \00h\00e\00\n\00b\00u\00d\00e\00 \00t\00h\00a\00e\00m\00 \00l\00a\00n\00d\00e\00 \00n\00o\00r\00t\00h\00w\00e\00a\00r\00d\00u\00m\00 \00w\00i\00t\00h\00 \00t\00h\00a\00 \00W\00e\00s\00t\00s\00a\00e\00.\00\'\00 \00a\00n\00d\00 \00m\00e\00a\00n\00s\00 \00\'\00H\00e\00 \00s\00a\00i\00d\00\n\00t\00h\00a\00t\00 \00h\00e\00 \00l\00i\00v\00e\00d\00 \00i\00n\00 \00t\00h\00e\00 \00n\00o\00r\00t\00h\00e\00r\00n\00 \00l\00a\00n\00d\00 \00n\00e\00a\00r\00 \00t\00h\00e\00 \00W\00e\00s\00t\00e\00r\00n\00 \00S\00e\00a\00.\00\'\00)\00\n\00\n\00B\00r\00a\00i\00l\00l\00e\00:\00\n\00\n\00L(\01(\'(\11( \00<(\01(\12( \00 \00M(\1c(\07(\11(9(0(\0e( \00c(\15(\0c(\n\00\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\19(\11(\01(\19(\12( \00\1e(\15( \00\03(\11(\1b(\14( \00:(\n(9(2( \00y(;(\11( \00\n(\0e( \00\1d(\15( \00\19(3(\03(\1e(\n\001(\01(\1e(\11(\'(;( \00\01(\03(3(\1e( \009(\01(\1e(2( \00y(\11( \00\17(\11(\1b(\n(\0c(;( \00\15(\0b( \00\19(\n(\0e( \00\03(%(\17(\n(\01(\07( \00:(\01(\0e(\n\00\0e(\n(\1b(\1d(+( \00\03(9( \009(\11( \00\n(\07(;(\1b(9(\r(\01(\1d(\02( \009(\11( \00\n(\07(;(\05(\02( \009(\11( \00%(\1d(\19(;(\1e(\01(\05(;(\02(\n\00\01(\1d(\19( \009(\11( \00!(\n(\11(\0b( \00\r(3(\17(\1d(;(2( \00N(\n(\17(\15(\15(\1b(\11( \00\0e(\n(\1b(\1d(+( \00\n(\1e(2( \00A(\1d(\19(\n\00N(\n(\17(\15(\15(\1b(\11(0(\0e( \00\1d(\01(\r(\11( \00:(\01(\0e( \00\1b(\15(\15(\19( \00%(\0f(\15(\1d( \000(a(\01(\1d(\1b(\11(\02( \00\0b(\15(\17( \00\01(\1d(9(9(\14(\1b( \00\19(\11(\n\00!(\15(\0e(\11( \00\1e(\15( \00\0f(%(\1e( \00\19(\n(\0e( \00\19(\01(\1d(\19( \00\1e(\15(2(\n\00\n\00U(\07(\19( \00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00M(\14(\19(\16( \00J( \00\19(\15(\1d(0(\1e( \00\r(\11(\01(\1d( \00\1e(\15( \00\0e(\01(9( \009(\01(\1e( \00J( \00\05(\1d(*(\02( \00\15(\0b( \00\r(9(\n\00*(\1d( \00\05(\1d(*(\07(+(\1b(\11(\02( \001(\01(\1e( \009(;(\11( \00\n(\0e( \00\0f(\1c(\1e(\n(\n(%(\07(\1c(\07(9( \00\19(\11(\01(\19( \00\01(\03(3(\1e(\n\00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2( \00J( \00\r(\n(#(\1e( \00\19(\01(\'(\11( \00\03(\11(2( \00\14(\n(\07(\14(+(\02( \00\r(9(\0e(\11(\07(\0b(\02( \00\1e(\15(\n\00\17(\11(\1b(\1c(\19( \00\01( \00\n(\15(\0b(\0b(\14($(\1d(\01(\n(\07( \00\01(\0e( \009(\11( \00\19(\11(\01(\19(\11(\0c( \00\0f(\n(\11(\n(\11( \00\15(\0b( \00\n(\17(\15(\1d(\r(\15(\1d(\1b(;(9(\n\00\14( \009(\11( \00\1e(\17(\01(\19(\11(2( \00C(%(\1e( \009(\11( \00:(\n(\0e(\19(\15(\r( \00\15(\0b( \003(\17( \00\01(\1d(\n(\11(\0c(\15(\17(\0e(\n\00\n(\0e( \00\14( \009(\11( \00\0e(\n(\r(\n(\07(\11(\06( \00\01(\1d(\19( \00\r(9( \00%(\1d(\19(\01(\07(\07(*(+( \00\19(\01(\1d(\19(\0e(\n\00)(\01(\07(\07( \00\1d(\15(\1e( \00\19(\n(\0c(%(\17(\03( \00\n(\1e(\02( \00\15(\17( \009(\11( \00J(3(\1d(\1e(\17(9(0(\0e( \00\19(\15(\1d(\11( \00\0b(\15(\17(2( \00y(3(\n\00:(\n(\07(\07( \009(;(\11(\0b(\15(\17(\11( \00\0f(;(\r(\n(\1e( \00\r(\11( \00\1e(\15( \00\17(\11(\0f(\11(\01(\1e(\02( \00\11(\r(\0f(\19(\01(\1e(\n(\n(\01(\07(\07(9(\02( \009(\01(\1e(\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00(\00T\00h\00e\00 \00f\00i\00r\00s\00t\00 \00c\00o\00u\00p\00l\00e\00 \00o\00f\00 \00p\00a\00r\00a\00g\00r\00a\00p\00h\00s\00 \00o\00f\00 \00\"\00A\00 \00C\00h\00r\00i\00s\00t\00m\00a\00s\00 \00C\00a\00r\00o\00l\00\"\00 \00b\00y\00 \00D\00i\00c\00k\00e\00n\00s\00)\00\n\00\n\00C\00o\00m\00p\00a\00c\00t\00 \00f\00o\00n\00t\00 \00s\00e\00l\00e\00c\00t\00i\00o\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00x\00t\00:\00\n\00\n\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/\000\001\002\003\004\005\006\007\008\009\00\n\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\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\n\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\n\00\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10\n\00\n\00G\00r\00e\00e\00t\00i\00n\00g\00s\00 \00i\00n\00 \00v\00a\00r\00i\00o\00u\00s\00 \00l\00a\00n\00g\00u\00a\00g\00e\00s\00:\00\n\00\n\00H\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00,\00 \00\9a\03\b1\03\bb\03\b7\03\bc\03s\1f\c1\03\b1\03 \00\ba\03y\1f\c3\03\bc\03\b5\03,\00 \00\b30\f30\cb0\c10\cf0\n\00\n\00B\00o\00x\00 \00d\00r\00a\00w\00i\00n\00g\00 \00a\00l\00i\00g\00n\00m\00e\00n\00t\00 \00t\00e\00s\00t\00s\00:\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\88%\n\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\89%\n\00T%P%P%f%P%P%W% \00 \00\0c%\00%\00%,%\00%\00%\10% \00 \00m%\00%\00%,%\00%\00%n% \00 \00m%\00%\00%,%\00%\00%n% \00 \00\0f%\01%\01%3%\01%\01%\13% \00 \00\0e%\12%\0f%\11% \00 \00 \00w% \00 \00{% \00\0f%/%\13% \00\0c%0%\10% \00 \00 \00 \00\8a% \00q%r%q%r%s%s%s%\n\00Q%\0c%\00%h%\00%\10%Q% \00 \00\02%T%P%g%P%W%\02% \00 \00\02%R%P%j%P%U%\02% \00 \00\02%S%\00%A%\00%V%\02% \00 \00\03%\0c%\00%B%\00%\10%\03% \00 \00\17%C%D%\19% \00 \00v%<%t%z%K%x% %<%(% \00\1d%K%%% \00 \00 \00 \00\8b% \00r%q%r%q%s%s%s%\n\00Q%\02%r% \00q%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00\7f% \00\02%\03% \00 \00\r%E%F%\13% \00 \00 \00u% \00 \00y% \00\17%7%\1b% \00\14%8%\18% \00 \00 \00 \00\8c% \00q%r%q%r%s%s%s%\n\00`%a% \00s% \00^%c% \00 \00\1c%b% \00 \00 \00_%$% \00 \00\1c%<%\00%<%\00%<%$% \00 \00\1c%k%\00%B%\00%k%$% \00 \00#%?%~%<%|%?%+% \00 \00\15%\1b%\16%\1a% \00 \00 \00 \00 \00\0c%\04%\04%\10% \00N% \00\0f%\05%\05%\13% \00\0b% \00\8d% \00r%q%r%q%s%s%s%\n\00Q%\02%q% \00r%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00}% \00\02%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8e%\n\00Q%\14%\00%e%\00%\18%Q% \00 \00\02%Z%P%d%P%]%\02% \00 \00\02%X%P%j%P%[%\02% \00 \00\02%Y%\00%@%\00%\\%\02% \00 \00\03%\14%\00%B%\00%\18%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8f%\n\00Z%P%P%i%P%P%]% \00 \00\14%\00%\00%4%\00%\00%\18% \00 \00p%\00%\00%4%\00%\00%o% \00 \00p%\00%\00%4%\00%\00%o% \00 \00\17%\01%\01%;%\01%\01%\1b% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\14%L%L%\18% \00N% \00\17%M%M%\1b% \00\0b% \00 \00\81%\82%\83%\84%\85%\86%\87%\88%\n") - (data $35 (i32.const 17148) "\8c\1d") - (data $35.1 (i32.const 17160) "\02\00\00\00p\1d\00\00S\00e\00n\00t\00e\00n\00c\00e\00s\00 \00t\00h\00a\00t\00 \00c\00o\00n\00t\00a\00i\00n\00 \00a\00l\00l\00 \00l\00e\00t\00t\00e\00r\00s\00 \00c\00o\00m\00m\00o\00n\00l\00y\00 \00u\00s\00e\00d\00 \00i\00n\00 \00a\00 \00l\00a\00n\00g\00u\00a\00g\00e\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00M\00a\00r\00k\00u\00s\00 \00K\00u\00h\00n\00 \00<\00h\00t\00t\00p\00:\00/\00/\00w\00w\00w\00.\00c\00l\00.\00c\00a\00m\00.\00a\00c\00.\00u\00k\00/\00~\00m\00g\00k\002\005\00/\00>\00 \00-\00-\00 \002\000\001\002\00-\000\004\00-\001\001\00\n\00\n\00T\00h\00i\00s\00 \00i\00s\00 \00a\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00o\00f\00 \00a\00 \00p\00l\00a\00i\00n\00-\00t\00e\00x\00t\00 \00f\00i\00l\00e\00 \00e\00n\00c\00o\00d\00e\00d\00 \00i\00n\00 \00U\00T\00F\00-\008\00.\00\n\00\n\00\n\00D\00a\00n\00i\00s\00h\00 \00(\00d\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00Q\00u\00i\00z\00d\00e\00l\00t\00a\00g\00e\00r\00n\00e\00 \00s\00p\00i\00s\00t\00e\00 \00j\00o\00r\00d\00b\00\e6\00r\00 \00m\00e\00d\00 \00f\00l\00\f8\00d\00e\00,\00 \00m\00e\00n\00s\00 \00c\00i\00r\00k\00u\00s\00k\00l\00o\00v\00n\00e\00n\00\n\00 \00 \00W\00o\00l\00t\00h\00e\00r\00 \00s\00p\00i\00l\00l\00e\00d\00e\00 \00p\00\e5\00 \00x\00y\00l\00o\00f\00o\00n\00.\00\n\00 \00 \00(\00=\00 \00Q\00u\00i\00z\00 \00c\00o\00n\00t\00e\00s\00t\00a\00n\00t\00s\00 \00w\00e\00r\00e\00 \00e\00a\00t\00i\00n\00g\00 \00s\00t\00r\00a\00w\00b\00e\00r\00y\00 \00w\00i\00t\00h\00 \00c\00r\00e\00a\00m\00 \00w\00h\00i\00l\00e\00 \00W\00o\00l\00t\00h\00e\00r\00\n\00 \00 \00t\00h\00e\00 \00c\00i\00r\00c\00u\00s\00 \00c\00l\00o\00w\00n\00 \00p\00l\00a\00y\00e\00d\00 \00o\00n\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00.\00)\00\n\00\n\00G\00e\00r\00m\00a\00n\00 \00(\00d\00e\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00F\00a\00l\00s\00c\00h\00e\00s\00 \00\dc\00b\00e\00n\00 \00v\00o\00n\00 \00X\00y\00l\00o\00p\00h\00o\00n\00m\00u\00s\00i\00k\00 \00q\00u\00\e4\00l\00t\00 \00j\00e\00d\00e\00n\00 \00g\00r\00\f6\00\df\00e\00r\00e\00n\00 \00Z\00w\00e\00r\00g\00\n\00 \00 \00(\00=\00 \00W\00r\00o\00n\00g\00f\00u\00l\00 \00p\00r\00a\00c\00t\00i\00c\00i\00n\00g\00 \00o\00f\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00 \00m\00u\00s\00i\00c\00 \00t\00o\00r\00t\00u\00r\00e\00s\00 \00e\00v\00e\00r\00y\00 \00l\00a\00r\00g\00e\00r\00 \00d\00w\00a\00r\00f\00)\00\n\00\n\00 \00 \00Z\00w\00\f6\00l\00f\00 \00B\00o\00x\00k\00\e4\00m\00p\00f\00e\00r\00 \00j\00a\00g\00t\00e\00n\00 \00E\00v\00a\00 \00q\00u\00e\00r\00 \00\fc\00b\00e\00r\00 \00d\00e\00n\00 \00S\00y\00l\00t\00e\00r\00 \00D\00e\00i\00c\00h\00\n\00 \00 \00(\00=\00 \00T\00w\00e\00l\00v\00e\00 \00b\00o\00x\00i\00n\00g\00 \00f\00i\00g\00h\00t\00e\00r\00s\00 \00h\00u\00n\00t\00e\00d\00 \00E\00v\00a\00 \00a\00c\00r\00o\00s\00s\00 \00t\00h\00e\00 \00d\00i\00k\00e\00 \00o\00f\00 \00S\00y\00l\00t\00)\00\n\00\n\00 \00 \00H\00e\00i\00z\00\f6\00l\00r\00\fc\00c\00k\00s\00t\00o\00\df\00a\00b\00d\00\e4\00m\00p\00f\00u\00n\00g\00\n\00 \00 \00(\00=\00 \00f\00u\00e\00l\00 \00o\00i\00l\00 \00r\00e\00c\00o\00i\00l\00 \00a\00b\00s\00o\00r\00b\00e\00r\00)\00\n\00 \00 \00(\00j\00q\00v\00w\00x\00y\00 \00m\00i\00s\00s\00i\00n\00g\00,\00 \00b\00u\00t\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00i\00n\00 \00o\00n\00e\00 \00w\00o\00r\00d\00)\00\n\00\n\00G\00r\00e\00e\00k\00 \00(\00e\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\93\03\b1\03\b6\03\ad\03\b5\03\c2\03 \00\ba\03\b1\03v\1f \00\bc\03\c5\03\c1\03\c4\03\b9\03r\1f\c2\03 \00\b4\03r\1f\bd\03 \00\b8\03p\1f \00\b2\03\c1\03\f6\1f \00\c0\03\b9\03p\1f \00\c3\03\c4\03x\1f \00\c7\03\c1\03\c5\03\c3\03\b1\03\c6\03v\1f \00\be\03\ad\03\c6\03\c9\03\c4\03\bf\03\n\00 \00 \00(\00=\00 \00N\00o\00 \00m\00o\00r\00e\00 \00s\00h\00a\00l\00l\00 \00I\00 \00s\00e\00e\00 \00a\00c\00a\00c\00i\00a\00s\00 \00o\00r\00 \00m\00y\00r\00t\00l\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \00g\00o\00l\00d\00e\00n\00 \00c\00l\00e\00a\00r\00i\00n\00g\00)\00\n\00\n\00 \00 \00\9e\03\b5\03\c3\03\ba\03\b5\03\c0\03\ac\03\b6\03\c9\03 \00\c4\03t\1f\bd\03 \00\c8\03\c5\03\c7\03\bf\03\c6\03\b8\03\cc\03\c1\03\b1\03 \00\b2\03\b4\03\b5\03\bb\03\c5\03\b3\03\bc\03\af\03\b1\03\n\00 \00 \00(\00=\00 \00I\00 \00u\00n\00c\00o\00v\00e\00r\00 \00t\00h\00e\00 \00s\00o\00u\00l\00-\00d\00e\00s\00t\00r\00o\00y\00i\00n\00g\00 \00a\00b\00h\00o\00r\00r\00e\00n\00c\00e\00)\00\n\00\n\00E\00n\00g\00l\00i\00s\00h\00 \00(\00e\00n\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00T\00h\00e\00 \00q\00u\00i\00c\00k\00 \00b\00r\00o\00w\00n\00 \00f\00o\00x\00 \00j\00u\00m\00p\00s\00 \00o\00v\00e\00r\00 \00t\00h\00e\00 \00l\00a\00z\00y\00 \00d\00o\00g\00\n\00\n\00S\00p\00a\00n\00i\00s\00h\00 \00(\00e\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00E\00l\00 \00p\00i\00n\00g\00\fc\00i\00n\00o\00 \00W\00e\00n\00c\00e\00s\00l\00a\00o\00 \00h\00i\00z\00o\00 \00k\00i\00l\00\f3\00m\00e\00t\00r\00o\00s\00 \00b\00a\00j\00o\00 \00e\00x\00h\00a\00u\00s\00t\00i\00v\00a\00 \00l\00l\00u\00v\00i\00a\00 \00y\00\n\00 \00 \00f\00r\00\ed\00o\00,\00 \00a\00\f1\00o\00r\00a\00b\00a\00 \00a\00 \00s\00u\00 \00q\00u\00e\00r\00i\00d\00o\00 \00c\00a\00c\00h\00o\00r\00r\00o\00.\00\n\00 \00 \00(\00C\00o\00n\00t\00a\00i\00n\00s\00 \00e\00v\00e\00r\00y\00 \00l\00e\00t\00t\00e\00r\00 \00a\00n\00d\00 \00e\00v\00e\00r\00y\00 \00a\00c\00c\00e\00n\00t\00,\00 \00b\00u\00t\00 \00n\00o\00t\00 \00e\00v\00e\00r\00y\00 \00c\00o\00m\00b\00i\00n\00a\00t\00i\00o\00n\00\n\00 \00 \00o\00f\00 \00v\00o\00w\00e\00l\00 \00+\00 \00a\00c\00u\00t\00e\00.\00)\00\n\00\n\00F\00r\00e\00n\00c\00h\00 \00(\00f\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00o\00r\00t\00e\00z\00 \00c\00e\00 \00v\00i\00e\00u\00x\00 \00w\00h\00i\00s\00k\00y\00 \00a\00u\00 \00j\00u\00g\00e\00 \00b\00l\00o\00n\00d\00 \00q\00u\00i\00 \00f\00u\00m\00e\00 \00s\00u\00r\00 \00s\00o\00n\00 \00\ee\00l\00e\00 \00i\00n\00t\00\e9\00r\00i\00e\00u\00r\00e\00,\00 \00\e0\00\n\00 \00 \00c\00\f4\00t\00\e9\00 \00d\00e\00 \00l\00\'\00a\00l\00c\00\f4\00v\00e\00 \00o\00v\00o\00\ef\00d\00e\00,\00 \00o\00\f9\00 \00l\00e\00s\00 \00b\00\fb\00c\00h\00e\00s\00 \00s\00e\00 \00c\00o\00n\00s\00u\00m\00e\00n\00t\00 \00d\00a\00n\00s\00 \00l\00\'\00\e2\00t\00r\00e\00,\00 \00c\00e\00\n\00 \00 \00q\00u\00i\00 \00l\00u\00i\00 \00p\00e\00r\00m\00e\00t\00 \00d\00e\00 \00p\00e\00n\00s\00e\00r\00 \00\e0\00 \00l\00a\00 \00c\00\e6\00n\00o\00g\00e\00n\00\e8\00s\00e\00 \00d\00e\00 \00l\00\'\00\ea\00t\00r\00e\00 \00d\00o\00n\00t\00 \00i\00l\00 \00e\00s\00t\00 \00q\00u\00e\00s\00t\00i\00o\00n\00\n\00 \00 \00d\00a\00n\00s\00 \00l\00a\00 \00c\00a\00u\00s\00e\00 \00a\00m\00b\00i\00g\00u\00\eb\00 \00e\00n\00t\00e\00n\00d\00u\00e\00 \00\e0\00 \00M\00o\00\ff\00,\00 \00d\00a\00n\00s\00 \00u\00n\00 \00c\00a\00p\00h\00a\00r\00n\00a\00\fc\00m\00 \00q\00u\00i\00,\00\n\00 \00 \00p\00e\00n\00s\00e\00-\00t\00-\00i\00l\00,\00 \00d\00i\00m\00i\00n\00u\00e\00 \00\e7\00\e0\00 \00e\00t\00 \00l\00\e0\00 \00l\00a\00 \00q\00u\00a\00l\00i\00t\00\e9\00 \00d\00e\00 \00s\00o\00n\00 \00S\01u\00v\00r\00e\00.\00\n\00\n\00 \00 \00l\00\'\00\ee\00l\00e\00 \00e\00x\00i\00g\00u\00\eb\00\n\00 \00 \00O\00\f9\00 \00l\00\'\00o\00b\00\e8\00s\00e\00 \00j\00u\00r\00y\00 \00m\00\fb\00r\00\n\00 \00 \00F\00\ea\00t\00e\00 \00l\00\'\00h\00a\00\ef\00 \00v\00o\00l\00a\00p\00\fc\00k\00,\00\n\00 \00 \00\c2\00n\00e\00 \00e\00x\00 \00a\00\e9\00q\00u\00o\00 \00a\00u\00 \00w\00h\00i\00s\00t\00,\00\n\00 \00 \00\d4\00t\00e\00z\00 \00c\00e\00 \00v\00S\01u\00 \00d\00\e9\00\e7\00u\00.\00\n\00\n\00 \00 \00L\00e\00 \00c\00S\01u\00r\00 \00d\00\e9\00\e7\00u\00 \00m\00a\00i\00s\00 \00l\00\'\00\e2\00m\00e\00 \00p\00l\00u\00t\00\f4\00t\00 \00n\00a\00\ef\00v\00e\00,\00 \00L\00o\00u\00\ff\00s\00 \00r\00\ea\00v\00a\00 \00d\00e\00 \00c\00r\00a\00p\00a\00\fc\00t\00e\00r\00 \00e\00n\00\n\00 \00 \00c\00a\00n\00o\00\eb\00 \00a\00u\00 \00d\00e\00l\00\e0\00 \00d\00e\00s\00 \00\ee\00l\00e\00s\00,\00 \00p\00r\00\e8\00s\00 \00d\00u\00 \00m\00\e4\00l\00s\00t\00r\00\f6\00m\00 \00o\00\f9\00 \00b\00r\00\fb\00l\00e\00n\00t\00 \00l\00e\00s\00 \00n\00o\00v\00\e6\00.\00\n\00\n\00I\00r\00i\00s\00h\00 \00G\00a\00e\00l\00i\00c\00 \00(\00g\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00D\00\'\00f\00h\00u\00a\00s\00c\00a\00i\00l\00 \00\cd\00o\00s\00a\00,\00 \00\da\00r\00m\00h\00a\00c\00 \00n\00a\00 \00h\00\d3\00i\00g\00h\00e\00 \00B\00e\00a\00n\00n\00a\00i\00t\00h\00e\00,\00 \00p\00\f3\00r\00 \00\c9\00a\00v\00a\00 \00a\00g\00u\00s\00 \00\c1\00d\00h\00a\00i\00m\00h\00\n\00\n\00H\00u\00n\00g\00a\00r\00i\00a\00n\00 \00(\00h\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c1\00r\00v\00\ed\00z\00t\00q\01r\00Q\01 \00t\00\fc\00k\00\f6\00r\00f\00\fa\00r\00\f3\00g\00\e9\00p\00\n\00 \00 \00(\00=\00 \00f\00l\00o\00o\00d\00-\00p\00r\00o\00o\00f\00 \00m\00i\00r\00r\00o\00r\00-\00d\00r\00i\00l\00l\00i\00n\00g\00 \00m\00a\00c\00h\00i\00n\00e\00,\00 \00o\00n\00l\00y\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00)\00\n\00\n\00I\00c\00e\00l\00a\00n\00d\00i\00c\00 \00(\00i\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00K\00\e6\00m\00i\00 \00n\00\fd\00 \00\f6\00x\00i\00 \00h\00\e9\00r\00 \00y\00k\00i\00s\00t\00 \00\fe\00j\00\f3\00f\00u\00m\00 \00n\00\fa\00 \00b\00\e6\00\f0\00i\00 \00v\00\ed\00l\00 \00o\00g\00 \00\e1\00d\00r\00e\00p\00a\00\n\00\n\00 \00 \00S\00\e6\00v\00\f6\00r\00 \00g\00r\00\e9\00t\00 \00\e1\00\f0\00a\00n\00 \00\fe\00v\00\ed\00 \00\fa\00l\00p\00a\00n\00 \00v\00a\00r\00 \00\f3\00n\00\fd\00t\00\n\00 \00 \00(\00s\00o\00m\00e\00 \00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00m\00i\00s\00s\00i\00n\00g\00)\00\n\00\n\00J\00a\00p\00a\00n\00e\00s\00e\00 \00(\00j\00p\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00H\00i\00r\00a\00g\00a\00n\00a\00:\00 \00(\00I\00r\00o\00h\00a\00)\00\n\00\n\00 \00 \00D0\8d0o0k0{0x0h0a0\8a0l0\8b0\920\n\00 \00 \00\8f0K0\880_0\8c0]0d0m0j0\890\800\n\00 \00 \00F0\900n0J0O0\840~0Q0u0S0H0f0\n\00 \00 \00B0U0M0\860\810\7f0W0\910r0\820[0Y0\n\00\n\00 \00 \00K\00a\00t\00a\00k\00a\00n\00a\00:\00\n\00\n\00 \00 \00\a40\ed0\cf0\cb0\db0\d80\c80 \00\c10\ea0\cc0\eb0\f20 \00\ef0\ab0\e80\bf0\ec0\bd0 \00\c40\cd0\ca0\e90\e00\n\00 \00 \00\a60\f00\ce0\aa0\af0\e40\de0 \00\b10\d50\b30\a80\c60 \00\a20\b50\ad0\e60\e10\df0\b70 \00\f10\d20\e20\bb0\b90\f30\n\00\n\00H\00e\00b\00r\00e\00w\00 \00(\00i\00w\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00?\00 \00\d3\05\d2\05 \00\e1\05\e7\05\e8\05\df\05 \00\e9\05\d8\05 \00\d1\05\d9\05\dd\05 \00\de\05\d0\05\d5\05\db\05\d6\05\d1\05 \00\d5\05\dc\05\e4\05\ea\05\e2\05 \00\de\05\e6\05\d0\05 \00\dc\05\d5\05 \00\d7\05\d1\05\e8\05\d4\05 \00\d0\05\d9\05\da\05 \00\d4\05\e7\05\dc\05\d9\05\d8\05\d4\05\n\00\n\00P\00o\00l\00i\00s\00h\00 \00(\00p\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00c\00h\00n\00\05\01\07\01 \00w\00 \00t\00\19\01 \00B\01\f3\00d\00z\01 \00j\00e\00|\01a\00 \00l\00u\00b\00 \00o\00[\01m\00 \00s\00k\00r\00z\00y\00D\01 \00f\00i\00g\00\n\00 \00 \00(\00=\00 \00T\00o\00 \00p\00u\00s\00h\00 \00a\00 \00h\00e\00d\00g\00e\00h\00o\00g\00 \00o\00r\00 \00e\00i\00g\00h\00t\00 \00b\00i\00n\00s\00 \00o\00f\00 \00f\00i\00g\00s\00 \00i\00n\00 \00t\00h\00i\00s\00 \00b\00o\00a\00t\00)\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00 \00(\00r\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\12\04 \00G\040\04I\040\04E\04 \00N\043\040\04 \006\048\04;\04 \001\04K\04 \00F\048\04B\04@\04C\04A\04?\00 \00\14\040\04,\00 \00=\04>\04 \00D\040\04;\04L\04H\048\042\04K\049\04 \00M\04:\047\045\04<\04?\04;\04O\04@\04!\00\n\00 \00 \00(\00=\00 \00W\00o\00u\00l\00d\00 \00a\00 \00c\00i\00t\00r\00u\00s\00 \00l\00i\00v\00e\00 \00i\00n\00 \00t\00h\00e\00 \00b\00u\00s\00h\00e\00s\00 \00o\00f\00 \00s\00o\00u\00t\00h\00?\00 \00Y\00e\00s\00,\00 \00b\00u\00t\00 \00o\00n\00l\00y\00 \00a\00 \00f\00a\00k\00e\00 \00o\00n\00e\00!\00)\00\n\00\n\00 \00 \00!\04J\045\04H\04L\04 \006\045\04 \005\04I\04Q\04 \00M\04B\048\04E\04 \00<\04O\043\04:\048\04E\04 \00D\04@\040\04=\04F\04C\047\04A\04:\048\04E\04 \001\04C\04;\04>\04:\04 \004\040\04 \002\04K\04?\045\049\04 \00G\040\04N\04\n\00 \00 \00(\00=\00 \00E\00a\00t\00 \00s\00o\00m\00e\00 \00m\00o\00r\00e\00 \00o\00f\00 \00t\00h\00e\00s\00e\00 \00f\00r\00e\00s\00h\00 \00F\00r\00e\00n\00c\00h\00 \00l\00o\00a\00f\00s\00 \00a\00n\00d\00 \00h\00a\00v\00e\00 \00s\00o\00m\00e\00 \00t\00e\00a\00)\00\n\00\n\00T\00h\00a\00i\00 \00(\00t\00h\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00@\0e\1b\0eG\0e\19\0e!\0e\19\0e8\0e)\0e\"\0eL\0e*\0e8\0e\14\0e\1b\0e#\0e0\0e@\0e*\0e#\0e4\0e\10\0e@\0e%\0e4\0e(\0e\04\0e8\0e\13\0e\04\0eH\0e2\0e \00 \00\01\0e\'\0eH\0e2\0e\1a\0e#\0e#\0e\14\0e2\0e\1d\0e9\0e\07\0e*\0e1\0e\15\0e\'\0eL\0e@\0e\14\0e#\0e1\0e\08\0e\t\0e2\0e\19\0e\n\00 \00 \00\08\0e\07\0e\1d\0eH\0e2\0e\1f\0e1\0e\19\0e\1e\0e1\0e\12\0e\19\0e2\0e\'\0e4\0e\n\0e2\0e\01\0e2\0e#\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00-\0e\"\0eH\0e2\0e%\0eI\0e2\0e\07\0e\1c\0e%\0e2\0e\r\0e$\0eE\0e@\0e\02\0eH\0e\19\0e\06\0eH\0e2\0e\1a\0e5\0e\11\0e2\0eC\0e\04\0e#\0e\n\00 \00 \00D\0e!\0eH\0e\16\0e7\0e-\0eB\0e\17\0e)\0eB\0e\01\0e#\0e\18\0eA\0e\n\0eH\0e\07\0e\0b\0e1\0e\14\0e.\0e6\0e\14\0e.\0e1\0e\14\0e\14\0eH\0e2\0e \00 \00 \00 \00 \00+\0e1\0e\14\0e-\0e \0e1\0e\"\0e@\0e+\0e!\0e7\0e-\0e\19\0e\01\0e5\0e,\0e2\0e-\0e1\0e\n\0e\0c\0e2\0e*\0e1\0e\"\0e\n\00 \00 \00\1b\0e\0f\0e4\0e\1a\0e1\0e\15\0e4\0e\1b\0e#\0e0\0e\1e\0e$\0e\15\0e4\0e\01\0e\0e\0e\01\0e3\0e+\0e\19\0e\14\0eC\0e\08\0e \00 \00 \00 \00 \00 \00 \00 \00\1e\0e9\0e\14\0e\08\0e2\0eC\0e+\0eI\0e\08\0eJ\0e0\0eF\0e \00\08\0eK\0e2\0eF\0e \00\19\0eH\0e2\0e\1f\0e1\0e\07\0e@\0e-\0e\"\0e \00/\0e\n\00\n\00 \00 \00[\00T\00h\00e\00 \00c\00o\00p\00y\00r\00i\00g\00h\00t\00 \00f\00o\00r\00 \00t\00h\00e\00 \00T\00h\00a\00i\00 \00e\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \00o\00w\00n\00e\00d\00 \00b\00y\00 \00T\00h\00e\00 \00C\00o\00m\00p\00u\00t\00e\00r\00\n\00 \00 \00A\00s\00s\00o\00c\00i\00a\00t\00i\00o\00n\00 \00o\00f\00 \00T\00h\00a\00i\00l\00a\00n\00d\00 \00u\00n\00d\00e\00r\00 \00t\00h\00e\00 \00R\00o\00y\00a\00l\00 \00P\00a\00t\00r\00o\00n\00a\00g\00e\00 \00o\00f\00 \00H\00i\00s\00 \00M\00a\00j\00e\00s\00t\00y\00 \00t\00h\00e\00\n\00 \00 \00K\00i\00n\00g\00.\00]\00\n\00\n\00T\00u\00r\00k\00i\00s\00h\00 \00(\00t\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00i\00j\00a\00m\00a\00l\001\01 \00h\00a\00s\00t\00a\00,\00 \00y\00a\00\1f\011\01z\00 \00_\01o\00f\00\f6\00r\00e\00 \00\e7\00a\00b\00u\00c\00a\00k\00 \00g\00\fc\00v\00e\00n\00d\00i\00.\00\n\00 \00 \00(\00=\00P\00a\00t\00i\00e\00n\00t\00 \00w\00i\00t\00h\00 \00p\00a\00j\00a\00m\00a\00s\00,\00 \00t\00r\00u\00s\00t\00e\00d\00 \00s\00w\00a\00r\00t\00h\00y\00 \00d\00r\00i\00v\00e\00r\00 \00q\00u\00i\00c\00k\00l\00y\00)\00\n\00\n\00O\00t\00h\00e\00r\00\n\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c0\00\c8\00 \00/\00 \00c\003\00_\008\000\00 \00c\003\00_\008\008\00\n\00 \00 \00\d8S\cf\91 \00/\00 \00e\005\00_\008\00f\00_\009\008\00 \00e\009\00_\008\007\00_\008\00f\00\n\00 \00 \00A\d8\0e\dfA\d81\df \00/\00 \00f\000\00_\00a\000\00_\009\00c\00_\008\00e\00 \00f\000\00_\00a\000\00_\009\00c\00_\00b\001\00\n") - (data $36 (i32.const 24720) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $1 (i32.const 1068) "<") + (data $1.1 (i32.const 1080) "\02\00\00\00,\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00e\00n\00c\00o\00d\00i\00n\00g\00.\00t\00s") + (data $2 (i32.const 1132) "<") + (data $2.1 (i32.const 1144) "\02\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 $3 (i32.const 1196) "<") + (data $3.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1324) "<") + (data $6.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1388) ",") + (data $7.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1468) "<") + (data $9.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1532) "\1c") + (data $10.1 (i32.const 1544) "\02") + (data $11 (i32.const 1564) "\1c") + (data $11.1 (i32.const 1576) "\02\00\00\00\04\00\00\00\01\d87\dc") + (data $12 (i32.const 1596) "\1c") + (data $12.1 (i32.const 1608) "\02\00\00\00\02\00\00\00h") + (data $13 (i32.const 1628) "\1c") + (data $13.1 (i32.const 1640) "\02\00\00\00\04\00\00\00h\00i") + (data $14 (i32.const 1660) "\1c") + (data $14.1 (i32.const 1672) "\02\00\00\00\04\00\00\00R\d8b\df") + (data $15 (i32.const 1692) "<") + (data $15.1 (i32.const 1704) "\02\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e") + (data $16 (i32.const 1756) ",") + (data $16.1 (i32.const 1768) "\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") + (data $17 (i32.const 1804) "L") + (data $17.1 (i32.const 1816) "\02\00\00\008\00\00\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a\00a") + (data $18 (i32.const 1884) "\1c") + (data $18.1 (i32.const 1896) "\02\00\00\00\02\00\00\004\d8") + (data $19 (i32.const 1916) "\1c") + (data $19.1 (i32.const 1928) "\02\00\00\00\02\00\00\00\fd\ff") + (data $20 (i32.const 1948) "\1c") + (data $20.1 (i32.const 1960) "\02\00\00\00\02\00\00\00\1e\dd") + (data $21 (i32.const 1980) ",") + (data $21.1 (i32.const 1992) "\02\00\00\00\0e\00\00\001\002\003\00\00\004\005\006") + (data $22 (i32.const 2028) "\1c") + (data $22.1 (i32.const 2040) "\02\00\00\00\06\00\00\001\002\003") + (data $23 (i32.const 2060) "\1c") + (data $23.1 (i32.const 2072) "\02\00\00\00\08\00\00\00h\00i\00R\d8b\df") + (data $24 (i32.const 2092) "<3") + (data $24.1 (i32.const 2104) "\02\00\00\00*3\00\00M\00a\00t\00h\00e\00m\00a\00t\00i\00c\00s\00 \00a\00n\00d\00 \00S\00c\00i\00e\00n\00c\00e\00s\00:\00\n\00\n\00.\" \00E\00\c5\"d\00a\00 \00=\00 \00Q\00,\00 \00 \00n\00 \00\92! \00\1e\",\00 \00\11\" \00f\00(\00i\00)\00 \00=\00 \00\0f\" \00g\00(\00i\00)\00,\00 \00\00\"x\00\08\"\1d!:\00 \00\08#x\00\t# \00=\00 \00\12\"\n#\12\"x\00\0b#,\00 \00\b1\03 \00\'\" \00\ac\00\b2\03 \00=\00 \00\ac\00(\00\ac\00\b1\03 \00(\" \00\b2\03)\00,\00\n\00\n\00\15! \00\86\" \00\15!\80 \00\82\" \00$! \00\82\" \00\1a! \00\82\" \00\1d! \00\82\" \00\02!,\00 \00\a5\" \00<\00 \00a\00 \00`\" \00b\00 \00a\" \00c\00 \00d\" \00d\00 \00j\" \00\a4\" \00\d2! \00(\00A\00 \00\d4! \00B\00)\00,\00\n\00\n\002\00H\00\82 \00+\00 \00O\00\82 \00\cc! \002\00H\00\82 O\00,\00 \00R\00 \00=\00 \004\00.\007\00 \00k\00\a9\03,\00 \00\00# \002\000\000\00 \00m\00m\00\n\00\n\00L\00i\00n\00g\00u\00i\00s\00t\00i\00c\00s\00 \00a\00n\00d\00 \00d\00i\00c\00t\00i\00o\00n\00a\00r\00i\00e\00s\00:\00\n\00\n\00\f0\00i\00 \001\01n\00t\00Y\02\c8\02n\00\e6\00\83\02Y\02n\00Y\02l\00 \00f\00Y\02\c8\02n\00[\02t\001\01k\00 \00Y\02s\00o\00\8a\02s\00i\00\c8\02e\001\01\83\02n\00\n\00Y\00 \00[\00\c8\02\8f\02p\00s\00i\00l\00T\02n\00]\00,\00 \00Y\00e\00n\00 \00[\00j\00[\02n\00]\00,\00 \00Y\00o\00g\00a\00 \00[\00\c8\02j\00o\00\d0\02g\00Q\02]\00\n\00\n\00A\00P\00L\00:\00\n\00\n\00(\00(\00V\00s#V\00)\00=\00s#t#V\00)\00/\00V\00\90!,\00V\00 \00 \00 \00 \007#\90!s#\92!t#\06\"\07\"\83\"> N#U#\08#\n\00\n\00N\00i\00c\00e\00r\00 \00t\00y\00p\00o\00g\00r\00a\00p\00h\00y\00 \00i\00n\00 \00p\00l\00a\00i\00n\00 \00t\00e\00x\00t\00 \00f\00i\00l\00e\00s\00:\00\n\00\n\00T%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%W%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\18 s\00i\00n\00g\00l\00e\00\19 \00a\00n\00d\00 \00\1c d\00o\00u\00b\00l\00e\00\1d \00q\00u\00o\00t\00e\00s\00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00C\00u\00r\00l\00y\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00s\00:\00 \00\1c W\00e\00\19 v\00e\00 \00b\00e\00e\00n\00 \00h\00e\00r\00e\00\1d \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00L\00a\00t\00i\00n\00-\001\00 \00a\00p\00o\00s\00t\00r\00o\00p\00h\00e\00 \00a\00n\00d\00 \00a\00c\00c\00e\00n\00t\00s\00:\00 \00\'\00\b4\00`\00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00\1a d\00e\00u\00t\00s\00c\00h\00e\00\18 \00\1e A\00n\00f\00\fc\00h\00r\00u\00n\00g\00s\00z\00e\00i\00c\00h\00e\00n\00\1c \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00 ,\00 \00! ,\00 \000 ,\00 \00\" ,\00 \003\00\13 4\00,\00 \00\14 ,\00 \00\12\"5\00/\00+\005\00,\00 \00\"!,\00 \00& \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00A\00S\00C\00I\00I\00 \00s\00a\00f\00e\00t\00y\00 \00t\00e\00s\00t\00:\00 \001\00l\00I\00|\00,\00 \000\00O\00D\00,\00 \008\00B\00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00m%\00%\00%\00%\00%\00%\00%\00%\00%\00%n% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00\" \00t\00h\00e\00 \00e\00u\00r\00o\00 \00s\00y\00m\00b\00o\00l\00:\00 \00\02% \001\004\00.\009\005\00 \00\ac \00\02% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Q% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00p%\00%\00%\00%\00%\00%\00%\00%\00%\00%o% \00 \00 \00 \00 \00 \00 \00 \00 \00Q%\n\00Z%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%P%]%\n\00\n\00G\00r\00e\00e\00k\00 \00(\00i\00n\00 \00P\00o\00l\00y\00t\00o\00n\00i\00c\00)\00:\00\n\00\n\00T\00h\00e\00 \00G\00r\00e\00e\00k\00 \00a\00n\00t\00h\00e\00m\00:\00\n\00\n\00\a3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00\ba\03y\1f\c8\03\b7\03\n\00\c4\03\bf\03\e6\1f \00\c3\03\c0\03\b1\03\b8\03\b9\03\bf\03\e6\1f \00\c4\03t\1f\bd\03 \00\c4\03\c1\03\bf\03\bc\03\b5\03\c1\03u\1f,\00\n\00\c3\03r\1f \00\b3\03\bd\03\c9\03\c1\03w\1f\b6\03\c9\03 \00\00\1f\c0\03x\1f \00\c4\03t\1f\bd\03 \00D\1f\c8\03\b7\03\n\00\c0\03\bf\03z\1f \00\bc\03r\1f \00\b2\03w\1f\b1\03 \00\bc\03\b5\03\c4\03\c1\03q\1f\b5\03\b9\03 \00\c4\03t\1f \00\b3\03\c6\1f.\00\n\00\n\00\bf\1f\91\03\c0\03\bf\1f \00\c4\03p\1f \00\ba\03y\1f\ba\03\ba\03\b1\03\bb\03\b1\03 \00\b2\03\b3\03\b1\03\bb\03\bc\03s\1f\bd\03\b7\03\n\00\c4\03\f6\1f\bd\03 \00\fe\1f\95\03\bb\03\bb\03u\1f\bd\03\c9\03\bd\03 \00\c4\03p\1f \001\1f\b5\03\c1\03q\1f\n\00\ba\03\b1\03v\1f \00\c3\03p\1f\bd\03 \00\c0\03\c1\03\f6\1f\c4\03\b1\03 \00\00\1f\bd\03\b4\03\c1\03\b5\03\b9\03\c9\03\bc\03s\1f\bd\03\b7\03\n\00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00f\1f \00\c7\03\b1\03\d6\1f\c1\03\b5\03,\00 \00\bf\1f\95\03\bb\03\b5\03\c5\03\b8\03\b5\03\c1\03\b9\03q\1f!\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00s\00p\00e\00e\00c\00h\00 \00o\00f\00 \00D\00e\00m\00o\00s\00t\00h\00e\00n\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \004\00t\00h\00 \00c\00e\00n\00t\00u\00r\00y\00 \00B\00C\00:\00\n\00\n\00\9f\03P\1f\c7\03v\1f \00\c4\03\b1\03P\1f\c4\03p\1f \00\c0\03\b1\03\c1\03w\1f\c3\03\c4\03\b1\03\c4\03\b1\03w\1f \00\bc\03\bf\03\b9\03 \00\b3\03\b9\03\b3\03\bd\03}\1f\c3\03\ba\03\b5\03\b9\03\bd\03,\00 \00f\1f \00\04\1f\bd\03\b4\03\c1\03\b5\03\c2\03 \00\bf\1f\91\03\b8\03\b7\03\bd\03\b1\03\d6\1f\bf\03\b9\03,\00\n\00E\1f\c4\03\b1\03\bd\03 \00\c4\03\bf\1f \00\b5\030\1f\c2\03 \00\c4\03p\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\b1\03 \00\00\1f\c0\03\bf\03\b2\03\bb\03s\1f\c8\03\c9\03 \00\ba\03\b1\03v\1f \00E\1f\c4\03\b1\03\bd\03 \00\c0\03\c1\03x\1f\c2\03 \00\c4\03\bf\03z\1f\c2\03\n\00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\bf\03S\1f\c2\03 \00\00\1f\ba\03\bf\03{\1f\c9\03\87\03 \00\c4\03\bf\03z\1f\c2\03 \00\bc\03r\1f\bd\03 \00\b3\03p\1f\c1\03 \00\bb\03y\1f\b3\03\bf\03\c5\03\c2\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03 \00A\1f\c1\03\f6\1f \00\b3\03\b9\03\b3\03\bd\03\bf\03\bc\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\c4\03p\1f \00\b4\03r\1f \00\c0\03\c1\03q\1f\b3\03\bc\03\b1\03\c4\03\bf\1f\n\00\b5\030\1f\c2\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\c0\03\c1\03\bf\03u\1f\ba\03\bf\03\bd\03\c4\03\b1\03,\00 \00 \00e\1f\c3\03\b8\03\bf\1f \00E\1f\c0\03\c9\03\c2\03 \00\bc\03t\1f \00\c0\03\b5\03\b9\03\c3\03y\1f\bc\03\b5\03\b8\03\bf\1f \00\b1\03P\1f\c4\03\bf\03v\1f\n\00\c0\03\c1\03y\1f\c4\03\b5\03\c1\03\bf\03\bd\03 \00\ba\03\b1\03\ba\03\f6\1f\c2\03 \00\c3\03\ba\03s\1f\c8\03\b1\03\c3\03\b8\03\b1\03\b9\03 \00\b4\03s\1f\bf\03\bd\03.\00 \00\bf\03P\1f\b4\03s\1f\bd\03 \00\bf\03V\1f\bd\03 \00\04\1f\bb\03\bb\03\bf\03 \00\bc\03\bf\03\b9\03 \00\b4\03\bf\03\ba\03\bf\03\e6\1f\c3\03\b9\03\bd\03\n\00\bf\031\1f \00\c4\03p\1f \00\c4\03\bf\03\b9\03\b1\03\e6\1f\c4\03\b1\03 \00\bb\03s\1f\b3\03\bf\03\bd\03\c4\03\b5\03\c2\03 \00\"\1f \00\c4\03t\1f\bd\03 \00Q\1f\c0\03y\1f\b8\03\b5\03\c3\03\b9\03\bd\03,\00 \00\c0\03\b5\03\c1\03v\1f \00\'\1f\c2\03 \00\b2\03\bf\03\c5\03\bb\03\b5\03{\1f\b5\03\c3\03\b8\03\b1\03\b9\03,\00\n\00\bf\03P\1f\c7\03v\1f \00\c4\03t\1f\bd\03 \00\bf\03V\1f\c3\03\b1\03\bd\03 \00\c0\03\b1\03\c1\03\b9\03\c3\03\c4\03q\1f\bd\03\c4\03\b5\03\c2\03 \00Q\1f\bc\03\d6\1f\bd\03 \00\01\1f\bc\03\b1\03\c1\03\c4\03q\1f\bd\03\b5\03\b9\03\bd\03.\00 \00\10\1f\b3\03|\1f \00\b4\03s\1f,\00 \00E\1f\c4\03\b9\03 \00\bc\03s\1f\bd\03\n\00\c0\03\bf\03\c4\03\bf\1f \00\10\1f\be\03\c6\1f\bd\03 \00\c4\03\c7\1f \00\c0\03y\1f\bb\03\b5\03\b9\03 \00\ba\03\b1\03v\1f \00\c4\03p\1f \00\b1\03Q\1f\c4\03\c6\1f\c2\03 \00\14\1f\c7\03\b5\03\b9\03\bd\03 \00\00\1f\c3\03\c6\03\b1\03\bb\03\f6\1f\c2\03 \00\ba\03\b1\03v\1f \00\a6\03w\1f\bb\03\b9\03\c0\03\c0\03\bf\03\bd\03\n\00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b1\03\c3\03\b8\03\b1\03\b9\03,\00 \00\ba\03\b1\03v\1f \00\bc\03q\1f\bb\03\bf\1f \00\00\1f\ba\03\c1\03\b9\03\b2\03\f6\1f\c2\03 \00\bf\036\1f\b4\03\b1\03\87\03 \00\10\1f\c0\03\bf\1f \00\10\1f\bc\03\bf\03\e6\1f \00\b3\03q\1f\c1\03,\00 \00\bf\03P\1f \00\c0\03q\1f\bb\03\b1\03\b9\03\n\00\b3\03s\1f\b3\03\bf\03\bd\03\b5\03\bd\03 \00\c4\03\b1\03\e6\1f\c4\03\bf\1f \00\00\1f\bc\03\c6\03y\1f\c4\03\b5\03\c1\03\b1\03\87\03 \00\bd\03\e6\1f\bd\03 \00\bc\03s\1f\bd\03\c4\03\bf\03\b9\03 \00\c0\03s\1f\c0\03\b5\03\b9\03\c3\03\bc\03\b1\03\b9\03 \00\c4\03\bf\03\e6\1f\b8\03\bf\1f \001\1f\ba\03\b1\03\bd\03x\1f\bd\03\n\00\c0\03\c1\03\bf\03\bb\03\b1\03\b2\03\b5\03\d6\1f\bd\03 \00!\1f\bc\03\d6\1f\bd\03 \00\b5\036\1f\bd\03\b1\03\b9\03 \00\c4\03t\1f\bd\03 \00\c0\03\c1\03}\1f\c4\03\b7\03\bd\03,\00 \00E\1f\c0\03\c9\03\c2\03 \00\c4\03\bf\03z\1f\c2\03 \00\c3\03\c5\03\bc\03\bc\03q\1f\c7\03\bf\03\c5\03\c2\03\n\00\c3\03}\1f\c3\03\bf\03\bc\03\b5\03\bd\03.\00 \00\10\1fp\1f\bd\03 \00\b3\03p\1f\c1\03 \00\c4\03\bf\03\e6\1f\c4\03\bf\03 \00\b2\03\b5\03\b2\03\b1\03w\1f\c9\03\c2\03 \00Q\1f\c0\03q\1f\c1\03\be\03\c3\1f,\00 \00\c4\03y\1f\c4\03\b5\03 \00\ba\03\b1\03v\1f \00\c0\03\b5\03\c1\03v\1f \00\c4\03\bf\03\e6\1f\n\00\c4\03w\1f\bd\03\b1\03 \00\c4\03\b9\03\bc\03\c9\03\c1\03u\1f\c3\03\b5\03\c4\03\b1\03w\1f \00\c4\03\b9\03\c2\03 \00\ba\03\b1\03v\1f \00C\1f\bd\03 \00\c4\03\c1\03y\1f\c0\03\bf\03\bd\03 \00\10\1f\be\03s\1f\c3\03\c4\03\b1\03\b9\03 \00\c3\03\ba\03\bf\03\c0\03\b5\03\d6\1f\bd\03\87\03 \00\c0\03\c1\03v\1f\bd\03 \00\b4\03r\1f\n\00\c4\03t\1f\bd\03 \00\00\1f\c1\03\c7\03t\1f\bd\03 \00@\1f\c1\03\b8\03\f6\1f\c2\03 \00Q\1f\c0\03\bf\03\b8\03s\1f\c3\03\b8\03\b1\03\b9\03,\00 \00\bc\03q\1f\c4\03\b1\03\b9\03\bf\03\bd\03 \00!\1f\b3\03\bf\03\e6\1f\bc\03\b1\03\b9\03 \00\c0\03\b5\03\c1\03v\1f \00\c4\03\c6\1f\c2\03\n\00\c4\03\b5\03\bb\03\b5\03\c5\03\c4\03\c6\1f\c2\03 \00A\1f\bd\03\c4\03\b9\03\bd\03\bf\03\e6\1f\bd\03 \00\c0\03\bf\03\b9\03\b5\03\d6\1f\c3\03\b8\03\b1\03\b9\03 \00\bb\03y\1f\b3\03\bf\03\bd\03.\00\n\00\n\00\94\03\b7\03\bc\03\bf\03\c3\03\b8\03s\1f\bd\03\bf\03\c5\03\c2\03,\00 \00\93\03\fd\1f \00\bf\1f\9f\03\bb\03\c5\03\bd\03\b8\03\b9\03\b1\03\ba\03x\1f\c2\03\n\00\n\00G\00e\00o\00r\00g\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\d2\10\d7\10\ee\10\dd\10\d5\10\d7\10 \00\d0\10\ee\10\da\10\d0\10\d5\10\d4\10 \00\d2\10\d0\10\d8\10\d0\10\e0\10\dd\10\d7\10 \00\e0\10\d4\10\d2\10\d8\10\e1\10\e2\10\e0\10\d0\10\ea\10\d8\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\db\10\d4\10\d0\10\d7\10\d4\10 \00\e1\10\d0\10\d4\10\e0\10\d7\10\d0\10\e8\10\dd\10\e0\10\d8\10\e1\10\dd\10\n\00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10\d6\10\d4\10 \00\d3\10\d0\10\e1\10\d0\10\e1\10\ec\10\e0\10\d4\10\d1\10\d0\10\d3\10,\00 \00\e0\10\dd\10\db\10\d4\10\da\10\d8\10\ea\10 \00\d2\10\d0\10\d8\10\db\10\d0\10\e0\10\d7\10\d4\10\d1\10\d0\10 \001\000\00-\001\002\00 \00\db\10\d0\10\e0\10\e2\10\e1\10,\00\n\00\e5\10.\00 \00\db\10\d0\10\d8\10\dc\10\ea\10\e8\10\d8\10,\00 \00\d2\10\d4\10\e0\10\db\10\d0\10\dc\10\d8\10\d0\10\e8\10\d8\10.\00 \00\d9\10\dd\10\dc\10\e4\10\d4\10\e0\10\d4\10\dc\10\ea\10\d8\10\d0\10 \00\e8\10\d4\10\f0\10\d9\10\e0\10\d4\10\d1\10\e1\10 \00\d4\10\e0\10\d7\10\d0\10\d3\10 \00\db\10\e1\10\dd\10\e4\10\da\10\d8\10\dd\10\e1\10\n\00\d4\10\e5\10\e1\10\de\10\d4\10\e0\10\e2\10\d4\10\d1\10\e1\10 \00\d8\10\e1\10\d4\10\d7\10 \00\d3\10\d0\10\e0\10\d2\10\d4\10\d1\10\e8\10\d8\10 \00\e0\10\dd\10\d2\10\dd\10\e0\10\d8\10\ea\10\d0\10\d0\10 \00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d4\10\e2\10\d8\10 \00\d3\10\d0\10 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10,\00\n\00\d8\10\dc\10\e2\10\d4\10\e0\10\dc\10\d0\10\ea\10\d8\10\dd\10\dc\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10 \00\d3\10\d0\10 \00\da\10\dd\10\d9\10\d0\10\da\10\d8\10\d6\10\d0\10\ea\10\d8\10\d0\10,\00 \00U\00n\00i\00c\00o\00d\00e\00-\00\d8\10\e1\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d0\10\n\00\dd\10\de\10\d4\10\e0\10\d0\10\ea\10\d8\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e1\10\d0\10,\00 \00\d3\10\d0\10 \00\d2\10\d0\10\db\10\dd\10\e7\10\d4\10\dc\10\d4\10\d1\10\d8\10\d7\10 \00\de\10\e0\10\dd\10\d2\10\e0\10\d0\10\db\10\d4\10\d1\10\e8\10\d8\10,\00 \00\e8\10\e0\10\d8\10\e4\10\e2\10\d4\10\d1\10\e8\10\d8\10,\00\n\00\e2\10\d4\10\e5\10\e1\10\e2\10\d4\10\d1\10\d8\10\e1\10 \00\d3\10\d0\10\db\10\e3\10\e8\10\d0\10\d5\10\d4\10\d1\10\d0\10\e1\10\d0\10 \00\d3\10\d0\10 \00\db\10\e0\10\d0\10\d5\10\d0\10\da\10\d4\10\dc\10\dd\10\d5\10\d0\10\dc\10 \00\d9\10\dd\10\db\10\de\10\d8\10\e3\10\e2\10\d4\10\e0\10\e3\10\da\10 \00\e1\10\d8\10\e1\10\e2\10\d4\10\db\10\d4\10\d1\10\e8\10\d8\10.\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00:\00\n\00\n\00F\00r\00o\00m\00 \00a\00 \00U\00n\00i\00c\00o\00d\00e\00 \00c\00o\00n\00f\00e\00r\00e\00n\00c\00e\00 \00i\00n\00v\00i\00t\00a\00t\00i\00o\00n\00:\00\n\00\n\00\17\040\04@\045\043\048\04A\04B\04@\048\04@\04C\049\04B\045\04A\04L\04 \00A\045\049\04G\040\04A\04 \00=\040\04 \00\14\045\04A\04O\04B\04C\04N\04 \00\1c\045\046\044\04C\04=\040\04@\04>\044\04=\04C\04N\04 \00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04N\04 \00?\04>\04\n\00U\00n\00i\00c\00o\00d\00e\00,\00 \00:\04>\04B\04>\04@\040\04O\04 \00A\04>\04A\04B\04>\048\04B\04A\04O\04 \001\000\00-\001\002\00 \00<\040\04@\04B\040\04 \001\009\009\007\00 \003\04>\044\040\04 \002\04 \00\1c\040\049\04=\04F\045\04 \002\04 \00\13\045\04@\04<\040\04=\048\048\04.\00\n\00\1a\04>\04=\04D\045\04@\045\04=\04F\048\04O\04 \00A\04>\041\045\04@\045\04B\04 \00H\048\04@\04>\04:\048\049\04 \00:\04@\04C\043\04 \00M\04:\04A\04?\045\04@\04B\04>\042\04 \00?\04>\04 \00 \002\04>\04?\04@\04>\04A\040\04<\04 \003\04;\04>\041\040\04;\04L\04=\04>\043\04>\04\n\00\18\04=\04B\045\04@\04=\045\04B\040\04 \008\04 \00U\00n\00i\00c\00o\00d\00e\00,\00 \00;\04>\04:\040\04;\048\047\040\04F\048\048\04 \008\04 \008\04=\04B\045\04@\04=\040\04F\048\04>\04=\040\04;\048\047\040\04F\048\048\04,\00 \002\04>\04?\04;\04>\04I\045\04=\048\04N\04 \008\04\n\00?\04@\048\04<\045\04=\045\04=\048\04N\04 \00U\00n\00i\00c\00o\00d\00e\00 \002\04 \00@\040\047\04;\048\04G\04=\04K\04E\04 \00>\04?\045\04@\040\04F\048\04>\04=\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04 \008\04 \00?\04@\04>\043\04@\040\04<\04<\04=\04K\04E\04\n\00?\04@\048\04;\04>\046\045\04=\048\04O\04E\04,\00 \00H\04@\048\04D\04B\040\04E\04,\00 \002\045\04@\04A\04B\04:\045\04 \008\04 \00<\04=\04>\043\04>\04O\047\04K\04G\04=\04K\04E\04 \00:\04>\04<\04?\04L\04N\04B\045\04@\04=\04K\04E\04 \00A\048\04A\04B\045\04<\040\04E\04.\00\n\00\n\00T\00h\00a\00i\00 \00(\00U\00C\00S\00 \00L\00e\00v\00e\00l\00 \002\00)\00:\00\n\00\n\00E\00x\00c\00e\00r\00p\00t\00 \00f\00r\00o\00m\00 \00a\00 \00p\00o\00e\00t\00r\00y\00 \00o\00n\00 \00T\00h\00e\00 \00R\00o\00m\00a\00n\00c\00e\00 \00o\00f\00 \00T\00h\00e\00 \00T\00h\00r\00e\00e\00 \00K\00i\00n\00g\00d\00o\00m\00s\00 \00(\00a\00 \00C\00h\00i\00n\00e\00s\00e\00\n\00c\00l\00a\00s\00s\00i\00c\00 \00\'\00S\00a\00n\00 \00G\00u\00a\00\'\00)\00:\00\n\00\n\00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00A\0e\1c\0eH\0e\19\0e\14\0e4\0e\19\0e.\0e1\0eH\0e\19\0e@\0e*\0e7\0eH\0e-\0e!\0eB\0e\17\0e#\0e!\0eA\0e*\0e\19\0e*\0e1\0e\07\0e@\0e\'\0e\n\0e \00 \00\1e\0e#\0e0\0e\1b\0e\01\0e@\0e\01\0e(\0e\01\0e-\0e\07\0e\1a\0e9\0eJ\0e\01\0e9\0eI\0e\02\0e6\0eI\0e\19\0eC\0e+\0e!\0eH\0e\n\00*\0e4\0e\1a\0e*\0e-\0e\07\0e\01\0e)\0e1\0e\15\0e#\0e4\0e\"\0eL\0e\01\0eH\0e-\0e\19\0e+\0e\19\0eI\0e2\0eA\0e%\0e\16\0e1\0e\14\0eD\0e\1b\0e \00 \00 \00 \00 \00 \00 \00*\0e-\0e\07\0e-\0e\07\0e\04\0eL\0eD\0e\0b\0e#\0eI\0eB\0e\07\0eH\0e@\0e\02\0e%\0e2\0e@\0e\1a\0e2\0e\1b\0e1\0e\r\0e\r\0e2\0e\n\00 \00 \00\17\0e#\0e\07\0e\19\0e1\0e\1a\0e\16\0e7\0e-\0e\02\0e1\0e\19\0e\17\0e5\0e@\0e\1b\0eG\0e\19\0e\17\0e5\0eH\0e\1e\0e6\0eH\0e\07\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\1a\0eI\0e2\0e\19\0e@\0e!\0e7\0e-\0e\07\0e\08\0e6\0e\07\0e\'\0e4\0e\1b\0e#\0e4\0e\15\0e@\0e\1b\0eG\0e\19\0e\19\0e1\0e\01\0e+\0e\19\0e2\0e\n\00B\0e.\0e\08\0e4\0eK\0e\19\0e@\0e#\0e5\0e\"\0e\01\0e\17\0e1\0e\1e\0e\17\0e1\0eH\0e\'\0e+\0e1\0e\'\0e@\0e!\0e7\0e-\0e\07\0e!\0e2\0e \00 \00 \00 \00 \00 \00 \00 \00 \00+\0e!\0e2\0e\"\0e\08\0e0\0e\06\0eH\0e2\0e!\0e\14\0e\n\0e1\0eH\0e\'\0e\15\0e1\0e\'\0e*\0e3\0e\04\0e1\0e\r\0e\n\00 \00 \00@\0e+\0e!\0e7\0e-\0e\19\0e\02\0e1\0e\1a\0eD\0e*\0eD\0e%\0eH\0e@\0e*\0e7\0e-\0e\08\0e2\0e\01\0e@\0e\04\0e+\0e2\0e \00 \00 \00 \00 \00 \00#\0e1\0e\1a\0e+\0e!\0e2\0e\1b\0eH\0e2\0e@\0e\02\0eI\0e2\0e!\0e2\0e@\0e%\0e\"\0e-\0e2\0e*\0e1\0e\r\0e\n\00\1d\0eH\0e2\0e\"\0e-\0eI\0e-\0e\07\0e-\0e8\0eI\0e\19\0e\"\0e8\0eA\0e\"\0e\01\0eC\0e+\0eI\0eA\0e\15\0e\01\0e\01\0e1\0e\19\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00C\0e\n\0eI\0e*\0e2\0e\'\0e\19\0e1\0eI\0e\19\0e@\0e\1b\0eG\0e\19\0e\n\0e\19\0e\'\0e\19\0e\n\0e7\0eH\0e\19\0e\n\0e\'\0e\19\0eC\0e\08\0e\n\00 \00 \00\1e\0e%\0e1\0e\19\0e%\0e4\0e\t\0e8\0e\"\0e\01\0e8\0e\"\0e\01\0e5\0e\01\0e%\0e1\0e\1a\0e\01\0eH\0e-\0e@\0e+\0e\15\0e8\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\n\0eH\0e2\0e\07\0e-\0e2\0e@\0e\1e\0e(\0e\08\0e#\0e4\0e\07\0e+\0e\19\0e2\0e\1f\0eI\0e2\0e#\0eI\0e-\0e\07\0eD\0e+\0eI\0e\n\00\15\0eI\0e-\0e\07\0e#\0e\1a\0e#\0e2\0e\06\0eH\0e2\0e\1f\0e1\0e\19\0e\08\0e\19\0e\1a\0e#\0e#\0e%\0e1\0e\"\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00$\0eE\0e+\0e2\0eC\0e\04\0e#\0e\04\0eI\0e3\0e\n\0e9\0e\01\0e9\0eI\0e\1a\0e#\0e#\0e%\0e1\0e\07\0e\01\0eL\0e \00/\0e\n\00\n\00(\00T\00h\00e\00 \00a\00b\00o\00v\00e\00 \00i\00s\00 \00a\00 \00t\00w\00o\00-\00c\00o\00l\00u\00m\00n\00 \00t\00e\00x\00t\00.\00 \00I\00f\00 \00c\00o\00m\00b\00i\00n\00i\00n\00g\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00s\00 \00a\00r\00e\00 \00h\00a\00n\00d\00l\00e\00d\00\n\00c\00o\00r\00r\00e\00c\00t\00l\00y\00,\00 \00t\00h\00e\00 \00l\00i\00n\00e\00s\00 \00o\00f\00 \00t\00h\00e\00 \00s\00e\00c\00o\00n\00d\00 \00c\00o\00l\00u\00m\00n\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00a\00l\00i\00g\00n\00e\00d\00 \00w\00i\00t\00h\00 \00t\00h\00e\00\n\00|\00 \00c\00h\00a\00r\00a\00c\00t\00e\00r\00 \00a\00b\00o\00v\00e\00.\00)\00\n\00\n\00E\00t\00h\00i\00o\00p\00i\00a\00n\00:\00\n\00\n\00P\00r\00o\00v\00e\00r\00b\00s\00 \00i\00n\00 \00t\00h\00e\00 \00A\00m\00h\00a\00r\00i\00c\00 \00l\00a\00n\00g\00u\00a\00g\00e\00:\00\n\00\n\000\12\1b\12\ed\12 \00\a0\12\ed\12s\12(\125\12 \00\95\12\t\13%\12 \00\a0\12\ed\12\a8\120\125\12b\13\n\00e\12\0b\12 \00\ab\12\08\12\9d\12 \00\a5\12\95\12\f0\12\a0\12c\12t\12 \00`\12F\12\18\12 \13\9d\12b\13\n\00\0c\13%\13 \00\eb\12\08\12d\12q\12 \00A\12\1d\12%\13\93\12 \00\90\12\cd\12b\13\n\00\f0\12\00\12 \00`\12\15\12\r\12\19\12 \00E\12d\12 \00c\12\ed\12 \13#\13 \00\95\12#\13u\12 \00`\12\08\13\f0\12\08\12\cd\12b\13\n\00\e8\12\a0\12M\13 \00\c8\12\08\12\1d\12s\12 \00`\12E\12d\12 \00\a0\12\ed\12s\12=\12\1d\12b\13\n\00\a0\12\ed\12%\13 \00`\12`\12\0b\12 \00\f3\12\cb\12 \00p\12\18\12s\12b\13\n\002\12p\12(\12\t\13\19\12 \00\ed\12\f0\12(\12\r\13\19\12b\13\n\00@\125\12 \00`\12@\125\12e\13 \00\d5\12\95\12A\12\0b\12\r\12 \00`\12\a5\12\r\13)\12 \00\ed\12\04\12\f3\12\r\12b\13\n\00\f5\12-\12 \00b\12\eb\12e\12-\12 \00\a0\12\95\12`\123\12 \00\eb\125\12-\12b\13\n\000\12\cd\12 \00\a5\12\95\12\f0\12d\12q\12 \00\a5\12\95\12\05\13 \00\a5\12\95\12\f0\12 \00\t\13(\12d\12q\12 \00\a0\12\ed\12p\12\f3\12\f0\12-\12\1d\12b\13\n\00\a5\12\r\13\dc\12-\12 \00\e8\12\a8\12H\13p\12\cd\12\95\12 \00\t\13.\12.\12 \003\12\ed\12\d8\12\0b\13\cd\12 \00\a0\12\ed\12\f5\12-\12\1d\12b\13\n\00\e8\12\0e\13(\12d\12u\12 \00\0c\12c\12e\13 \00b\12\eb\12\e9\12u\12 \00\ed\125\12E\12 \00c\12\eb\12\e9\12u\12 \00\eb\12 \13\r\12E\12b\13\n\00%\12+\12 \00\a8\12\18\12M\13s\12u\12 \00\r\12\04\13\95\12 \00\0b\12K\13s\12u\12b\13\n\00\d3\12c\12\ed\12 \00\1b\12\f0\12*\12\eb\12 \00\e8\12\08\12\cd\12e\13 \00\r\13\95\12\f5\12 \00\ed\12\de\12 \00\ed\12\de\12+\12\r\12b\13\n\00\e8\12\a5\125\12\0b\12\1d\12 \00\a0\12\08\13)\12 \00\18\12\ab\12 \00\e8\12\a0\12\1e\12+\12 \00\a0\12\08\13)\12 \00\cb\12-\12\ab\12b\13\n\00p\12\95\12\0b\13\0e\12 \00b\12p\12I\13 \00p\12\18\12\r\126\12 \00c\12I\13b\13\n\00\c8\12\f3\12\05\13\05\12 \00\1b\12-\12 \00b\12\06\12\95\12 \00(\13-\125\12\05\12 \00\a0\12u\12\0b\120\12\cd\12b\13\n\00\a5\12\r\13-\12\05\12\95\12 \00`\12M\13+\12=\12\05\12 \00\r\12\ad\12 \00\d8\12-\12\0b\13b\13\n\00\n\00R\00u\00n\00e\00s\00:\00\n\00\n\00\bb\16\d6\16 \00\b3\16\b9\16\ab\16\a6\16 \00\a6\16\ab\16\cf\16 \00\bb\16\d6\16 \00\d2\16\a2\16\de\16\d6\16 \00\a9\16\be\16 \00\a6\16\ab\16\d7\16 \00\da\16\aa\16\be\16\de\16\d6\16 \00\be\16\a9\16\b1\16\a6\16\b9\16\d6\16\aa\16\b1\16\de\16\a2\16\d7\16 \00\b9\16\c1\16\a6\16 \00\a6\16\aa\16 \00\b9\16\d6\16\e5\16\ab\16\n\00\n\00(\00O\00l\00d\00 \00E\00n\00g\00l\00i\00s\00h\00,\00 \00w\00h\00i\00c\00h\00 \00t\00r\00a\00n\00s\00c\00r\00i\00b\00e\00d\00 \00i\00n\00t\00o\00 \00L\00a\00t\00i\00n\00 \00r\00e\00a\00d\00s\00 \00\'\00H\00e\00 \00c\00w\00a\00e\00t\00h\00 \00t\00h\00a\00t\00 \00h\00e\00\n\00b\00u\00d\00e\00 \00t\00h\00a\00e\00m\00 \00l\00a\00n\00d\00e\00 \00n\00o\00r\00t\00h\00w\00e\00a\00r\00d\00u\00m\00 \00w\00i\00t\00h\00 \00t\00h\00a\00 \00W\00e\00s\00t\00s\00a\00e\00.\00\'\00 \00a\00n\00d\00 \00m\00e\00a\00n\00s\00 \00\'\00H\00e\00 \00s\00a\00i\00d\00\n\00t\00h\00a\00t\00 \00h\00e\00 \00l\00i\00v\00e\00d\00 \00i\00n\00 \00t\00h\00e\00 \00n\00o\00r\00t\00h\00e\00r\00n\00 \00l\00a\00n\00d\00 \00n\00e\00a\00r\00 \00t\00h\00e\00 \00W\00e\00s\00t\00e\00r\00n\00 \00S\00e\00a\00.\00\'\00)\00\n\00\n\00B\00r\00a\00i\00l\00l\00e\00:\00\n\00\n\00L(\01(\'(\11( \00<(\01(\12( \00 \00M(\1c(\07(\11(9(0(\0e( \00c(\15(\0c(\n\00\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\19(\11(\01(\19(\12( \00\1e(\15( \00\03(\11(\1b(\14( \00:(\n(9(2( \00y(;(\11( \00\n(\0e( \00\1d(\15( \00\19(3(\03(\1e(\n\001(\01(\1e(\11(\'(;( \00\01(\03(3(\1e( \009(\01(\1e(2( \00y(\11( \00\17(\11(\1b(\n(\0c(;( \00\15(\0b( \00\19(\n(\0e( \00\03(%(\17(\n(\01(\07( \00:(\01(\0e(\n\00\0e(\n(\1b(\1d(+( \00\03(9( \009(\11( \00\n(\07(;(\1b(9(\r(\01(\1d(\02( \009(\11( \00\n(\07(;(\05(\02( \009(\11( \00%(\1d(\19(;(\1e(\01(\05(;(\02(\n\00\01(\1d(\19( \009(\11( \00!(\n(\11(\0b( \00\r(3(\17(\1d(;(2( \00N(\n(\17(\15(\15(\1b(\11( \00\0e(\n(\1b(\1d(+( \00\n(\1e(2( \00A(\1d(\19(\n\00N(\n(\17(\15(\15(\1b(\11(0(\0e( \00\1d(\01(\r(\11( \00:(\01(\0e( \00\1b(\15(\15(\19( \00%(\0f(\15(\1d( \000(a(\01(\1d(\1b(\11(\02( \00\0b(\15(\17( \00\01(\1d(9(9(\14(\1b( \00\19(\11(\n\00!(\15(\0e(\11( \00\1e(\15( \00\0f(%(\1e( \00\19(\n(\0e( \00\19(\01(\1d(\19( \00\1e(\15(2(\n\00\n\00U(\07(\19( \00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00M(\14(\19(\16( \00J( \00\19(\15(\1d(0(\1e( \00\r(\11(\01(\1d( \00\1e(\15( \00\0e(\01(9( \009(\01(\1e( \00J( \00\05(\1d(*(\02( \00\15(\0b( \00\r(9(\n\00*(\1d( \00\05(\1d(*(\07(+(\1b(\11(\02( \001(\01(\1e( \009(;(\11( \00\n(\0e( \00\0f(\1c(\1e(\n(\n(%(\07(\1c(\07(9( \00\19(\11(\01(\19( \00\01(\03(3(\1e(\n\00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2( \00J( \00\r(\n(#(\1e( \00\19(\01(\'(\11( \00\03(\11(2( \00\14(\n(\07(\14(+(\02( \00\r(9(\0e(\11(\07(\0b(\02( \00\1e(\15(\n\00\17(\11(\1b(\1c(\19( \00\01( \00\n(\15(\0b(\0b(\14($(\1d(\01(\n(\07( \00\01(\0e( \009(\11( \00\19(\11(\01(\19(\11(\0c( \00\0f(\n(\11(\n(\11( \00\15(\0b( \00\n(\17(\15(\1d(\r(\15(\1d(\1b(;(9(\n\00\14( \009(\11( \00\1e(\17(\01(\19(\11(2( \00C(%(\1e( \009(\11( \00:(\n(\0e(\19(\15(\r( \00\15(\0b( \003(\17( \00\01(\1d(\n(\11(\0c(\15(\17(\0e(\n\00\n(\0e( \00\14( \009(\11( \00\0e(\n(\r(\n(\07(\11(\06( \00\01(\1d(\19( \00\r(9( \00%(\1d(\19(\01(\07(\07(*(+( \00\19(\01(\1d(\19(\0e(\n\00)(\01(\07(\07( \00\1d(\15(\1e( \00\19(\n(\0c(%(\17(\03( \00\n(\1e(\02( \00\15(\17( \009(\11( \00J(3(\1d(\1e(\17(9(0(\0e( \00\19(\15(\1d(\11( \00\0b(\15(\17(2( \00y(3(\n\00:(\n(\07(\07( \009(;(\11(\0b(\15(\17(\11( \00\0f(;(\r(\n(\1e( \00\r(\11( \00\1e(\15( \00\17(\11(\0f(\11(\01(\1e(\02( \00\11(\r(\0f(\19(\01(\1e(\n(\n(\01(\07(\07(9(\02( \009(\01(\1e(\n\00M(\1c(\07(\11(9( \00:(\01(\0e( \00\01(\0e( \00\19(\11(\01(\19( \00\01(\0e( \00\01( \00\19(\15(\15(\17($(\1d(\01(\n(\07(2(\n\00\n\00(\00T\00h\00e\00 \00f\00i\00r\00s\00t\00 \00c\00o\00u\00p\00l\00e\00 \00o\00f\00 \00p\00a\00r\00a\00g\00r\00a\00p\00h\00s\00 \00o\00f\00 \00\"\00A\00 \00C\00h\00r\00i\00s\00t\00m\00a\00s\00 \00C\00a\00r\00o\00l\00\"\00 \00b\00y\00 \00D\00i\00c\00k\00e\00n\00s\00)\00\n\00\n\00C\00o\00m\00p\00a\00c\00t\00 \00f\00o\00n\00t\00 \00s\00e\00l\00e\00c\00t\00i\00o\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00x\00t\00:\00\n\00\n\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/\000\001\002\003\004\005\006\007\008\009\00\n\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\a3\00\a9\00\b5\00\c0\00\c6\00\d6\00\de\00\df\00\e9\00\f6\00\ff\00\n\00\13 \14 \18 \1c \1d \1e \" & 0 \"!S\01`\01x\01~\01\ac \00\91\03\92\03\93\03\94\03\a9\03\b1\03\b2\03\b3\03\b4\03\c9\03 \00\10\04\11\04\12\04\13\04\14\040\041\042\043\044\04\n\00\00\"\02\"\08\"\1d!\'\"*\"a\"\1e\" \00\91!\97!\a8!\bb!\e3! \00\10%<%T%X%\91%\ba%:&@& \00\01\fb\fd\ff@$\82 \1f\02\1e\e5\04\84\1eP\02\d0\02N#\d0\051\05\d0\10\n\00\n\00G\00r\00e\00e\00t\00i\00n\00g\00s\00 \00i\00n\00 \00v\00a\00r\00i\00o\00u\00s\00 \00l\00a\00n\00g\00u\00a\00g\00e\00s\00:\00\n\00\n\00H\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00,\00 \00\9a\03\b1\03\bb\03\b7\03\bc\03s\1f\c1\03\b1\03 \00\ba\03y\1f\c3\03\bc\03\b5\03,\00 \00\b30\f30\cb0\c10\cf0\n\00\n\00B\00o\00x\00 \00d\00r\00a\00w\00i\00n\00g\00 \00a\00l\00i\00g\00n\00m\00e\00n\00t\00 \00t\00e\00s\00t\00s\00:\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\88%\n\00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\89%\n\00T%P%P%f%P%P%W% \00 \00\0c%\00%\00%,%\00%\00%\10% \00 \00m%\00%\00%,%\00%\00%n% \00 \00m%\00%\00%,%\00%\00%n% \00 \00\0f%\01%\01%3%\01%\01%\13% \00 \00\0e%\12%\0f%\11% \00 \00 \00w% \00 \00{% \00\0f%/%\13% \00\0c%0%\10% \00 \00 \00 \00\8a% \00q%r%q%r%s%s%s%\n\00Q%\0c%\00%h%\00%\10%Q% \00 \00\02%T%P%g%P%W%\02% \00 \00\02%R%P%j%P%U%\02% \00 \00\02%S%\00%A%\00%V%\02% \00 \00\03%\0c%\00%B%\00%\10%\03% \00 \00\17%C%D%\19% \00 \00v%<%t%z%K%x% %<%(% \00\1d%K%%% \00 \00 \00 \00\8b% \00r%q%r%q%s%s%s%\n\00Q%\02%r% \00q%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00\7f% \00\02%\03% \00 \00\r%E%F%\13% \00 \00 \00u% \00 \00y% \00\17%7%\1b% \00\14%8%\18% \00 \00 \00 \00\8c% \00q%r%q%r%s%s%s%\n\00`%a% \00s% \00^%c% \00 \00\1c%b% \00 \00 \00_%$% \00 \00\1c%<%\00%<%\00%<%$% \00 \00\1c%k%\00%B%\00%k%$% \00 \00#%?%~%<%|%?%+% \00 \00\15%\1b%\16%\1a% \00 \00 \00 \00 \00\0c%\04%\04%\10% \00N% \00\0f%\05%\05%\13% \00\0b% \00\8d% \00r%q%r%q%s%s%s%\n\00Q%\02%q% \00r%\02%Q% \00 \00\02%Q% \00 \00 \00Q%\02% \00 \00\02%\02% \00\02% \00\02%\02% \00 \00\02%Q% \00\03% \00Q%\02% \00 \00\03%\02% \00}% \00\02%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8e%\n\00Q%\14%\00%e%\00%\18%Q% \00 \00\02%Z%P%d%P%]%\02% \00 \00\02%X%P%j%P%[%\02% \00 \00\02%Y%\00%@%\00%\\%\02% \00 \00\03%\14%\00%B%\00%\18%\03% \00 \00\91%\91%\92%\92%\93%\93%\88%\88% \00\n% \00 \00\06% \00N% \00O% \00 \00\07% \00\0b% \00\8f%\n\00Z%P%P%i%P%P%]% \00 \00\14%\00%\00%4%\00%\00%\18% \00 \00p%\00%\00%4%\00%\00%o% \00 \00p%\00%\00%4%\00%\00%o% \00 \00\17%\01%\01%;%\01%\01%\1b% \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00\14%L%L%\18% \00N% \00\17%M%M%\1b% \00\0b% \00 \00\81%\82%\83%\84%\85%\86%\87%\88%\n") + (data $25 (i32.const 15212) "\8c\1d") + (data $25.1 (i32.const 15224) "\02\00\00\00p\1d\00\00S\00e\00n\00t\00e\00n\00c\00e\00s\00 \00t\00h\00a\00t\00 \00c\00o\00n\00t\00a\00i\00n\00 \00a\00l\00l\00 \00l\00e\00t\00t\00e\00r\00s\00 \00c\00o\00m\00m\00o\00n\00l\00y\00 \00u\00s\00e\00d\00 \00i\00n\00 \00a\00 \00l\00a\00n\00g\00u\00a\00g\00e\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00M\00a\00r\00k\00u\00s\00 \00K\00u\00h\00n\00 \00<\00h\00t\00t\00p\00:\00/\00/\00w\00w\00w\00.\00c\00l\00.\00c\00a\00m\00.\00a\00c\00.\00u\00k\00/\00~\00m\00g\00k\002\005\00/\00>\00 \00-\00-\00 \002\000\001\002\00-\000\004\00-\001\001\00\n\00\n\00T\00h\00i\00s\00 \00i\00s\00 \00a\00n\00 \00e\00x\00a\00m\00p\00l\00e\00 \00o\00f\00 \00a\00 \00p\00l\00a\00i\00n\00-\00t\00e\00x\00t\00 \00f\00i\00l\00e\00 \00e\00n\00c\00o\00d\00e\00d\00 \00i\00n\00 \00U\00T\00F\00-\008\00.\00\n\00\n\00\n\00D\00a\00n\00i\00s\00h\00 \00(\00d\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00Q\00u\00i\00z\00d\00e\00l\00t\00a\00g\00e\00r\00n\00e\00 \00s\00p\00i\00s\00t\00e\00 \00j\00o\00r\00d\00b\00\e6\00r\00 \00m\00e\00d\00 \00f\00l\00\f8\00d\00e\00,\00 \00m\00e\00n\00s\00 \00c\00i\00r\00k\00u\00s\00k\00l\00o\00v\00n\00e\00n\00\n\00 \00 \00W\00o\00l\00t\00h\00e\00r\00 \00s\00p\00i\00l\00l\00e\00d\00e\00 \00p\00\e5\00 \00x\00y\00l\00o\00f\00o\00n\00.\00\n\00 \00 \00(\00=\00 \00Q\00u\00i\00z\00 \00c\00o\00n\00t\00e\00s\00t\00a\00n\00t\00s\00 \00w\00e\00r\00e\00 \00e\00a\00t\00i\00n\00g\00 \00s\00t\00r\00a\00w\00b\00e\00r\00y\00 \00w\00i\00t\00h\00 \00c\00r\00e\00a\00m\00 \00w\00h\00i\00l\00e\00 \00W\00o\00l\00t\00h\00e\00r\00\n\00 \00 \00t\00h\00e\00 \00c\00i\00r\00c\00u\00s\00 \00c\00l\00o\00w\00n\00 \00p\00l\00a\00y\00e\00d\00 \00o\00n\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00.\00)\00\n\00\n\00G\00e\00r\00m\00a\00n\00 \00(\00d\00e\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00F\00a\00l\00s\00c\00h\00e\00s\00 \00\dc\00b\00e\00n\00 \00v\00o\00n\00 \00X\00y\00l\00o\00p\00h\00o\00n\00m\00u\00s\00i\00k\00 \00q\00u\00\e4\00l\00t\00 \00j\00e\00d\00e\00n\00 \00g\00r\00\f6\00\df\00e\00r\00e\00n\00 \00Z\00w\00e\00r\00g\00\n\00 \00 \00(\00=\00 \00W\00r\00o\00n\00g\00f\00u\00l\00 \00p\00r\00a\00c\00t\00i\00c\00i\00n\00g\00 \00o\00f\00 \00x\00y\00l\00o\00p\00h\00o\00n\00e\00 \00m\00u\00s\00i\00c\00 \00t\00o\00r\00t\00u\00r\00e\00s\00 \00e\00v\00e\00r\00y\00 \00l\00a\00r\00g\00e\00r\00 \00d\00w\00a\00r\00f\00)\00\n\00\n\00 \00 \00Z\00w\00\f6\00l\00f\00 \00B\00o\00x\00k\00\e4\00m\00p\00f\00e\00r\00 \00j\00a\00g\00t\00e\00n\00 \00E\00v\00a\00 \00q\00u\00e\00r\00 \00\fc\00b\00e\00r\00 \00d\00e\00n\00 \00S\00y\00l\00t\00e\00r\00 \00D\00e\00i\00c\00h\00\n\00 \00 \00(\00=\00 \00T\00w\00e\00l\00v\00e\00 \00b\00o\00x\00i\00n\00g\00 \00f\00i\00g\00h\00t\00e\00r\00s\00 \00h\00u\00n\00t\00e\00d\00 \00E\00v\00a\00 \00a\00c\00r\00o\00s\00s\00 \00t\00h\00e\00 \00d\00i\00k\00e\00 \00o\00f\00 \00S\00y\00l\00t\00)\00\n\00\n\00 \00 \00H\00e\00i\00z\00\f6\00l\00r\00\fc\00c\00k\00s\00t\00o\00\df\00a\00b\00d\00\e4\00m\00p\00f\00u\00n\00g\00\n\00 \00 \00(\00=\00 \00f\00u\00e\00l\00 \00o\00i\00l\00 \00r\00e\00c\00o\00i\00l\00 \00a\00b\00s\00o\00r\00b\00e\00r\00)\00\n\00 \00 \00(\00j\00q\00v\00w\00x\00y\00 \00m\00i\00s\00s\00i\00n\00g\00,\00 \00b\00u\00t\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00i\00n\00 \00o\00n\00e\00 \00w\00o\00r\00d\00)\00\n\00\n\00G\00r\00e\00e\00k\00 \00(\00e\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\93\03\b1\03\b6\03\ad\03\b5\03\c2\03 \00\ba\03\b1\03v\1f \00\bc\03\c5\03\c1\03\c4\03\b9\03r\1f\c2\03 \00\b4\03r\1f\bd\03 \00\b8\03p\1f \00\b2\03\c1\03\f6\1f \00\c0\03\b9\03p\1f \00\c3\03\c4\03x\1f \00\c7\03\c1\03\c5\03\c3\03\b1\03\c6\03v\1f \00\be\03\ad\03\c6\03\c9\03\c4\03\bf\03\n\00 \00 \00(\00=\00 \00N\00o\00 \00m\00o\00r\00e\00 \00s\00h\00a\00l\00l\00 \00I\00 \00s\00e\00e\00 \00a\00c\00a\00c\00i\00a\00s\00 \00o\00r\00 \00m\00y\00r\00t\00l\00e\00s\00 \00i\00n\00 \00t\00h\00e\00 \00g\00o\00l\00d\00e\00n\00 \00c\00l\00e\00a\00r\00i\00n\00g\00)\00\n\00\n\00 \00 \00\9e\03\b5\03\c3\03\ba\03\b5\03\c0\03\ac\03\b6\03\c9\03 \00\c4\03t\1f\bd\03 \00\c8\03\c5\03\c7\03\bf\03\c6\03\b8\03\cc\03\c1\03\b1\03 \00\b2\03\b4\03\b5\03\bb\03\c5\03\b3\03\bc\03\af\03\b1\03\n\00 \00 \00(\00=\00 \00I\00 \00u\00n\00c\00o\00v\00e\00r\00 \00t\00h\00e\00 \00s\00o\00u\00l\00-\00d\00e\00s\00t\00r\00o\00y\00i\00n\00g\00 \00a\00b\00h\00o\00r\00r\00e\00n\00c\00e\00)\00\n\00\n\00E\00n\00g\00l\00i\00s\00h\00 \00(\00e\00n\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00T\00h\00e\00 \00q\00u\00i\00c\00k\00 \00b\00r\00o\00w\00n\00 \00f\00o\00x\00 \00j\00u\00m\00p\00s\00 \00o\00v\00e\00r\00 \00t\00h\00e\00 \00l\00a\00z\00y\00 \00d\00o\00g\00\n\00\n\00S\00p\00a\00n\00i\00s\00h\00 \00(\00e\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00E\00l\00 \00p\00i\00n\00g\00\fc\00i\00n\00o\00 \00W\00e\00n\00c\00e\00s\00l\00a\00o\00 \00h\00i\00z\00o\00 \00k\00i\00l\00\f3\00m\00e\00t\00r\00o\00s\00 \00b\00a\00j\00o\00 \00e\00x\00h\00a\00u\00s\00t\00i\00v\00a\00 \00l\00l\00u\00v\00i\00a\00 \00y\00\n\00 \00 \00f\00r\00\ed\00o\00,\00 \00a\00\f1\00o\00r\00a\00b\00a\00 \00a\00 \00s\00u\00 \00q\00u\00e\00r\00i\00d\00o\00 \00c\00a\00c\00h\00o\00r\00r\00o\00.\00\n\00 \00 \00(\00C\00o\00n\00t\00a\00i\00n\00s\00 \00e\00v\00e\00r\00y\00 \00l\00e\00t\00t\00e\00r\00 \00a\00n\00d\00 \00e\00v\00e\00r\00y\00 \00a\00c\00c\00e\00n\00t\00,\00 \00b\00u\00t\00 \00n\00o\00t\00 \00e\00v\00e\00r\00y\00 \00c\00o\00m\00b\00i\00n\00a\00t\00i\00o\00n\00\n\00 \00 \00o\00f\00 \00v\00o\00w\00e\00l\00 \00+\00 \00a\00c\00u\00t\00e\00.\00)\00\n\00\n\00F\00r\00e\00n\00c\00h\00 \00(\00f\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00o\00r\00t\00e\00z\00 \00c\00e\00 \00v\00i\00e\00u\00x\00 \00w\00h\00i\00s\00k\00y\00 \00a\00u\00 \00j\00u\00g\00e\00 \00b\00l\00o\00n\00d\00 \00q\00u\00i\00 \00f\00u\00m\00e\00 \00s\00u\00r\00 \00s\00o\00n\00 \00\ee\00l\00e\00 \00i\00n\00t\00\e9\00r\00i\00e\00u\00r\00e\00,\00 \00\e0\00\n\00 \00 \00c\00\f4\00t\00\e9\00 \00d\00e\00 \00l\00\'\00a\00l\00c\00\f4\00v\00e\00 \00o\00v\00o\00\ef\00d\00e\00,\00 \00o\00\f9\00 \00l\00e\00s\00 \00b\00\fb\00c\00h\00e\00s\00 \00s\00e\00 \00c\00o\00n\00s\00u\00m\00e\00n\00t\00 \00d\00a\00n\00s\00 \00l\00\'\00\e2\00t\00r\00e\00,\00 \00c\00e\00\n\00 \00 \00q\00u\00i\00 \00l\00u\00i\00 \00p\00e\00r\00m\00e\00t\00 \00d\00e\00 \00p\00e\00n\00s\00e\00r\00 \00\e0\00 \00l\00a\00 \00c\00\e6\00n\00o\00g\00e\00n\00\e8\00s\00e\00 \00d\00e\00 \00l\00\'\00\ea\00t\00r\00e\00 \00d\00o\00n\00t\00 \00i\00l\00 \00e\00s\00t\00 \00q\00u\00e\00s\00t\00i\00o\00n\00\n\00 \00 \00d\00a\00n\00s\00 \00l\00a\00 \00c\00a\00u\00s\00e\00 \00a\00m\00b\00i\00g\00u\00\eb\00 \00e\00n\00t\00e\00n\00d\00u\00e\00 \00\e0\00 \00M\00o\00\ff\00,\00 \00d\00a\00n\00s\00 \00u\00n\00 \00c\00a\00p\00h\00a\00r\00n\00a\00\fc\00m\00 \00q\00u\00i\00,\00\n\00 \00 \00p\00e\00n\00s\00e\00-\00t\00-\00i\00l\00,\00 \00d\00i\00m\00i\00n\00u\00e\00 \00\e7\00\e0\00 \00e\00t\00 \00l\00\e0\00 \00l\00a\00 \00q\00u\00a\00l\00i\00t\00\e9\00 \00d\00e\00 \00s\00o\00n\00 \00S\01u\00v\00r\00e\00.\00\n\00\n\00 \00 \00l\00\'\00\ee\00l\00e\00 \00e\00x\00i\00g\00u\00\eb\00\n\00 \00 \00O\00\f9\00 \00l\00\'\00o\00b\00\e8\00s\00e\00 \00j\00u\00r\00y\00 \00m\00\fb\00r\00\n\00 \00 \00F\00\ea\00t\00e\00 \00l\00\'\00h\00a\00\ef\00 \00v\00o\00l\00a\00p\00\fc\00k\00,\00\n\00 \00 \00\c2\00n\00e\00 \00e\00x\00 \00a\00\e9\00q\00u\00o\00 \00a\00u\00 \00w\00h\00i\00s\00t\00,\00\n\00 \00 \00\d4\00t\00e\00z\00 \00c\00e\00 \00v\00S\01u\00 \00d\00\e9\00\e7\00u\00.\00\n\00\n\00 \00 \00L\00e\00 \00c\00S\01u\00r\00 \00d\00\e9\00\e7\00u\00 \00m\00a\00i\00s\00 \00l\00\'\00\e2\00m\00e\00 \00p\00l\00u\00t\00\f4\00t\00 \00n\00a\00\ef\00v\00e\00,\00 \00L\00o\00u\00\ff\00s\00 \00r\00\ea\00v\00a\00 \00d\00e\00 \00c\00r\00a\00p\00a\00\fc\00t\00e\00r\00 \00e\00n\00\n\00 \00 \00c\00a\00n\00o\00\eb\00 \00a\00u\00 \00d\00e\00l\00\e0\00 \00d\00e\00s\00 \00\ee\00l\00e\00s\00,\00 \00p\00r\00\e8\00s\00 \00d\00u\00 \00m\00\e4\00l\00s\00t\00r\00\f6\00m\00 \00o\00\f9\00 \00b\00r\00\fb\00l\00e\00n\00t\00 \00l\00e\00s\00 \00n\00o\00v\00\e6\00.\00\n\00\n\00I\00r\00i\00s\00h\00 \00G\00a\00e\00l\00i\00c\00 \00(\00g\00a\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00D\00\'\00f\00h\00u\00a\00s\00c\00a\00i\00l\00 \00\cd\00o\00s\00a\00,\00 \00\da\00r\00m\00h\00a\00c\00 \00n\00a\00 \00h\00\d3\00i\00g\00h\00e\00 \00B\00e\00a\00n\00n\00a\00i\00t\00h\00e\00,\00 \00p\00\f3\00r\00 \00\c9\00a\00v\00a\00 \00a\00g\00u\00s\00 \00\c1\00d\00h\00a\00i\00m\00h\00\n\00\n\00H\00u\00n\00g\00a\00r\00i\00a\00n\00 \00(\00h\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c1\00r\00v\00\ed\00z\00t\00q\01r\00Q\01 \00t\00\fc\00k\00\f6\00r\00f\00\fa\00r\00\f3\00g\00\e9\00p\00\n\00 \00 \00(\00=\00 \00f\00l\00o\00o\00d\00-\00p\00r\00o\00o\00f\00 \00m\00i\00r\00r\00o\00r\00-\00d\00r\00i\00l\00l\00i\00n\00g\00 \00m\00a\00c\00h\00i\00n\00e\00,\00 \00o\00n\00l\00y\00 \00a\00l\00l\00 \00n\00o\00n\00-\00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00)\00\n\00\n\00I\00c\00e\00l\00a\00n\00d\00i\00c\00 \00(\00i\00s\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00K\00\e6\00m\00i\00 \00n\00\fd\00 \00\f6\00x\00i\00 \00h\00\e9\00r\00 \00y\00k\00i\00s\00t\00 \00\fe\00j\00\f3\00f\00u\00m\00 \00n\00\fa\00 \00b\00\e6\00\f0\00i\00 \00v\00\ed\00l\00 \00o\00g\00 \00\e1\00d\00r\00e\00p\00a\00\n\00\n\00 \00 \00S\00\e6\00v\00\f6\00r\00 \00g\00r\00\e9\00t\00 \00\e1\00\f0\00a\00n\00 \00\fe\00v\00\ed\00 \00\fa\00l\00p\00a\00n\00 \00v\00a\00r\00 \00\f3\00n\00\fd\00t\00\n\00 \00 \00(\00s\00o\00m\00e\00 \00A\00S\00C\00I\00I\00 \00l\00e\00t\00t\00e\00r\00s\00 \00m\00i\00s\00s\00i\00n\00g\00)\00\n\00\n\00J\00a\00p\00a\00n\00e\00s\00e\00 \00(\00j\00p\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00H\00i\00r\00a\00g\00a\00n\00a\00:\00 \00(\00I\00r\00o\00h\00a\00)\00\n\00\n\00 \00 \00D0\8d0o0k0{0x0h0a0\8a0l0\8b0\920\n\00 \00 \00\8f0K0\880_0\8c0]0d0m0j0\890\800\n\00 \00 \00F0\900n0J0O0\840~0Q0u0S0H0f0\n\00 \00 \00B0U0M0\860\810\7f0W0\910r0\820[0Y0\n\00\n\00 \00 \00K\00a\00t\00a\00k\00a\00n\00a\00:\00\n\00\n\00 \00 \00\a40\ed0\cf0\cb0\db0\d80\c80 \00\c10\ea0\cc0\eb0\f20 \00\ef0\ab0\e80\bf0\ec0\bd0 \00\c40\cd0\ca0\e90\e00\n\00 \00 \00\a60\f00\ce0\aa0\af0\e40\de0 \00\b10\d50\b30\a80\c60 \00\a20\b50\ad0\e60\e10\df0\b70 \00\f10\d20\e20\bb0\b90\f30\n\00\n\00H\00e\00b\00r\00e\00w\00 \00(\00i\00w\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00?\00 \00\d3\05\d2\05 \00\e1\05\e7\05\e8\05\df\05 \00\e9\05\d8\05 \00\d1\05\d9\05\dd\05 \00\de\05\d0\05\d5\05\db\05\d6\05\d1\05 \00\d5\05\dc\05\e4\05\ea\05\e2\05 \00\de\05\e6\05\d0\05 \00\dc\05\d5\05 \00\d7\05\d1\05\e8\05\d4\05 \00\d0\05\d9\05\da\05 \00\d4\05\e7\05\dc\05\d9\05\d8\05\d4\05\n\00\n\00P\00o\00l\00i\00s\00h\00 \00(\00p\00l\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00c\00h\00n\00\05\01\07\01 \00w\00 \00t\00\19\01 \00B\01\f3\00d\00z\01 \00j\00e\00|\01a\00 \00l\00u\00b\00 \00o\00[\01m\00 \00s\00k\00r\00z\00y\00D\01 \00f\00i\00g\00\n\00 \00 \00(\00=\00 \00T\00o\00 \00p\00u\00s\00h\00 \00a\00 \00h\00e\00d\00g\00e\00h\00o\00g\00 \00o\00r\00 \00e\00i\00g\00h\00t\00 \00b\00i\00n\00s\00 \00o\00f\00 \00f\00i\00g\00s\00 \00i\00n\00 \00t\00h\00i\00s\00 \00b\00o\00a\00t\00)\00\n\00\n\00R\00u\00s\00s\00i\00a\00n\00 \00(\00r\00u\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\12\04 \00G\040\04I\040\04E\04 \00N\043\040\04 \006\048\04;\04 \001\04K\04 \00F\048\04B\04@\04C\04A\04?\00 \00\14\040\04,\00 \00=\04>\04 \00D\040\04;\04L\04H\048\042\04K\049\04 \00M\04:\047\045\04<\04?\04;\04O\04@\04!\00\n\00 \00 \00(\00=\00 \00W\00o\00u\00l\00d\00 \00a\00 \00c\00i\00t\00r\00u\00s\00 \00l\00i\00v\00e\00 \00i\00n\00 \00t\00h\00e\00 \00b\00u\00s\00h\00e\00s\00 \00o\00f\00 \00s\00o\00u\00t\00h\00?\00 \00Y\00e\00s\00,\00 \00b\00u\00t\00 \00o\00n\00l\00y\00 \00a\00 \00f\00a\00k\00e\00 \00o\00n\00e\00!\00)\00\n\00\n\00 \00 \00!\04J\045\04H\04L\04 \006\045\04 \005\04I\04Q\04 \00M\04B\048\04E\04 \00<\04O\043\04:\048\04E\04 \00D\04@\040\04=\04F\04C\047\04A\04:\048\04E\04 \001\04C\04;\04>\04:\04 \004\040\04 \002\04K\04?\045\049\04 \00G\040\04N\04\n\00 \00 \00(\00=\00 \00E\00a\00t\00 \00s\00o\00m\00e\00 \00m\00o\00r\00e\00 \00o\00f\00 \00t\00h\00e\00s\00e\00 \00f\00r\00e\00s\00h\00 \00F\00r\00e\00n\00c\00h\00 \00l\00o\00a\00f\00s\00 \00a\00n\00d\00 \00h\00a\00v\00e\00 \00s\00o\00m\00e\00 \00t\00e\00a\00)\00\n\00\n\00T\00h\00a\00i\00 \00(\00t\00h\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00[\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00|\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00]\00\n\00 \00 \00O\0e \00@\0e\1b\0eG\0e\19\0e!\0e\19\0e8\0e)\0e\"\0eL\0e*\0e8\0e\14\0e\1b\0e#\0e0\0e@\0e*\0e#\0e4\0e\10\0e@\0e%\0e4\0e(\0e\04\0e8\0e\13\0e\04\0eH\0e2\0e \00 \00\01\0e\'\0eH\0e2\0e\1a\0e#\0e#\0e\14\0e2\0e\1d\0e9\0e\07\0e*\0e1\0e\15\0e\'\0eL\0e@\0e\14\0e#\0e1\0e\08\0e\t\0e2\0e\19\0e\n\00 \00 \00\08\0e\07\0e\1d\0eH\0e2\0e\1f\0e1\0e\19\0e\1e\0e1\0e\12\0e\19\0e2\0e\'\0e4\0e\n\0e2\0e\01\0e2\0e#\0e \00 \00 \00 \00 \00 \00 \00 \00 \00 \00 \00-\0e\"\0eH\0e2\0e%\0eI\0e2\0e\07\0e\1c\0e%\0e2\0e\r\0e$\0eE\0e@\0e\02\0eH\0e\19\0e\06\0eH\0e2\0e\1a\0e5\0e\11\0e2\0eC\0e\04\0e#\0e\n\00 \00 \00D\0e!\0eH\0e\16\0e7\0e-\0eB\0e\17\0e)\0eB\0e\01\0e#\0e\18\0eA\0e\n\0eH\0e\07\0e\0b\0e1\0e\14\0e.\0e6\0e\14\0e.\0e1\0e\14\0e\14\0eH\0e2\0e \00 \00 \00 \00 \00+\0e1\0e\14\0e-\0e \0e1\0e\"\0e@\0e+\0e!\0e7\0e-\0e\19\0e\01\0e5\0e,\0e2\0e-\0e1\0e\n\0e\0c\0e2\0e*\0e1\0e\"\0e\n\00 \00 \00\1b\0e\0f\0e4\0e\1a\0e1\0e\15\0e4\0e\1b\0e#\0e0\0e\1e\0e$\0e\15\0e4\0e\01\0e\0e\0e\01\0e3\0e+\0e\19\0e\14\0eC\0e\08\0e \00 \00 \00 \00 \00 \00 \00 \00\1e\0e9\0e\14\0e\08\0e2\0eC\0e+\0eI\0e\08\0eJ\0e0\0eF\0e \00\08\0eK\0e2\0eF\0e \00\19\0eH\0e2\0e\1f\0e1\0e\07\0e@\0e-\0e\"\0e \00/\0e\n\00\n\00 \00 \00[\00T\00h\00e\00 \00c\00o\00p\00y\00r\00i\00g\00h\00t\00 \00f\00o\00r\00 \00t\00h\00e\00 \00T\00h\00a\00i\00 \00e\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \00o\00w\00n\00e\00d\00 \00b\00y\00 \00T\00h\00e\00 \00C\00o\00m\00p\00u\00t\00e\00r\00\n\00 \00 \00A\00s\00s\00o\00c\00i\00a\00t\00i\00o\00n\00 \00o\00f\00 \00T\00h\00a\00i\00l\00a\00n\00d\00 \00u\00n\00d\00e\00r\00 \00t\00h\00e\00 \00R\00o\00y\00a\00l\00 \00P\00a\00t\00r\00o\00n\00a\00g\00e\00 \00o\00f\00 \00H\00i\00s\00 \00M\00a\00j\00e\00s\00t\00y\00 \00t\00h\00e\00\n\00 \00 \00K\00i\00n\00g\00.\00]\00\n\00\n\00T\00u\00r\00k\00i\00s\00h\00 \00(\00t\00r\00)\00\n\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00P\00i\00j\00a\00m\00a\00l\001\01 \00h\00a\00s\00t\00a\00,\00 \00y\00a\00\1f\011\01z\00 \00_\01o\00f\00\f6\00r\00e\00 \00\e7\00a\00b\00u\00c\00a\00k\00 \00g\00\fc\00v\00e\00n\00d\00i\00.\00\n\00 \00 \00(\00=\00P\00a\00t\00i\00e\00n\00t\00 \00w\00i\00t\00h\00 \00p\00a\00j\00a\00m\00a\00s\00,\00 \00t\00r\00u\00s\00t\00e\00d\00 \00s\00w\00a\00r\00t\00h\00y\00 \00d\00r\00i\00v\00e\00r\00 \00q\00u\00i\00c\00k\00l\00y\00)\00\n\00\n\00O\00t\00h\00e\00r\00\n\00-\00-\00-\00-\00-\00\n\00\n\00 \00 \00\c0\00\c8\00 \00/\00 \00c\003\00_\008\000\00 \00c\003\00_\008\008\00\n\00 \00 \00\d8S\cf\91 \00/\00 \00e\005\00_\008\00f\00_\009\008\00 \00e\009\00_\008\007\00_\008\00f\00\n\00 \00 \00A\d8\0e\dfA\d81\df \00/\00 \00f\000\00_\00a\000\00_\009\00c\00_\008\00e\00 \00f\000\00_\00a\000\00_\009\00c\00_\00b\001\00\n") + (data $26 (i32.const 22784) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots @@ -94,15 +76,11 @@ (local $1 i32) i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 1376 + i32.const 1344 call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 3648 - call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 1152 call $~lib/rt/itcms/__visit - i32.const 3296 + i32.const 1712 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -123,7 +101,7 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1216 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -171,7 +149,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1216 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -180,7 +158,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$170 + block $__inlined_func$~lib/rt/itcms/Object#unlink$159 local.get $1 i32.load offset=4 i32.const -4 @@ -192,19 +170,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 57508 + i32.const 55572 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1216 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$170 + br $__inlined_func$~lib/rt/itcms/Object#unlink$159 end local.get $1 i32.load offset=8 @@ -212,7 +190,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1216 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -241,13 +219,13 @@ i32.const 1 else local.get $0 - i32.const 24720 + i32.const 22784 i32.load i32.gt_u if - i32.const 1376 - i32.const 1440 - i32.const 21 + i32.const 1344 + i32.const 1408 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -255,7 +233,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 24724 + i32.const 22788 i32.add i32.load i32.const 32 @@ -307,7 +285,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -321,7 +299,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -367,7 +345,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -450,7 +428,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -464,7 +442,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -525,7 +503,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -558,7 +536,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -573,7 +551,7 @@ i32.ne if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -624,7 +602,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -696,7 +674,7 @@ i64.lt_u if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -721,7 +699,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -748,7 +726,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -820,10 +798,10 @@ if unreachable end - i32.const 57520 + i32.const 55584 i32.const 0 i32.store - i32.const 59088 + i32.const 57152 i32.const 0 i32.store loop $for-loop|0 @@ -834,7 +812,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 57520 + i32.const 55584 i32.add i32.const 0 i32.store offset=4 @@ -852,7 +830,7 @@ i32.add i32.const 2 i32.shl - i32.const 57520 + i32.const 55584 i32.add i32.const 0 i32.store offset=96 @@ -870,14 +848,14 @@ br $for-loop|0 end end - i32.const 57520 - i32.const 59092 + i32.const 55584 + i32.const 57156 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 57520 + i32.const 55584 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -962,7 +940,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 57508 + i32.const 55572 i32.lt_u if local.get $0 @@ -1051,14 +1029,14 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1216 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 57508 + i32.const 55572 i32.lt_u if local.get $0 @@ -1081,7 +1059,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 57508 + i32.const 55572 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1110,7 +1088,7 @@ end if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1194,7 +1172,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1246,7 +1224,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1278,8 +1256,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1184 - i32.const 1248 + i32.const 1152 + i32.const 1216 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1289,7 +1267,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$70 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1306,7 +1284,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$70 end local.get $2 i32.const 0 @@ -1339,8 +1317,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1184 - i32.const 1520 + i32.const 1152 + i32.const 1488 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1442,7 +1420,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1457,7 +1435,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1476,7 +1454,7 @@ i32.and if i32.const 0 - i32.const 1520 + i32.const 1488 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1581,204 +1559,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 24740 - i32.lt_s - if - i32.const 57536 - i32.const 57584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$75 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$75 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -1873,45 +1653,13 @@ (local $0 i32) (local $1 i32) (local $2 i32) - memory.size - i32.const 16 - i32.shl - i32.const 57508 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/fromSpace 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 24740 + i32.const 22804 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -1926,7 +1674,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 8 i32.const 3 call $~lib/builtins/abort @@ -1936,12 +1684,44 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 55572 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + 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 24740 + i32.const 22804 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -1966,7 +1746,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 15 i32.const 3 call $~lib/builtins/abort @@ -1978,7 +1758,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 16 i32.const 3 call $~lib/builtins/abort @@ -1990,7 +1770,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 17 i32.const 3 call $~lib/builtins/abort @@ -2002,7 +1782,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 18 i32.const 3 call $~lib/builtins/abort @@ -2014,7 +1794,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 19 i32.const 3 call $~lib/builtins/abort @@ -2026,7 +1806,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 20 i32.const 3 call $~lib/builtins/abort @@ -2036,7 +1816,7 @@ i32.load8_u offset=5 if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 21 i32.const 3 call $~lib/builtins/abort @@ -2048,7 +1828,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -2058,7 +1838,7 @@ i32.load8_u offset=7 if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 23 i32.const 3 call $~lib/builtins/abort @@ -2070,7 +1850,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 24 i32.const 3 call $~lib/builtins/abort @@ -2082,7 +1862,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 25 i32.const 3 call $~lib/builtins/abort @@ -2094,7 +1874,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 26 i32.const 3 call $~lib/builtins/abort @@ -2106,7 +1886,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 27 i32.const 3 call $~lib/builtins/abort @@ -2121,7 +1901,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2156,7 +1936,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -2171,7 +1951,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2202,12 +1982,12 @@ local.get $0 i32.store local.get $0 - i32.const 1152 + i32.const 1552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -2229,7 +2009,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -2243,12 +2023,12 @@ local.get $0 i32.store local.get $0 - i32.const 3520 + i32.const 1584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -2264,12 +2044,12 @@ local.get $0 i32.store local.get $0 - i32.const 3552 + i32.const 1616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -2285,12 +2065,12 @@ local.get $0 i32.store local.get $0 - i32.const 3584 + i32.const 1648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -2306,12 +2086,12 @@ local.get $0 i32.store local.get $0 - i32.const 3616 + i32.const 1680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -2327,12 +2107,12 @@ local.get $0 i32.store local.get $0 - i32.const 1152 + i32.const 1552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 48 i32.const 3 call $~lib/builtins/abort @@ -2347,7 +2127,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2363,7 +2143,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 55 i32.const 3 call $~lib/builtins/abort @@ -2379,7 +2159,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 56 i32.const 3 call $~lib/builtins/abort @@ -2394,7 +2174,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2422,7 +2202,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 63 i32.const 3 call $~lib/builtins/abort @@ -2434,7 +2214,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -2446,7 +2226,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 65 i32.const 3 call $~lib/builtins/abort @@ -2458,7 +2238,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 66 i32.const 3 call $~lib/builtins/abort @@ -2470,7 +2250,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -2482,7 +2262,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -2494,7 +2274,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 69 i32.const 3 call $~lib/builtins/abort @@ -2506,7 +2286,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 70 i32.const 3 call $~lib/builtins/abort @@ -2518,7 +2298,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 71 i32.const 3 call $~lib/builtins/abort @@ -2530,7 +2310,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 72 i32.const 3 call $~lib/builtins/abort @@ -2542,7 +2322,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 73 i32.const 3 call $~lib/builtins/abort @@ -2558,14 +2338,14 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 3840 + i32.const 1904 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode @@ -2582,19 +2362,19 @@ local.get $0 i32.store local.get $0 - i32.const 3840 + i32.const 1904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 101 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3840 + i32.const 1904 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode @@ -2611,19 +2391,19 @@ local.get $0 i32.store local.get $0 - i32.const 3872 + i32.const 1936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 103 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 1968 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode @@ -2640,19 +2420,19 @@ local.get $0 i32.store local.get $0 - i32.const 3904 + i32.const 1968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 106 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 1968 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode @@ -2669,12 +2449,12 @@ local.get $0 i32.store local.get $0 - i32.const 3872 + i32.const 1936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 108 i32.const 3 call $~lib/builtins/abort @@ -2689,7 +2469,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2728,7 +2508,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 114 i32.const 3 call $~lib/builtins/abort @@ -2743,7 +2523,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2780,38 +2560,38 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 120 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3936 + i32.const 2000 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 3936 + i32.const 2000 i32.store - i32.const 3936 + i32.const 2000 i32.const 1 call $~lib/string/String.UTF8.byteLength i32.const 4 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 122 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3936 + i32.const 2000 i32.store i32.const 2 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 3936 + i32.const 2000 i32.const 1 call $~lib/string/String.UTF8.encode@varargs local.tee $0 @@ -2827,26 +2607,26 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 124 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3984 + i32.const 2048 i32.store offset=24 global.get $~lib/memory/__stack_pointer - i32.const 3984 + i32.const 2048 i32.store - i32.const 3984 + i32.const 2048 i32.const 1 call $~lib/string/String.UTF8.byteLength i32.const 4 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -2863,27 +2643,27 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3984 + i32.const 2048 i32.store offset=8 local.get $0 - i32.const 3984 + i32.const 2048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 127 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3936 + i32.const 2000 i32.store i32.const 2 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 3936 + i32.const 2000 i32.const 0 call $~lib/string/String.UTF8.encode@varargs local.tee $0 @@ -2899,15 +2679,15 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3984 + i32.const 2048 i32.store offset=8 local.get $0 - i32.const 3984 + i32.const 2048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 129 i32.const 3 call $~lib/builtins/abort @@ -2918,9 +2698,9 @@ i32.add global.set $~lib/memory/__stack_pointer call $std/string-encoding/testUTF8DecodeUnsafe - i32.const 4048 + i32.const 2112 call $std/string-encoding/testRoundtrip - i32.const 17168 + i32.const 15232 call $std/string-encoding/testRoundtrip global.get $~lib/rt/itcms/state i32.const 0 @@ -2957,8 +2737,8 @@ global.set $~lib/rt/itcms/threshold return end - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2967,205 +2747,40 @@ (func $~start call $start:std/string-encoding ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 24740 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 24740 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$175 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$175 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 57536 - i32.const 57584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String.UTF16.encode (param $0 i32) (result i32) (local $1 i32) @@ -3174,11 +2789,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3223,11 +2838,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3260,11 +2875,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3363,7 +2978,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$97 + block $__inlined_func$~lib/util/string/compareImpl$94 loop $while-continue|1 local.get $0 local.tee $3 @@ -3383,7 +2998,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$97 + br_if $__inlined_func$~lib/util/string/compareImpl$94 local.get $2 i32.const 2 i32.add @@ -3423,11 +3038,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3596,9 +3211,9 @@ i32.const 2 i32.eq if - i32.const 3648 - i32.const 3712 - i32.const 742 + i32.const 1712 + i32.const 1776 + i32.const 745 i32.const 49 call $~lib/builtins/abort unreachable @@ -3663,11 +3278,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3708,11 +3323,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3746,7 +3361,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 80 i32.const 3 call $~lib/builtins/abort @@ -3758,7 +3373,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 81 i32.const 3 call $~lib/builtins/abort @@ -3770,7 +3385,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 82 i32.const 3 call $~lib/builtins/abort @@ -3782,7 +3397,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -3794,7 +3409,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -3806,7 +3421,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 85 i32.const 3 call $~lib/builtins/abort @@ -3818,7 +3433,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 86 i32.const 3 call $~lib/builtins/abort @@ -3830,7 +3445,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 87 i32.const 3 call $~lib/builtins/abort @@ -3842,7 +3457,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 88 i32.const 3 call $~lib/builtins/abort @@ -3854,7 +3469,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 89 i32.const 3 call $~lib/builtins/abort @@ -3866,7 +3481,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 90 i32.const 3 call $~lib/builtins/abort @@ -3876,22 +3491,22 @@ i32.load8_u offset=10 if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 91 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3760 + i32.const 1824 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3760 + i32.const 1824 i32.store i32.const 2 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 3760 + i32.const 1824 i32.const 1 call $~lib/string/String.UTF8.encode@varargs local.tee $0 @@ -3905,16 +3520,16 @@ i32.load offset=16 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3760 + i32.const 1824 i32.store - i32.const 3760 + i32.const 1824 i32.const 1 call $~lib/string/String.UTF8.byteLength local.get $0 i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 94 i32.const 3 call $~lib/builtins/abort @@ -3931,11 +3546,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3968,11 +3583,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4011,12 +3626,12 @@ local.get $1 i32.store local.get $1 - i32.const 1152 + i32.const 1552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 138 i32.const 3 call $~lib/builtins/abort @@ -4039,7 +3654,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 139 i32.const 3 call $~lib/builtins/abort @@ -4054,12 +3669,12 @@ local.get $1 i32.store local.get $1 - i32.const 3520 + i32.const 1584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 140 i32.const 3 call $~lib/builtins/abort @@ -4076,12 +3691,12 @@ local.get $1 i32.store local.get $1 - i32.const 3584 + i32.const 1648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 141 i32.const 3 call $~lib/builtins/abort @@ -4098,12 +3713,12 @@ local.get $1 i32.store local.get $1 - i32.const 3616 + i32.const 1680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 142 i32.const 3 call $~lib/builtins/abort @@ -4120,12 +3735,12 @@ local.get $1 i32.store local.get $1 - i32.const 1152 + i32.const 1552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 143 i32.const 3 call $~lib/builtins/abort @@ -4142,12 +3757,12 @@ local.get $1 i32.store local.get $1 - i32.const 4016 + i32.const 2080 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 145 i32.const 3 call $~lib/builtins/abort @@ -4164,12 +3779,12 @@ local.get $1 i32.store local.get $1 - i32.const 3616 + i32.const 1680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 146 i32.const 3 call $~lib/builtins/abort @@ -4186,12 +3801,12 @@ local.get $0 i32.store local.get $0 - i32.const 1152 + i32.const 1552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 147 i32.const 3 call $~lib/builtins/abort @@ -4209,11 +3824,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4253,7 +3868,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 153 i32.const 3 call $~lib/builtins/abort @@ -4285,7 +3900,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -4303,11 +3918,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4346,11 +3961,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24740 + i32.const 22804 i32.lt_s if - i32.const 57536 - i32.const 57584 + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4369,8 +3984,8 @@ i32.gt_u if i32.const 0 - i32.const 3712 - i32.const 770 + i32.const 1776 + i32.const 773 i32.const 7 call $~lib/builtins/abort unreachable @@ -4541,7 +4156,7 @@ end end end - block $__inlined_func$~lib/rt/itcms/__renew$168 + block $__inlined_func$~lib/rt/itcms/__renew$157 local.get $1 local.get $0 i32.sub @@ -4560,7 +4175,7 @@ local.get $3 local.get $2 i32.store offset=16 - br $__inlined_func$~lib/rt/itcms/__renew$168 + br $__inlined_func$~lib/rt/itcms/__renew$157 end local.get $2 local.get $3 diff --git a/tests/compiler/std/string-nonnull.debug.wat b/tests/compiler/std/string-nonnull.debug.wat index 6a07a9aa8d..b73d9deeac 100644 --- a/tests/compiler/std/string-nonnull.debug.wat +++ b/tests/compiler/std/string-nonnull.debug.wat @@ -1,36 +1,19 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/memory/__data_end i32 (i32.const 44)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32812)) (global $~lib/memory/__heap_base i32 (i32.const 32812)) - (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/__rtti_base (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_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) @@ -157,2632 +140,13 @@ (func $~start call $start:std/string-nonnull ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 33008 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 33136 - i32.const 33200 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 33008 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 33008 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 32944 - i32.const 33280 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33280 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 32944 - i32.const 33008 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 33580 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 33580 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33580 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33580 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 34000 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 34000 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35056 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~stack_check global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if i32.const 32832 - i32.const 35216 + i32.const 32880 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3073,84 +437,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 32 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3159,322 +447,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32880 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 32912 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 33344 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 35152 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 33376 - i32.const 33504 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 33568 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 33136 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32944 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 34000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 35056 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable ) ) diff --git a/tests/compiler/std/string-nonnull.release.wat b/tests/compiler/std/string-nonnull.release.wat index 75fd9f17ce..2ba16e75a6 100644 --- a/tests/compiler/std/string-nonnull.release.wat +++ b/tests/compiler/std/string-nonnull.release.wat @@ -1,20 +1,9 @@ (module (type $0 (func)) (type $1 (func (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33836)) - (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/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02") @@ -26,1795 +15,143 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1068 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - call $~lib/string/String.__ne - if - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - i32.const 1052 - i32.load - drop - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - call $~lib/string/String.__ne - if - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - i32.const 1052 - i32.load - drop - end + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + call $~lib/string/String.__ne + if global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1052 i32.load drop + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + call $~lib/string/String.__ne + if global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - call $~lib/string/String.__eq - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - i32.const 1052 - i32.load - drop - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - call $~lib/string/String.__eq - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - i32.const 1052 - i32.load - drop - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - 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 1068 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store i32.const 1052 i32.load - i32.const 1 - i32.shr_u - i32.eqz - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - i32.const 1052 - i32.load - drop - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 33856 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - i32.const 34160 - call $~lib/rt/itcms/__visit - i32.const 33968 - call $~lib/rt/itcms/__visit - i32.const 35024 - call $~lib/rt/itcms/__visit - i32.const 36080 - call $~lib/rt/itcms/__visit - i32.const 4 - i32.load - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 34032 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - 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 - 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 34032 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$130 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 33836 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$130 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 34032 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.load - i32.gt_u - if - i32.const 34160 - i32.const 34224 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.load offset=4 - i32.const 32 - i32.and - end - local.set $1 - i32.const 8 - i32.load - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $1 - select - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - i32.const 8 - local.get $0 - i32.store - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + drop end - ) - (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 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + i32.const 1052 i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + drop + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + call $~lib/string/String.__eq i32.eqz if - i32.const 0 - i32.const 34304 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 34304 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 203 - i32.const 14 - call $~lib/builtins/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.const 1052 i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 34304 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 34304 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable + drop 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 + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + call $~lib/string/String.__eq + i32.eqz if - local.get $3 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.store offset=4 + i32.const 1052 + i32.load + drop 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 + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 34304 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 34304 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 33840 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 35408 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 1056 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 33840 - 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 33840 - 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 33840 - i32.const 35412 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 33840 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - i32.const 0 - 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 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 33836 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 - local.get $1 - global.set $~lib/rt/itcms/white - i32.const 4 - i32.load - 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 - 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 34032 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 33836 - 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 - local.tee $0 - i32.const 33836 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 34304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - i32.const 4 - i32.const 0 - i32.store - i32.const 8 - i32.const 0 - i32.store - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 34304 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 34304 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 33968 - i32.const 34032 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$69 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 33968 - i32.const 34304 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 34304 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 + i32.const 1052 i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 34304 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 + i32.const 1 + i32.shr_u + i32.eqz + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 34304 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u + global.set $~lib/memory/__stack_pointer + i32.eqz if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + i32.const 1052 i32.load - i32.const -3 - i32.and - i32.store + drop end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - i32.const 8 - i32.load - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.store offset=4 - 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 + global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $1 - i32.store - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub global.set $~lib/memory/__stack_pointer + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer i32.const 1068 i32.lt_s if + 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 + global.get $~lib/memory/__stack_pointer i32.const 33856 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$73 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 34592 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$73 - end + i32.store global.get $~lib/memory/__stack_pointer - local.get $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 $2 + i32.const 33904 + i32.store offset=4 + i32.const 33856 + i32.const 33904 i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 34604 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 34604 - 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 34604 - 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 34604 - 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 + i32.const 1 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + unreachable end - local.get $0 ) (func $~lib/string/String.__eq (result 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 1068 - i32.lt_s - if - i32.const 33856 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1830,17 +167,7 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1068 - i32.lt_s - if - i32.const 33856 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1857,228 +184,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 1068 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 1068 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$135 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#concat$135 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 33856 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1068 - i32.lt_s - if - i32.const 33856 - i32.const 36240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 33904 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 33936 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 34368 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 36176 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) ) diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index 4fe036c954..2e61020b78 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -6,18 +6,18 @@ (type $4 (func (param i32))) (type $5 (func)) (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i64 i32) (result i32))) (type $9 (func (param i32) (result f64))) (type $10 (func (result i32))) (type $11 (func (param i32 i64 i32))) (type $12 (func (param i32 i32) (result f64))) (type $13 (func (param i32 i32) (result i64))) - (type $14 (func (param i32 i32 i64) (result i32))) - (type $15 (func (param i32 i64 i32 i32))) - (type $16 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $17 (func (param f64 i32) (result f64))) - (type $18 (func (param f64 f64) (result i32))) + (type $14 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $15 (func (param i32 i32 i64) (result i32))) + (type $16 (func (param f64 i32) (result f64))) + (type $17 (func (param f64 f64) (result i32))) + (type $18 (func (param i32 i64 i32 i32))) (type $19 (func (param i64) (result i32))) (type $20 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $21 (func (param i32 f64 i32) (result i32))) @@ -25,11 +25,15 @@ (type $23 (func (param i32 i32 i32 i32) (result i32))) (type $24 (func (param f64) (result i32))) (type $25 (func (param f32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/string/str (mut i32) (i32.const 32)) (global $std/string/nullStr (mut i32) (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_SHRINK_LEVEL 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)) @@ -41,8 +45,8 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $~lib/string/String.MAX_LENGTH i32 (i32.const 536870910)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $~lib/util/string/__fixmulShift (mut i64) (i64.const 0)) @@ -54,7 +58,6 @@ (global $~lib/builtins/f64.MIN_VALUE f64 (f64.const 5e-324)) (global $std/string/Ox1p_1073 f64 (f64.const 1e-323)) (global $std/string/Ox1_0000000000001p_1022 f64 (f64.const 2.225073858507202e-308)) - (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128)) (global $~lib/builtins/i16.MIN_VALUE i32 (i32.const -32768)) (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) @@ -69,491 +72,487 @@ (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) (global $~lib/builtins/f32.EPSILON f32 (f32.const 1.1920928955078125e-07)) (global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14)) - (global $~lib/rt/__rtti_base i32 (i32.const 25744)) - (global $~lib/memory/__data_end i32 (i32.const 25772)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 58540)) - (global $~lib/memory/__heap_base i32 (i32.const 58540)) + (global $~lib/rt/__rtti_base i32 (i32.const 25584)) + (global $~lib/memory/__data_end i32 (i32.const 25612)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 58380)) + (global $~lib/memory/__heap_base i32 (i32.const 58380)) (memory $0 1) (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 428) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 604) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 828) "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 $17 (i32.const 1228) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2284) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2444) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00\00\00") - (data $21 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\df\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\df\00\df\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\df\00a\00b\00\00\00\00\00\00\00") - (data $24 (i32.const 2588) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data $25 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00@\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\006\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\00\d8\00\df\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2828) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\006\00\00\00\00\00\00\00") - (data $32 (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\00\006\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00A\00\00\00B\00\00\00C\00\00\00") - (data $34 (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00A\00B\00C\00\00\00\00\00\00\00") - (data $35 (i32.const 2956) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\004\d8\00\00\06\df\00\00a\00\00\004\d8\00\00\07\df\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 3004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\004\d8\06\dfa\004\d8\07\df\00\00") - (data $37 (i32.const 3036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\004\d8\06\df\00\00\00\00\00\00\00\00") - (data $38 (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00h\00i\00\00\00\00\00\00\00\00\00") - (data $39 (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00t\00r\00i\00n\00g\00") - (data $40 (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00I\00\'\00m\00\00\00\00\00\00\00") - (data $41 (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 3196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00 \00 \00 \00\00\00\00\00\00\00") - (data $43 (i32.const 3228) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00c\00\00\00\00\00\00\00") - (data $44 (i32.const 3260) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \00 \00a\00b\00c\00\00\00") - (data $45 (i32.const 3292) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") - (data $46 (i32.const 3324) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\002\003\00a\00b\00c\00") - (data $47 (i32.const 3356) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\002\003\001\002\00a\00b\00c\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $48 (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00c\00 \00 \00\00\00") - (data $49 (i32.const 3436) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00a\00b\00c\00a\00b\00c\00") - (data $50 (i32.const 3468) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00a\00b\00c\00a\00b\00c\00a\00b\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $51 (i32.const 3516) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data $52 (i32.const 3548) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00x\00\00\00\00\00\00\00\00\00\00\00") - (data $53 (i32.const 3580) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00,\00 \00I\00\00\00\00\00\00\00") - (data $54 (i32.const 3612) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00g\00\00\00\00\00\00\00\00\00\00\00") - (data $55 (i32.const 3644) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00i\00\00\00\00\00\00\00\00\00\00\00") - (data $56 (i32.const 3676) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00n\00u\00l\00l\00\00\00\00\00") - (data $57 (i32.const 3708) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00d\00\00\00\00\00\00\00") - (data $58 (i32.const 3740) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00f\00\00\00\00\00\00\00") - (data $59 (i32.const 3772) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00z\00\00\00\00\00\00\00") - (data $60 (i32.const 3804) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00b\00c\00d\00\00\00\00\00") - (data $61 (i32.const 3836) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00b\00d\00d\00\00\00\00\00") - (data $62 (i32.const 3868) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00b\00 \00c\00\00\00\00\00") - (data $63 (i32.const 3900) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00 \00\n\00\t\00\r\00a\00b\00c\00 \00\t\00\r\00 \00\00\00\00\00\00\00") - (data $64 (i32.const 3948) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00a\00b\00c\00 \00\t\00\r\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $65 (i32.const 3996) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00 \00\n\00\t\00\r\00a\00b\00c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $66 (i32.const 4044) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00\t\00\n\00 \00t\00r\00u\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $67 (i32.const 4092) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00\t\00\n\00 \00t\00r\00u\00e\00\n\00\r\00 \00\00\00\00\00\00\00\00\00") - (data $68 (i32.const 4140) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00 \00 \00t\00r\00u\00e\00a\00b\00c\00\00\00\00\00\00\00\00\00\00\00") - (data $69 (i32.const 4188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00t\00r\00u\00\00\00\00\00\00\00") - (data $70 (i32.const 4220) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00T\00r\00u\00e\00\00\00\00\00") - (data $71 (i32.const 4252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") - (data $72 (i32.const 4284) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\000\000\00\00\00\00\00\00\00") - (data $73 (i32.const 4316) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $74 (i32.const 4348) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\000\000\001\00\00\00\00\00") - (data $75 (i32.const 4380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\00b\001\000\001\00\00\00") - (data $76 (i32.const 4412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\00o\007\000\007\00\00\00") - (data $77 (i32.const 4444) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\00x\00f\000\00f\00\00\00") - (data $78 (i32.const 4476) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\00X\00F\000\00F\00\00\00") - (data $79 (i32.const 4508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\001\001\00\00\00\00\00\00\00") - (data $80 (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\00x\001\00g\00\00\00\00\00") - (data $81 (i32.const 4572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\001\002\003\00\00\00\00\00") - (data $82 (i32.const 4604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00+\001\002\003\00\00\00\00\00") - (data $83 (i32.const 4636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00-\001\002\00.\003\00\00\00") - (data $84 (i32.const 4668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00x\000\00\00\00\00\00\00\00") - (data $85 (i32.const 4700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\00b\001\001\00\00\00\00\00") - (data $86 (i32.const 4732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\n\001\00\00\00\00\00\00\00\00\00") - (data $87 (i32.const 4764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00( 1\00\00\00\00\00\00\00\00\00") - (data $88 (i32.const 4796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00) 1\00\00\00\00\00\00\00\00\00") - (data $89 (i32.const 4828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00-\000\00\00\00\00\00\00\00\00\00") - (data $90 (i32.const 4860) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\000\00X\00A\00B\00C\00D\00E\00F\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $91 (i32.const 4908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00A\00B\00C\00D\00E\00F\00") - (data $92 (i32.const 4940) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\003\006\008\009\003\004\008\008\001\004\007\004\001\009\001\000\003\002\003\002\00\00\00\00\00") - (data $93 (i32.const 5004) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00-\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00") - (data $94 (i32.const 5084) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\000\00x\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00") - (data $95 (i32.const 5148) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00=\d8%\dd\00\00\00\00\00\00") - (data $96 (i32.const 5180) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\002\00b\00a\00d\00n\00u\00m\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $97 (i32.const 5228) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00\t\00\n\001\00\00\00\00\00") - (data $98 (i32.const 5260) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00 \00\t\00\n\000\00x\000\002\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $99 (i32.const 5308) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\00 \00a\00b\00c\00\00\00") - (data $100 (i32.const 5340) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00 \00a\00b\00c\00\00\00") - (data $101 (i32.const 5372) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00 \00\t\00\n\000\00 \00a\00b\00c\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $102 (i32.const 5420) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data $103 (i32.const 5452) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") - (data $104 (i32.const 5484) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00=\d8%\dd\00\00\00\00\00\00\00\00") - (data $105 (i32.const 5516) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00b\00a\00d\00n\00u\00m\00") - (data $106 (i32.const 5552) "\00\00\00\00\00\00\f0?\00\00\00\00\00\00$@\00\00\00\00\00\00Y@\00\00\00\00\00@\8f@\00\00\00\00\00\88\c3@\00\00\00\00\00j\f8@\00\00\00\00\80\84.A\00\00\00\00\d0\12cA\00\00\00\00\84\d7\97A\00\00\00\00e\cd\cdA\00\00\00 _\a0\02B\00\00\00\e8vH7B\00\00\00\a2\94\1amB\00\00@\e5\9c0\a2B\00\00\90\1e\c4\bc\d6B\00\004&\f5k\0cC\00\80\e07y\c3AC\00\a0\d8\85W4vC\00\c8Ngm\c1\abC\00=\91`\e4X\e1C@\8c\b5x\1d\af\15DP\ef\e2\d6\e4\1aKD\92\d5M\06\cf\f0\80D") - (data $107 (i32.const 5740) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\000\00x\007\00F\00F\00F\00F\00F\00F\00F\00\00\00\00\00\00\00\00\00") - (data $108 (i32.const 5788) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\000\00x\007\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00\00\00\00\00\00\00\00\00") - (data $109 (i32.const 5852) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\00.\00\00\00\00\00\00\00\00\00") - (data $110 (i32.const 5884) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00.\000\000\00\00\00\00\00") - (data $111 (i32.const 5916) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\00-\005\00\00\00\00\00") - (data $112 (i32.const 5948) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00-\001\00e\00-\005\00\00\00") - (data $113 (i32.const 5980) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00-\000\00.\003\00e\00-\002\002\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $114 (i32.const 6028) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\000\00.\003\00e\00+\002\002\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $115 (i32.const 6076) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\00-\001\00\00\00\00\00") - (data $116 (i32.const 6108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\000\00.\001\00e\00-\000\00") - (data $117 (i32.const 6140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\001\00\00\00\00\00\00\00") - (data $118 (i32.const 6172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00.\002\005\00\00\00\00\00\00\00") - (data $119 (i32.const 6204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00.\00e\00+\003\00a\00") - (data $120 (i32.const 6236) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00.\000\00e\00-\001\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $121 (i32.const 6284) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00.\000\00e\00-\003\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $122 (i32.const 6332) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\00.\000\00e\00-\003\002\003\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $123 (i32.const 6380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\00.\000\00e\00-\003\002\004\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $124 (i32.const 6428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00e\00+\003\000\008\00") - (data $125 (i32.const 6460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00e\00+\003\000\009\00") - (data $126 (i32.const 6492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\00.\000\00e\00-\001\00_\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $127 (i32.const 6540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00.\000\00e\00-\001\000\00_\000\00\00\00\00\00\00\00\00\00\00\00") - (data $128 (i32.const 6588) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\00.\000\00e\00+\001\00_\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $129 (i32.const 6636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00_\000\00\00\00\00\00\00\00") - (data $130 (i32.const 6668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00_\001\00\00\00\00\00\00\00") - (data $131 (i32.const 6700) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\000\00.\000\000\00_\000\001\00e\002\00\00\00\00\00\00\00\00\00") - (data $132 (i32.const 6748) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\001\002\003\004\005\006\007\008\009\00_\004\00\00\00\00\00\00\00") - (data $133 (i32.const 6796) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\001\00_\000\001\002\003\004\005\006\007\008\009\00\00\00\00\00") - (data $134 (i32.const 6844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00e\00-\006\000\00\00\00") - (data $135 (i32.const 6876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\006\000\00\00\00\00\00") - (data $136 (i32.const 6908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\002\003\00.\004\00e\00") - (data $137 (i32.const 6940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\00x\00\00\00\00\00\00\00\00\00") - (data $138 (i32.const 6972) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00-\001\001\00e\00-\001\00s\00t\00r\00i\00n\00g\00\00\00\00\00") - (data $139 (i32.const 7020) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\000\001\00e\001\00s\00t\00r\00i\00n\00g\00\00\00\00\00\00\00\00\00") - (data $140 (i32.const 7068) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\000\001\000\00s\00t\00r\00i\00n\00g\00\00\00\00\00\00\00\00\00\00\00") - (data $141 (i32.const 7116) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00+\00.\002\002\00e\00-\001\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $142 (i32.const 7164) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\001\00.\00s\001\00\00\00") - (data $143 (i32.const 7196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00x\005\00\00\00\00\00\00\00") - (data $144 (i32.const 7228) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00x\00D\00\00\00\00\00\00\00") - (data $145 (i32.const 7260) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00\0b\001\00.\001\00\00\00\00\00") - (data $146 (i32.const 7292) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00\0b\00\0b\00-\001\00.\001\00") - (data $147 (i32.const 7324) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00\0c\00\0c\00-\001\00.\001\00") - (data $148 (i32.const 7356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00( ( -\001\00.\001\00") - (data $149 (i32.const 7388) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00) ) -\001\00.\001\00") - (data $150 (i32.const 7420) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\000\000\000\000\00\00\00") - (data $151 (i32.const 7452) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\000\000\000\00a\00\00\00") - (data $152 (i32.const 7484) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\000\000\000\001\00\00\00") - (data $153 (i32.const 7516) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\000\00.\000\000\00\00\00") - (data $154 (i32.const 7548) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\000\00.\000\00a\00\00\00") - (data $155 (i32.const 7580) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\001\00e\00\00\00\00\00") - (data $156 (i32.const 7612) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00e\00+\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $157 (i32.const 7660) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\000\00e\00+\001\000\000\00") - (data $158 (i32.const 7692) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00.\00-\001\00.\00\00\00") - (data $159 (i32.const 7724) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00e\00-\001\00.\002\00") - (data $160 (i32.const 7756) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00e\00x\00\00\00\00\00\00\00") - (data $161 (i32.const 7788) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\001\00x\00\00\00\00\00") - (data $162 (i32.const 7820) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\00-\00x\00\00\00\00\00") - (data $163 (i32.const 7852) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00e\00-\001\00x\00\00\00") - (data $164 (i32.const 7884) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\000\00.\001\00e\00-\001\00x\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $165 (i32.const 7932) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\000\00.\00\00\00\00\00\00\00") - (data $166 (i32.const 7964) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00.\000\000\00\00\00\00\00\00\00") - (data $167 (i32.const 7996) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00.\000\00.\00\00\00\00\00\00\00") - (data $168 (i32.const 8028) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00.\001\00.\00\00\00\00\00\00\00") - (data $169 (i32.const 8060) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\00.\00\00\00\00\00\00\00") - (data $170 (i32.const 8092) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\00a\00\00\00\00\00\00\00") - (data $171 (i32.const 8124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00.\00.\001\00\00\00\00\00") - (data $172 (i32.const 8156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\000\00.\001\00.\001\00\00\00") - (data $173 (i32.const 8188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\00.\00 \001\00\00\00\00\00") - (data $174 (i32.const 8220) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00+\000\00.\000\00\00\00\00\00") - (data $175 (i32.const 8252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\000\00.\000\00\00\00\00\00") - (data $176 (i32.const 8284) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00+\000\00\00\00\00\00\00\00\00\00") - (data $177 (i32.const 8316) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\00.\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $178 (i32.const 8364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00-\00-\000\00\00\00\00\00\00\00") - (data $179 (i32.const 8396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00+\00+\000\00\00\00\00\00\00\00") - (data $180 (i32.const 8428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00.\00a\00\00\00\00\00\00\00\00\00") - (data $181 (i32.const 8460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00.\00.\000\00\00\00\00\00\00\00") - (data $182 (i32.const 8492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") - (data $183 (i32.const 8524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00.\00.\00\00\00\00\00\00\00\00\00") - (data $184 (i32.const 8556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data $185 (i32.const 8588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $186 (i32.const 8620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\0e\18\00\00\00\00\00\00\00\00\00\00") - (data $187 (i32.const 8652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00\0e\181\00.\001\00\00\00\00\00") - (data $188 (i32.const 8684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\0e\18\0e\181\00.\001\00\00\00") - (data $189 (i32.const 8716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data $190 (i32.const 8748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") - (data $191 (i32.const 8780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\002\002\00\00\00\00\00") - (data $192 (i32.const 8812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00e\00-\002\002\00\00\00") - (data $193 (i32.const 8844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\002\003\00\00\00\00\00") - (data $194 (i32.const 8876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00e\00-\002\003\00\00\00") - (data $195 (i32.const 8908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\003\007\00\00\00\00\00") - (data $196 (i32.const 8940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00e\00-\003\007\00\00\00") - (data $197 (i32.const 8972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\003\008\00\00\00\00\00") - (data $198 (i32.const 9004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00e\00-\003\008\00\00\00") - (data $199 (i32.const 9036) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\002\00.\002\002\000\004\004\006\000\004\009\002\005\000\003\001\003\00e\00-\001\006\00\00\00") - (data $200 (i32.const 9100) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\00.\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\007\00e\00+\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $201 (i32.const 9180) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\005\00e\00-\003\002\004\00") - (data $202 (i32.const 9212) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\000\00.\000\000\000\000\000\001\00e\00+\003\001\004\00\00\00") - (data $203 (i32.const 9260) "\8c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00|\00\00\000\00.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\00e\00+\005\006\00") - (data $204 (i32.const 9404) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00+\001\00E\00-\003\002\005\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $205 (i32.const 9452) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00+\001\00E\00+\003\000\009\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $206 (i32.const 9500) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00E\00-\003\002\005\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $207 (i32.const 9548) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00E\00+\003\000\009\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $208 (i32.const 9596) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\00e\00-\001\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00") - (data $209 (i32.const 9644) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\00e\00+\001\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00") - (data $210 (i32.const 9692) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00.\00e\003\006\000\00") - (data $211 (i32.const 9724) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00 \00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $212 (i32.const 9772) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00+\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $213 (i32.const 9820) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $214 (i32.const 9868) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00x\00\00\00\00\00\00\00\00\00\00\00") - (data $215 (i32.const 9916) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00+\001\00\00\00\00\00\00\00\00\00") - (data $216 (i32.const 9964) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00I\00n\00f\00i\00\00\00\00\00") - (data $217 (i32.const 9996) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00+\00I\00n\00f\00i\00n\00i\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $218 (i32.const 10044) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $219 (i32.const 10092) "\bc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\aa\00\00\00.\002\004\007\000\003\002\008\002\002\009\002\000\006\002\003\002\007\002\000\008\008\002\008\004\003\009\006\004\003\004\001\001\000\006\008\006\001\008\002\005\002\009\009\000\001\003\000\007\001\006\002\003\008\002\002\001\002\007\009\002\008\004\001\002\005\000\003\003\007\007\005\003\006\003\005\001\000\004\003\00e\00-\003\002\003\00\00\00") - (data $220 (i32.const 10284) "\bc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\aa\00\00\00.\007\004\001\000\009\008\004\006\008\007\006\001\008\006\009\008\001\006\002\006\004\008\005\003\001\008\009\003\000\002\003\003\002\000\005\008\005\004\007\005\008\009\007\000\003\009\002\001\004\008\007\001\004\006\006\003\008\003\007\008\005\002\003\007\005\001\000\001\003\002\006\000\009\000\005\003\001\003\002\00e\00-\003\002\003\00\00\00") - (data $221 (i32.const 10476) "\bc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\aa\00\00\00.\002\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\006\003\000\001\002\003\000\005\005\006\003\007\009\005\005\006\007\006\001\005\002\005\000\003\006\001\002\004\001\004\005\007\003\000\001\008\000\001\003\000\008\003\002\002\008\007\002\004\000\004\009\005\008\006\006\004\007\006\000\006\007\006\000\00e\00-\003\000\007\00\00\00") - (data $222 (i32.const 10668) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\88\00\00\001\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\008\000\007\009\003\007\002\008\009\007\001\004\000\005\003\000\003\004\001\005\000\007\009\009\003\004\001\003\002\007\001\000\000\003\007\008\002\006\009\003\006\001\007\003\007\007\008\009\008\000\004\004\00\00\00\00\00") - (data $223 (i32.const 10828) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\88\00\00\004\009\006\008\002\009\002\007\006\004\007\005\000\009\004\006\006\004\009\000\001\007\009\007\007\005\008\007\002\000\007\000\009\006\003\003\000\002\008\006\004\001\006\006\009\002\008\008\007\009\001\000\009\004\006\005\005\005\005\004\007\008\005\001\009\004\000\004\00\00\00\00\00") - (data $224 (i32.const 10988) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\88\00\00\000\002\006\003\000\006\005\007\004\008\008\006\007\001\005\000\005\008\002\000\006\008\001\009\000\008\009\000\002\000\000\000\007\000\008\003\008\003\006\007\006\002\007\003\008\005\004\008\004\005\008\001\007\007\001\001\005\003\001\007\006\004\004\007\005\007\003\000\00\00\00\00\00") - (data $225 (i32.const 11148) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\88\00\00\002\007\000\000\006\009\008\005\005\005\007\001\003\006\006\009\005\009\006\002\002\008\004\002\009\001\004\008\001\009\008\006\000\008\003\004\009\003\006\004\007\005\002\009\002\007\001\009\000\007\004\001\006\008\004\004\004\003\006\005\005\001\000\007\000\004\003\004\00\00\00\00\00") - (data $226 (i32.const 11308) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\88\00\00\002\007\001\001\005\005\009\006\009\009\005\000\008\000\009\003\000\004\002\008\008\000\001\007\007\009\000\004\001\007\004\004\009\007\007\009\001\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\00\00\00\00\00") - (data $227 (i32.const 11468) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\\\00\00\000\00.\009\007\005\003\005\003\001\008\008\008\007\009\009\005\000\002\006\001\003\008\000\007\001\003\005\002\007\006\001\004\007\001\006\004\004\000\004\003\009\00e\00-\001\000\003\00") - (data $228 (i32.const 11580) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\00.\005\009\006\001\008\006\000\003\004\008\001\003\001\008\000\007\000\009\001\008\006\001\000\000\002\002\006\006\004\005\003\009\004\001\009\005\000\004\002\008\00e\000\000\00\00\00\00\00") - (data $229 (i32.const 11692) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\001\00.\008\001\005\000\001\003\001\006\009\002\001\008\000\003\008\007\002\009\008\008\007\004\006\000\008\009\008\007\003\003\005\002\006\009\005\007\004\004\002\00e\00-\001\00\00\00\00\00") - (data $230 (i32.const 11804) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\004\002\00.\000\007\000\008\002\003\005\007\005\003\004\004\005\003\006\000\000\006\008\001\006\001\008\006\008\005\006\008\002\002\005\007\005\009\000\007\007\002\00e\00-\002\00\00\00\00\00") - (data $231 (i32.const 11916) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\006\006\005\00.\004\006\008\006\003\000\006\005\001\006\002\006\001\004\005\006\003\002\008\009\007\003\002\002\005\005\007\009\008\003\003\004\007\000\008\001\006\00e\00-\003\00\00\00\00\00") - (data $232 (i32.const 12028) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\006\001\000\001\00.\008\005\002\009\002\002\009\007\000\008\006\008\006\002\001\007\008\006\006\009\000\004\009\005\004\008\005\004\004\009\008\003\001\007\005\003\00e\00-\004\00\00\00\00\00") - (data $233 (i32.const 12140) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\007\006\009\006\006\00.\009\005\002\000\008\002\003\006\009\006\008\000\007\007\008\004\009\004\006\004\003\004\008\008\007\005\004\007\001\001\005\008\005\004\009\00e\00-\005\00\00\00\00\00") - (data $234 (i32.const 12252) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\002\005\000\005\000\006\00.\005\003\002\002\002\002\008\006\008\002\004\009\006\001\003\002\006\000\004\008\000\007\002\002\002\009\002\003\007\000\002\003\000\004\00e\00-\006\00\00\00\00\00") - (data $235 (i32.const 12364) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\002\007\004\000\000\003\007\00.\002\003\000\002\002\008\000\000\005\003\002\005\008\005\002\004\002\004\006\009\007\006\009\008\003\003\001\001\007\007\003\007\007\00e\00-\007\00\00\00\00\00") - (data $236 (i32.const 12476) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\002\000\007\002\003\000\009\003\00.\005\000\000\004\009\007\004\002\006\004\005\009\004\001\005\002\009\002\006\008\007\001\005\004\002\008\003\002\004\004\009\000\00e\00-\008\00\00\00\00\00") - (data $237 (i32.const 12588) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\000\00.\007\009\000\000\002\008\000\002\003\008\000\008\001\006\000\004\009\005\006\002\002\006\000\001\001\000\004\007\004\006\000\002\003\008\007\004\008\009\001\002\00e\001\00\00\00\00\00") - (data $238 (i32.const 12700) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\000\00.\009\008\002\002\008\006\000\006\005\003\007\003\007\002\009\006\008\004\008\001\009\000\005\005\008\004\004\008\007\006\000\004\006\005\008\006\003\005\009\007\00e\002\00\00\00\00\00") - (data $239 (i32.const 12812) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\000\00.\007\004\006\008\009\004\009\007\002\003\001\009\000\003\007\000\008\000\009\004\000\005\005\007\000\005\006\000\001\006\000\004\000\005\003\002\004\008\006\009\00e\003\00\00\00\00\00") - (data $240 (i32.const 12924) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\000\00.\001\006\003\000\002\006\008\003\002\000\002\008\002\007\002\008\004\007\005\009\008\000\004\005\009\008\004\004\002\007\001\000\003\001\007\005\001\006\006\005\00e\004\00\00\00\00\00") - (data $241 (i32.const 13036) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\000\00.\004\006\003\007\001\006\008\006\002\009\007\001\009\001\007\000\006\009\005\001\000\009\009\001\008\007\006\009\006\004\005\004\009\002\000\002\002\000\008\008\00e\005\00\00\00\00\00") - (data $242 (i32.const 13148) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\000\00.\006\005\003\007\008\000\005\009\004\004\004\009\007\007\001\001\005\005\004\002\000\009\004\006\001\006\008\006\004\001\005\008\007\002\000\006\007\005\002\003\00e\006\00\00\00\00\00") - (data $243 (i32.const 13260) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\000\00.\002\003\004\006\003\002\004\003\005\006\005\000\002\004\003\007\000\004\005\002\001\002\002\003\000\007\001\003\009\006\000\004\005\007\006\007\006\005\003\001\00e\006\00\00\00\00\00") - (data $244 (i32.const 13372) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\000\00.\009\007\000\009\004\008\001\007\001\006\004\002\000\000\004\008\003\004\001\008\009\007\002\005\008\009\008\000\004\005\004\002\009\008\002\000\005\002\007\008\00e\008\00\00\00\00\00") - (data $245 (i32.const 13484) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00X\00\00\000\00.\004\009\009\006\009\000\008\005\002\002\000\005\001\008\007\004\001\001\000\007\007\009\009\008\002\003\005\004\009\003\002\004\009\009\004\009\009\006\000\002\00e\009\00\00\00\00\00") - (data $246 (i32.const 13596) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00Z\00\00\000\00.\007\009\002\005\002\000\001\002\000\000\005\005\007\002\004\005\008\006\001\009\004\004\000\001\001\002\006\007\000\004\001\007\008\007\005\000\005\001\004\009\00e\002\002\00\00\00") - (data $247 (i32.const 13708) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00Z\00\00\000\00.\006\000\009\006\005\006\004\005\008\005\009\008\003\001\007\007\004\000\008\009\003\004\003\005\002\005\007\000\002\001\003\003\007\007\004\007\005\007\003\009\00e\003\000\00\00\00") - (data $248 (i32.const 13820) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00Z\00\00\000\00.\004\008\000\000\004\001\006\001\001\007\004\007\007\000\002\008\007\008\007\008\007\004\003\006\000\002\000\005\000\002\003\005\004\009\004\009\007\001\002\008\00e\006\007\00\00\00") - (data $249 (i32.const 13932) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\\\00\00\000\00.\008\005\002\004\008\002\009\000\007\009\008\001\007\009\006\008\002\002\004\008\003\000\003\003\007\009\003\001\000\005\002\007\008\001\006\004\001\004\008\003\00e\001\000\005\00") - (data $250 (i32.const 14044) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\\\00\00\000\00.\000\003\002\007\001\002\003\009\002\009\001\007\000\009\007\008\002\001\001\005\004\004\007\000\006\009\003\007\002\007\004\008\009\005\006\000\008\004\002\005\00e\002\006\009\00") - (data $251 (i32.const 14156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00 \00\t\00\n\00\00\00\00\00\00\00") - (data $252 (i32.const 14188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00 \00\t\00\n\00\r\00.\001\00") - (data $253 (i32.const 14220) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") - (data $254 (i32.const 14252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") - (data $255 (i32.const 14284) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00k\00e\00y\001\00\00\00\00\00") - (data $256 (i32.const 14316) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00k\00e\00y\002\00\00\00\00\00") - (data $257 (i32.const 14348) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00k\00e\001\00\00\00\00\00\00\00") - (data $258 (i32.const 14380) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00k\00e\002\00\00\00\00\00\00\00") - (data $259 (i32.const 14412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00k\00e\00y\001\002\00\00\00") - (data $260 (i32.const 14444) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00k\00e\00y\001\001\00\00\00") - (data $261 (i32.const 14476) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00\a40\ed0\cf0\cb0\db0\d80\c80\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $262 (i32.const 14524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00\a60\f00\ce0\aa0\af0\e40\de0\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $263 (i32.const 14572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00D\00\19 f\00h\00u\00a\00s\00c\00a\00i\00l\00\00\00\00\00\00\00") - (data $264 (i32.const 14620) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00D\00\19 \1f\1eu\00a\00s\00c\00a\00i\00l\00\00\00\00\00\00\00\00\00") - (data $265 (i32.const 14668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00b\00a\00\00\00\00\00\00\00\00\00") - (data $266 (i32.const 14700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00a\00\00\00\00\00\00\00\00\00") - (data $267 (i32.const 14732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\000\00\00\00\00\00\00\00\00\00") - (data $268 (i32.const 14764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\001\00\00\00\00\00\00\00\00\00") - (data $269 (i32.const 14796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\000\001\00\00\00\00\00\00\00") - (data $270 (i32.const 14828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\002\002\00\00\00\00\00\00\00") - (data $271 (i32.const 14860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\002\003\004\00\00\00\00\00") - (data $272 (i32.const 14892) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\002\003\003\00\00\00\00\00") - (data $273 (i32.const 14924) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $274 (i32.const 14972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00a\00a\00\00\00\00\00\00\00") - (data $275 (i32.const 15004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00a\00b\00a\00b\00a\00b\00a\00b\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $276 (i32.const 15052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00a\00a\00a\00a\00\00\00") - (data $277 (i32.const 15084) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00a\00a\00a\00a\00a\00a\00") - (data $278 (i32.const 15116) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00a\00a\00a\00a\00a\00a\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $279 (i32.const 15164) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00-\00b\00-\00c\00\00\00") - (data $280 (i32.const 15196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00+\00b\00-\00c\00\00\00") - (data $281 (i32.const 15228) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00+\00a\00b\00c\00\00\00\00\00") - (data $282 (i32.const 15260) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00\n\00a\00b\00c\00\00\00\00\00") - (data $283 (i32.const 15292) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data $284 (i32.const 15324) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") - (data $285 (i32.const 15356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00+\00+\00\00\00\00\00\00\00\00\00") - (data $286 (i32.const 15388) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00a\00b\00+\00+\00\00\00\00\00") - (data $287 (i32.const 15420) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00a\00b\00c\00a\00b\00c\00a\00b\00c\00\00\00\00\00\00\00\00\00\00\00") - (data $288 (i32.const 15468) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00+\00+\00+\00\00\00\00\00\00\00") - (data $289 (i32.const 15500) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00a\00b\00c\00a\00b\00c\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $290 (i32.const 15548) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00+\00+\00+\00b\00c\00+\00+\00+\00b\00c\00+\00+\00+\00\00\00") - (data $291 (i32.const 15596) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00+\00+\00c\00+\00+\00c\00") - (data $292 (i32.const 15628) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00c\00c\00c\00c\00\00\00\00\00") - (data $293 (i32.const 15660) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00c\00c\00\00\00\00\00\00\00\00\00") - (data $294 (i32.const 15692) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00+\00+\00+\00+\00\00\00\00\00") - (data $295 (i32.const 15724) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00e\00\00\00\00\00\00\00\00\00\00\00") - (data $296 (i32.const 15756) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00b\00c\00\00\00\00\00\00\00\00\00") - (data $297 (i32.const 15788) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00+\00\00\00\00\00\00\00\00\00") - (data $298 (i32.const 15820) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00+\00b\00+\00c\00\00\00") - (data $299 (i32.const 15852) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00+\00a\00+\00b\00+\00c\00+\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $300 (i32.const 15900) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00c\00d\00e\00\00\00") - (data $301 (i32.const 15932) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00-\00-\00-\00\00\00\00\00\00\00") - (data $302 (i32.const 15964) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\00-\00-\00b\00c\00d\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $303 (i32.const 16012) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00-\00-\00-\00-\00-\00\00\00") - (data $304 (i32.const 16044) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\00-\00-\00-\00\00\00\00\00") - (data $305 (i32.const 16076) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00\00\00\00\00") - (data $306 (i32.const 16124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\00-\00-\00a\00\00\00\00\00") - (data $307 (i32.const 16156) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00") - (data $308 (i32.const 16204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00n\00\00\00\00\00\00\00\00\00\00\00") - (data $309 (i32.const 16236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00j\00k\00l\00m\00n\00\00\00") - (data $310 (i32.const 16268) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00c\00d\00e\00f\00g\00\00\00") - (data $311 (i32.const 16300) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00d\00e\00f\00g\00h\00\00\00") - (data $312 (i32.const 16332) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00\00\00") - (data $313 (i32.const 16380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00c\00d\00e\00f\00g\00h\00i\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $314 (i32.const 16428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00e\00f\00g\00\00\00\00\00\00\00") - (data $315 (i32.const 16460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00e\00f\00g\00h\00\00\00\00\00") - (data $316 (i32.const 16492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00d\00\00\00\00\00\00\00\00\00\00\00") - (data $317 (i32.const 16524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $318 (i32.const 16572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $319 (i32.const 16700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00,\00b\00,\00c\00\00\00") - (data $320 (i32.const 16732) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00a\00,\00 \00b\00,\00 \00c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $321 (i32.const 16780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00,\00 \00\00\00\00\00\00\00\00\00") - (data $322 (i32.const 16812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00a\00,\00b\00,\00,\00c\00") - (data $323 (i32.const 16844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00,\00a\00,\00b\00,\00c\00") - (data $324 (i32.const 16876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00a\00,\00b\00,\00c\00,\00") - (data $325 (i32.const 16908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\008\00\00\00\00\00\00\00\00\00\00\00") - (data $326 (i32.const 16940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") - (data $327 (i32.const 16972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00-\001\000\000\000\00\00\00") - (data $328 (i32.const 17004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\002\003\004\005\00\00\00") - (data $329 (i32.const 17036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\002\003\004\005\006\00") - (data $330 (i32.const 17068) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $331 (i32.const 17116) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\002\003\004\005\006\007\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $332 (i32.const 17164) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\002\003\004\005\006\007\008\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $333 (i32.const 17212) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\002\003\004\005\006\007\008\009\00\00\00\00\00\00\00\00\00\00\00") - (data $334 (i32.const 17260) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\006\00\00\00\00\00\00\00\00\00") - (data $335 (i32.const 17308) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\007\00\00\00\00\00\00\00\00\00") - (data $336 (i32.const 17356) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00-\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00") - (data $337 (i32.const 17404) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00-\001\00\00\00\00\00\00\00\00\00") - (data $338 (i32.const 17436) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\001\002\008\00\00\00\00\00") - (data $339 (i32.const 17468) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00-\003\002\007\006\008\00") - (data $340 (i32.const 17500) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\000\000\000\00\00\00\00\00") - (data $341 (i32.const 17532) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00\00\00") - (data $342 (i32.const 17580) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\004\002\009\004\009\006\007\002\009\005\00\00\00\00\00\00\00\00\00") - (data $343 (i32.const 17628) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\007\00b\00\00\00\00\00\00\00\00\00") - (data $344 (i32.const 17660) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\004\00d\002\00\00\00\00\00\00\00") - (data $345 (i32.const 17692) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\003\000\003\009\00\00\00\00\00") - (data $346 (i32.const 17724) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00e\002\004\000\00\00\00") - (data $347 (i32.const 17756) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\000\00f\004\004\007\00") - (data $348 (i32.const 17788) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\002\00d\006\008\007\00") - (data $349 (i32.const 17820) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00b\00c\006\001\004\00e\00") - (data $350 (i32.const 17852) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\007\005\00b\00c\00d\001\005\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $351 (i32.const 17900) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\007\00f\00f\00f\00f\00f\00f\00e\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $352 (i32.const 17948) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\007\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $353 (i32.const 17996) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\008\000\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $354 (i32.const 18044) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $355 (i32.const 18092) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\007\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00") - (data $356 (i32.const 18140) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00-\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $357 (i32.const 18188) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\008\000\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00") - (data $358 (i32.const 18236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\001\001\00\00\00\00\00\00\00") - (data $359 (i32.const 18268) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\001\001\000\00\00\00\00\00") - (data $360 (i32.const 18300) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\001\001\000\001\00\00\00") - (data $361 (i32.const 18332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\001\001\000\001\001\00") - (data $362 (i32.const 18364) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00") - (data $363 (i32.const 18412) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00") - (data $364 (i32.const 18492) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $365 (i32.const 18588) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $366 (i32.const 18684) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $367 (i32.const 18780) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $368 (i32.const 18876) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00-\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00") - (data $369 (i32.const 18924) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\001\000\002\000\000\002\000\002\002\002\000\001\002\002\001\001\001\001\002\001\000\00\00\00") - (data $370 (i32.const 18988) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $371 (i32.const 19052) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\003\002\002\004\004\000\000\002\004\002\003\001\004\000\00") - (data $372 (i32.const 19100) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\003\007\007\007\007\007\007\007\007\007\007\00\00\00\00\00\00\00") - (data $373 (i32.const 19148) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\009\000\004\004\004\000\005\005\003\00\00\00\00\00\00\00\00\00") - (data $374 (i32.const 19196) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00a\002\000\00d\00c\00d\008\000\00\00\00\00\00\00\00\00\00\00\00") - (data $375 (i32.const 19244) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00a\007\00f\00f\00d\00a\009\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $376 (i32.const 19292) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\002\008\001\00d\005\005\00i\003\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $377 (i32.const 19340) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00b\002\008\00j\00p\00d\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $378 (i32.const 19388) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\003\00v\00v\00v\00v\00v\00v\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $379 (i32.const 19436) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00z\001\004\001\00z\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $380 (i32.const 19484) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\009\009\009\009\009\009\009\009\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $381 (i32.const 19532) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\000\000\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00") - (data $382 (i32.const 19580) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\004\002\009\004\009\006\007\002\009\007\00\00\00\00\00\00\00\00\00") - (data $383 (i32.const 19628) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00") - (data $384 (i32.const 19676) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00") - (data $385 (i32.const 19724) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\008\006\008\007\001\009\004\007\006\007\003\005\000\00\00\00") - (data $386 (i32.const 19772) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\008\006\008\007\001\009\004\007\006\007\003\005\000\001\00") - (data $387 (i32.const 19820) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $388 (i32.const 19884) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $389 (i32.const 19948) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00\00\00") - (data $390 (i32.const 20012) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\001\002\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00") - (data $391 (i32.const 20076) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\001\002\003\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00") - (data $392 (i32.const 20140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00\00\00\00\00") - (data $393 (i32.const 20204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00-\001\002\003\004\00\00\00") - (data $394 (i32.const 20236) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00-\004\002\009\004\009\006\007\002\009\005\00\00\00\00\00\00\00") - (data $395 (i32.const 20284) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00-\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00") - (data $396 (i32.const 20332) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00") - (data $397 (i32.const 20380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $398 (i32.const 20444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00\00\00\00\00\00\00\00\00") - (data $399 (i32.const 20508) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00\00\00\00\00\00\00") - (data $400 (i32.const 20572) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00\00\00\00\00") - (data $401 (i32.const 20636) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00") - (data $402 (i32.const 20684) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\005\006\007\008\009\00a\00b\00c\00d\00e\001\00\00\00\00\00\00\00") - (data $403 (i32.const 20732) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\004\005\006\007\008\009\00a\00b\00c\00d\00e\001\00\00\00\00\00") - (data $404 (i32.const 20780) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00\00\00") - (data $405 (i32.const 20828) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00") - (data $406 (i32.const 20876) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $407 (i32.const 20940) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $408 (i32.const 21004) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\007\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $409 (i32.const 21068) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $410 (i32.const 21132) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00-\007\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00\00\00\00\00\00\00\00\00\00\00") - (data $411 (i32.const 21196) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00-\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00\00\00\00\00\00\00\00\00\00\00") - (data $412 (i32.const 21260) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00b\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00") - (data $413 (i32.const 21388) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\80\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $414 (i32.const 21548) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00-\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\00\00\00\00\00\00\00\00\00") - (data $415 (i32.const 21644) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00R\00\00\001\001\001\001\002\002\002\000\000\002\002\001\002\002\001\002\000\001\000\001\002\001\001\000\002\000\001\002\000\002\001\000\002\001\000\002\001\001\002\002\000\00\00\00\00\00\00\00\00\00\00\00") - (data $416 (i32.const 21756) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $417 (i32.const 21852) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\008\00\00\002\002\001\004\002\002\000\003\000\003\001\001\004\004\000\000\004\002\004\001\002\001\001\002\002\004\003\000\00\00\00\00\00") - (data $418 (i32.const 21932) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\001\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\00") - (data $419 (i32.const 21996) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\003\003\005\005\000\000\005\001\006\00a\004\002\009\000\007\001\002\008\004\00\00\00\00\00\00\00") - (data $420 (i32.const 22060) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\002\00c\001\00d\005\006\00b\006\004\008\00c\006\00c\00d\001\001\000\00\00\00\00\00\00\00\00\00\00\00") - (data $421 (i32.const 22124) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\006\007\009\007\009\00g\006\000\00f\005\004\002\008\000\001\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $422 (i32.const 22188) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\005\00e\008\00g\004\00g\00g\00g\007\00g\005\006\00d\00i\00f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $423 (i32.const 22252) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\004\00e\00o\008\00h\00f\00a\00m\006\00f\00l\00l\00m\00o\00") - (data $424 (i32.const 22300) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00f\00v\00v\00v\00v\00v\00v\00v\00v\00v\00v\00v\00v\00\00\00") - (data $425 (i32.const 22348) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\003\00w\005\00e\001\001\002\006\004\00s\00g\00s\00f\00\00\00") - (data $426 (i32.const 22396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data $427 (i32.const 22428) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $428 (i32.const 22480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $429 (i32.const 22536) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\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#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/memory/memory.repeat (param $dst i32) (param $src i32) (param $srcLength i32) (param $count i32) + (local $index i32) + (local $total i32) + i32.const 0 + local.set $index + local.get $srcLength + local.get $count + i32.mul + local.set $total loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u + local.get $index + local.get $total + i32.lt_u if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 828 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 828 - local.get $d2 - i32.const 2 - i32.shl + local.get $dst + local.get $index i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl + local.get $src + local.get $srcLength + memory.copy + local.get $index + local.get $srcLength i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store + local.set $index br $while-continue|0 end end - local.get $num - i32.const 100 - i32.ge_u + ) + (func $~lib/util/string/isSpace (param $c i32) (result i32) + (local $1 i32) + local.get $c + i32.const 5760 + i32.lt_u if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 828 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store + local.get $c + i32.const 128 + i32.or + i32.const 160 + i32.eq + if (result i32) + i32.const 1 + else + local.get $c + i32.const 9 + i32.sub + i32.const 13 + i32.const 9 + i32.sub + i32.le_u + end + return end - local.get $num - i32.const 10 - i32.ge_u + local.get $c + i32.const 8192 + i32.sub + i32.const 8202 + i32.const 8192 + i32.sub + i32.le_u if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 828 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset + return + end + block $break|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $c + local.set $1 + local.get $1 + i32.const 5760 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 8232 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 8233 + i32.eq + br_if $case2|0 + local.get $1 + i32.const 8239 + i32.eq + br_if $case3|0 + local.get $1 + i32.const 8287 + i32.eq + br_if $case4|0 + local.get $1 + i32.const 12288 + i32.eq + br_if $case5|0 + local.get $1 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + end + end + end + end + end + end i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 + return end + i32.const 0 + return ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1248 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset + (func $~lib/math/ipow32 (param $x i32) (param $e i32) (result i32) + (local $out i32) + (local $log i32) + (local $4 i32) i32.const 1 - i32.and - if - local.get $buffer - i32.const 1248 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end + local.set $out + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $x + i32.const 2 + i32.eq if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u i32.const 1 - i32.add + local.get $e + i32.shl + i32.const 0 + local.get $e + i32.const 32 + i32.lt_u + select return end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and i32.const 0 - i32.eq + i32.le_s if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset + local.get $x + i32.const -1 + i32.eq + if + i32.const -1 i32.const 1 - i32.shl - i32.add - i32.const 2304 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 + local.get $e i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 + i32.and + select + return end + local.get $e + i32.const 0 + i32.eq + local.get $x + i32.const 1 + i32.eq + i32.or + return else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2304 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) - (local $ptr1 i32) - (local $ptr2 i32) - (local $7 i32) - (local $a i32) - (local $b i32) - local.get $str1 - local.get $index1 - i32.const 1 - i32.shl - i32.add - local.set $ptr1 - local.get $str2 - local.get $index2 - i32.const 1 - i32.shl - i32.add - local.set $ptr2 - i32.const 0 - i32.const 2 - i32.lt_s - drop - local.get $len - i32.const 4 - i32.ge_u - if (result i32) - local.get $ptr1 - i32.const 7 - i32.and - local.get $ptr2 - 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 $ptr1 - i64.load - local.get $ptr2 - i64.load - i64.ne + local.get $e + i32.const 1 + i32.eq + if + local.get $x + return + else + local.get $e + i32.const 2 + i32.eq + if + local.get $x + local.get $x + i32.mul + return + else + local.get $e + i32.const 32 + i32.lt_s if - br $do-break|0 + i32.const 32 + local.get $e + i32.clz + i32.sub + local.set $log + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $log + local.set $4 + local.get $4 + i32.const 5 + i32.eq + br_if $case0|0 + local.get $4 + i32.const 4 + i32.eq + br_if $case1|0 + local.get $4 + i32.const 3 + i32.eq + br_if $case2|0 + local.get $4 + i32.const 2 + i32.eq + br_if $case3|0 + local.get $4 + i32.const 1 + i32.eq + br_if $case4|0 + br $break|0 + end + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x + end + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x + end + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x + end + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x + end + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + end + local.get $out + return end - local.get $ptr1 - i32.const 8 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 8 - i32.add - local.set $ptr2 - local.get $len - i32.const 4 - i32.sub - local.set $len - local.get $len - i32.const 4 - i32.ge_u - br_if $do-loop|0 end end end loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + local.get $e if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + local.get $e + i32.const 1 + i32.and if - local.get $a - local.get $b - i32.sub - return + local.get $out + local.get $x + i32.mul + local.set $out end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x br $while-continue|1 end end - i32.const 0 + local.get $out return ) - (func $~lib/string/String.fromCharCode@varargs (param $unit i32) (param $surr i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const -1 - local.set $surr - end - local.get $unit - local.get $surr - call $~lib/string/String.fromCharCode - ) - (func $~lib/rt/__newBuffer (param $size i32) (param $id i32) (param $data i32) (result i32) - (local $buffer i32) - local.get $size - local.get $id - call $~lib/rt/itcms/__new - local.set $buffer - local.get $data - if - local.get $buffer - local.get $data - local.get $size - memory.copy + (func $~lib/math/NativeMath.scalbn (param $x f64) (param $n i32) (result f64) + (local $y f64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $x + local.set $y + local.get $n + i32.const 1023 + i32.gt_s + if + local.get $y + f64.const 8988465674311579538646525e283 + f64.mul + local.set $y + local.get $n + i32.const 1023 + i32.sub + local.set $n + local.get $n + i32.const 1023 + i32.gt_s + if + local.get $y + f64.const 8988465674311579538646525e283 + f64.mul + local.set $y + local.get $n + i32.const 1023 + i32.sub + local.tee $3 + i32.const 1023 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $n + end + else + local.get $n + i32.const -1022 + i32.lt_s + if + local.get $y + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + local.set $y + local.get $n + i32.const 1022 + i32.const 53 + i32.sub + i32.add + local.set $n + local.get $n + i32.const -1022 + i32.lt_s + if + local.get $y + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + local.set $y + local.get $n + i32.const 1022 + i32.add + i32.const 53 + i32.sub + local.tee $5 + i32.const -1022 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $n + end + end end - local.get $buffer + local.get $y + i64.const 1023 + local.get $n + i64.extend_i32_s + i64.add + i64.const 52 + i64.shl + f64.reinterpret_i64 + f64.mul return ) - (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) - (local $child i32) - (local $parent i32) - (local $parentColor i32) - local.get $childPtr - i32.eqz - if - return - end + (func $~lib/object/Object.is (param $x f64) (param $y f64) (result i32) i32.const 1 drop - local.get $parentPtr - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $childPtr + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $x + local.get $x + f64.ne + local.get $y + local.get $y + f64.ne + i32.and + local.get $x + i64.reinterpret_f64 + local.get $y + i64.reinterpret_f64 + i64.eq + i32.or + return + ) + (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) + (local $oldObj i32) + (local $newPtr i32) + (local $4 i32) + (local $5 i32) + local.get $oldPtr i32.const 20 i32.sub - local.set $child - local.get $child - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq + local.set $oldObj + local.get $size + local.get $oldObj + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u if - local.get $parentPtr - i32.const 20 - i32.sub - local.set $parent - local.get $parent - call $~lib/rt/itcms/Object#get:color - local.set $parentColor - local.get $parentColor - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $expectMultiple - if - local.get $parent - call $~lib/rt/itcms/Object#makeGray - else - local.get $child - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $parentColor - 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 $child - call $~lib/rt/itcms/Object#makeGray - end - end + local.get $oldObj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $oldPtr + return end + local.get $size + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtId + call $~lib/rt/itcms/__new + local.set $newPtr + local.get $newPtr + local.get $oldPtr + local.get $size + local.tee $4 + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtSize + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + memory.copy + local.get $newPtr + return ) - (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length_ (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array<~lib/string/String>#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/memory/memory.repeat (param $dst i32) (param $src i32) (param $srcLength i32) (param $count i32) - (local $index i32) - (local $total i32) - i32.const 0 - local.set $index - local.get $srcLength - local.get $count - i32.mul - local.set $total - loop $while-continue|0 - local.get $index - local.get $total + (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) + local.get $value + i32.const 100000 + i32.lt_u + if + local.get $value + i32.const 100 i32.lt_u if - local.get $dst - local.get $index + i32.const 1 + local.get $value + i32.const 10 + i32.ge_u i32.add - local.get $src - local.get $srcLength - memory.copy - local.get $index - local.get $srcLength + return + else + i32.const 3 + local.get $value + i32.const 10000 + i32.ge_u i32.add - local.set $index - br $while-continue|0 + local.get $value + i32.const 1000 + i32.ge_u + i32.add + return end - end - ) - (func $~lib/util/string/isSpace (param $c i32) (result i32) - (local $1 i32) - local.get $c - i32.const 5760 - i32.lt_u - if - local.get $c - i32.const 128 - i32.or - i32.const 160 - i32.eq - if (result i32) - i32.const 1 + unreachable + else + local.get $value + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $value + i32.const 1000000 + i32.ge_u + i32.add + return else - local.get $c - i32.const 9 - i32.sub - i32.const 13 - i32.const 9 - i32.sub - i32.le_u + i32.const 8 + local.get $value + i32.const 1000000000 + i32.ge_u + i32.add + local.get $value + i32.const 100000000 + i32.ge_u + i32.add + return end - return - end - local.get $c - i32.const 8192 - i32.sub - i32.const 8202 - i32.const 8192 - i32.sub - i32.le_u - if - i32.const 1 - return + unreachable end - block $break|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $c - local.set $1 - local.get $1 - i32.const 5760 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 8232 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 8233 - i32.eq - br_if $case2|0 - local.get $1 - i32.const 8239 - i32.eq - br_if $case3|0 - local.get $1 - i32.const 8287 - i32.eq - br_if $case4|0 - local.get $1 - i32.const 12288 - i32.eq - br_if $case5|0 - local.get $1 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - end - end - end - end - end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) + (local $t i32) + (local $r i32) + (local $d1 i32) + (local $d2 i32) + (local $digits1 i64) + (local $digits2 i64) + (local $t|9 i32) + (local $d1|10 i32) + (local $digits i32) + (local $digits|12 i32) + (local $digit i32) + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 15196 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 15196 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end - i32.const 1 - return end - i32.const 0 - return - ) - (func $~lib/math/ipow32 (param $x i32) (param $e i32) (result i32) - (local $out i32) - (local $log i32) - (local $4 i32) - i32.const 1 - local.set $out - i32.const 0 - i32.const 1 - i32.lt_s - drop - local.get $x - i32.const 2 - i32.eq + local.get $num + i32.const 100 + i32.ge_u if + local.get $num + i32.const 100 + i32.div_u + local.set $t|9 + local.get $num + i32.const 100 + i32.rem_u + local.set $d1|10 + local.get $t|9 + local.set $num + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 15196 + local.get $d1|10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits + local.get $buffer + local.get $offset i32.const 1 - local.get $e i32.shl - i32.const 0 - local.get $e - i32.const 32 - i32.lt_u - select - return + i32.add + local.get $digits + i32.store end - local.get $e - i32.const 0 - i32.le_s + local.get $num + i32.const 10 + i32.ge_u if - local.get $x - i32.const -1 - i32.eq - if - i32.const -1 - i32.const 1 - local.get $e - i32.const 1 - i32.and - select - return - end - local.get $e - i32.const 0 - i32.eq - local.get $x - i32.const 1 - i32.eq - i32.or - return - else - local.get $e + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 15196 + local.get $num + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits|12 + local.get $buffer + local.get $offset i32.const 1 - i32.eq - if - local.get $x - return - else - local.get $e - i32.const 2 - i32.eq - if - local.get $x - local.get $x - i32.mul - return - else - local.get $e - i32.const 32 - i32.lt_s - if - i32.const 32 - local.get $e - i32.clz - i32.sub - local.set $log - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $log - local.set $4 - local.get $4 - i32.const 5 - i32.eq - br_if $case0|0 - local.get $4 - i32.const 4 - i32.eq - br_if $case1|0 - local.get $4 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $4 - i32.const 2 - i32.eq - br_if $case3|0 - local.get $4 - i32.const 1 - i32.eq - br_if $case4|0 - br $break|0 - end - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - end - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - end - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - end - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - end - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - end - local.get $out - return - end - end - end + i32.shl + i32.add + local.get $digits|12 + i32.store + else + local.get $offset + i32.const 1 + i32.sub + local.set $offset + i32.const 48 + local.get $num + i32.add + local.set $digit + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digit + i32.store16 end - loop $while-continue|1 - local.get $e + ) + (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u if - local.get $e + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset i32.const 1 + i32.shl + i32.add + i32.const 15616 + local.get $num + i32.wrap_i64 + i32.const 255 i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - br $while-continue|1 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end - local.get $out - return + local.get $offset + i32.const 1 + i32.and + if + local.get $buffer + i32.const 15616 + local.get $num + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end ) - (func $~lib/math/NativeMath.scalbn (param $x f64) (param $n i32) (result f64) - (local $y f64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $x - local.set $y - local.get $n - i32.const 1023 - i32.gt_s + (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) + (local $value i32) + (local $b64 i64) + (local $b i64) + (local $e i32) + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if - local.get $y - f64.const 8988465674311579538646525e283 - f64.mul - local.set $y - local.get $n - i32.const 1023 + i32.const 63 + local.get $num + i64.clz + i32.wrap_i64 i32.sub - local.set $n - local.get $n - i32.const 1023 - i32.gt_s + i32.const 31 + local.get $base + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $base + i64.extend_i32_s + local.set $b64 + local.get $b64 + local.set $b + i32.const 1 + local.set $e + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u if - local.get $y - f64.const 8988465674311579538646525e283 - f64.mul - local.set $y - local.get $n - i32.const 1023 - i32.sub - local.tee $3 - i32.const 1023 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_s - select - local.set $n + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end - else - local.get $n - i32.const -1022 - i32.lt_s + end + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u if - local.get $y - f64.const 2.2250738585072014e-308 - f64.const 9007199254740992 - f64.mul - f64.mul - local.set $y - local.get $n - i32.const 1022 - i32.const 53 - i32.sub + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 i32.add - local.set $n - local.get $n - i32.const -1022 - i32.lt_s - if - local.get $y - f64.const 2.2250738585072014e-308 - f64.const 9007199254740992 - f64.mul - f64.mul - local.set $y - local.get $n - i32.const 1022 - i32.add - i32.const 53 - i32.sub - local.tee $5 - i32.const -1022 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $n - end + local.set $e + br $while-continue|1 end end - local.get $y - i64.const 1023 - local.get $n - i64.extend_i32_s - i64.add - i64.const 52 - i64.shl - f64.reinterpret_i64 - f64.mul - return - ) - (func $~lib/object/Object.is (param $x f64) (param $y f64) (result i32) + local.get $e i32.const 1 - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $x - local.get $x - f64.ne - local.get $y - local.get $y - f64.ne - i32.and - local.get $x - i64.reinterpret_f64 - local.get $y - i64.reinterpret_f64 - i64.eq - i32.or - return - ) - (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 + i32.sub + return ) - (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) - (local $oldObj i32) - (local $newPtr i32) - (local $4 i32) - (local $5 i32) - local.get $oldPtr - i32.const 20 + (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) + (local $base i64) + (local $shift i64) + (local $mask i64) + (local $q i64) + local.get $radix + i64.extend_i32_s + local.set $base + local.get $radix + local.get $radix + i32.const 1 i32.sub - local.set $oldObj - local.get $size - local.get $oldObj - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor i32.and - i32.const 16 - i32.sub - i32.le_u + i32.const 0 + i32.eq if - local.get $oldObj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $oldPtr - return + local.get $radix + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $shift + local.get $base + i64.const 1 + i64.sub + local.set $mask + loop $do-loop|0 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 16672 + local.get $num + local.get $mask + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $num + local.get $shift + i64.shr_u + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $num + local.get $base + i64.div_u + local.set $q + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 16672 + local.get $num + local.get $q + local.get $base + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $q + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|1 + end end - local.get $size - local.get $oldObj - call $~lib/rt/itcms/Object#get:rtId - call $~lib/rt/itcms/__new - local.set $newPtr - local.get $newPtr - local.get $oldPtr - local.get $size - local.tee $4 - local.get $oldObj - call $~lib/rt/itcms/Object#get:rtSize - local.tee $5 - local.get $4 - local.get $5 - i32.lt_u - select - memory.copy - local.get $newPtr - return - ) - (func $~lib/array/Array<~lib/string/String>#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (param $this i32) (param $length_ i32) - local.get $this - local.get $length_ - i32.store offset=12 - ) - (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 ) (func $~lib/util/number/decimalCount64High (param $value i64) (result i32) local.get $value @@ -4037,14 +4030,14 @@ i32.const 100 i32.rem_u local.set $c2 - i32.const 828 + i32.const 15196 local.get $c1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 828 + i32.const 15196 local.get $c2 i32.const 2 i32.shl @@ -4066,14 +4059,14 @@ i64.shl i64.or i64.store - i32.const 828 + i32.const 15196 local.get $b1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 828 + i32.const 15196 local.get $b2 i32.const 2 i32.shl @@ -4377,7 +4370,7 @@ local.set $delta|21 local.get $tmp local.set $rest - i32.const 23408 + i32.const 23248 local.get $kappa i32.const 2 i32.shl @@ -4514,7 +4507,7 @@ i32.add global.set $~lib/util/number/_K local.get $wp_w_frc - i32.const 23408 + i32.const 23248 i32.const 0 local.get $kappa i32.sub @@ -5193,14 +5186,14 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 22536 + i32.const 22376 local.get $index i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow - i32.const 23232 + i32.const 23072 local.get $index i32.const 1 i32.shl @@ -5500,124 +5493,48 @@ i32.ne if call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - 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 - i32.const 0 - drop - ) - (func $std/string/getString (result i32) - global.get $std/string/str - return - ) - (func $~start - call $start:std/string - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 58560 - i32.const 58608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 160 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 + drop + br $while-continue|1 + end + end + 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/memory/__stack_pointer - local.get $6 + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + i32.const 0 + drop + ) + (func $std/string/getString (result i32) + global.get $std/string/str return ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~start + call $start:std/string + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 58400 + i32.const 58448 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5626,124 +5543,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 + i32.const 0 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 96 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 128 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 592 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 592 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2400 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -6023,9 +5843,9 @@ local.get $len i32.ge_u if - i32.const 384 - i32.const 2608 - i32.const 57 + i32.const 240 + i32.const 304 + i32.const 58 i32.const 31 call $~lib/builtins/abort unreachable @@ -6072,7 +5892,7 @@ call $~lib/string/String#get:length i32.ge_u if - i32.const 160 + i32.const 688 local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7191,7 +7011,7 @@ local.get $size i32.eqz if - i32.const 160 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7270,7 +7090,7 @@ local.get $size i32.eqz if - i32.const 160 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7388,7 +7208,7 @@ local.get $size i32.eqz if - i32.const 160 + i32.const 688 local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8619,7 +8439,7 @@ i32.const 22 i32.sub local.set $n - i32.const 5552 + i32.const 3648 local.get $n i32.const 3 i32.shl @@ -8659,7 +8479,7 @@ block $~lib/util/string/pow10|inlined.1 (result f64) local.get $exp local.set $n|26 - i32.const 5552 + i32.const 3648 local.get $n|26 i32.const 3 i32.shl @@ -8676,7 +8496,7 @@ local.get $exp i32.sub local.set $n|27 - i32.const 5552 + i32.const 3648 local.get $n|27 i32.const 3 i32.shl @@ -9811,7 +9631,114 @@ call $~lib/util/string/strtod local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize + i32.add + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 688 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -10170,9 +10097,9 @@ i64.gt_u end if - i32.const 14944 - i32.const 2608 - i32.const 334 + i32.const 13040 + i32.const 304 + i32.const 335 i32.const 7 call $~lib/builtins/abort unreachable @@ -10187,7 +10114,7 @@ i32.eqz end if - i32.const 160 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -10918,7 +10845,7 @@ i32.const 0 i32.le_s if - i32.const 160 + i32.const 688 local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11066,7 +10993,7 @@ i32.const 0 i32.le_s if - i32.const 160 + i32.const 688 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11235,7 +11162,7 @@ local.get $size i32.eqz if - i32.const 160 + i32.const 688 local.set $22 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11365,8 +11292,8 @@ i32.shr_u i32.gt_u if - i32.const 14944 - i32.const 16544 + i32.const 13040 + i32.const 14640 i32.const 19 i32.const 48 call $~lib/builtins/abort @@ -11430,6 +11357,10 @@ local.get $array local.get $newData i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $newData i32.const 0 @@ -11468,9 +11399,9 @@ i32.const 0 i32.lt_s if - i32.const 384 - i32.const 16544 - i32.const 130 + i32.const 240 + i32.const 14640 + i32.const 132 i32.const 22 call $~lib/builtins/abort unreachable @@ -11508,6 +11439,10 @@ i32.store i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -11561,6 +11496,10 @@ i32.add local.get $value i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -11747,6 +11686,10 @@ i32.add local.get $charStr i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $result local.get $charStr i32.const 1 @@ -11785,7 +11728,7 @@ i32.store offset=4 local.get $21 call $~lib/array/Array<~lib/string/String>#get:dataStart - i32.const 160 + i32.const 688 i32.store local.get $result|12 local.set $21 @@ -11877,7 +11820,7 @@ local.get $21 i32.store offset=4 local.get $21 - i32.const 160 + i32.const 688 call $~lib/array/Array<~lib/string/String>#push drop end @@ -11977,7 +11920,7 @@ local.get $21 i32.store offset=4 local.get $21 - i32.const 160 + i32.const 688 call $~lib/array/Array<~lib/string/String>#push drop end @@ -12082,9 +12025,9 @@ call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if - i32.const 384 - i32.const 16544 - i32.const 114 + i32.const 240 + i32.const 14640 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -12112,9 +12055,9 @@ local.get $value i32.eqz if - i32.const 16592 - i32.const 16544 - i32.const 118 + i32.const 14688 + i32.const 14640 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -12191,66 +12134,49 @@ i32.const 0 i32.const 76 memory.fill - 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 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 336 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 480 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $std/string/str i32.const 32 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 8 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2512 - i32.const 2512 + i32.const 144 + i32.const 144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 10 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2544 - i32.const 2544 + i32.const 176 + i32.const 176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 11 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2576 - i32.const 2576 + i32.const 208 + i32.const 208 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -12268,7 +12194,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -12287,7 +12213,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -12306,12 +12232,29 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end + 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 464 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 496 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 576 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace global.get $std/string/str local.set $52 global.get $~lib/memory/__stack_pointer @@ -12342,7 +12285,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -12386,7 +12329,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -12413,18 +12356,18 @@ local.get $52 i32.store local.get $52 - i32.const 2656 + i32.const 720 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 19 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 call $~lib/string/String.__not i32.eqz i32.const 0 @@ -12432,13 +12375,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2688 + i32.const 752 call $~lib/string/String.__not i32.eqz i32.const 1 @@ -12446,13 +12389,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 call $~lib/string/String.__not i32.eqz i32.const 1 @@ -12460,7 +12403,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -12476,12 +12419,12 @@ local.get $52 i32.store local.get $52 - i32.const 2688 + i32.const 752 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -12497,12 +12440,12 @@ local.get $52 i32.store local.get $52 - i32.const 2752 + i32.const 816 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -12518,12 +12461,12 @@ local.get $52 i32.store local.get $52 - i32.const 2784 + i32.const 848 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -12541,12 +12484,12 @@ local.get $52 i32.store local.get $52 - i32.const 2784 + i32.const 848 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -12560,12 +12503,12 @@ local.get $52 i32.store local.get $52 - i32.const 2816 + i32.const 880 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -12574,7 +12517,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 2848 + i32.const 912 call $~lib/rt/__newArray local.set $52 global.get $~lib/memory/__stack_pointer @@ -12587,12 +12530,12 @@ local.get $52 i32.store local.get $52 - i32.const 2880 + i32.const 944 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -12601,7 +12544,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 2912 + i32.const 976 call $~lib/rt/__newArray local.set $52 global.get $~lib/memory/__stack_pointer @@ -12614,12 +12557,12 @@ local.get $52 i32.store local.get $52 - i32.const 2944 + i32.const 1008 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -12628,7 +12571,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 2976 + i32.const 1040 call $~lib/rt/__newArray local.set $52 global.get $~lib/memory/__stack_pointer @@ -12641,12 +12584,12 @@ local.get $52 i32.store local.get $52 - i32.const 3024 + i32.const 1088 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 32 i32.const 1 call $~lib/builtins/abort @@ -12659,12 +12602,12 @@ local.get $52 i32.store local.get $52 - i32.const 2688 + i32.const 752 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -12677,12 +12620,12 @@ local.get $52 i32.store local.get $52 - i32.const 2784 + i32.const 848 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -12695,12 +12638,12 @@ local.get $52 i32.store local.get $52 - i32.const 3056 + i32.const 1120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -12712,13 +12655,13 @@ local.get $52 i32.store local.get $52 - i32.const 3088 + i32.const 1152 i32.const 0 call $~lib/string/String#startsWith i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -12730,7 +12673,7 @@ local.get $52 i32.store local.get $52 - i32.const 3120 + i32.const 1184 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -12738,7 +12681,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 39 i32.const 1 call $~lib/builtins/abort @@ -12750,13 +12693,13 @@ local.get $52 i32.store local.get $52 - i32.const 3152 + i32.const 1216 i32.const 0 call $~lib/string/String#includes i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -12769,7 +12712,7 @@ i32.store offset=8 local.get $52 i32.const 0 - i32.const 3184 + i32.const 1248 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -12786,7 +12729,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -12799,7 +12742,7 @@ i32.store offset=8 local.get $52 i32.const 15 - i32.const 3184 + i32.const 1248 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -12816,127 +12759,127 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 43 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 i32.const 3 - i32.const 3184 + i32.const 1248 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3216 + i32.const 1280 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 44 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 i32.const 10 - i32.const 160 + i32.const 688 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 45 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 i32.const 100 - i32.const 160 + i32.const 688 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 46 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 + i32.const 1312 i32.const 5 - i32.const 3184 + i32.const 1248 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3280 + i32.const 1344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 47 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 + i32.const 1312 i32.const 6 - i32.const 3312 + i32.const 1376 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3344 + i32.const 1408 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 48 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 + i32.const 1312 i32.const 8 - i32.const 3312 + i32.const 1376 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3376 + i32.const 1440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 49 i32.const 1 call $~lib/builtins/abort @@ -12949,7 +12892,7 @@ i32.store offset=8 local.get $52 i32.const 0 - i32.const 3184 + i32.const 1248 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -12966,7 +12909,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -12979,7 +12922,7 @@ i32.store offset=8 local.get $52 i32.const 15 - i32.const 3184 + i32.const 1248 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -12996,134 +12939,134 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 52 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 i32.const 3 - i32.const 3184 + i32.const 1248 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3216 + i32.const 1280 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 53 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 i32.const 10 - i32.const 160 + i32.const 688 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 54 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 i32.const 100 - i32.const 160 + i32.const 688 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 55 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 + i32.const 1312 i32.const 5 - i32.const 3184 + i32.const 1248 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3424 + i32.const 1488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 56 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 + i32.const 1312 i32.const 6 - i32.const 3248 + i32.const 1312 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 57 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 + i32.const 1312 i32.const 8 - i32.const 3248 + i32.const 1312 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3488 + i32.const 1552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 58 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13131,14 +13074,14 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 60 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 3088 + i32.const 688 + i32.const 1152 i32.const 0 call $~lib/string/String#indexOf i32.const -1 @@ -13146,14 +13089,14 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 61 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 - i32.const 2720 + i32.const 784 + i32.const 784 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13161,7 +13104,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -13186,7 +13129,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 63 i32.const 1 call $~lib/builtins/abort @@ -13198,7 +13141,7 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13206,7 +13149,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 64 i32.const 1 call $~lib/builtins/abort @@ -13218,7 +13161,7 @@ local.get $52 i32.store local.get $52 - i32.const 3536 + i32.const 1600 i32.const 0 call $~lib/string/String#indexOf i32.const 2 @@ -13226,7 +13169,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 65 i32.const 1 call $~lib/builtins/abort @@ -13238,7 +13181,7 @@ local.get $52 i32.store local.get $52 - i32.const 3568 + i32.const 1632 i32.const 0 call $~lib/string/String#indexOf i32.const -1 @@ -13246,7 +13189,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 66 i32.const 1 call $~lib/builtins/abort @@ -13258,7 +13201,7 @@ local.get $52 i32.store local.get $52 - i32.const 3536 + i32.const 1600 i32.const 2 call $~lib/string/String#indexOf i32.const 2 @@ -13266,7 +13209,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 67 i32.const 1 call $~lib/builtins/abort @@ -13278,7 +13221,7 @@ local.get $52 i32.store local.get $52 - i32.const 3536 + i32.const 1600 i32.const 3 call $~lib/string/String#indexOf i32.const -1 @@ -13286,7 +13229,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 68 i32.const 1 call $~lib/builtins/abort @@ -13298,7 +13241,7 @@ local.get $52 i32.store local.get $52 - i32.const 3600 + i32.const 1664 i32.const -1 call $~lib/string/String#indexOf i32.const 2 @@ -13306,14 +13249,14 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 69 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13323,14 +13266,14 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 71 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 3088 + i32.const 688 + i32.const 1152 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13340,7 +13283,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 72 i32.const 1 call $~lib/builtins/abort @@ -13352,7 +13295,7 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13368,7 +13311,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 73 i32.const 1 call $~lib/builtins/abort @@ -13380,7 +13323,7 @@ local.get $52 i32.store local.get $52 - i32.const 3536 + i32.const 1600 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13390,7 +13333,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 74 i32.const 1 call $~lib/builtins/abort @@ -13402,7 +13345,7 @@ local.get $52 i32.store local.get $52 - i32.const 3568 + i32.const 1632 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13412,7 +13355,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 75 i32.const 1 call $~lib/builtins/abort @@ -13424,7 +13367,7 @@ local.get $52 i32.store local.get $52 - i32.const 3632 + i32.const 1696 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13434,7 +13377,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 76 i32.const 1 call $~lib/builtins/abort @@ -13446,7 +13389,7 @@ local.get $52 i32.store local.get $52 - i32.const 3536 + i32.const 1600 i32.const 2 call $~lib/string/String#lastIndexOf i32.const 2 @@ -13454,7 +13397,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 77 i32.const 1 call $~lib/builtins/abort @@ -13466,7 +13409,7 @@ local.get $52 i32.store local.get $52 - i32.const 3536 + i32.const 1600 i32.const 3 call $~lib/string/String#lastIndexOf i32.const 2 @@ -13474,7 +13417,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 78 i32.const 1 call $~lib/builtins/abort @@ -13486,7 +13429,7 @@ local.get $52 i32.store local.get $52 - i32.const 3600 + i32.const 1664 i32.const -1 call $~lib/string/String#lastIndexOf i32.const -1 @@ -13494,7 +13437,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 79 i32.const 1 call $~lib/builtins/abort @@ -13506,7 +13449,7 @@ local.get $52 i32.store local.get $52 - i32.const 3664 + i32.const 1728 i32.const 0 call $~lib/string/String#lastIndexOf i32.const -1 @@ -13514,7 +13457,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 80 i32.const 1 call $~lib/builtins/abort @@ -13526,7 +13469,7 @@ local.get $52 i32.store local.get $52 - i32.const 3088 + i32.const 1152 i32.const 0 call $~lib/string/String#lastIndexOf i32.const 0 @@ -13534,365 +13477,365 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 81 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 call $~lib/string/String#localeCompare i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 83 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 - i32.const 160 + i32.const 784 + i32.const 688 call $~lib/string/String#localeCompare i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 84 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 2720 + i32.const 688 + i32.const 784 call $~lib/string/String#localeCompare i32.const -1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 85 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3696 - i32.const 3696 + i32.const 1760 + i32.const 1760 call $~lib/string/String#localeCompare i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 3728 + i32.const 1312 + i32.const 1792 call $~lib/string/String#localeCompare i32.const -1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 87 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 3760 + i32.const 1312 + i32.const 1824 call $~lib/string/String#localeCompare i32.const -1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 88 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3728 - i32.const 3248 + i32.const 1792 + i32.const 1312 call $~lib/string/String#localeCompare i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 89 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3792 - i32.const 3248 + i32.const 1856 + i32.const 1312 call $~lib/string/String#localeCompare i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 90 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3824 - i32.const 3248 + i32.const 1888 + i32.const 1312 call $~lib/string/String#localeCompare i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 91 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3792 - i32.const 3856 + i32.const 1856 + i32.const 1920 call $~lib/string/String#localeCompare i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 92 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 3824 + i32.const 1312 + i32.const 1888 call $~lib/string/String#localeCompare i32.const -1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 93 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3856 - i32.const 3792 + i32.const 1920 + i32.const 1856 call $~lib/string/String#localeCompare i32.const -1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 3216 + i32.const 688 + i32.const 1280 call $~lib/string/String#localeCompare i32.const -1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 95 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2688 - i32.const 160 + i32.const 752 + i32.const 688 call $~lib/string/String#localeCompare i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 96 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 call $~lib/string/String#trimStart local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 98 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3888 + i32.const 1952 call $~lib/string/String#trimStart local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3888 + i32.const 1952 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 99 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3920 + i32.const 1984 call $~lib/string/String#trimStart local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3968 + i32.const 2032 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 100 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 call $~lib/string/String#trimEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 102 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3888 + i32.const 1952 call $~lib/string/String#trimEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3888 + i32.const 1952 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 103 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3920 + i32.const 1984 call $~lib/string/String#trimEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 4016 + i32.const 2080 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 104 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 call $~lib/string/String#trim local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 106 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3888 + i32.const 1952 call $~lib/string/String#trim local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3888 + i32.const 1952 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 107 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3920 + i32.const 1984 call $~lib/string/String#trim local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 108 i32.const 1 call $~lib/builtins/abort @@ -13900,7 +13843,7 @@ end block $~lib/builtins/bool.parse|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4064 + i32.const 2128 local.tee $3 i32.store offset=16 local.get $3 @@ -13919,7 +13862,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -13927,7 +13870,7 @@ end block $~lib/builtins/bool.parse|inlined.1 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4112 + i32.const 2176 local.tee $4 i32.store offset=20 local.get $4 @@ -13946,7 +13889,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -13954,7 +13897,7 @@ end block $~lib/builtins/bool.parse|inlined.2 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4160 + i32.const 2224 local.tee $5 i32.store offset=24 local.get $5 @@ -13973,7 +13916,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 113 i32.const 1 call $~lib/builtins/abort @@ -13981,7 +13924,7 @@ end block $~lib/builtins/bool.parse|inlined.3 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 160 + i32.const 688 local.tee $6 i32.store offset=28 local.get $6 @@ -14000,7 +13943,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 114 i32.const 1 call $~lib/builtins/abort @@ -14008,7 +13951,7 @@ end block $~lib/builtins/bool.parse|inlined.4 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4208 + i32.const 2272 local.tee $7 i32.store offset=32 local.get $7 @@ -14027,7 +13970,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -14035,7 +13978,7 @@ end block $~lib/builtins/bool.parse|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4240 + i32.const 2304 local.tee $8 i32.store offset=36 local.get $8 @@ -14054,7 +13997,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 116 i32.const 1 call $~lib/builtins/abort @@ -14062,7 +14005,7 @@ end block $~lib/builtins/bool.parse|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4272 + i32.const 2336 local.tee $9 i32.store offset=40 local.get $9 @@ -14081,13 +14024,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 117 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 816 + i32.const 2368 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14095,13 +14038,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 119 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4304 + i32.const 2400 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14109,13 +14052,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 120 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4336 + i32.const 2432 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14123,13 +14066,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 121 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4368 + i32.const 2464 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14137,13 +14080,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 122 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4400 + i32.const 2496 i32.const 0 call $~lib/string/parseInt f64.const 5 @@ -14151,13 +14094,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 123 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4432 + i32.const 2528 i32.const 0 call $~lib/string/parseInt f64.const 455 @@ -14165,13 +14108,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 124 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4464 + i32.const 2560 i32.const 0 call $~lib/string/parseInt f64.const 3855 @@ -14179,13 +14122,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 125 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4496 + i32.const 2592 i32.const 0 call $~lib/string/parseInt f64.const 3855 @@ -14193,13 +14136,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 126 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4528 + i32.const 2624 i32.const 0 call $~lib/string/parseInt f64.const 11 @@ -14207,13 +14150,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 127 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4560 + i32.const 2656 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14221,13 +14164,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 128 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 + i32.const 2688 i32.const 0 call $~lib/string/parseInt f64.const -123 @@ -14235,13 +14178,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 129 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4624 + i32.const 2720 i32.const 0 call $~lib/string/parseInt f64.const 123 @@ -14249,13 +14192,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 130 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4656 + i32.const 2752 i32.const 0 call $~lib/string/parseInt f64.const -12 @@ -14263,13 +14206,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 131 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 816 + i32.const 2368 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14277,13 +14220,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 132 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4688 + i32.const 2784 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14291,13 +14234,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 133 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4720 + i32.const 2816 i32.const 16 call $~lib/string/parseInt f64.const 2833 @@ -14305,13 +14248,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 134 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4752 + i32.const 2848 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14319,13 +14262,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 135 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4784 + i32.const 2880 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14333,13 +14276,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 136 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4816 + i32.const 2912 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14347,14 +14290,14 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 137 i32.const 1 call $~lib/builtins/abort unreachable end block $~lib/math/NativeMath.signbit|inlined.0 (result i32) - i32.const 4848 + i32.const 2944 i32.const 0 call $~lib/string/parseInt local.set $10 @@ -14371,29 +14314,29 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 138 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4880 + i32.const 2976 i32.const 0 call $~lib/string/parseInt - i32.const 4928 + i32.const 3024 i32.const 16 call $~lib/string/parseInt f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 139 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4960 + i32.const 3056 i32.const 0 call $~lib/string/parseInt f64.const 36893488147419103232 @@ -14401,13 +14344,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 140 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4960 + i32.const 3056 i32.const 13 call $~lib/string/parseInt f64.const 5135857308667095285760 @@ -14415,13 +14358,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 141 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5024 + i32.const 3120 i32.const 10 call $~lib/string/parseInt f64.const -1.e+24 @@ -14429,13 +14372,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 142 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5104 + i32.const 3200 i32.const 16 call $~lib/string/parseInt f64.const 75557863725914323419136 @@ -14443,13 +14386,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 143 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5168 + i32.const 3264 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14457,13 +14400,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 144 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5200 + i32.const 3296 i32.const 0 call $~lib/string/parseInt f64.const 2 @@ -14471,13 +14414,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 145 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5248 + i32.const 3344 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14485,13 +14428,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 147 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5280 + i32.const 3376 i32.const 0 call $~lib/string/parseInt f64.const 2 @@ -14499,13 +14442,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 148 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5328 + i32.const 3424 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14513,13 +14456,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 149 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5360 + i32.const 3456 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14527,13 +14470,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 150 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5392 + i32.const 3488 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14541,13 +14484,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 151 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 i32.const 0 call $~lib/string/parseInt local.tee $11 @@ -14556,13 +14499,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 152 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5440 + i32.const 3536 i32.const 0 call $~lib/string/parseInt local.tee $12 @@ -14571,13 +14514,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 153 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5472 + i32.const 3568 i32.const 0 call $~lib/string/parseInt local.tee $13 @@ -14586,13 +14529,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 154 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3312 + i32.const 1376 i32.const 37 call $~lib/string/parseInt local.tee $14 @@ -14601,13 +14544,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 155 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5504 + i32.const 3600 i32.const 0 call $~lib/string/parseInt local.tee $15 @@ -14616,13 +14559,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 156 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5536 + i32.const 3632 i32.const 0 call $~lib/string/parseInt local.tee $16 @@ -14631,13 +14574,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 157 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5536 + i32.const 3632 call $~lib/number/F32.parseFloat local.tee $17 local.get $17 @@ -14645,13 +14588,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 158 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5536 + i32.const 3632 call $~lib/number/F64.parseFloat local.tee $18 local.get $18 @@ -14659,7 +14602,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 159 i32.const 1 call $~lib/builtins/abort @@ -14667,7 +14610,7 @@ end block $~lib/builtins/f32.parse|inlined.0 (result f32) global.get $~lib/memory/__stack_pointer - i32.const 5536 + i32.const 3632 local.tee $19 i32.store offset=44 local.get $19 @@ -14686,7 +14629,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 160 i32.const 1 call $~lib/builtins/abort @@ -14694,7 +14637,7 @@ end block $~lib/builtins/f64.parse|inlined.0 (result f64) global.get $~lib/memory/__stack_pointer - i32.const 5536 + i32.const 3632 local.tee $21 i32.store offset=48 local.get $21 @@ -14712,13 +14655,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 161 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5760 + i32.const 3856 i32.const 0 call $~lib/number/I32.parseInt global.get $~lib/number/I32.MAX_VALUE @@ -14726,7 +14669,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -14734,7 +14677,7 @@ end block $~lib/builtins/i32.parse|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 5760 + i32.const 3856 local.tee $23 i32.store offset=52 i32.const 0 @@ -14754,13 +14697,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 164 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5808 + i32.const 3904 i32.const 0 call $~lib/number/I64.parseInt global.get $~lib/number/I64.MAX_VALUE @@ -14768,7 +14711,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 165 i32.const 1 call $~lib/builtins/abort @@ -14776,7 +14719,7 @@ end block $~lib/builtins/i64.parse|inlined.0 (result i64) global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 3904 local.tee $25 i32.store offset=56 i32.const 0 @@ -14796,260 +14739,260 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 166 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 816 + i32.const 2368 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 169 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4336 + i32.const 2432 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 170 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5872 + i32.const 3968 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 171 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5904 + i32.const 4000 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 172 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5936 + i32.const 4032 call $~lib/string/parseFloat f64.const 1e-05 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 173 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5968 + i32.const 4064 call $~lib/string/parseFloat f64.const -1e-05 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 174 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6000 + i32.const 4096 call $~lib/string/parseFloat f64.const -3e-23 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 175 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6048 + i32.const 4144 call $~lib/string/parseFloat f64.const 3e21 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 176 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6096 + i32.const 4192 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 177 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6128 + i32.const 4224 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 178 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6160 + i32.const 4256 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 179 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6192 + i32.const 4288 call $~lib/string/parseFloat f64.const 0.25 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 180 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6224 + i32.const 4320 call $~lib/string/parseFloat f64.const 1e3 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 181 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6256 + i32.const 4352 call $~lib/string/parseFloat f64.const 1e-10 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 182 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6304 + i32.const 4400 call $~lib/string/parseFloat f64.const 1e-30 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 183 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6352 + i32.const 4448 call $~lib/string/parseFloat f64.const 1e-323 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 184 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6400 + i32.const 4496 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 185 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6448 + i32.const 4544 call $~lib/string/parseFloat f64.const 1.e+308 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 186 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6480 + i32.const 4576 call $~lib/string/parseFloat f64.const inf f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 187 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 call $~lib/string/parseFloat local.tee $27 local.get $27 @@ -15057,650 +15000,650 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 188 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6512 + i32.const 4608 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 191 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6560 + i32.const 4656 call $~lib/string/parseFloat f64.const 1e-10 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 192 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6608 + i32.const 4704 call $~lib/string/parseFloat f64.const 10 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 193 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6656 + i32.const 4752 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 194 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6688 + i32.const 4784 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 195 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6720 + i32.const 4816 call $~lib/string/parseFloat f64.const 10 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 196 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6768 + i32.const 4864 call $~lib/string/parseFloat f64.const 123456789 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 197 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6816 + i32.const 4912 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 198 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6864 + i32.const 4960 call $~lib/string/parseFloat f64.const 1e-60 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 200 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6896 + i32.const 4992 call $~lib/string/parseFloat f64.const 1.e+60 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 201 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6928 + i32.const 5024 call $~lib/string/parseFloat f64.const 123.4 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 204 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6960 + i32.const 5056 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 205 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6992 + i32.const 5088 call $~lib/string/parseFloat f64.const -1.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 206 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7040 + i32.const 5136 call $~lib/string/parseFloat f64.const 10 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 207 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7088 + i32.const 5184 call $~lib/string/parseFloat f64.const 10 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 208 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7136 + i32.const 5232 call $~lib/string/parseFloat f64.const 0.022 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 209 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7184 + i32.const 5280 call $~lib/string/parseFloat f64.const 11 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 210 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4688 + i32.const 2784 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 211 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7216 + i32.const 5312 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 212 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7248 + i32.const 5344 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 213 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7280 + i32.const 5376 call $~lib/string/parseFloat f64.const 1.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 214 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7312 + i32.const 5408 call $~lib/string/parseFloat f64.const -1.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 215 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7344 + i32.const 5440 call $~lib/string/parseFloat f64.const -1.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 216 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7376 + i32.const 5472 call $~lib/string/parseFloat f64.const -1.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 217 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7408 + i32.const 5504 call $~lib/string/parseFloat f64.const -1.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 218 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7440 + i32.const 5536 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 219 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7472 + i32.const 5568 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 220 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7504 + i32.const 5600 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 221 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7536 + i32.const 5632 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 222 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7568 + i32.const 5664 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 223 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7600 + i32.const 5696 call $~lib/string/parseFloat f64.const 10 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 224 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7632 + i32.const 5728 call $~lib/string/parseFloat f64.const 10 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 225 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7680 + i32.const 5776 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 226 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7712 + i32.const 5808 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 227 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7744 + i32.const 5840 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 228 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7776 + i32.const 5872 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 229 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7808 + i32.const 5904 call $~lib/string/parseFloat f64.const 10 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 230 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7840 + i32.const 5936 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 231 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7872 + i32.const 5968 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 232 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7904 + i32.const 6000 call $~lib/string/parseFloat f64.const 0.01 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 233 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7952 + i32.const 6048 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 234 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7984 + i32.const 6080 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 235 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8016 + i32.const 6112 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 236 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8048 + i32.const 6144 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 237 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8080 + i32.const 6176 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 238 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8112 + i32.const 6208 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 239 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8144 + i32.const 6240 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 240 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8176 + i32.const 6272 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 241 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8208 + i32.const 6304 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 242 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8240 + i32.const 6336 call $~lib/string/parseFloat f64.const 0 call $~lib/object/Object.is @@ -15709,13 +15652,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 243 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8272 + i32.const 6368 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -15724,13 +15667,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 244 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8304 + i32.const 6400 call $~lib/string/parseFloat f64.const 0 call $~lib/object/Object.is @@ -15739,13 +15682,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 245 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4848 + i32.const 2944 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -15754,13 +15697,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 246 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8336 + i32.const 6432 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -15769,13 +15712,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 247 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5472 + i32.const 3568 call $~lib/string/parseFloat local.tee $28 local.get $28 @@ -15783,13 +15726,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 248 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5440 + i32.const 3536 call $~lib/string/parseFloat local.tee $29 local.get $29 @@ -15797,13 +15740,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 249 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8384 + i32.const 6480 call $~lib/string/parseFloat local.tee $30 local.get $30 @@ -15811,13 +15754,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 250 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8416 + i32.const 6512 call $~lib/string/parseFloat local.tee $31 local.get $31 @@ -15825,13 +15768,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 251 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8448 + i32.const 6544 call $~lib/string/parseFloat local.tee $32 local.get $32 @@ -15839,13 +15782,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 252 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8480 + i32.const 6576 call $~lib/string/parseFloat local.tee $33 local.get $33 @@ -15853,13 +15796,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 253 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8512 + i32.const 6608 call $~lib/string/parseFloat local.tee $34 local.get $34 @@ -15867,13 +15810,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 254 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8544 + i32.const 6640 call $~lib/string/parseFloat local.tee $35 local.get $35 @@ -15881,13 +15824,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 255 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8576 + i32.const 6672 call $~lib/string/parseFloat local.tee $36 local.get $36 @@ -15895,13 +15838,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 256 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8608 + i32.const 6704 call $~lib/string/parseFloat local.tee $37 local.get $37 @@ -15909,13 +15852,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 257 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8640 + i32.const 6736 call $~lib/string/parseFloat local.tee $38 local.get $38 @@ -15923,13 +15866,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 258 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8672 + i32.const 6768 call $~lib/string/parseFloat local.tee $39 local.get $39 @@ -15937,13 +15880,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 259 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8704 + i32.const 6800 call $~lib/string/parseFloat local.tee $40 local.get $40 @@ -15951,13 +15894,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 260 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8736 + i32.const 6832 call $~lib/string/parseFloat local.tee $41 local.get $41 @@ -15965,13 +15908,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 261 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8768 + i32.const 6864 call $~lib/string/parseFloat local.tee $42 local.get $42 @@ -15979,13 +15922,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 262 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 + i32.const 2336 call $~lib/string/parseFloat local.tee $43 local.get $43 @@ -15993,221 +15936,221 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 263 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8800 + i32.const 6896 call $~lib/string/parseFloat f64.const 1e22 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 264 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8832 + i32.const 6928 call $~lib/string/parseFloat f64.const 1e-22 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 265 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8864 + i32.const 6960 call $~lib/string/parseFloat f64.const 1.e+23 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 266 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8896 + i32.const 6992 call $~lib/string/parseFloat f64.const 1e-23 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 267 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8928 + i32.const 7024 call $~lib/string/parseFloat f64.const 1.e+37 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 268 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8960 + i32.const 7056 call $~lib/string/parseFloat f64.const 1e-37 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 269 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8992 + i32.const 7088 call $~lib/string/parseFloat f64.const 1.e+38 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 270 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9024 + i32.const 7120 call $~lib/string/parseFloat f64.const 1e-38 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 271 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9056 + i32.const 7152 call $~lib/string/parseFloat global.get $~lib/builtins/f64.EPSILON f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 272 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9120 + i32.const 7216 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MAX_VALUE f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 273 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9200 + i32.const 7296 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MIN_VALUE f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 274 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9232 + i32.const 7328 call $~lib/string/parseFloat f64.const 1.e+308 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 275 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9280 + i32.const 7376 call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 276 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9424 + i32.const 7520 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 277 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9472 + i32.const 7568 call $~lib/string/parseFloat f64.const inf f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 278 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9520 + i32.const 7616 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 279 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9568 + i32.const 7664 call $~lib/string/parseFloat f64.const inf f64.neg @@ -16215,78 +16158,78 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 280 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9616 + i32.const 7712 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 281 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9664 + i32.const 7760 call $~lib/string/parseFloat f64.const inf f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 282 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9712 + i32.const 7808 call $~lib/string/parseFloat f64.const inf f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 283 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9744 + i32.const 7840 call $~lib/string/parseFloat f64.const inf f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 284 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9792 + i32.const 7888 call $~lib/string/parseFloat f64.const inf f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 285 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9840 + i32.const 7936 call $~lib/string/parseFloat f64.const inf f64.neg @@ -16294,39 +16237,39 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 286 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9888 + i32.const 7984 call $~lib/string/parseFloat f64.const inf f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 287 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9936 + i32.const 8032 call $~lib/string/parseFloat f64.const inf f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 288 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9984 + i32.const 8080 call $~lib/string/parseFloat local.tee $44 local.get $44 @@ -16334,13 +16277,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 289 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10016 + i32.const 8112 call $~lib/string/parseFloat local.tee $45 local.get $45 @@ -16348,13 +16291,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 290 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10064 + i32.const 8160 call $~lib/string/parseFloat local.tee $46 local.get $46 @@ -16362,74 +16305,74 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 291 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10112 + i32.const 8208 call $~lib/string/parseFloat f64.const 0 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 295 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10304 + i32.const 8400 call $~lib/string/parseFloat global.get $std/string/Ox1p_1073 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 308 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10496 + i32.const 8592 call $~lib/string/parseFloat global.get $std/string/Ox1_0000000000001p_1022 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 312 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10688 - i32.const 10848 + i32.const 8784 + i32.const 8944 call $~lib/string/String.__concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store offset=12 local.get $52 - i32.const 11008 + i32.const 9104 call $~lib/string/String.__concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store offset=8 local.get $52 - i32.const 11168 + i32.const 9264 call $~lib/string/String.__concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store offset=4 local.get $52 - i32.const 11328 + i32.const 9424 call $~lib/string/String.__concat local.set $52 global.get $~lib/memory/__stack_pointer @@ -16442,325 +16385,325 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 315 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11488 + i32.const 9584 call $~lib/string/parseFloat f64.const 9.753531888799502e-104 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 333 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11600 + i32.const 9696 call $~lib/string/parseFloat f64.const 0.5961860348131807 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 334 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11712 + i32.const 9808 call $~lib/string/parseFloat f64.const 0.18150131692180388 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 335 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11824 + i32.const 9920 call $~lib/string/parseFloat f64.const 0.42070823575344535 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 336 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11936 + i32.const 10032 call $~lib/string/parseFloat f64.const 0.6654686306516261 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 337 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12048 + i32.const 10144 call $~lib/string/parseFloat f64.const 0.6101852922970868 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 338 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12160 + i32.const 10256 call $~lib/string/parseFloat f64.const 0.7696695208236968 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 339 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12272 + i32.const 10368 call $~lib/string/parseFloat f64.const 0.25050653222286823 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 340 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12384 + i32.const 10480 call $~lib/string/parseFloat f64.const 0.2740037230228005 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 341 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12496 + i32.const 10592 call $~lib/string/parseFloat f64.const 0.20723093500497428 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 342 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12608 + i32.const 10704 call $~lib/string/parseFloat f64.const 7.900280238081605 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 343 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12720 + i32.const 10816 call $~lib/string/parseFloat f64.const 98.22860653737297 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 344 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12832 + i32.const 10928 call $~lib/string/parseFloat f64.const 746.894972319037 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 345 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12944 + i32.const 11040 call $~lib/string/parseFloat f64.const 1630.2683202827284 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 346 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13056 + i32.const 11152 call $~lib/string/parseFloat f64.const 46371.68629719171 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 347 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13168 + i32.const 11264 call $~lib/string/parseFloat f64.const 653780.5944497711 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 348 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13280 + i32.const 11376 call $~lib/string/parseFloat f64.const 234632.43565024371 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 349 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13392 + i32.const 11488 call $~lib/string/parseFloat f64.const 97094817.16420048 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 350 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13504 + i32.const 11600 call $~lib/string/parseFloat f64.const 499690852.20518744 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 351 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13616 + i32.const 11712 call $~lib/string/parseFloat f64.const 7925201200557245595648 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 352 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13728 + i32.const 11824 call $~lib/string/parseFloat f64.const 6096564585983177528398588e5 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 353 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13840 + i32.const 11936 call $~lib/string/parseFloat f64.const 4800416117477028695992383e42 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 354 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13952 + i32.const 12048 call $~lib/string/parseFloat f64.const 8524829079817968137287277e80 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 355 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14064 + i32.const 12160 call $~lib/string/parseFloat f64.const 3271239291709782092398754e243 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 356 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14176 + i32.const 12272 call $~lib/string/parseFloat local.tee $47 local.get $47 @@ -16768,28 +16711,28 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 359 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14208 + i32.const 12304 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 360 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2720 - i32.const 14240 + i32.const 784 + i32.const 12336 call $~lib/string/String.__concat local.tee $48 i32.store offset=60 @@ -16799,12 +16742,12 @@ local.get $52 i32.store local.get $52 - i32.const 14272 + i32.const 12368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 364 i32.const 3 call $~lib/builtins/abort @@ -16816,24 +16759,24 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 365 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 367 i32.const 1 call $~lib/builtins/abort @@ -16850,13 +16793,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 369 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 global.get $std/string/nullStr local.set $52 global.get $~lib/memory/__stack_pointer @@ -16867,7 +16810,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 371 i32.const 1 call $~lib/builtins/abort @@ -16879,538 +16822,538 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 373 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 - i32.const 14240 + i32.const 784 + i32.const 12336 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 375 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 - i32.const 2720 + i32.const 784 + i32.const 784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 376 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14304 - i32.const 14336 + i32.const 12400 + i32.const 12432 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 378 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14304 - i32.const 14304 + i32.const 12400 + i32.const 12400 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 379 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14368 - i32.const 14400 + i32.const 12464 + i32.const 12496 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 381 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14432 - i32.const 14464 + i32.const 12528 + i32.const 12560 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 383 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14496 - i32.const 14496 + i32.const 12592 + i32.const 12592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 384 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14496 - i32.const 14544 + i32.const 12592 + i32.const 12640 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 386 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14592 - i32.const 14640 + i32.const 12688 + i32.const 12736 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 388 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14240 - i32.const 2720 + i32.const 12336 + i32.const 784 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 390 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14688 - i32.const 2720 + i32.const 12784 + i32.const 784 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 391 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14688 - i32.const 14720 + i32.const 12784 + i32.const 12816 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 392 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14688 - i32.const 14272 + i32.const 12784 + i32.const 12368 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 393 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14688 - i32.const 14272 + i32.const 12784 + i32.const 12368 call $~lib/string/String.__lt i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 394 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 160 + i32.const 1312 + i32.const 688 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 396 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 3248 + i32.const 688 + i32.const 1312 call $~lib/string/String.__lt i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 397 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 160 + i32.const 1312 + i32.const 688 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 398 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 3248 + i32.const 688 + i32.const 1312 call $~lib/string/String.__lte i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 399 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 160 + i32.const 1312 + i32.const 688 call $~lib/string/String.__lt i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 400 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 3248 + i32.const 688 + i32.const 1312 call $~lib/string/String.__gt i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 401 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 call $~lib/string/String.__lt i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 402 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 call $~lib/string/String.__gt i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 403 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 404 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 call $~lib/string/String.__lte i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 405 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4336 - i32.const 14752 + i32.const 2432 + i32.const 12848 call $~lib/string/String.__lt i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 407 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14752 - i32.const 4336 + i32.const 12848 + i32.const 2432 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 408 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14784 - i32.const 14752 + i32.const 12880 + i32.const 12848 call $~lib/string/String.__lt i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 409 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14752 - i32.const 14784 + i32.const 12848 + i32.const 12880 call $~lib/string/String.__gt i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 410 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14784 - i32.const 14752 + i32.const 12880 + i32.const 12848 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 411 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14752 - i32.const 14784 + i32.const 12848 + i32.const 12880 call $~lib/string/String.__lt i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 412 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14784 - i32.const 14784 + i32.const 12880 + i32.const 12880 call $~lib/string/String.__lt i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 413 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14784 - i32.const 14784 + i32.const 12880 + i32.const 12880 call $~lib/string/String.__gt i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 414 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14784 - i32.const 14784 + i32.const 12880 + i32.const 12880 call $~lib/string/String.__lte i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 415 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14784 - i32.const 14784 + i32.const 12880 + i32.const 12880 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 416 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14752 - i32.const 14816 + i32.const 12848 + i32.const 12912 call $~lib/string/String.__gte i32.eqz i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 417 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14816 - i32.const 14752 + i32.const 12912 + i32.const 12848 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 418 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14752 - i32.const 14816 + i32.const 12848 + i32.const 12912 call $~lib/string/String.__lte i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 419 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4336 - i32.const 4336 + i32.const 2432 + i32.const 2432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 420 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14784 - i32.const 14784 + i32.const 12880 + i32.const 12880 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 421 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3312 - i32.const 3312 + i32.const 1376 + i32.const 1376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 422 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3312 - i32.const 14848 + i32.const 1376 + i32.const 12944 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 424 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14880 - i32.const 14880 + i32.const 12976 + i32.const 12976 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 425 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14912 - i32.const 14880 + i32.const 13008 + i32.const 12976 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 427 i32.const 1 call $~lib/builtins/abort @@ -17455,26 +17398,26 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 432 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3312 + i32.const 1376 call $~lib/string/String#get:length i32.const 3 i32.eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 435 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 + i32.const 688 i32.const 100 call $~lib/string/String#repeat local.set $52 @@ -17482,18 +17425,18 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 437 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 i32.const 0 call $~lib/string/String#repeat local.set $52 @@ -17501,18 +17444,18 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 438 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 i32.const 1 call $~lib/string/String#repeat local.set $52 @@ -17520,18 +17463,18 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 439 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 i32.const 2 call $~lib/string/String#repeat local.set $52 @@ -17539,18 +17482,18 @@ local.get $52 i32.store local.get $52 - i32.const 14720 + i32.const 12816 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 440 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 i32.const 3 call $~lib/string/String#repeat local.set $52 @@ -17558,18 +17501,18 @@ local.get $52 i32.store local.get $52 - i32.const 14992 + i32.const 13088 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 441 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14272 + i32.const 12368 i32.const 4 call $~lib/string/String#repeat local.set $52 @@ -17577,18 +17520,18 @@ local.get $52 i32.store local.get $52 - i32.const 15024 + i32.const 13120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 442 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 i32.const 5 call $~lib/string/String#repeat local.set $52 @@ -17596,18 +17539,18 @@ local.get $52 i32.store local.get $52 - i32.const 15072 + i32.const 13168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 443 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 i32.const 6 call $~lib/string/String#repeat local.set $52 @@ -17615,18 +17558,18 @@ local.get $52 i32.store local.get $52 - i32.const 15104 + i32.const 13200 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 444 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 784 i32.const 7 call $~lib/string/String#repeat local.set $52 @@ -17634,778 +17577,778 @@ local.get $52 i32.store local.get $52 - i32.const 15136 + i32.const 13232 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 445 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 + i32.const 688 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 447 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 - i32.const 5472 + i32.const 688 + i32.const 688 + i32.const 3568 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 5472 + i32.const 3568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 448 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5472 - i32.const 5472 - i32.const 160 + i32.const 3568 + i32.const 3568 + i32.const 688 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 449 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5472 - i32.const 160 - i32.const 160 + i32.const 3568 + i32.const 688 + i32.const 688 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 5472 + i32.const 3568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 450 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 5440 - i32.const 5472 + i32.const 1312 + i32.const 3536 + i32.const 3568 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 451 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 3248 - i32.const 5472 + i32.const 1312 + i32.const 1312 + i32.const 3568 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 5472 + i32.const 3568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 452 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 3824 - i32.const 5472 + i32.const 1312 + i32.const 1888 + i32.const 3568 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 453 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 14272 - i32.const 14272 + i32.const 1312 + i32.const 12368 + i32.const 12368 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 454 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15184 - i32.const 5440 - i32.const 5472 + i32.const 13280 + i32.const 3536 + i32.const 3568 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15216 + i32.const 13312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 455 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 160 - i32.const 5472 + i32.const 1312 + i32.const 688 + i32.const 3568 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15248 + i32.const 13344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 456 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15280 - i32.const 15312 - i32.const 5472 + i32.const 13376 + i32.const 13408 + i32.const 3568 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15248 + i32.const 13344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 457 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 15344 - i32.const 15376 + i32.const 1312 + i32.const 13440 + i32.const 13472 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15408 + i32.const 13504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 458 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 15344 - i32.const 160 + i32.const 1312 + i32.const 13440 + i32.const 688 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 14272 + i32.const 12368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 459 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 - i32.const 3248 + i32.const 688 + i32.const 688 + i32.const 1312 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 461 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 5440 - i32.const 5472 + i32.const 1312 + i32.const 3536 + i32.const 3568 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 462 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3456 - i32.const 3248 - i32.const 5472 + i32.const 1520 + i32.const 1312 + i32.const 3568 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15376 + i32.const 13472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 464 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15440 - i32.const 3248 - i32.const 5472 + i32.const 13536 + i32.const 1312 + i32.const 3568 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15488 + i32.const 13584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 465 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3456 - i32.const 14272 - i32.const 14272 + i32.const 1520 + i32.const 12368 + i32.const 12368 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 466 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15520 - i32.const 2720 - i32.const 15488 + i32.const 13616 + i32.const 784 + i32.const 13584 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15568 + i32.const 13664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 467 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3456 - i32.const 14272 - i32.const 15376 + i32.const 1520 + i32.const 12368 + i32.const 13472 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15616 + i32.const 13712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 468 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15648 - i32.const 15680 - i32.const 15376 + i32.const 13744 + i32.const 13776 + i32.const 13472 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15712 + i32.const 13808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 469 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 3824 - i32.const 5472 + i32.const 1312 + i32.const 1888 + i32.const 3568 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 470 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3824 - i32.const 15744 - i32.const 15376 + i32.const 1888 + i32.const 13840 + i32.const 13472 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3824 + i32.const 1888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 471 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 15776 - i32.const 5472 + i32.const 1312 + i32.const 13872 + i32.const 3568 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15808 + i32.const 13904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 472 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14272 - i32.const 14272 - i32.const 5472 + i32.const 12368 + i32.const 12368 + i32.const 3568 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 5472 + i32.const 3568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 473 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15184 - i32.const 5440 - i32.const 5472 + i32.const 13280 + i32.const 3536 + i32.const 3568 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15840 + i32.const 13936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 474 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 + i32.const 688 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 476 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 - i32.const 5472 + i32.const 688 + i32.const 688 + i32.const 3568 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 5472 + i32.const 3568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 477 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5472 - i32.const 5472 - i32.const 160 + i32.const 3568 + i32.const 3568 + i32.const 688 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 478 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5472 - i32.const 160 - i32.const 160 + i32.const 3568 + i32.const 688 + i32.const 688 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 5472 + i32.const 3568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 479 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 3248 - i32.const 5440 + i32.const 1312 + i32.const 1312 + i32.const 3536 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 5440 + i32.const 3536 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 480 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 3728 - i32.const 5440 + i32.const 1312 + i32.const 1792 + i32.const 3536 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 481 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 160 - i32.const 5472 + i32.const 1312 + i32.const 688 + i32.const 3568 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15872 + i32.const 13968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 482 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3248 - i32.const 160 - i32.const 160 + i32.const 1312 + i32.const 688 + i32.const 688 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 483 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15920 - i32.const 2720 - i32.const 15952 + i32.const 14016 + i32.const 784 + i32.const 14048 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 15984 + i32.const 14080 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 486 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14272 - i32.const 14272 - i32.const 16032 + i32.const 12368 + i32.const 12368 + i32.const 14128 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 16032 + i32.const 14128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 487 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14992 - i32.const 2720 - i32.const 16064 + i32.const 13088 + i32.const 784 + i32.const 14160 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 16096 + i32.const 14192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 488 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14992 - i32.const 14720 - i32.const 15952 + i32.const 13088 + i32.const 12816 + i32.const 14048 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 16144 + i32.const 14240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 489 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16176 + i32.const 14272 global.set $std/string/str global.get $std/string/str local.set $52 @@ -18423,12 +18366,12 @@ local.get $52 i32.store local.get $52 - i32.const 16176 + i32.const 14272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 493 i32.const 1 call $~lib/builtins/abort @@ -18450,12 +18393,12 @@ local.get $52 i32.store local.get $52 - i32.const 16224 + i32.const 14320 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 494 i32.const 1 call $~lib/builtins/abort @@ -18477,12 +18420,12 @@ local.get $52 i32.store local.get $52 - i32.const 16256 + i32.const 14352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 495 i32.const 1 call $~lib/builtins/abort @@ -18502,12 +18445,12 @@ local.get $52 i32.store local.get $52 - i32.const 16288 + i32.const 14384 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 496 i32.const 1 call $~lib/builtins/abort @@ -18527,12 +18470,12 @@ local.get $52 i32.store local.get $52 - i32.const 16320 + i32.const 14416 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 497 i32.const 1 call $~lib/builtins/abort @@ -18552,12 +18495,12 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 498 i32.const 1 call $~lib/builtins/abort @@ -18577,12 +18520,12 @@ local.get $52 i32.store local.get $52 - i32.const 16352 + i32.const 14448 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 499 i32.const 1 call $~lib/builtins/abort @@ -18604,12 +18547,12 @@ local.get $52 i32.store local.get $52 - i32.const 16176 + i32.const 14272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 501 i32.const 1 call $~lib/builtins/abort @@ -18631,12 +18574,12 @@ local.get $52 i32.store local.get $52 - i32.const 16224 + i32.const 14320 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 502 i32.const 1 call $~lib/builtins/abort @@ -18658,12 +18601,12 @@ local.get $52 i32.store local.get $52 - i32.const 16256 + i32.const 14352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 503 i32.const 1 call $~lib/builtins/abort @@ -18683,12 +18626,12 @@ local.get $52 i32.store local.get $52 - i32.const 16400 + i32.const 14496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 504 i32.const 1 call $~lib/builtins/abort @@ -18708,12 +18651,12 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 505 i32.const 1 call $~lib/builtins/abort @@ -18733,12 +18676,12 @@ local.get $52 i32.store local.get $52 - i32.const 16448 + i32.const 14544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 506 i32.const 1 call $~lib/builtins/abort @@ -18758,12 +18701,12 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 507 i32.const 1 call $~lib/builtins/abort @@ -18783,12 +18726,12 @@ local.get $52 i32.store local.get $52 - i32.const 16176 + i32.const 14272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 508 i32.const 1 call $~lib/builtins/abort @@ -18808,12 +18751,12 @@ local.get $52 i32.store local.get $52 - i32.const 16480 + i32.const 14576 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 509 i32.const 1 call $~lib/builtins/abort @@ -18833,12 +18776,12 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 510 i32.const 1 call $~lib/builtins/abort @@ -18860,12 +18803,12 @@ local.get $52 i32.store local.get $52 - i32.const 16176 + i32.const 14272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 512 i32.const 1 call $~lib/builtins/abort @@ -18887,12 +18830,12 @@ local.get $52 i32.store local.get $52 - i32.const 16176 + i32.const 14272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 513 i32.const 1 call $~lib/builtins/abort @@ -18914,12 +18857,12 @@ local.get $52 i32.store local.get $52 - i32.const 16176 + i32.const 14272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 514 i32.const 1 call $~lib/builtins/abort @@ -18939,12 +18882,12 @@ local.get $52 i32.store local.get $52 - i32.const 16288 + i32.const 14384 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 515 i32.const 1 call $~lib/builtins/abort @@ -18964,12 +18907,12 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 516 i32.const 1 call $~lib/builtins/abort @@ -18989,12 +18932,12 @@ local.get $52 i32.store local.get $52 - i32.const 16512 + i32.const 14608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 517 i32.const 1 call $~lib/builtins/abort @@ -19014,12 +18957,12 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 518 i32.const 1 call $~lib/builtins/abort @@ -19039,12 +18982,12 @@ local.get $52 i32.store local.get $52 - i32.const 16176 + i32.const 14272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 519 i32.const 1 call $~lib/builtins/abort @@ -19064,12 +19007,12 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 520 i32.const 1 call $~lib/builtins/abort @@ -19089,19 +19032,19 @@ local.get $52 i32.store local.get $52 - i32.const 3824 + i32.const 1888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 521 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 160 + i32.const 688 i32.const 0 i32.const 0 global.set $~argumentsLength @@ -19132,7 +19075,7 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq else i32.const 0 @@ -19140,15 +19083,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 527 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -19167,15 +19110,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 529 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 160 - i32.const 3536 + i32.const 688 + i32.const 1600 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -19205,7 +19148,7 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq else i32.const 0 @@ -19213,15 +19156,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 531 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16720 - i32.const 8512 + i32.const 14816 + i32.const 6608 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -19251,7 +19194,7 @@ local.get $52 i32.store local.get $52 - i32.const 16720 + i32.const 14816 call $~lib/string/String.__eq else i32.const 0 @@ -19259,15 +19202,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 533 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16720 - i32.const 3536 + i32.const 14816 + i32.const 1600 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -19297,7 +19240,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -19316,7 +19259,7 @@ local.get $52 i32.store local.get $52 - i32.const 14240 + i32.const 12336 call $~lib/string/String.__eq else i32.const 0 @@ -19335,7 +19278,7 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -19343,15 +19286,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 535 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16752 - i32.const 16800 + i32.const 14848 + i32.const 14896 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -19381,7 +19324,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -19400,7 +19343,7 @@ local.get $52 i32.store local.get $52 - i32.const 14240 + i32.const 12336 call $~lib/string/String.__eq else i32.const 0 @@ -19419,7 +19362,7 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -19427,15 +19370,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 537 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16832 - i32.const 3536 + i32.const 14928 + i32.const 1600 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -19465,7 +19408,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -19484,7 +19427,7 @@ local.get $52 i32.store local.get $52 - i32.const 14240 + i32.const 12336 call $~lib/string/String.__eq else i32.const 0 @@ -19503,7 +19446,7 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq else i32.const 0 @@ -19522,7 +19465,7 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -19530,15 +19473,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 539 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16864 - i32.const 3536 + i32.const 14960 + i32.const 1600 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -19568,7 +19511,7 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq else i32.const 0 @@ -19587,7 +19530,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -19606,7 +19549,7 @@ local.get $52 i32.store local.get $52 - i32.const 14240 + i32.const 12336 call $~lib/string/String.__eq else i32.const 0 @@ -19625,7 +19568,7 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -19633,15 +19576,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 541 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16896 - i32.const 3536 + i32.const 14992 + i32.const 1600 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -19671,7 +19614,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -19690,7 +19633,7 @@ local.get $52 i32.store local.get $52 - i32.const 14240 + i32.const 12336 call $~lib/string/String.__eq else i32.const 0 @@ -19709,7 +19652,7 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -19728,7 +19671,7 @@ local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq else i32.const 0 @@ -19736,15 +19679,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 543 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.const 160 + i32.const 1312 + i32.const 688 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -19774,7 +19717,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -19793,7 +19736,7 @@ local.get $52 i32.store local.get $52 - i32.const 14240 + i32.const 12336 call $~lib/string/String.__eq else i32.const 0 @@ -19812,7 +19755,7 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -19820,15 +19763,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 545 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.const 160 + i32.const 1312 + i32.const 688 i32.const 0 call $~lib/string/String#split local.tee $51 @@ -19845,15 +19788,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 547 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.const 160 + i32.const 1312 + i32.const 688 i32.const 1 call $~lib/string/String#split local.tee $51 @@ -19881,7 +19824,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -19889,15 +19832,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 549 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16720 - i32.const 3536 + i32.const 14816 + i32.const 1600 i32.const 1 call $~lib/string/String#split local.tee $51 @@ -19925,7 +19868,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -19933,15 +19876,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 551 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.const 160 + i32.const 1312 + i32.const 688 i32.const 4 call $~lib/string/String#split local.tee $51 @@ -19969,7 +19912,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -19988,7 +19931,7 @@ local.get $52 i32.store local.get $52 - i32.const 14240 + i32.const 12336 call $~lib/string/String.__eq else i32.const 0 @@ -20007,7 +19950,7 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -20015,15 +19958,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 553 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.const 160 + i32.const 1312 + i32.const 688 i32.const -1 call $~lib/string/String#split local.tee $51 @@ -20051,7 +19994,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -20070,7 +20013,7 @@ local.get $52 i32.store local.get $52 - i32.const 14240 + i32.const 12336 call $~lib/string/String.__eq else i32.const 0 @@ -20089,7 +20032,7 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -20097,15 +20040,15 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 555 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16720 - i32.const 3536 + i32.const 14816 + i32.const 1600 i32.const -1 call $~lib/string/String#split local.tee $51 @@ -20133,7 +20076,7 @@ local.get $52 i32.store local.get $52 - i32.const 2720 + i32.const 784 call $~lib/string/String.__eq else i32.const 0 @@ -20152,7 +20095,7 @@ local.get $52 i32.store local.get $52 - i32.const 14240 + i32.const 12336 call $~lib/string/String.__eq else i32.const 0 @@ -20171,7 +20114,7 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -20179,7 +20122,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 557 i32.const 3 call $~lib/builtins/abort @@ -20193,12 +20136,12 @@ local.get $52 i32.store local.get $52 - i32.const 816 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 562 i32.const 1 call $~lib/builtins/abort @@ -20212,12 +20155,12 @@ local.get $52 i32.store local.get $52 - i32.const 4336 + i32.const 2432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 563 i32.const 1 call $~lib/builtins/abort @@ -20231,12 +20174,12 @@ local.get $52 i32.store local.get $52 - i32.const 16928 + i32.const 16768 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 564 i32.const 1 call $~lib/builtins/abort @@ -20250,12 +20193,12 @@ local.get $52 i32.store local.get $52 - i32.const 16960 + i32.const 16800 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 565 i32.const 1 call $~lib/builtins/abort @@ -20269,12 +20212,12 @@ local.get $52 i32.store local.get $52 - i32.const 3312 + i32.const 1376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 566 i32.const 1 call $~lib/builtins/abort @@ -20288,12 +20231,12 @@ local.get $52 i32.store local.get $52 - i32.const 16992 + i32.const 16832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 567 i32.const 1 call $~lib/builtins/abort @@ -20307,12 +20250,12 @@ local.get $52 i32.store local.get $52 - i32.const 14880 + i32.const 12976 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 568 i32.const 1 call $~lib/builtins/abort @@ -20326,12 +20269,12 @@ local.get $52 i32.store local.get $52 - i32.const 17024 + i32.const 16864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 569 i32.const 1 call $~lib/builtins/abort @@ -20345,12 +20288,12 @@ local.get $52 i32.store local.get $52 - i32.const 17056 + i32.const 16896 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 570 i32.const 1 call $~lib/builtins/abort @@ -20364,12 +20307,12 @@ local.get $52 i32.store local.get $52 - i32.const 17088 + i32.const 16928 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 571 i32.const 1 call $~lib/builtins/abort @@ -20383,12 +20326,12 @@ local.get $52 i32.store local.get $52 - i32.const 17136 + i32.const 16976 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 572 i32.const 1 call $~lib/builtins/abort @@ -20402,12 +20345,12 @@ local.get $52 i32.store local.get $52 - i32.const 17184 + i32.const 17024 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 573 i32.const 1 call $~lib/builtins/abort @@ -20421,12 +20364,12 @@ local.get $52 i32.store local.get $52 - i32.const 17232 + i32.const 17072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 574 i32.const 1 call $~lib/builtins/abort @@ -20440,12 +20383,12 @@ local.get $52 i32.store local.get $52 - i32.const 17280 + i32.const 17120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 575 i32.const 1 call $~lib/builtins/abort @@ -20459,12 +20402,12 @@ local.get $52 i32.store local.get $52 - i32.const 17328 + i32.const 17168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 576 i32.const 1 call $~lib/builtins/abort @@ -20478,12 +20421,12 @@ local.get $52 i32.store local.get $52 - i32.const 17376 + i32.const 17216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 577 i32.const 1 call $~lib/builtins/abort @@ -20497,12 +20440,12 @@ local.get $52 i32.store local.get $52 - i32.const 17424 + i32.const 17264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 578 i32.const 1 call $~lib/builtins/abort @@ -20516,12 +20459,12 @@ local.get $52 i32.store local.get $52 - i32.const 17456 + i32.const 17296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 580 i32.const 1 call $~lib/builtins/abort @@ -20535,12 +20478,12 @@ local.get $52 i32.store local.get $52 - i32.const 17488 + i32.const 17328 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 581 i32.const 1 call $~lib/builtins/abort @@ -20554,12 +20497,12 @@ local.get $52 i32.store local.get $52 - i32.const 17376 + i32.const 17216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 582 i32.const 1 call $~lib/builtins/abort @@ -20573,12 +20516,12 @@ local.get $52 i32.store local.get $52 - i32.const 816 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 584 i32.const 1 call $~lib/builtins/abort @@ -20592,12 +20535,12 @@ local.get $52 i32.store local.get $52 - i32.const 17520 + i32.const 17360 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 585 i32.const 1 call $~lib/builtins/abort @@ -20611,12 +20554,12 @@ local.get $52 i32.store local.get $52 - i32.const 17328 + i32.const 17168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 586 i32.const 1 call $~lib/builtins/abort @@ -20630,12 +20573,12 @@ local.get $52 i32.store local.get $52 - i32.const 17552 + i32.const 17392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 587 i32.const 1 call $~lib/builtins/abort @@ -20649,12 +20592,12 @@ local.get $52 i32.store local.get $52 - i32.const 17600 + i32.const 17440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 588 i32.const 1 call $~lib/builtins/abort @@ -20668,12 +20611,12 @@ local.get $52 i32.store local.get $52 - i32.const 816 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 592 i32.const 1 call $~lib/builtins/abort @@ -20687,12 +20630,12 @@ local.get $52 i32.store local.get $52 - i32.const 4336 + i32.const 2432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 593 i32.const 1 call $~lib/builtins/abort @@ -20706,12 +20649,12 @@ local.get $52 i32.store local.get $52 - i32.const 16928 + i32.const 16768 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 594 i32.const 1 call $~lib/builtins/abort @@ -20725,12 +20668,12 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 595 i32.const 1 call $~lib/builtins/abort @@ -20744,12 +20687,12 @@ local.get $52 i32.store local.get $52 - i32.const 17648 + i32.const 17488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 596 i32.const 1 call $~lib/builtins/abort @@ -20763,12 +20706,12 @@ local.get $52 i32.store local.get $52 - i32.const 17680 + i32.const 17520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 597 i32.const 1 call $~lib/builtins/abort @@ -20782,12 +20725,12 @@ local.get $52 i32.store local.get $52 - i32.const 17712 + i32.const 17552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 598 i32.const 1 call $~lib/builtins/abort @@ -20801,12 +20744,12 @@ local.get $52 i32.store local.get $52 - i32.const 17744 + i32.const 17584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 599 i32.const 1 call $~lib/builtins/abort @@ -20820,12 +20763,12 @@ local.get $52 i32.store local.get $52 - i32.const 17776 + i32.const 17616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 600 i32.const 1 call $~lib/builtins/abort @@ -20839,12 +20782,12 @@ local.get $52 i32.store local.get $52 - i32.const 17808 + i32.const 17648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 601 i32.const 1 call $~lib/builtins/abort @@ -20858,12 +20801,12 @@ local.get $52 i32.store local.get $52 - i32.const 17840 + i32.const 17680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 602 i32.const 1 call $~lib/builtins/abort @@ -20877,12 +20820,12 @@ local.get $52 i32.store local.get $52 - i32.const 17872 + i32.const 17712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 603 i32.const 1 call $~lib/builtins/abort @@ -20896,12 +20839,12 @@ local.get $52 i32.store local.get $52 - i32.const 17920 + i32.const 17760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 604 i32.const 1 call $~lib/builtins/abort @@ -20915,12 +20858,12 @@ local.get $52 i32.store local.get $52 - i32.const 17968 + i32.const 17808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 605 i32.const 1 call $~lib/builtins/abort @@ -20934,12 +20877,12 @@ local.get $52 i32.store local.get $52 - i32.const 18016 + i32.const 17856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 606 i32.const 1 call $~lib/builtins/abort @@ -20953,12 +20896,12 @@ local.get $52 i32.store local.get $52 - i32.const 18064 + i32.const 17904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 607 i32.const 1 call $~lib/builtins/abort @@ -20972,12 +20915,12 @@ local.get $52 i32.store local.get $52 - i32.const 816 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 609 i32.const 1 call $~lib/builtins/abort @@ -20991,12 +20934,12 @@ local.get $52 i32.store local.get $52 - i32.const 16992 + i32.const 16832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 610 i32.const 1 call $~lib/builtins/abort @@ -21010,12 +20953,12 @@ local.get $52 i32.store local.get $52 - i32.const 17968 + i32.const 17808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 611 i32.const 1 call $~lib/builtins/abort @@ -21029,12 +20972,12 @@ local.get $52 i32.store local.get $52 - i32.const 18112 + i32.const 17952 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 612 i32.const 1 call $~lib/builtins/abort @@ -21048,12 +20991,12 @@ local.get $52 i32.store local.get $52 - i32.const 18160 + i32.const 18000 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 613 i32.const 1 call $~lib/builtins/abort @@ -21067,12 +21010,12 @@ local.get $52 i32.store local.get $52 - i32.const 18208 + i32.const 18048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 614 i32.const 1 call $~lib/builtins/abort @@ -21086,12 +21029,12 @@ local.get $52 i32.store local.get $52 - i32.const 18208 + i32.const 18048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 615 i32.const 1 call $~lib/builtins/abort @@ -21105,12 +21048,12 @@ local.get $52 i32.store local.get $52 - i32.const 816 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 619 i32.const 1 call $~lib/builtins/abort @@ -21124,12 +21067,12 @@ local.get $52 i32.store local.get $52 - i32.const 4336 + i32.const 2432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 620 i32.const 1 call $~lib/builtins/abort @@ -21143,12 +21086,12 @@ local.get $52 i32.store local.get $52 - i32.const 14784 + i32.const 12880 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 621 i32.const 1 call $~lib/builtins/abort @@ -21162,12 +21105,12 @@ local.get $52 i32.store local.get $52 - i32.const 18256 + i32.const 18096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 622 i32.const 1 call $~lib/builtins/abort @@ -21181,12 +21124,12 @@ local.get $52 i32.store local.get $52 - i32.const 18288 + i32.const 18128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 623 i32.const 1 call $~lib/builtins/abort @@ -21200,12 +21143,12 @@ local.get $52 i32.store local.get $52 - i32.const 18320 + i32.const 18160 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 624 i32.const 1 call $~lib/builtins/abort @@ -21219,12 +21162,12 @@ local.get $52 i32.store local.get $52 - i32.const 18352 + i32.const 18192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 625 i32.const 1 call $~lib/builtins/abort @@ -21238,12 +21181,12 @@ local.get $52 i32.store local.get $52 - i32.const 18384 + i32.const 18224 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 626 i32.const 1 call $~lib/builtins/abort @@ -21257,12 +21200,12 @@ local.get $52 i32.store local.get $52 - i32.const 18432 + i32.const 18272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 627 i32.const 1 call $~lib/builtins/abort @@ -21276,12 +21219,12 @@ local.get $52 i32.store local.get $52 - i32.const 18512 + i32.const 18352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 628 i32.const 1 call $~lib/builtins/abort @@ -21295,12 +21238,12 @@ local.get $52 i32.store local.get $52 - i32.const 18608 + i32.const 18448 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 629 i32.const 1 call $~lib/builtins/abort @@ -21314,12 +21257,12 @@ local.get $52 i32.store local.get $52 - i32.const 18704 + i32.const 18544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 630 i32.const 1 call $~lib/builtins/abort @@ -21333,12 +21276,12 @@ local.get $52 i32.store local.get $52 - i32.const 18800 + i32.const 18640 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 631 i32.const 1 call $~lib/builtins/abort @@ -21352,12 +21295,12 @@ local.get $52 i32.store local.get $52 - i32.const 18896 + i32.const 18736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 633 i32.const 1 call $~lib/builtins/abort @@ -21371,12 +21314,12 @@ local.get $52 i32.store local.get $52 - i32.const 18944 + i32.const 18784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 637 i32.const 1 call $~lib/builtins/abort @@ -21390,12 +21333,12 @@ local.get $52 i32.store local.get $52 - i32.const 19008 + i32.const 18848 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 638 i32.const 1 call $~lib/builtins/abort @@ -21409,12 +21352,12 @@ local.get $52 i32.store local.get $52 - i32.const 19072 + i32.const 18912 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 639 i32.const 1 call $~lib/builtins/abort @@ -21428,12 +21371,12 @@ local.get $52 i32.store local.get $52 - i32.const 19120 + i32.const 18960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 640 i32.const 1 call $~lib/builtins/abort @@ -21447,12 +21390,12 @@ local.get $52 i32.store local.get $52 - i32.const 19168 + i32.const 19008 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 641 i32.const 1 call $~lib/builtins/abort @@ -21466,12 +21409,12 @@ local.get $52 i32.store local.get $52 - i32.const 19216 + i32.const 19056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 642 i32.const 1 call $~lib/builtins/abort @@ -21485,12 +21428,12 @@ local.get $52 i32.store local.get $52 - i32.const 19264 + i32.const 19104 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 643 i32.const 1 call $~lib/builtins/abort @@ -21504,12 +21447,12 @@ local.get $52 i32.store local.get $52 - i32.const 19312 + i32.const 19152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 644 i32.const 1 call $~lib/builtins/abort @@ -21523,12 +21466,12 @@ local.get $52 i32.store local.get $52 - i32.const 19360 + i32.const 19200 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 645 i32.const 1 call $~lib/builtins/abort @@ -21542,12 +21485,12 @@ local.get $52 i32.store local.get $52 - i32.const 19408 + i32.const 19248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 646 i32.const 1 call $~lib/builtins/abort @@ -21561,12 +21504,12 @@ local.get $52 i32.store local.get $52 - i32.const 19456 + i32.const 19296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 647 i32.const 1 call $~lib/builtins/abort @@ -21580,12 +21523,12 @@ local.get $52 i32.store local.get $52 - i32.const 816 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 651 i32.const 1 call $~lib/builtins/abort @@ -21599,12 +21542,12 @@ local.get $52 i32.store local.get $52 - i32.const 16960 + i32.const 16800 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 652 i32.const 1 call $~lib/builtins/abort @@ -21618,12 +21561,12 @@ local.get $52 i32.store local.get $52 - i32.const 3312 + i32.const 1376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 653 i32.const 1 call $~lib/builtins/abort @@ -21637,12 +21580,12 @@ local.get $52 i32.store local.get $52 - i32.const 14880 + i32.const 12976 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 654 i32.const 1 call $~lib/builtins/abort @@ -21656,12 +21599,12 @@ local.get $52 i32.store local.get $52 - i32.const 17024 + i32.const 16864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 655 i32.const 1 call $~lib/builtins/abort @@ -21675,12 +21618,12 @@ local.get $52 i32.store local.get $52 - i32.const 17056 + i32.const 16896 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 656 i32.const 1 call $~lib/builtins/abort @@ -21694,12 +21637,12 @@ local.get $52 i32.store local.get $52 - i32.const 17136 + i32.const 16976 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 657 i32.const 1 call $~lib/builtins/abort @@ -21713,12 +21656,12 @@ local.get $52 i32.store local.get $52 - i32.const 19504 + i32.const 19344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 658 i32.const 1 call $~lib/builtins/abort @@ -21732,12 +21675,12 @@ local.get $52 i32.store local.get $52 - i32.const 19552 + i32.const 19392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 659 i32.const 1 call $~lib/builtins/abort @@ -21751,12 +21694,12 @@ local.get $52 i32.store local.get $52 - i32.const 17600 + i32.const 17440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 660 i32.const 1 call $~lib/builtins/abort @@ -21770,12 +21713,12 @@ local.get $52 i32.store local.get $52 - i32.const 19600 + i32.const 19440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 661 i32.const 1 call $~lib/builtins/abort @@ -21789,12 +21732,12 @@ local.get $52 i32.store local.get $52 - i32.const 19648 + i32.const 19488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 662 i32.const 1 call $~lib/builtins/abort @@ -21808,12 +21751,12 @@ local.get $52 i32.store local.get $52 - i32.const 19696 + i32.const 19536 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 663 i32.const 1 call $~lib/builtins/abort @@ -21827,12 +21770,12 @@ local.get $52 i32.store local.get $52 - i32.const 19744 + i32.const 19584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 664 i32.const 1 call $~lib/builtins/abort @@ -21846,12 +21789,12 @@ local.get $52 i32.store local.get $52 - i32.const 19792 + i32.const 19632 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 665 i32.const 1 call $~lib/builtins/abort @@ -21865,12 +21808,12 @@ local.get $52 i32.store local.get $52 - i32.const 19840 + i32.const 19680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 666 i32.const 1 call $~lib/builtins/abort @@ -21884,12 +21827,12 @@ local.get $52 i32.store local.get $52 - i32.const 19904 + i32.const 19744 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 667 i32.const 1 call $~lib/builtins/abort @@ -21903,12 +21846,12 @@ local.get $52 i32.store local.get $52 - i32.const 19968 + i32.const 19808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 668 i32.const 1 call $~lib/builtins/abort @@ -21922,12 +21865,12 @@ local.get $52 i32.store local.get $52 - i32.const 20032 + i32.const 19872 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 669 i32.const 1 call $~lib/builtins/abort @@ -21941,12 +21884,12 @@ local.get $52 i32.store local.get $52 - i32.const 20096 + i32.const 19936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 670 i32.const 1 call $~lib/builtins/abort @@ -21960,12 +21903,12 @@ local.get $52 i32.store local.get $52 - i32.const 20160 + i32.const 20000 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 671 i32.const 1 call $~lib/builtins/abort @@ -21979,12 +21922,12 @@ local.get $52 i32.store local.get $52 - i32.const 816 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 673 i32.const 1 call $~lib/builtins/abort @@ -21998,12 +21941,12 @@ local.get $52 i32.store local.get $52 - i32.const 20224 + i32.const 20064 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 674 i32.const 1 call $~lib/builtins/abort @@ -22017,12 +21960,12 @@ local.get $52 i32.store local.get $52 - i32.const 17600 + i32.const 17440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 675 i32.const 1 call $~lib/builtins/abort @@ -22036,12 +21979,12 @@ local.get $52 i32.store local.get $52 - i32.const 19600 + i32.const 19440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 676 i32.const 1 call $~lib/builtins/abort @@ -22055,12 +21998,12 @@ local.get $52 i32.store local.get $52 - i32.const 20256 + i32.const 20096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 677 i32.const 1 call $~lib/builtins/abort @@ -22074,12 +22017,12 @@ local.get $52 i32.store local.get $52 - i32.const 19648 + i32.const 19488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 678 i32.const 1 call $~lib/builtins/abort @@ -22093,12 +22036,12 @@ local.get $52 i32.store local.get $52 - i32.const 20304 + i32.const 20144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 679 i32.const 1 call $~lib/builtins/abort @@ -22112,12 +22055,12 @@ local.get $52 i32.store local.get $52 - i32.const 20352 + i32.const 20192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 680 i32.const 1 call $~lib/builtins/abort @@ -22131,12 +22074,12 @@ local.get $52 i32.store local.get $52 - i32.const 20400 + i32.const 20240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 681 i32.const 1 call $~lib/builtins/abort @@ -22150,12 +22093,12 @@ local.get $52 i32.store local.get $52 - i32.const 20464 + i32.const 20304 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 682 i32.const 1 call $~lib/builtins/abort @@ -22169,12 +22112,12 @@ local.get $52 i32.store local.get $52 - i32.const 20528 + i32.const 20368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 683 i32.const 1 call $~lib/builtins/abort @@ -22188,12 +22131,12 @@ local.get $52 i32.store local.get $52 - i32.const 20592 + i32.const 20432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 684 i32.const 1 call $~lib/builtins/abort @@ -22207,12 +22150,12 @@ local.get $52 i32.store local.get $52 - i32.const 816 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 688 i32.const 1 call $~lib/builtins/abort @@ -22226,12 +22169,12 @@ local.get $52 i32.store local.get $52 - i32.const 4336 + i32.const 2432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 689 i32.const 1 call $~lib/builtins/abort @@ -22245,12 +22188,12 @@ local.get $52 i32.store local.get $52 - i32.const 15344 + i32.const 13440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 690 i32.const 1 call $~lib/builtins/abort @@ -22264,12 +22207,12 @@ local.get $52 i32.store local.get $52 - i32.const 17680 + i32.const 17520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 691 i32.const 1 call $~lib/builtins/abort @@ -22283,12 +22226,12 @@ local.get $52 i32.store local.get $52 - i32.const 17776 + i32.const 17616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 692 i32.const 1 call $~lib/builtins/abort @@ -22302,12 +22245,12 @@ local.get $52 i32.store local.get $52 - i32.const 20656 + i32.const 20496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 693 i32.const 1 call $~lib/builtins/abort @@ -22321,12 +22264,12 @@ local.get $52 i32.store local.get $52 - i32.const 20704 + i32.const 20544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 694 i32.const 1 call $~lib/builtins/abort @@ -22340,12 +22283,12 @@ local.get $52 i32.store local.get $52 - i32.const 20752 + i32.const 20592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 695 i32.const 1 call $~lib/builtins/abort @@ -22359,12 +22302,12 @@ local.get $52 i32.store local.get $52 - i32.const 20800 + i32.const 20640 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 696 i32.const 1 call $~lib/builtins/abort @@ -22378,12 +22321,12 @@ local.get $52 i32.store local.get $52 - i32.const 20848 + i32.const 20688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 697 i32.const 1 call $~lib/builtins/abort @@ -22397,12 +22340,12 @@ local.get $52 i32.store local.get $52 - i32.const 20896 + i32.const 20736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 698 i32.const 1 call $~lib/builtins/abort @@ -22416,12 +22359,12 @@ local.get $52 i32.store local.get $52 - i32.const 20960 + i32.const 20800 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 699 i32.const 1 call $~lib/builtins/abort @@ -22435,12 +22378,12 @@ local.get $52 i32.store local.get $52 - i32.const 21024 + i32.const 20864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 700 i32.const 1 call $~lib/builtins/abort @@ -22454,12 +22397,12 @@ local.get $52 i32.store local.get $52 - i32.const 21088 + i32.const 20928 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 701 i32.const 1 call $~lib/builtins/abort @@ -22473,12 +22416,12 @@ local.get $52 i32.store local.get $52 - i32.const 21152 + i32.const 20992 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 703 i32.const 1 call $~lib/builtins/abort @@ -22492,12 +22435,12 @@ local.get $52 i32.store local.get $52 - i32.const 21216 + i32.const 21056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 704 i32.const 1 call $~lib/builtins/abort @@ -22511,12 +22454,12 @@ local.get $52 i32.store local.get $52 - i32.const 21216 + i32.const 21056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 705 i32.const 1 call $~lib/builtins/abort @@ -22530,12 +22473,12 @@ local.get $52 i32.store local.get $52 - i32.const 816 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 709 i32.const 1 call $~lib/builtins/abort @@ -22549,12 +22492,12 @@ local.get $52 i32.store local.get $52 - i32.const 4336 + i32.const 2432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 710 i32.const 1 call $~lib/builtins/abort @@ -22568,12 +22511,12 @@ local.get $52 i32.store local.get $52 - i32.const 18256 + i32.const 18096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 711 i32.const 1 call $~lib/builtins/abort @@ -22587,12 +22530,12 @@ local.get $52 i32.store local.get $52 - i32.const 18288 + i32.const 18128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 712 i32.const 1 call $~lib/builtins/abort @@ -22606,12 +22549,12 @@ local.get $52 i32.store local.get $52 - i32.const 18352 + i32.const 18192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 713 i32.const 1 call $~lib/builtins/abort @@ -22625,12 +22568,12 @@ local.get $52 i32.store local.get $52 - i32.const 18384 + i32.const 18224 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 714 i32.const 1 call $~lib/builtins/abort @@ -22644,12 +22587,12 @@ local.get $52 i32.store local.get $52 - i32.const 18800 + i32.const 18640 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 715 i32.const 1 call $~lib/builtins/abort @@ -22663,12 +22606,12 @@ local.get $52 i32.store local.get $52 - i32.const 21280 + i32.const 21120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 716 i32.const 1 call $~lib/builtins/abort @@ -22682,12 +22625,12 @@ local.get $52 i32.store local.get $52 - i32.const 21408 + i32.const 21248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 717 i32.const 1 call $~lib/builtins/abort @@ -22701,12 +22644,12 @@ local.get $52 i32.store local.get $52 - i32.const 21568 + i32.const 21408 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 719 i32.const 1 call $~lib/builtins/abort @@ -22720,12 +22663,12 @@ local.get $52 i32.store local.get $52 - i32.const 21664 + i32.const 21504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 723 i32.const 1 call $~lib/builtins/abort @@ -22739,12 +22682,12 @@ local.get $52 i32.store local.get $52 - i32.const 21776 + i32.const 21616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 724 i32.const 1 call $~lib/builtins/abort @@ -22758,12 +22701,12 @@ local.get $52 i32.store local.get $52 - i32.const 21872 + i32.const 21712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 725 i32.const 1 call $~lib/builtins/abort @@ -22777,12 +22720,12 @@ local.get $52 i32.store local.get $52 - i32.const 21952 + i32.const 21792 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 726 i32.const 1 call $~lib/builtins/abort @@ -22796,12 +22739,12 @@ local.get $52 i32.store local.get $52 - i32.const 22016 + i32.const 21856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 727 i32.const 1 call $~lib/builtins/abort @@ -22815,12 +22758,12 @@ local.get $52 i32.store local.get $52 - i32.const 22080 + i32.const 21920 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 728 i32.const 1 call $~lib/builtins/abort @@ -22834,12 +22777,12 @@ local.get $52 i32.store local.get $52 - i32.const 22144 + i32.const 21984 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 729 i32.const 1 call $~lib/builtins/abort @@ -22853,12 +22796,12 @@ local.get $52 i32.store local.get $52 - i32.const 22208 + i32.const 22048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 730 i32.const 1 call $~lib/builtins/abort @@ -22872,12 +22815,12 @@ local.get $52 i32.store local.get $52 - i32.const 22272 + i32.const 22112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 731 i32.const 1 call $~lib/builtins/abort @@ -22891,12 +22834,12 @@ local.get $52 i32.store local.get $52 - i32.const 22320 + i32.const 22160 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 732 i32.const 1 call $~lib/builtins/abort @@ -22910,12 +22853,12 @@ local.get $52 i32.store local.get $52 - i32.const 22368 + i32.const 22208 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 733 i32.const 1 call $~lib/builtins/abort @@ -22928,12 +22871,12 @@ local.get $52 i32.store local.get $52 - i32.const 22416 + i32.const 22256 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 736 i32.const 1 call $~lib/builtins/abort @@ -22946,12 +22889,12 @@ local.get $52 i32.store local.get $52 - i32.const 22416 + i32.const 22256 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 737 i32.const 1 call $~lib/builtins/abort @@ -22964,12 +22907,12 @@ local.get $52 i32.store local.get $52 - i32.const 8576 + i32.const 6672 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 738 i32.const 1 call $~lib/builtins/abort @@ -22982,12 +22925,12 @@ local.get $52 i32.store local.get $52 - i32.const 22448 + i32.const 22288 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 739 i32.const 1 call $~lib/builtins/abort @@ -23001,12 +22944,12 @@ local.get $52 i32.store local.get $52 - i32.const 9840 + i32.const 7936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 740 i32.const 1 call $~lib/builtins/abort @@ -23019,12 +22962,12 @@ local.get $52 i32.store local.get $52 - i32.const 9056 + i32.const 7152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 741 i32.const 1 call $~lib/builtins/abort @@ -23038,12 +22981,12 @@ local.get $52 i32.store local.get $52 - i32.const 23472 + i32.const 23312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 742 i32.const 1 call $~lib/builtins/abort @@ -23056,12 +22999,12 @@ local.get $52 i32.store local.get $52 - i32.const 9120 + i32.const 7216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 743 i32.const 1 call $~lib/builtins/abort @@ -23075,12 +23018,12 @@ local.get $52 i32.store local.get $52 - i32.const 23536 + i32.const 23376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 744 i32.const 1 call $~lib/builtins/abort @@ -23093,12 +23036,12 @@ local.get $52 i32.store local.get $52 - i32.const 23616 + i32.const 23456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 745 i32.const 1 call $~lib/builtins/abort @@ -23112,12 +23055,12 @@ local.get $52 i32.store local.get $52 - i32.const 23664 + i32.const 23504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 746 i32.const 1 call $~lib/builtins/abort @@ -23130,12 +23073,12 @@ local.get $52 i32.store local.get $52 - i32.const 23712 + i32.const 23552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 747 i32.const 1 call $~lib/builtins/abort @@ -23149,12 +23092,12 @@ local.get $52 i32.store local.get $52 - i32.const 23760 + i32.const 23600 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 748 i32.const 1 call $~lib/builtins/abort @@ -23167,12 +23110,12 @@ local.get $52 i32.store local.get $52 - i32.const 23808 + i32.const 23648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 749 i32.const 1 call $~lib/builtins/abort @@ -23185,12 +23128,12 @@ local.get $52 i32.store local.get $52 - i32.const 23872 + i32.const 23712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 750 i32.const 1 call $~lib/builtins/abort @@ -23203,12 +23146,12 @@ local.get $52 i32.store local.get $52 - i32.const 23952 + i32.const 23792 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 751 i32.const 1 call $~lib/builtins/abort @@ -23221,12 +23164,12 @@ local.get $52 i32.store local.get $52 - i32.const 24000 + i32.const 23840 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 752 i32.const 1 call $~lib/builtins/abort @@ -23239,12 +23182,12 @@ local.get $52 i32.store local.get $52 - i32.const 24064 + i32.const 23904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 753 i32.const 1 call $~lib/builtins/abort @@ -23257,12 +23200,12 @@ local.get $52 i32.store local.get $52 - i32.const 24128 + i32.const 23968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 754 i32.const 1 call $~lib/builtins/abort @@ -23275,12 +23218,12 @@ local.get $52 i32.store local.get $52 - i32.const 9200 + i32.const 7296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 755 i32.const 1 call $~lib/builtins/abort @@ -23293,12 +23236,12 @@ local.get $52 i32.store local.get $52 - i32.const 24192 + i32.const 24032 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 757 i32.const 1 call $~lib/builtins/abort @@ -23311,12 +23254,12 @@ local.get $52 i32.store local.get $52 - i32.const 6160 + i32.const 4256 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 758 i32.const 1 call $~lib/builtins/abort @@ -23329,12 +23272,12 @@ local.get $52 i32.store local.get $52 - i32.const 24224 + i32.const 24064 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 759 i32.const 1 call $~lib/builtins/abort @@ -23347,12 +23290,12 @@ local.get $52 i32.store local.get $52 - i32.const 24256 + i32.const 24096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 760 i32.const 1 call $~lib/builtins/abort @@ -23365,12 +23308,12 @@ local.get $52 i32.store local.get $52 - i32.const 24288 + i32.const 24128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 762 i32.const 1 call $~lib/builtins/abort @@ -23383,12 +23326,12 @@ local.get $52 i32.store local.get $52 - i32.const 24336 + i32.const 24176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 763 i32.const 1 call $~lib/builtins/abort @@ -23401,12 +23344,12 @@ local.get $52 i32.store local.get $52 - i32.const 24384 + i32.const 24224 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 764 i32.const 1 call $~lib/builtins/abort @@ -23419,12 +23362,12 @@ local.get $52 i32.store local.get $52 - i32.const 24432 + i32.const 24272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 765 i32.const 1 call $~lib/builtins/abort @@ -23437,12 +23380,12 @@ local.get $52 i32.store local.get $52 - i32.const 24480 + i32.const 24320 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 766 i32.const 1 call $~lib/builtins/abort @@ -23455,12 +23398,12 @@ local.get $52 i32.store local.get $52 - i32.const 24528 + i32.const 24368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 767 i32.const 1 call $~lib/builtins/abort @@ -23473,12 +23416,12 @@ local.get $52 i32.store local.get $52 - i32.const 6448 + i32.const 4544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 769 i32.const 1 call $~lib/builtins/abort @@ -23491,12 +23434,12 @@ local.get $52 i32.store local.get $52 - i32.const 24560 + i32.const 24400 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 770 i32.const 1 call $~lib/builtins/abort @@ -23509,12 +23452,12 @@ local.get $52 i32.store local.get $52 - i32.const 22448 + i32.const 22288 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 771 i32.const 1 call $~lib/builtins/abort @@ -23527,12 +23470,12 @@ local.get $52 i32.store local.get $52 - i32.const 9840 + i32.const 7936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 772 i32.const 1 call $~lib/builtins/abort @@ -23545,12 +23488,12 @@ local.get $52 i32.store local.get $52 - i32.const 24608 + i32.const 24448 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 773 i32.const 1 call $~lib/builtins/abort @@ -23563,12 +23506,12 @@ local.get $52 i32.store local.get $52 - i32.const 24640 + i32.const 24480 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 774 i32.const 1 call $~lib/builtins/abort @@ -23581,12 +23524,12 @@ local.get $52 i32.store local.get $52 - i32.const 24688 + i32.const 24528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 775 i32.const 1 call $~lib/builtins/abort @@ -23599,12 +23542,12 @@ local.get $52 i32.store local.get $52 - i32.const 24720 + i32.const 24560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 776 i32.const 1 call $~lib/builtins/abort @@ -23617,12 +23560,12 @@ local.get $52 i32.store local.get $52 - i32.const 22416 + i32.const 22256 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 777 i32.const 1 call $~lib/builtins/abort @@ -23635,12 +23578,12 @@ local.get $52 i32.store local.get $52 - i32.const 24768 + i32.const 24608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 779 i32.const 1 call $~lib/builtins/abort @@ -23653,12 +23596,12 @@ local.get $52 i32.store local.get $52 - i32.const 24816 + i32.const 24656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 780 i32.const 1 call $~lib/builtins/abort @@ -23671,12 +23614,12 @@ local.get $52 i32.store local.get $52 - i32.const 24880 + i32.const 24720 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 781 i32.const 1 call $~lib/builtins/abort @@ -23689,12 +23632,12 @@ local.get $52 i32.store local.get $52 - i32.const 24944 + i32.const 24784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 782 i32.const 1 call $~lib/builtins/abort @@ -23707,12 +23650,12 @@ local.get $52 i32.store local.get $52 - i32.const 24192 + i32.const 24032 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 783 i32.const 1 call $~lib/builtins/abort @@ -23725,12 +23668,12 @@ local.get $52 i32.store local.get $52 - i32.const 25008 + i32.const 24848 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 784 i32.const 1 call $~lib/builtins/abort @@ -23745,12 +23688,12 @@ local.get $52 i32.store local.get $52 - i32.const 25040 + i32.const 24880 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 785 i32.const 1 call $~lib/builtins/abort @@ -23763,12 +23706,12 @@ local.get $52 i32.store local.get $52 - i32.const 25104 + i32.const 24944 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 786 i32.const 1 call $~lib/builtins/abort @@ -23781,12 +23724,12 @@ local.get $52 i32.store local.get $52 - i32.const 25184 + i32.const 25024 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 787 i32.const 1 call $~lib/builtins/abort @@ -23799,12 +23742,12 @@ local.get $52 i32.store local.get $52 - i32.const 25232 + i32.const 25072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 788 i32.const 1 call $~lib/builtins/abort @@ -23817,12 +23760,12 @@ local.get $52 i32.store local.get $52 - i32.const 25280 + i32.const 25120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 789 i32.const 1 call $~lib/builtins/abort @@ -23835,12 +23778,12 @@ local.get $52 i32.store local.get $52 - i32.const 25328 + i32.const 25168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 790 i32.const 1 call $~lib/builtins/abort @@ -23853,12 +23796,12 @@ local.get $52 i32.store local.get $52 - i32.const 25376 + i32.const 25216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 791 i32.const 1 call $~lib/builtins/abort @@ -23871,12 +23814,12 @@ local.get $52 i32.store local.get $52 - i32.const 25424 + i32.const 25264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 792 i32.const 1 call $~lib/builtins/abort @@ -23889,297 +23832,150 @@ local.get $52 i32.store local.get $52 - i32.const 25472 + i32.const 25312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 793 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25520 - i32.const 25552 + i32.const 25360 + i32.const 25392 call $~lib/string/String#concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 25584 + i32.const 25424 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 820 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 25632 + i32.const 688 + i32.const 25472 call $~lib/string/String#concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 25632 + i32.const 25472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 821 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25632 - i32.const 160 + i32.const 25472 + i32.const 688 call $~lib/string/String#concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 25632 + i32.const 25472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 822 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 160 - i32.const 160 + i32.const 688 + i32.const 688 call $~lib/string/String#concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 - i32.const 160 + i32.const 688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 823 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25664 - i32.const 25664 + i32.const 25504 + i32.const 25504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 831 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25664 - i32.const 25664 + i32.const 25504 + i32.const 25504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 832 i32.const 1 call $~lib/builtins/abort - unreachable - end - i32.const 25696 - i32.const 25696 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 2464 - i32.const 833 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 25728 - i32.const 25728 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 2464 - i32.const 834 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/string/str - global.get $~lib/memory/__heap_base - global.set $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__collect - global.get $~lib/memory/__stack_pointer - i32.const 76 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 624 - i32.const 752 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 816 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset + unreachable + end + i32.const 25536 + i32.const 25536 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 + i32.const 96 + i32.const 833 i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end + call $~lib/builtins/abort + unreachable end - local.get $out - local.set $12 + i32.const 25568 + i32.const 25568 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 834 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/string/str + global.get $~lib/memory/__heap_base + global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 76 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return ) (func $~lib/string/String.fromCharCode (param $unit i32) (param $surr i32) (result i32) (local $hasSur i32) @@ -24254,6 +24050,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -24315,8 +24115,8 @@ i32.eqz if i32.const 0 - i32.const 2608 - i32.const 39 + i32.const 304 + i32.const 40 i32.const 7 call $~lib/builtins/abort unreachable @@ -24387,8 +24187,8 @@ i32.gt_s end if - i32.const 624 - i32.const 752 + i32.const 15024 + i32.const 15152 i32.const 373 i32.const 5 call $~lib/builtins/abort @@ -24397,7 +24197,7 @@ local.get $value i32.eqz if - i32.const 816 + i32.const 2368 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24536,6 +24336,153 @@ local.get $14 return ) + (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) + (local $out i32) + (local $decimals i32) + (local $buffer i32) + (local $num i32) + (local $offset i32) + (local $decimals|7 i32) + (local $buffer|8 i32) + (local $num|9 i32) + (local $offset|10 i32) + (local $decimals|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 $radix + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $radix + i32.const 36 + i32.gt_s + end + if + i32.const 15024 + i32.const 15152 + i32.const 350 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $value + i32.eqz + if + i32.const 2368 + 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 $radix + i32.const 10 + i32.eq + if + local.get $value + call $~lib/util/number/decimalCount32 + local.set $decimals + global.get $~lib/memory/__stack_pointer + local.get $decimals + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + else + local.get $radix + i32.const 16 + i32.eq + if + i32.const 31 + local.get $value + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $decimals|7 + global.get $~lib/memory/__stack_pointer + local.get $decimals|7 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut + else + local.get $value + i64.extend_i32_u + local.get $radix + call $~lib/util/number/ulog_base + local.set $decimals|11 + global.get $~lib/memory/__stack_pointer + local.get $decimals|11 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.get $value + i64.extend_i32_u + local.get $decimals|11 + local.get $radix + call $~lib/util/number/utoa64_any_core + end + end + local.get $out + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + ) (func $~lib/util/number/utoa64 (param $value i64) (param $radix i32) (result i32) (local $out i32) (local $val32 i32) @@ -24572,8 +24519,8 @@ i32.gt_s end if - i32.const 624 - i32.const 752 + i32.const 15024 + i32.const 15152 i32.const 401 i32.const 5 call $~lib/builtins/abort @@ -24584,7 +24531,7 @@ i64.ne i32.eqz if - i32.const 816 + i32.const 2368 local.set $17 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24760,8 +24707,8 @@ i32.gt_s end if - i32.const 624 - i32.const 752 + i32.const 15024 + i32.const 15152 i32.const 431 i32.const 5 call $~lib/builtins/abort @@ -24772,7 +24719,7 @@ i64.ne i32.eqz if - i32.const 816 + i32.const 2368 local.set $18 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24970,7 +24917,7 @@ f64.const 0 f64.eq if - i32.const 22416 + i32.const 22256 br $~lib/util/number/dtoa_impl|inlined.0 end local.get $value|1 @@ -24984,18 +24931,18 @@ local.get $value|1 f64.ne if - i32.const 8576 + i32.const 6672 br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 9840 - i32.const 22448 + i32.const 7936 + i32.const 22288 local.get $value|1 f64.const 0 f64.lt select br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 22480 + i32.const 22320 local.get $value|1 local.get $isSingle call $~lib/util/number/dtoa_core @@ -25009,7 +24956,7 @@ local.tee $result i32.store local.get $result - i32.const 22480 + i32.const 22320 local.get $size memory.copy local.get $result @@ -25047,7 +24994,7 @@ f64.const 0 f64.eq if - i32.const 22416 + i32.const 22256 br $~lib/util/number/dtoa_impl|inlined.1 end local.get $value|1 @@ -25061,18 +25008,18 @@ local.get $value|1 f64.ne if - i32.const 8576 + i32.const 6672 br $~lib/util/number/dtoa_impl|inlined.1 end - i32.const 9840 - i32.const 22448 + i32.const 7936 + i32.const 22288 local.get $value|1 f64.const 0 f64.lt select br $~lib/util/number/dtoa_impl|inlined.1 end - i32.const 22480 + i32.const 22320 local.get $value|1 local.get $isSingle call $~lib/util/number/dtoa_core @@ -25086,7 +25033,7 @@ local.tee $result i32.store local.get $result - i32.const 22480 + i32.const 22320 local.get $size memory.copy local.get $result @@ -25124,7 +25071,7 @@ f64.const 0 f64.eq if - i32.const 22416 + i32.const 22256 br $~lib/util/number/dtoa_impl|inlined.2 end local.get $value|1 @@ -25138,18 +25085,18 @@ local.get $value|1 f64.ne if - i32.const 8576 + i32.const 6672 br $~lib/util/number/dtoa_impl|inlined.2 end - i32.const 9840 - i32.const 22448 + i32.const 7936 + i32.const 22288 local.get $value|1 f64.const 0 f64.lt select br $~lib/util/number/dtoa_impl|inlined.2 end - i32.const 22480 + i32.const 22320 local.get $value|1 local.get $isSingle call $~lib/util/number/dtoa_core @@ -25163,7 +25110,7 @@ local.tee $result i32.store local.get $result - i32.const 22480 + i32.const 22320 local.get $size memory.copy local.get $result @@ -25193,22 +25140,22 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 384 + i32.const 240 local.get $0 call $~lib/rt/itcms/__visit - i32.const 14944 + i32.const 13040 local.get $0 call $~lib/rt/itcms/__visit - i32.const 16592 + i32.const 14688 local.get $0 call $~lib/rt/itcms/__visit - i32.const 192 + i32.const 352 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1248 + i32.const 15616 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2304 + i32.const 16672 local.get $0 call $~lib/rt/itcms/__visit ) @@ -25295,6 +25242,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -25324,6 +25275,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index d5bdd1f1ec..650b709edc 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -6,21 +6,22 @@ (type $4 (func (param i32 i32))) (type $5 (func (param i32))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32))) - (type $8 (func (param i32 i32) (result f64))) - (type $9 (func (param i32) (result f64))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i32 i64))) - (type $12 (func (param i32 i64 i32 i32))) - (type $13 (func (param i32 i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32))) + (type $9 (func (param i32 i32) (result f64))) + (type $10 (func (param i32) (result f64))) + (type $11 (func (param i64 i32) (result i32))) + (type $12 (func (param i32 i32 i32 i32) (result i32))) + (type $13 (func (param i32 i32 i64))) (type $14 (func (param f64 i32) (result f64))) - (type $15 (func (param i32 i64 i32))) - (type $16 (func (param i64 i64 i32 i64 i32) (result i32))) - (type $17 (func (param f64 i32) (result i32))) - (type $18 (func (param i32 i32 i32 i32))) + (type $15 (func (param i32 i64 i32 i32))) + (type $16 (func (param i32 i64 i32))) + (type $17 (func (param i64 i64 i32 i64 i32) (result i32))) + (type $18 (func (param f64 i32) (result i32))) (type $19 (func (result i64))) (type $20 (func (param f64) (result i32))) (type $21 (func (param f32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $std/string/str (mut i32) (i32.const 1056)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) @@ -40,957 +41,1032 @@ (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 59564)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 59404)) (memory $0 1) (data $0 (i32.const 1036) "<") (data $0.1 (i32.const 1048) "\02\00\00\00 \00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g") - (data $1 (i32.const 1100) "\1c") - (data $1.1 (i32.const 1112) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1132) "\1c") - (data $2.1 (i32.const 1144) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1164) "\1c") - (data $3.1 (i32.const 1176) "\02") - (data $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\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 $5 (i32.const 1260) "<") - (data $5.1 (i32.const 1272) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1388) "<") - (data $8.1 (i32.const 1400) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1452) ",") - (data $9.1 (i32.const 1464) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1532) "<") - (data $11.1 (i32.const 1544) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1596) "\1c") - (data $12.1 (i32.const 1608) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1628) "|") - (data $13.1 (i32.const 1640) "\02\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 $14 (i32.const 1756) "<") - (data $14.1 (i32.const 1768) "\02\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 $15 (i32.const 1820) "\1c") - (data $15.1 (i32.const 1832) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1852) "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 $17 (i32.const 2252) "\1c\04") - (data $17.1 (i32.const 2264) "\02\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 $18 (i32.const 3308) "\\") - (data $18.1 (i32.const 3320) "\02\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 $19 (i32.const 3404) "<") - (data $19.1 (i32.const 3416) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3468) ",") - (data $20.1 (i32.const 3480) "\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data $21 (i32.const 3516) "\1c") - (data $21.1 (i32.const 3528) "\02\00\00\00\02\00\00\00\df") - (data $22 (i32.const 3548) "\1c") - (data $22.1 (i32.const 3560) "\02\00\00\00\04\00\00\00\df\00\df") - (data $23 (i32.const 3580) "\1c") - (data $23.1 (i32.const 3592) "\02\00\00\00\06\00\00\00\df\00a\00b") - (data $24 (i32.const 3612) ",") - (data $24.1 (i32.const 3624) "\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data $25 (i32.const 3660) "\1c") - (data $25.1 (i32.const 3672) "\02\00\00\00\02\00\00\00h") - (data $26 (i32.const 3692) "\1c") - (data $26.1 (i32.const 3704) "\02\00\00\00\02") - (data $27 (i32.const 3724) "\1c") - (data $27.1 (i32.const 3736) "\02\00\00\00\02\00\00\00a") - (data $28 (i32.const 3756) "\1c") - (data $28.1 (i32.const 3768) "\02\00\00\00\02\00\00\00@") - (data $29 (i32.const 3788) "\1c") - (data $29.1 (i32.const 3800) "\02\00\00\00\02\00\00\006") - (data $30 (i32.const 3820) "\1c") - (data $30.1 (i32.const 3832) "\02\00\00\00\04\00\00\00\00\d8\00\df") - (data $31 (i32.const 3852) "\1c") - (data $31.1 (i32.const 3864) "\01\00\00\00\08\00\00\00\00\00\00\006") - (data $32 (i32.const 3884) "\1c") - (data $32.1 (i32.const 3896) "\02\00\00\00\04\00\00\00\00\006") - (data $33 (i32.const 3916) "\1c") - (data $33.1 (i32.const 3928) "\01\00\00\00\0c\00\00\00A\00\00\00B\00\00\00C") - (data $34 (i32.const 3948) "\1c") - (data $34.1 (i32.const 3960) "\02\00\00\00\06\00\00\00A\00B\00C") - (data $35 (i32.const 3980) ",") - (data $35.1 (i32.const 3992) "\01\00\00\00\14\00\00\004\d8\00\00\06\df\00\00a\00\00\004\d8\00\00\07\df") - (data $36 (i32.const 4028) "\1c") - (data $36.1 (i32.const 4040) "\02\00\00\00\n\00\00\004\d8\06\dfa\004\d8\07\df") - (data $37 (i32.const 4060) "\1c") - (data $37.1 (i32.const 4072) "\02\00\00\00\04\00\00\004\d8\06\df") - (data $38 (i32.const 4092) "\1c") - (data $38.1 (i32.const 4104) "\02\00\00\00\04\00\00\00h\00i") - (data $39 (i32.const 4124) "\1c") - (data $39.1 (i32.const 4136) "\02\00\00\00\0c\00\00\00s\00t\00r\00i\00n\00g") - (data $40 (i32.const 4156) "\1c") - (data $40.1 (i32.const 4168) "\02\00\00\00\06\00\00\00I\00\'\00m") - (data $41 (i32.const 4188) "\1c") - (data $41.1 (i32.const 4200) "\02\00\00\00\02\00\00\00 ") - (data $42 (i32.const 4220) "\1c") - (data $42.1 (i32.const 4232) "\02\00\00\00\06\00\00\00 \00 \00 ") - (data $43 (i32.const 4252) "\1c") - (data $43.1 (i32.const 4264) "\02\00\00\00\06\00\00\00a\00b\00c") - (data $44 (i32.const 4284) "\1c") - (data $44.1 (i32.const 4296) "\02\00\00\00\n\00\00\00 \00 \00a\00b\00c") - (data $45 (i32.const 4316) "\1c") - (data $45.1 (i32.const 4328) "\02\00\00\00\06\00\00\001\002\003") - (data $46 (i32.const 4348) "\1c") - (data $46.1 (i32.const 4360) "\02\00\00\00\0c\00\00\001\002\003\00a\00b\00c") - (data $47 (i32.const 4380) ",") - (data $47.1 (i32.const 4392) "\02\00\00\00\10\00\00\001\002\003\001\002\00a\00b\00c") - (data $48 (i32.const 4428) "\1c") - (data $48.1 (i32.const 4440) "\02\00\00\00\n\00\00\00a\00b\00c\00 \00 ") - (data $49 (i32.const 4460) "\1c") - (data $49.1 (i32.const 4472) "\02\00\00\00\0c\00\00\00a\00b\00c\00a\00b\00c") - (data $50 (i32.const 4492) ",") - (data $50.1 (i32.const 4504) "\02\00\00\00\10\00\00\00a\00b\00c\00a\00b\00c\00a\00b") - (data $51 (i32.const 4540) "\1c") - (data $51.1 (i32.const 4552) "\02\00\00\00\02\00\00\00,") - (data $52 (i32.const 4572) "\1c") - (data $52.1 (i32.const 4584) "\02\00\00\00\02\00\00\00x") - (data $53 (i32.const 4604) "\1c") - (data $53.1 (i32.const 4616) "\02\00\00\00\06\00\00\00,\00 \00I") - (data $54 (i32.const 4636) "\1c") - (data $54.1 (i32.const 4648) "\02\00\00\00\02\00\00\00g") - (data $55 (i32.const 4668) "\1c") - (data $55.1 (i32.const 4680) "\02\00\00\00\02\00\00\00i") - (data $56 (i32.const 4700) "\1c") - (data $56.1 (i32.const 4712) "\02\00\00\00\08\00\00\00n\00u\00l\00l") - (data $57 (i32.const 4732) "\1c") - (data $57.1 (i32.const 4744) "\02\00\00\00\06\00\00\00a\00b\00d") - (data $58 (i32.const 4764) "\1c") - (data $58.1 (i32.const 4776) "\02\00\00\00\06\00\00\00a\00b\00f") - (data $59 (i32.const 4796) "\1c") - (data $59.1 (i32.const 4808) "\02\00\00\00\06\00\00\00a\00b\00z") - (data $60 (i32.const 4828) "\1c") - (data $60.1 (i32.const 4840) "\02\00\00\00\08\00\00\00a\00b\00c\00d") - (data $61 (i32.const 4860) "\1c") - (data $61.1 (i32.const 4872) "\02\00\00\00\08\00\00\00a\00b\00d\00d") - (data $62 (i32.const 4892) "\1c") - (data $62.1 (i32.const 4904) "\02\00\00\00\08\00\00\00a\00b\00 \00c") - (data $63 (i32.const 4924) ",") - (data $63.1 (i32.const 4936) "\02\00\00\00\16\00\00\00 \00\n\00\t\00\r\00a\00b\00c\00 \00\t\00\r\00 ") - (data $64 (i32.const 4972) ",") - (data $64.1 (i32.const 4984) "\02\00\00\00\0e\00\00\00a\00b\00c\00 \00\t\00\r\00 ") - (data $65 (i32.const 5020) ",") - (data $65.1 (i32.const 5032) "\02\00\00\00\0e\00\00\00 \00\n\00\t\00\r\00a\00b\00c") - (data $66 (i32.const 5068) ",") - (data $66.1 (i32.const 5080) "\02\00\00\00\0e\00\00\00\t\00\n\00 \00t\00r\00u\00e") - (data $67 (i32.const 5116) ",") - (data $67.1 (i32.const 5128) "\02\00\00\00\14\00\00\00\t\00\n\00 \00t\00r\00u\00e\00\n\00\r\00 ") - (data $68 (i32.const 5164) ",") - (data $68.1 (i32.const 5176) "\02\00\00\00\12\00\00\00 \00 \00t\00r\00u\00e\00a\00b\00c") - (data $69 (i32.const 5212) "\1c") - (data $69.1 (i32.const 5224) "\02\00\00\00\06\00\00\00t\00r\00u") - (data $70 (i32.const 5244) "\1c") - (data $70.1 (i32.const 5256) "\02\00\00\00\08\00\00\00T\00r\00u\00e") - (data $71 (i32.const 5276) "\1c") - (data $71.1 (i32.const 5288) "\02\00\00\00\n\00\00\00f\00a\00l\00s\00e") - (data $72 (i32.const 5308) "\1c") - (data $72.1 (i32.const 5320) "\02\00\00\00\06\00\00\000\000\000") - (data $73 (i32.const 5340) "\1c") - (data $73.1 (i32.const 5352) "\02\00\00\00\02\00\00\001") - (data $74 (i32.const 5372) "\1c") - (data $74.1 (i32.const 5384) "\02\00\00\00\08\00\00\000\000\000\001") - (data $75 (i32.const 5404) "\1c") - (data $75.1 (i32.const 5416) "\02\00\00\00\n\00\00\000\00b\001\000\001") - (data $76 (i32.const 5436) "\1c") - (data $76.1 (i32.const 5448) "\02\00\00\00\n\00\00\000\00o\007\000\007") - (data $77 (i32.const 5468) "\1c") - (data $77.1 (i32.const 5480) "\02\00\00\00\n\00\00\000\00x\00f\000\00f") - (data $78 (i32.const 5500) "\1c") - (data $78.1 (i32.const 5512) "\02\00\00\00\n\00\00\000\00X\00F\000\00F") - (data $79 (i32.const 5532) "\1c") - (data $79.1 (i32.const 5544) "\02\00\00\00\06\00\00\000\001\001") - (data $80 (i32.const 5564) "\1c") - (data $80.1 (i32.const 5576) "\02\00\00\00\08\00\00\000\00x\001\00g") - (data $81 (i32.const 5596) "\1c") - (data $81.1 (i32.const 5608) "\02\00\00\00\08\00\00\00-\001\002\003") - (data $82 (i32.const 5628) "\1c") - (data $82.1 (i32.const 5640) "\02\00\00\00\08\00\00\00+\001\002\003") - (data $83 (i32.const 5660) "\1c") - (data $83.1 (i32.const 5672) "\02\00\00\00\n\00\00\00-\001\002\00.\003") - (data $84 (i32.const 5692) "\1c") - (data $84.1 (i32.const 5704) "\02\00\00\00\06\00\00\000\00x\000") - (data $85 (i32.const 5724) "\1c") - (data $85.1 (i32.const 5736) "\02\00\00\00\08\00\00\000\00b\001\001") - (data $86 (i32.const 5756) "\1c") - (data $86.1 (i32.const 5768) "\02\00\00\00\04\00\00\00\n\001") - (data $87 (i32.const 5788) "\1c") - (data $87.1 (i32.const 5800) "\02\00\00\00\04\00\00\00( 1") - (data $88 (i32.const 5820) "\1c") - (data $88.1 (i32.const 5832) "\02\00\00\00\04\00\00\00) 1") - (data $89 (i32.const 5852) "\1c") - (data $89.1 (i32.const 5864) "\02\00\00\00\04\00\00\00-\000") - (data $90 (i32.const 5884) ",") - (data $90.1 (i32.const 5896) "\02\00\00\00\10\00\00\000\00X\00A\00B\00C\00D\00E\00F") - (data $91 (i32.const 5932) "\1c") - (data $91.1 (i32.const 5944) "\02\00\00\00\0c\00\00\00A\00B\00C\00D\00E\00F") - (data $92 (i32.const 5964) "<") - (data $92.1 (i32.const 5976) "\02\00\00\00(\00\00\003\006\008\009\003\004\008\008\001\004\007\004\001\009\001\000\003\002\003\002") - (data $93 (i32.const 6028) "L") - (data $93.1 (i32.const 6040) "\02\00\00\004\00\00\00-\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") - (data $94 (i32.const 6108) "<") - (data $94.1 (i32.const 6120) "\02\00\00\00,\00\00\000\00x\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") - (data $95 (i32.const 6172) "\1c") - (data $95.1 (i32.const 6184) "\02\00\00\00\06\00\00\001\00=\d8%\dd") - (data $96 (i32.const 6204) ",") - (data $96.1 (i32.const 6216) "\02\00\00\00\0e\00\00\002\00b\00a\00d\00n\00u\00m") - (data $97 (i32.const 6252) "\1c") - (data $97.1 (i32.const 6264) "\02\00\00\00\08\00\00\00 \00\t\00\n\001") - (data $98 (i32.const 6284) ",") - (data $98.1 (i32.const 6296) "\02\00\00\00\0e\00\00\00 \00\t\00\n\000\00x\000\002") - (data $99 (i32.const 6332) "\1c") - (data $99.1 (i32.const 6344) "\02\00\00\00\n\00\00\000\00 \00a\00b\00c") - (data $100 (i32.const 6364) "\1c") - (data $100.1 (i32.const 6376) "\02\00\00\00\n\00\00\001\00 \00a\00b\00c") - (data $101 (i32.const 6396) ",") - (data $101.1 (i32.const 6408) "\02\00\00\00\10\00\00\00 \00\t\00\n\000\00 \00a\00b\00c") - (data $102 (i32.const 6444) "\1c") - (data $102.1 (i32.const 6456) "\02\00\00\00\02\00\00\00-") - (data $103 (i32.const 6476) "\1c") - (data $103.1 (i32.const 6488) "\02\00\00\00\02\00\00\00+") - (data $104 (i32.const 6508) "\1c") - (data $104.1 (i32.const 6520) "\02\00\00\00\04\00\00\00=\d8%\dd") - (data $105 (i32.const 6540) "\1c") - (data $105.1 (i32.const 6552) "\02\00\00\00\0c\00\00\00b\00a\00d\00n\00u\00m") - (data $106 (i32.const 6582) "\f0?\00\00\00\00\00\00$@\00\00\00\00\00\00Y@\00\00\00\00\00@\8f@\00\00\00\00\00\88\c3@\00\00\00\00\00j\f8@\00\00\00\00\80\84.A\00\00\00\00\d0\12cA\00\00\00\00\84\d7\97A\00\00\00\00e\cd\cdA\00\00\00 _\a0\02B\00\00\00\e8vH7B\00\00\00\a2\94\1amB\00\00@\e5\9c0\a2B\00\00\90\1e\c4\bc\d6B\00\004&\f5k\0cC\00\80\e07y\c3AC\00\a0\d8\85W4vC\00\c8Ngm\c1\abC\00=\91`\e4X\e1C@\8c\b5x\1d\af\15DP\ef\e2\d6\e4\1aKD\92\d5M\06\cf\f0\80D") - (data $107 (i32.const 6764) ",") - (data $107.1 (i32.const 6776) "\02\00\00\00\14\00\00\000\00x\007\00F\00F\00F\00F\00F\00F\00F") - (data $108 (i32.const 6812) "<") - (data $108.1 (i32.const 6824) "\02\00\00\00$\00\00\000\00x\007\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F") - (data $109 (i32.const 6876) "\1c") - (data $109.1 (i32.const 6888) "\02\00\00\00\04\00\00\001\00.") - (data $110 (i32.const 6908) "\1c") - (data $110.1 (i32.const 6920) "\02\00\00\00\08\00\00\001\00.\000\000") - (data $111 (i32.const 6940) "\1c") - (data $111.1 (i32.const 6952) "\02\00\00\00\08\00\00\001\00e\00-\005") - (data $112 (i32.const 6972) "\1c") - (data $112.1 (i32.const 6984) "\02\00\00\00\n\00\00\00-\001\00e\00-\005") - (data $113 (i32.const 7004) ",") - (data $113.1 (i32.const 7016) "\02\00\00\00\10\00\00\00-\000\00.\003\00e\00-\002\002") - (data $114 (i32.const 7052) ",") - (data $114.1 (i32.const 7064) "\02\00\00\00\0e\00\00\000\00.\003\00e\00+\002\002") - (data $115 (i32.const 7100) "\1c") - (data $115.1 (i32.const 7112) "\02\00\00\00\08\00\00\001\00e\00-\001") - (data $116 (i32.const 7132) "\1c") - (data $116.1 (i32.const 7144) "\02\00\00\00\0c\00\00\000\00.\001\00e\00-\000") - (data $117 (i32.const 7164) "\1c") - (data $117.1 (i32.const 7176) "\02\00\00\00\06\00\00\000\00.\001") - (data $118 (i32.const 7196) "\1c") - (data $118.1 (i32.const 7208) "\02\00\00\00\06\00\00\00.\002\005") - (data $119 (i32.const 7228) "\1c") - (data $119.1 (i32.const 7240) "\02\00\00\00\0c\00\00\001\00.\00e\00+\003\00a") - (data $120 (i32.const 7260) ",") - (data $120.1 (i32.const 7272) "\02\00\00\00\0e\00\00\001\00.\000\00e\00-\001\000") - (data $121 (i32.const 7308) ",") - (data $121.1 (i32.const 7320) "\02\00\00\00\0e\00\00\001\00.\000\00e\00-\003\000") - (data $122 (i32.const 7356) ",") - (data $122.1 (i32.const 7368) "\02\00\00\00\10\00\00\001\00.\000\00e\00-\003\002\003") - (data $123 (i32.const 7404) ",") - (data $123.1 (i32.const 7416) "\02\00\00\00\10\00\00\001\00.\000\00e\00-\003\002\004") - (data $124 (i32.const 7452) "\1c") - (data $124.1 (i32.const 7464) "\02\00\00\00\0c\00\00\001\00e\00+\003\000\008") - (data $125 (i32.const 7484) "\1c") - (data $125.1 (i32.const 7496) "\02\00\00\00\0c\00\00\001\00e\00+\003\000\009") - (data $126 (i32.const 7516) ",") - (data $126.1 (i32.const 7528) "\02\00\00\00\10\00\00\001\00.\000\00e\00-\001\00_\000") - (data $127 (i32.const 7564) ",") - (data $127.1 (i32.const 7576) "\02\00\00\00\12\00\00\001\00.\000\00e\00-\001\000\00_\000") - (data $128 (i32.const 7612) ",") - (data $128.1 (i32.const 7624) "\02\00\00\00\10\00\00\001\00.\000\00e\00+\001\00_\000") - (data $129 (i32.const 7660) "\1c") - (data $129.1 (i32.const 7672) "\02\00\00\00\06\00\00\001\00_\000") - (data $130 (i32.const 7692) "\1c") - (data $130.1 (i32.const 7704) "\02\00\00\00\06\00\00\001\00_\001") - (data $131 (i32.const 7724) ",") - (data $131.1 (i32.const 7736) "\02\00\00\00\14\00\00\001\000\00.\000\000\00_\000\001\00e\002") - (data $132 (i32.const 7772) ",") - (data $132.1 (i32.const 7784) "\02\00\00\00\16\00\00\001\002\003\004\005\006\007\008\009\00_\004") - (data $133 (i32.const 7820) ",") - (data $133.1 (i32.const 7832) "\02\00\00\00\18\00\00\001\00_\000\001\002\003\004\005\006\007\008\009") - (data $134 (i32.const 7868) "\1c") - (data $134.1 (i32.const 7880) "\02\00\00\00\n\00\00\001\00e\00-\006\000") - (data $135 (i32.const 7900) "\1c") - (data $135.1 (i32.const 7912) "\02\00\00\00\08\00\00\001\00e\006\000") - (data $136 (i32.const 7932) "\1c") - (data $136.1 (i32.const 7944) "\02\00\00\00\0c\00\00\001\002\003\00.\004\00e") - (data $137 (i32.const 7964) "\1c") - (data $137.1 (i32.const 7976) "\02\00\00\00\04\00\00\001\00x") - (data $138 (i32.const 7996) ",") - (data $138.1 (i32.const 8008) "\02\00\00\00\18\00\00\00-\001\001\00e\00-\001\00s\00t\00r\00i\00n\00g") - (data $139 (i32.const 8044) ",") - (data $139.1 (i32.const 8056) "\02\00\00\00\14\00\00\000\001\00e\001\00s\00t\00r\00i\00n\00g") - (data $140 (i32.const 8092) ",") - (data $140.1 (i32.const 8104) "\02\00\00\00\12\00\00\000\001\000\00s\00t\00r\00i\00n\00g") - (data $141 (i32.const 8140) ",") - (data $141.1 (i32.const 8152) "\02\00\00\00\0e\00\00\00+\00.\002\002\00e\00-\001") - (data $142 (i32.const 8188) "\1c") - (data $142.1 (i32.const 8200) "\02\00\00\00\n\00\00\001\001\00.\00s\001") - (data $143 (i32.const 8220) "\1c") - (data $143.1 (i32.const 8232) "\02\00\00\00\06\00\00\000\00x\005") - (data $144 (i32.const 8252) "\1c") - (data $144.1 (i32.const 8264) "\02\00\00\00\06\00\00\000\00x\00D") - (data $145 (i32.const 8284) "\1c") - (data $145.1 (i32.const 8296) "\02\00\00\00\08\00\00\00\0b\001\00.\001") - (data $146 (i32.const 8316) "\1c") - (data $146.1 (i32.const 8328) "\02\00\00\00\0c\00\00\00\0b\00\0b\00-\001\00.\001") - (data $147 (i32.const 8348) "\1c") - (data $147.1 (i32.const 8360) "\02\00\00\00\0c\00\00\00\0c\00\0c\00-\001\00.\001") - (data $148 (i32.const 8380) "\1c") - (data $148.1 (i32.const 8392) "\02\00\00\00\0c\00\00\00( ( -\001\00.\001") - (data $149 (i32.const 8412) "\1c") - (data $149.1 (i32.const 8424) "\02\00\00\00\0c\00\00\00) ) -\001\00.\001") - (data $150 (i32.const 8444) "\1c") - (data $150.1 (i32.const 8456) "\02\00\00\00\n\00\00\000\000\000\000\000") - (data $151 (i32.const 8476) "\1c") - (data $151.1 (i32.const 8488) "\02\00\00\00\n\00\00\000\000\000\000\00a") - (data $152 (i32.const 8508) "\1c") - (data $152.1 (i32.const 8520) "\02\00\00\00\n\00\00\000\000\000\000\001") - (data $153 (i32.const 8540) "\1c") - (data $153.1 (i32.const 8552) "\02\00\00\00\n\00\00\000\000\00.\000\000") - (data $154 (i32.const 8572) "\1c") - (data $154.1 (i32.const 8584) "\02\00\00\00\n\00\00\000\000\00.\000\00a") - (data $155 (i32.const 8604) "\1c") - (data $155.1 (i32.const 8616) "\02\00\00\00\08\00\00\001\00e\001\00e") - (data $156 (i32.const 8636) ",") - (data $156.1 (i32.const 8648) "\02\00\00\00\0e\00\00\001\00e\00+\000\000\000\001") - (data $157 (i32.const 8684) "\1c") - (data $157.1 (i32.const 8696) "\02\00\00\00\0c\00\00\000\00e\00+\001\000\000") - (data $158 (i32.const 8716) "\1c") - (data $158.1 (i32.const 8728) "\02\00\00\00\n\00\00\001\00.\00-\001\00.") - (data $159 (i32.const 8748) "\1c") - (data $159.1 (i32.const 8760) "\02\00\00\00\0c\00\00\001\00e\00-\001\00.\002") - (data $160 (i32.const 8780) "\1c") - (data $160.1 (i32.const 8792) "\02\00\00\00\06\00\00\001\00e\00x") - (data $161 (i32.const 8812) "\1c") - (data $161.1 (i32.const 8824) "\02\00\00\00\08\00\00\001\00e\001\00x") - (data $162 (i32.const 8844) "\1c") - (data $162.1 (i32.const 8856) "\02\00\00\00\08\00\00\001\00e\00-\00x") - (data $163 (i32.const 8876) "\1c") - (data $163.1 (i32.const 8888) "\02\00\00\00\n\00\00\001\00e\00-\001\00x") - (data $164 (i32.const 8908) ",") - (data $164.1 (i32.const 8920) "\02\00\00\00\0e\00\00\000\00.\001\00e\00-\001\00x") - (data $165 (i32.const 8956) "\1c") - (data $165.1 (i32.const 8968) "\02\00\00\00\06\00\00\000\000\00.") - (data $166 (i32.const 8988) "\1c") - (data $166.1 (i32.const 9000) "\02\00\00\00\06\00\00\00.\000\000") - (data $167 (i32.const 9020) "\1c") - (data $167.1 (i32.const 9032) "\02\00\00\00\06\00\00\00.\000\00.") - (data $168 (i32.const 9052) "\1c") - (data $168.1 (i32.const 9064) "\02\00\00\00\06\00\00\00.\001\00.") - (data $169 (i32.const 9084) "\1c") - (data $169.1 (i32.const 9096) "\02\00\00\00\06\00\00\000\00.\00.") - (data $170 (i32.const 9116) "\1c") - (data $170.1 (i32.const 9128) "\02\00\00\00\06\00\00\000\00.\00a") - (data $171 (i32.const 9148) "\1c") - (data $171.1 (i32.const 9160) "\02\00\00\00\08\00\00\001\00.\00.\001") - (data $172 (i32.const 9180) "\1c") - (data $172.1 (i32.const 9192) "\02\00\00\00\n\00\00\000\00.\001\00.\001") - (data $173 (i32.const 9212) "\1c") - (data $173.1 (i32.const 9224) "\02\00\00\00\08\00\00\000\00.\00 \001") - (data $174 (i32.const 9244) "\1c") - (data $174.1 (i32.const 9256) "\02\00\00\00\08\00\00\00+\000\00.\000") - (data $175 (i32.const 9276) "\1c") - (data $175.1 (i32.const 9288) "\02\00\00\00\08\00\00\00-\000\00.\000") - (data $176 (i32.const 9308) "\1c") - (data $176.1 (i32.const 9320) "\02\00\00\00\04\00\00\00+\000") - (data $177 (i32.const 9340) ",") - (data $177.1 (i32.const 9352) "\02\00\00\00\0e\00\00\00-\00.\000\000\000\000\000") - (data $178 (i32.const 9388) "\1c") - (data $178.1 (i32.const 9400) "\02\00\00\00\06\00\00\00-\00-\000") - (data $179 (i32.const 9420) "\1c") - (data $179.1 (i32.const 9432) "\02\00\00\00\06\00\00\00+\00+\000") - (data $180 (i32.const 9452) "\1c") - (data $180.1 (i32.const 9464) "\02\00\00\00\04\00\00\00.\00a") - (data $181 (i32.const 9484) "\1c") - (data $181.1 (i32.const 9496) "\02\00\00\00\06\00\00\00.\00.\000") - (data $182 (i32.const 9516) "\1c") - (data $182.1 (i32.const 9528) "\02\00\00\00\02\00\00\00.") - (data $183 (i32.const 9548) "\1c") - (data $183.1 (i32.const 9560) "\02\00\00\00\04\00\00\00.\00.") - (data $184 (i32.const 9580) "\1c") - (data $184.1 (i32.const 9592) "\02\00\00\00\06\00\00\00N\00a\00N") - (data $185 (i32.const 9612) "\1c") - (data $185.1 (i32.const 9624) "\02\00\00\00\02\00\00\00\0b") - (data $186 (i32.const 9644) "\1c") - (data $186.1 (i32.const 9656) "\02\00\00\00\02\00\00\00\0e\18") - (data $187 (i32.const 9676) "\1c") - (data $187.1 (i32.const 9688) "\02\00\00\00\08\00\00\00\0e\181\00.\001") - (data $188 (i32.const 9708) "\1c") - (data $188.1 (i32.const 9720) "\02\00\00\00\n\00\00\00\0e\18\0e\181\00.\001") - (data $189 (i32.const 9740) "\1c") - (data $189.1 (i32.const 9752) "\02\00\00\00\02\00\00\00\0c") - (data $190 (i32.const 9772) "\1c") - (data $190.1 (i32.const 9784) "\02\00\00\00\08\00\00\00t\00r\00u\00e") - (data $191 (i32.const 9804) "\1c") - (data $191.1 (i32.const 9816) "\02\00\00\00\08\00\00\001\00e\002\002") - (data $192 (i32.const 9836) "\1c") - (data $192.1 (i32.const 9848) "\02\00\00\00\n\00\00\001\00e\00-\002\002") - (data $193 (i32.const 9868) "\1c") - (data $193.1 (i32.const 9880) "\02\00\00\00\08\00\00\001\00e\002\003") - (data $194 (i32.const 9900) "\1c") - (data $194.1 (i32.const 9912) "\02\00\00\00\n\00\00\001\00e\00-\002\003") - (data $195 (i32.const 9932) "\1c") - (data $195.1 (i32.const 9944) "\02\00\00\00\08\00\00\001\00e\003\007") - (data $196 (i32.const 9964) "\1c") - (data $196.1 (i32.const 9976) "\02\00\00\00\n\00\00\001\00e\00-\003\007") - (data $197 (i32.const 9996) "\1c") - (data $197.1 (i32.const 10008) "\02\00\00\00\08\00\00\001\00e\003\008") - (data $198 (i32.const 10028) "\1c") - (data $198.1 (i32.const 10040) "\02\00\00\00\n\00\00\001\00e\00-\003\008") - (data $199 (i32.const 10060) "<") - (data $199.1 (i32.const 10072) "\02\00\00\00*\00\00\002\00.\002\002\000\004\004\006\000\004\009\002\005\000\003\001\003\00e\00-\001\006") - (data $200 (i32.const 10124) "L") - (data $200.1 (i32.const 10136) "\02\00\00\00.\00\00\001\00.\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\007\00e\00+\003\000\008") - (data $201 (i32.const 10204) "\1c") - (data $201.1 (i32.const 10216) "\02\00\00\00\0c\00\00\005\00e\00-\003\002\004") - (data $202 (i32.const 10236) ",") - (data $202.1 (i32.const 10248) "\02\00\00\00\1a\00\00\000\00.\000\000\000\000\000\001\00e\00+\003\001\004") - (data $203 (i32.const 10284) "\8c") - (data $203.1 (i32.const 10296) "\02\00\00\00|\00\00\000\00.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\00e\00+\005\006") - (data $204 (i32.const 10428) ",") - (data $204.1 (i32.const 10440) "\02\00\00\00\0e\00\00\00+\001\00E\00-\003\002\005") - (data $205 (i32.const 10476) ",") - (data $205.1 (i32.const 10488) "\02\00\00\00\0e\00\00\00+\001\00E\00+\003\000\009") - (data $206 (i32.const 10524) ",") - (data $206.1 (i32.const 10536) "\02\00\00\00\0e\00\00\00-\001\00E\00-\003\002\005") - (data $207 (i32.const 10572) ",") - (data $207.1 (i32.const 10584) "\02\00\00\00\0e\00\00\00-\001\00E\00+\003\000\009") - (data $208 (i32.const 10620) ",") - (data $208.1 (i32.const 10632) "\02\00\00\00\14\00\00\001\00e\00-\001\000\000\000\000\000\000") - (data $209 (i32.const 10668) ",") - (data $209.1 (i32.const 10680) "\02\00\00\00\14\00\00\001\00e\00+\001\000\000\000\000\000\000") - (data $210 (i32.const 10716) "\1c") - (data $210.1 (i32.const 10728) "\02\00\00\00\0c\00\00\001\00.\00e\003\006\000") - (data $211 (i32.const 10748) ",") - (data $211.1 (i32.const 10760) "\02\00\00\00\12\00\00\00 \00I\00n\00f\00i\00n\00i\00t\00y") - (data $212 (i32.const 10796) ",") - (data $212.1 (i32.const 10808) "\02\00\00\00\12\00\00\00+\00I\00n\00f\00i\00n\00i\00t\00y") - (data $213 (i32.const 10844) ",") - (data $213.1 (i32.const 10856) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data $214 (i32.const 10892) ",") - (data $214.1 (i32.const 10904) "\02\00\00\00\12\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00x") - (data $215 (i32.const 10940) ",") - (data $215.1 (i32.const 10952) "\02\00\00\00\14\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00+\001") - (data $216 (i32.const 10988) "\1c") - (data $216.1 (i32.const 11000) "\02\00\00\00\08\00\00\00I\00n\00f\00i") - (data $217 (i32.const 11020) ",") - (data $217.1 (i32.const 11032) "\02\00\00\00\10\00\00\00+\00I\00n\00f\00i\00n\00i\00t") - (data $218 (i32.const 11068) ",") - (data $218.1 (i32.const 11080) "\02\00\00\00\10\00\00\00i\00n\00f\00i\00n\00i\00t\00y") - (data $219 (i32.const 11116) "\bc") - (data $219.1 (i32.const 11128) "\02\00\00\00\aa\00\00\00.\002\004\007\000\003\002\008\002\002\009\002\000\006\002\003\002\007\002\000\008\008\002\008\004\003\009\006\004\003\004\001\001\000\006\008\006\001\008\002\005\002\009\009\000\001\003\000\007\001\006\002\003\008\002\002\001\002\007\009\002\008\004\001\002\005\000\003\003\007\007\005\003\006\003\005\001\000\004\003\00e\00-\003\002\003") - (data $220 (i32.const 11308) "\bc") - (data $220.1 (i32.const 11320) "\02\00\00\00\aa\00\00\00.\007\004\001\000\009\008\004\006\008\007\006\001\008\006\009\008\001\006\002\006\004\008\005\003\001\008\009\003\000\002\003\003\002\000\005\008\005\004\007\005\008\009\007\000\003\009\002\001\004\008\007\001\004\006\006\003\008\003\007\008\005\002\003\007\005\001\000\001\003\002\006\000\009\000\005\003\001\003\002\00e\00-\003\002\003") - (data $221 (i32.const 11500) "\bc") - (data $221.1 (i32.const 11512) "\02\00\00\00\aa\00\00\00.\002\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\006\003\000\001\002\003\000\005\005\006\003\007\009\005\005\006\007\006\001\005\002\005\000\003\006\001\002\004\001\004\005\007\003\000\001\008\000\001\003\000\008\003\002\002\008\007\002\004\000\004\009\005\008\006\006\004\007\006\000\006\007\006\000\00e\00-\003\000\007") - (data $222 (i32.const 11692) "\9c") - (data $222.1 (i32.const 11704) "\02\00\00\00\88\00\00\001\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\008\000\007\009\003\007\002\008\009\007\001\004\000\005\003\000\003\004\001\005\000\007\009\009\003\004\001\003\002\007\001\000\000\003\007\008\002\006\009\003\006\001\007\003\007\007\008\009\008\000\004\004") - (data $223 (i32.const 11852) "\9c") - (data $223.1 (i32.const 11864) "\02\00\00\00\88\00\00\004\009\006\008\002\009\002\007\006\004\007\005\000\009\004\006\006\004\009\000\001\007\009\007\007\005\008\007\002\000\007\000\009\006\003\003\000\002\008\006\004\001\006\006\009\002\008\008\007\009\001\000\009\004\006\005\005\005\005\004\007\008\005\001\009\004\000\004") - (data $224 (i32.const 12012) "\9c") - (data $224.1 (i32.const 12024) "\02\00\00\00\88\00\00\000\002\006\003\000\006\005\007\004\008\008\006\007\001\005\000\005\008\002\000\006\008\001\009\000\008\009\000\002\000\000\000\007\000\008\003\008\003\006\007\006\002\007\003\008\005\004\008\004\005\008\001\007\007\001\001\005\003\001\007\006\004\004\007\005\007\003\000") - (data $225 (i32.const 12172) "\9c") - (data $225.1 (i32.const 12184) "\02\00\00\00\88\00\00\002\007\000\000\006\009\008\005\005\005\007\001\003\006\006\009\005\009\006\002\002\008\004\002\009\001\004\008\001\009\008\006\000\008\003\004\009\003\006\004\007\005\002\009\002\007\001\009\000\007\004\001\006\008\004\004\004\003\006\005\005\001\000\007\000\004\003\004") - (data $226 (i32.const 12332) "\9c") - (data $226.1 (i32.const 12344) "\02\00\00\00\88\00\00\002\007\001\001\005\005\009\006\009\009\005\000\008\000\009\003\000\004\002\008\008\000\001\007\007\009\000\004\001\007\004\004\009\007\007\009\001\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009") - (data $227 (i32.const 12492) "l") - (data $227.1 (i32.const 12504) "\02\00\00\00\\\00\00\000\00.\009\007\005\003\005\003\001\008\008\008\007\009\009\005\000\002\006\001\003\008\000\007\001\003\005\002\007\006\001\004\007\001\006\004\004\000\004\003\009\00e\00-\001\000\003") - (data $228 (i32.const 12604) "l") - (data $228.1 (i32.const 12616) "\02\00\00\00X\00\00\00.\005\009\006\001\008\006\000\003\004\008\001\003\001\008\000\007\000\009\001\008\006\001\000\000\002\002\006\006\004\005\003\009\004\001\009\005\000\004\002\008\00e\000\000") - (data $229 (i32.const 12716) "l") - (data $229.1 (i32.const 12728) "\02\00\00\00X\00\00\001\00.\008\001\005\000\001\003\001\006\009\002\001\008\000\003\008\007\002\009\008\008\007\004\006\000\008\009\008\007\003\003\005\002\006\009\005\007\004\004\002\00e\00-\001") - (data $230 (i32.const 12828) "l") - (data $230.1 (i32.const 12840) "\02\00\00\00X\00\00\004\002\00.\000\007\000\008\002\003\005\007\005\003\004\004\005\003\006\000\000\006\008\001\006\001\008\006\008\005\006\008\002\002\005\007\005\009\000\007\007\002\00e\00-\002") - (data $231 (i32.const 12940) "l") - (data $231.1 (i32.const 12952) "\02\00\00\00X\00\00\006\006\005\00.\004\006\008\006\003\000\006\005\001\006\002\006\001\004\005\006\003\002\008\009\007\003\002\002\005\005\007\009\008\003\003\004\007\000\008\001\006\00e\00-\003") - (data $232 (i32.const 13052) "l") - (data $232.1 (i32.const 13064) "\02\00\00\00X\00\00\006\001\000\001\00.\008\005\002\009\002\002\009\007\000\008\006\008\006\002\001\007\008\006\006\009\000\004\009\005\004\008\005\004\004\009\008\003\001\007\005\003\00e\00-\004") - (data $233 (i32.const 13164) "l") - (data $233.1 (i32.const 13176) "\02\00\00\00X\00\00\007\006\009\006\006\00.\009\005\002\000\008\002\003\006\009\006\008\000\007\007\008\004\009\004\006\004\003\004\008\008\007\005\004\007\001\001\005\008\005\004\009\00e\00-\005") - (data $234 (i32.const 13276) "l") - (data $234.1 (i32.const 13288) "\02\00\00\00X\00\00\002\005\000\005\000\006\00.\005\003\002\002\002\002\008\006\008\002\004\009\006\001\003\002\006\000\004\008\000\007\002\002\002\009\002\003\007\000\002\003\000\004\00e\00-\006") - (data $235 (i32.const 13388) "l") - (data $235.1 (i32.const 13400) "\02\00\00\00X\00\00\002\007\004\000\000\003\007\00.\002\003\000\002\002\008\000\000\005\003\002\005\008\005\002\004\002\004\006\009\007\006\009\008\003\003\001\001\007\007\003\007\007\00e\00-\007") - (data $236 (i32.const 13500) "l") - (data $236.1 (i32.const 13512) "\02\00\00\00X\00\00\002\000\007\002\003\000\009\003\00.\005\000\000\004\009\007\004\002\006\004\005\009\004\001\005\002\009\002\006\008\007\001\005\004\002\008\003\002\004\004\009\000\00e\00-\008") - (data $237 (i32.const 13612) "l") - (data $237.1 (i32.const 13624) "\02\00\00\00X\00\00\000\00.\007\009\000\000\002\008\000\002\003\008\000\008\001\006\000\004\009\005\006\002\002\006\000\001\001\000\004\007\004\006\000\002\003\008\007\004\008\009\001\002\00e\001") - (data $238 (i32.const 13724) "l") - (data $238.1 (i32.const 13736) "\02\00\00\00X\00\00\000\00.\009\008\002\002\008\006\000\006\005\003\007\003\007\002\009\006\008\004\008\001\009\000\005\005\008\004\004\008\007\006\000\004\006\005\008\006\003\005\009\007\00e\002") - (data $239 (i32.const 13836) "l") - (data $239.1 (i32.const 13848) "\02\00\00\00X\00\00\000\00.\007\004\006\008\009\004\009\007\002\003\001\009\000\003\007\000\008\000\009\004\000\005\005\007\000\005\006\000\001\006\000\004\000\005\003\002\004\008\006\009\00e\003") - (data $240 (i32.const 13948) "l") - (data $240.1 (i32.const 13960) "\02\00\00\00X\00\00\000\00.\001\006\003\000\002\006\008\003\002\000\002\008\002\007\002\008\004\007\005\009\008\000\004\005\009\008\004\004\002\007\001\000\003\001\007\005\001\006\006\005\00e\004") - (data $241 (i32.const 14060) "l") - (data $241.1 (i32.const 14072) "\02\00\00\00X\00\00\000\00.\004\006\003\007\001\006\008\006\002\009\007\001\009\001\007\000\006\009\005\001\000\009\009\001\008\007\006\009\006\004\005\004\009\002\000\002\002\000\008\008\00e\005") - (data $242 (i32.const 14172) "l") - (data $242.1 (i32.const 14184) "\02\00\00\00X\00\00\000\00.\006\005\003\007\008\000\005\009\004\004\004\009\007\007\001\001\005\005\004\002\000\009\004\006\001\006\008\006\004\001\005\008\007\002\000\006\007\005\002\003\00e\006") - (data $243 (i32.const 14284) "l") - (data $243.1 (i32.const 14296) "\02\00\00\00X\00\00\000\00.\002\003\004\006\003\002\004\003\005\006\005\000\002\004\003\007\000\004\005\002\001\002\002\003\000\007\001\003\009\006\000\004\005\007\006\007\006\005\003\001\00e\006") - (data $244 (i32.const 14396) "l") - (data $244.1 (i32.const 14408) "\02\00\00\00X\00\00\000\00.\009\007\000\009\004\008\001\007\001\006\004\002\000\000\004\008\003\004\001\008\009\007\002\005\008\009\008\000\004\005\004\002\009\008\002\000\005\002\007\008\00e\008") - (data $245 (i32.const 14508) "l") - (data $245.1 (i32.const 14520) "\02\00\00\00X\00\00\000\00.\004\009\009\006\009\000\008\005\002\002\000\005\001\008\007\004\001\001\000\007\007\009\009\008\002\003\005\004\009\003\002\004\009\009\004\009\009\006\000\002\00e\009") - (data $246 (i32.const 14620) "l") - (data $246.1 (i32.const 14632) "\02\00\00\00Z\00\00\000\00.\007\009\002\005\002\000\001\002\000\000\005\005\007\002\004\005\008\006\001\009\004\004\000\001\001\002\006\007\000\004\001\007\008\007\005\000\005\001\004\009\00e\002\002") - (data $247 (i32.const 14732) "l") - (data $247.1 (i32.const 14744) "\02\00\00\00Z\00\00\000\00.\006\000\009\006\005\006\004\005\008\005\009\008\003\001\007\007\004\000\008\009\003\004\003\005\002\005\007\000\002\001\003\003\007\007\004\007\005\007\003\009\00e\003\000") - (data $248 (i32.const 14844) "l") - (data $248.1 (i32.const 14856) "\02\00\00\00Z\00\00\000\00.\004\008\000\000\004\001\006\001\001\007\004\007\007\000\002\008\007\008\007\008\007\004\003\006\000\002\000\005\000\002\003\005\004\009\004\009\007\001\002\008\00e\006\007") - (data $249 (i32.const 14956) "l") - (data $249.1 (i32.const 14968) "\02\00\00\00\\\00\00\000\00.\008\005\002\004\008\002\009\000\007\009\008\001\007\009\006\008\002\002\004\008\003\000\003\003\007\009\003\001\000\005\002\007\008\001\006\004\001\004\008\003\00e\001\000\005") - (data $250 (i32.const 15068) "l") - (data $250.1 (i32.const 15080) "\02\00\00\00\\\00\00\000\00.\000\003\002\007\001\002\003\009\002\009\001\007\000\009\007\008\002\001\001\005\004\004\007\000\006\009\003\007\002\007\004\008\009\005\006\000\008\004\002\005\00e\002\006\009") - (data $251 (i32.const 15180) "\1c") - (data $251.1 (i32.const 15192) "\02\00\00\00\06\00\00\00 \00\t\00\n") - (data $252 (i32.const 15212) "\1c") - (data $252.1 (i32.const 15224) "\02\00\00\00\0c\00\00\00 \00\t\00\n\00\r\00.\001") - (data $253 (i32.const 15244) "\1c") - (data $253.1 (i32.const 15256) "\02\00\00\00\02\00\00\00b") - (data $254 (i32.const 15276) "\1c") - (data $254.1 (i32.const 15288) "\02\00\00\00\04\00\00\00a\00b") - (data $255 (i32.const 15308) "\1c") - (data $255.1 (i32.const 15320) "\02\00\00\00\08\00\00\00k\00e\00y\001") - (data $256 (i32.const 15340) "\1c") - (data $256.1 (i32.const 15352) "\02\00\00\00\08\00\00\00k\00e\00y\002") - (data $257 (i32.const 15372) "\1c") - (data $257.1 (i32.const 15384) "\02\00\00\00\06\00\00\00k\00e\001") - (data $258 (i32.const 15404) "\1c") - (data $258.1 (i32.const 15416) "\02\00\00\00\06\00\00\00k\00e\002") - (data $259 (i32.const 15436) "\1c") - (data $259.1 (i32.const 15448) "\02\00\00\00\n\00\00\00k\00e\00y\001\002") - (data $260 (i32.const 15468) "\1c") - (data $260.1 (i32.const 15480) "\02\00\00\00\n\00\00\00k\00e\00y\001\001") - (data $261 (i32.const 15500) ",") - (data $261.1 (i32.const 15512) "\02\00\00\00\0e\00\00\00\a40\ed0\cf0\cb0\db0\d80\c80") - (data $262 (i32.const 15548) ",") - (data $262.1 (i32.const 15560) "\02\00\00\00\0e\00\00\00\a60\f00\ce0\aa0\af0\e40\de0") - (data $263 (i32.const 15596) ",") - (data $263.1 (i32.const 15608) "\02\00\00\00\16\00\00\00D\00\19 f\00h\00u\00a\00s\00c\00a\00i\00l") - (data $264 (i32.const 15644) ",") - (data $264.1 (i32.const 15656) "\02\00\00\00\14\00\00\00D\00\19 \1f\1eu\00a\00s\00c\00a\00i\00l") - (data $265 (i32.const 15692) "\1c") - (data $265.1 (i32.const 15704) "\02\00\00\00\04\00\00\00b\00a") - (data $266 (i32.const 15724) "\1c") - (data $266.1 (i32.const 15736) "\02\00\00\00\04\00\00\00a\00a") - (data $267 (i32.const 15756) "\1c") - (data $267.1 (i32.const 15768) "\02\00\00\00\04\00\00\001\000") - (data $268 (i32.const 15788) "\1c") - (data $268.1 (i32.const 15800) "\02\00\00\00\04\00\00\001\001") - (data $269 (i32.const 15820) "\1c") - (data $269.1 (i32.const 15832) "\02\00\00\00\06\00\00\001\000\001") - (data $270 (i32.const 15852) "\1c") - (data $270.1 (i32.const 15864) "\02\00\00\00\06\00\00\001\002\002") - (data $271 (i32.const 15884) "\1c") - (data $271.1 (i32.const 15896) "\02\00\00\00\08\00\00\001\002\003\004") - (data $272 (i32.const 15916) "\1c") - (data $272.1 (i32.const 15928) "\02\00\00\00\08\00\00\001\002\003\003") - (data $273 (i32.const 15948) ",") - (data $273.1 (i32.const 15960) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $274 (i32.const 15996) "\1c") - (data $274.1 (i32.const 16008) "\02\00\00\00\06\00\00\00a\00a\00a") - (data $275 (i32.const 16028) ",") - (data $275.1 (i32.const 16040) "\02\00\00\00\10\00\00\00a\00b\00a\00b\00a\00b\00a\00b") - (data $276 (i32.const 16076) "\1c") - (data $276.1 (i32.const 16088) "\02\00\00\00\n\00\00\00a\00a\00a\00a\00a") - (data $277 (i32.const 16108) "\1c") - (data $277.1 (i32.const 16120) "\02\00\00\00\0c\00\00\00a\00a\00a\00a\00a\00a") - (data $278 (i32.const 16140) ",") - (data $278.1 (i32.const 16152) "\02\00\00\00\0e\00\00\00a\00a\00a\00a\00a\00a\00a") - (data $279 (i32.const 16188) "\1c") - (data $279.1 (i32.const 16200) "\02\00\00\00\n\00\00\00a\00-\00b\00-\00c") - (data $280 (i32.const 16220) "\1c") - (data $280.1 (i32.const 16232) "\02\00\00\00\n\00\00\00a\00+\00b\00-\00c") - (data $281 (i32.const 16252) "\1c") - (data $281.1 (i32.const 16264) "\02\00\00\00\08\00\00\00+\00a\00b\00c") - (data $282 (i32.const 16284) "\1c") - (data $282.1 (i32.const 16296) "\02\00\00\00\08\00\00\00\n\00a\00b\00c") - (data $283 (i32.const 16316) "\1c") - (data $283.1 (i32.const 16328) "\02\00\00\00\02\00\00\00\n") - (data $284 (i32.const 16348) "\1c") - (data $284.1 (i32.const 16360) "\02\00\00\00\02\00\00\00c") - (data $285 (i32.const 16380) "\1c") - (data $285.1 (i32.const 16392) "\02\00\00\00\04\00\00\00+\00+") - (data $286 (i32.const 16412) "\1c") - (data $286.1 (i32.const 16424) "\02\00\00\00\08\00\00\00a\00b\00+\00+") - (data $287 (i32.const 16444) ",") - (data $287.1 (i32.const 16456) "\02\00\00\00\12\00\00\00a\00b\00c\00a\00b\00c\00a\00b\00c") - (data $288 (i32.const 16492) "\1c") - (data $288.1 (i32.const 16504) "\02\00\00\00\06\00\00\00+\00+\00+") - (data $289 (i32.const 16524) ",") - (data $289.1 (i32.const 16536) "\02\00\00\00\0e\00\00\00a\00b\00c\00a\00b\00c\00a") - (data $290 (i32.const 16572) ",") - (data $290.1 (i32.const 16584) "\02\00\00\00\1a\00\00\00+\00+\00+\00b\00c\00+\00+\00+\00b\00c\00+\00+\00+") - (data $291 (i32.const 16620) "\1c") - (data $291.1 (i32.const 16632) "\02\00\00\00\0c\00\00\00+\00+\00c\00+\00+\00c") - (data $292 (i32.const 16652) "\1c") - (data $292.1 (i32.const 16664) "\02\00\00\00\08\00\00\00c\00c\00c\00c") - (data $293 (i32.const 16684) "\1c") - (data $293.1 (i32.const 16696) "\02\00\00\00\04\00\00\00c\00c") - (data $294 (i32.const 16716) "\1c") - (data $294.1 (i32.const 16728) "\02\00\00\00\08\00\00\00+\00+\00+\00+") - (data $295 (i32.const 16748) "\1c") - (data $295.1 (i32.const 16760) "\02\00\00\00\02\00\00\00e") - (data $296 (i32.const 16780) "\1c") - (data $296.1 (i32.const 16792) "\02\00\00\00\04\00\00\00b\00c") - (data $297 (i32.const 16812) "\1c") - (data $297.1 (i32.const 16824) "\02\00\00\00\04\00\00\00a\00+") - (data $298 (i32.const 16844) "\1c") - (data $298.1 (i32.const 16856) "\02\00\00\00\n\00\00\00a\00+\00b\00+\00c") - (data $299 (i32.const 16876) ",") - (data $299.1 (i32.const 16888) "\02\00\00\00\0e\00\00\00+\00a\00+\00b\00+\00c\00+") - (data $300 (i32.const 16924) "\1c") - (data $300.1 (i32.const 16936) "\02\00\00\00\n\00\00\00a\00b\00c\00d\00e") - (data $301 (i32.const 16956) "\1c") - (data $301.1 (i32.const 16968) "\02\00\00\00\06\00\00\00-\00-\00-") - (data $302 (i32.const 16988) ",") - (data $302.1 (i32.const 17000) "\02\00\00\00\0e\00\00\00-\00-\00-\00b\00c\00d\00e") - (data $303 (i32.const 17036) "\1c") - (data $303.1 (i32.const 17048) "\02\00\00\00\n\00\00\00-\00-\00-\00-\00-") - (data $304 (i32.const 17068) "\1c") - (data $304.1 (i32.const 17080) "\02\00\00\00\08\00\00\00-\00-\00-\00-") - (data $305 (i32.const 17100) ",") - (data $305.1 (i32.const 17112) "\02\00\00\00\18\00\00\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-") - (data $306 (i32.const 17148) "\1c") - (data $306.1 (i32.const 17160) "\02\00\00\00\08\00\00\00-\00-\00-\00a") - (data $307 (i32.const 17180) ",") - (data $307.1 (i32.const 17192) "\02\00\00\00\1c\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n") - (data $308 (i32.const 17228) "\1c") - (data $308.1 (i32.const 17240) "\02\00\00\00\02\00\00\00n") - (data $309 (i32.const 17260) "\1c") - (data $309.1 (i32.const 17272) "\02\00\00\00\n\00\00\00j\00k\00l\00m\00n") - (data $310 (i32.const 17292) "\1c") - (data $310.1 (i32.const 17304) "\02\00\00\00\n\00\00\00c\00d\00e\00f\00g") - (data $311 (i32.const 17324) "\1c") - (data $311.1 (i32.const 17336) "\02\00\00\00\n\00\00\00d\00e\00f\00g\00h") - (data $312 (i32.const 17356) ",") - (data $312.1 (i32.const 17368) "\02\00\00\00\1a\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m") - (data $313 (i32.const 17404) ",") - (data $313.1 (i32.const 17416) "\02\00\00\00\0e\00\00\00c\00d\00e\00f\00g\00h\00i") - (data $314 (i32.const 17452) "\1c") - (data $314.1 (i32.const 17464) "\02\00\00\00\06\00\00\00e\00f\00g") - (data $315 (i32.const 17484) "\1c") - (data $315.1 (i32.const 17496) "\02\00\00\00\08\00\00\00e\00f\00g\00h") - (data $316 (i32.const 17516) "\1c") - (data $316.1 (i32.const 17528) "\02\00\00\00\02\00\00\00d") - (data $317 (i32.const 17548) ",") - (data $317.1 (i32.const 17560) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $318 (i32.const 17596) "|") - (data $318.1 (i32.const 17608) "\02\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 $319 (i32.const 17724) "\1c") - (data $319.1 (i32.const 17736) "\02\00\00\00\n\00\00\00a\00,\00b\00,\00c") - (data $320 (i32.const 17756) ",") - (data $320.1 (i32.const 17768) "\02\00\00\00\0e\00\00\00a\00,\00 \00b\00,\00 \00c") - (data $321 (i32.const 17804) "\1c") - (data $321.1 (i32.const 17816) "\02\00\00\00\04\00\00\00,\00 ") - (data $322 (i32.const 17836) "\1c") - (data $322.1 (i32.const 17848) "\02\00\00\00\0c\00\00\00a\00,\00b\00,\00,\00c") - (data $323 (i32.const 17868) "\1c") - (data $323.1 (i32.const 17880) "\02\00\00\00\0c\00\00\00,\00a\00,\00b\00,\00c") - (data $324 (i32.const 17900) "\1c") - (data $324.1 (i32.const 17912) "\02\00\00\00\0c\00\00\00a\00,\00b\00,\00c\00,") - (data $325 (i32.const 17932) "\1c") - (data $325.1 (i32.const 17944) "\02\00\00\00\02\00\00\008") - (data $326 (i32.const 17964) "\1c") - (data $326.1 (i32.const 17976) "\02\00\00\00\04\00\00\001\002") - (data $327 (i32.const 17996) "\1c") - (data $327.1 (i32.const 18008) "\02\00\00\00\n\00\00\00-\001\000\000\000") - (data $328 (i32.const 18028) "\1c") - (data $328.1 (i32.const 18040) "\02\00\00\00\n\00\00\001\002\003\004\005") - (data $329 (i32.const 18060) "\1c") - (data $329.1 (i32.const 18072) "\02\00\00\00\0c\00\00\001\002\003\004\005\006") - (data $330 (i32.const 18092) ",") - (data $330.1 (i32.const 18104) "\02\00\00\00\0e\00\00\001\001\001\001\001\001\001") - (data $331 (i32.const 18140) ",") - (data $331.1 (i32.const 18152) "\02\00\00\00\0e\00\00\001\002\003\004\005\006\007") - (data $332 (i32.const 18188) ",") - (data $332.1 (i32.const 18200) "\02\00\00\00\10\00\00\001\002\003\004\005\006\007\008") - (data $333 (i32.const 18236) ",") - (data $333.1 (i32.const 18248) "\02\00\00\00\12\00\00\001\002\003\004\005\006\007\008\009") - (data $334 (i32.const 18284) ",") - (data $334.1 (i32.const 18296) "\02\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\006") - (data $335 (i32.const 18332) ",") - (data $335.1 (i32.const 18344) "\02\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\007") - (data $336 (i32.const 18380) ",") - (data $336.1 (i32.const 18392) "\02\00\00\00\16\00\00\00-\002\001\004\007\004\008\003\006\004\008") - (data $337 (i32.const 18428) "\1c") - (data $337.1 (i32.const 18440) "\02\00\00\00\04\00\00\00-\001") - (data $338 (i32.const 18460) "\1c") - (data $338.1 (i32.const 18472) "\02\00\00\00\08\00\00\00-\001\002\008") + (data $1 (i32.const 1100) ",") + (data $1.1 (i32.const 1112) "\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") + (data $2 (i32.const 1148) "\1c") + (data $2.1 (i32.const 1160) "\02\00\00\00\02\00\00\00\df") + (data $3 (i32.const 1180) "\1c") + (data $3.1 (i32.const 1192) "\02\00\00\00\04\00\00\00\df\00\df") + (data $4 (i32.const 1212) "\1c") + (data $4.1 (i32.const 1224) "\02\00\00\00\06\00\00\00\df\00a\00b") + (data $5 (i32.const 1244) "<") + (data $5.1 (i32.const 1256) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1308) ",") + (data $6.1 (i32.const 1320) "\02\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") + (data $7 (i32.const 1356) "<") + (data $7.1 (i32.const 1368) "\02\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 $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $11 (i32.const 1548) ",") + (data $11.1 (i32.const 1560) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $13 (i32.const 1628) "<") + (data $13.1 (i32.const 1640) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $14 (i32.const 1692) "\1c") + (data $14.1 (i32.const 1704) "\02") + (data $15 (i32.const 1724) "\1c") + (data $15.1 (i32.const 1736) "\02\00\00\00\02\00\00\00h") + (data $16 (i32.const 1756) "\1c") + (data $16.1 (i32.const 1768) "\02\00\00\00\02") + (data $17 (i32.const 1788) "\1c") + (data $17.1 (i32.const 1800) "\02\00\00\00\02\00\00\00a") + (data $18 (i32.const 1820) "\1c") + (data $18.1 (i32.const 1832) "\02\00\00\00\02\00\00\00@") + (data $19 (i32.const 1852) "\1c") + (data $19.1 (i32.const 1864) "\02\00\00\00\02\00\00\006") + (data $20 (i32.const 1884) "\1c") + (data $20.1 (i32.const 1896) "\02\00\00\00\04\00\00\00\00\d8\00\df") + (data $21 (i32.const 1916) "\1c") + (data $21.1 (i32.const 1928) "\01\00\00\00\08\00\00\00\00\00\00\006") + (data $22 (i32.const 1948) "\1c") + (data $22.1 (i32.const 1960) "\02\00\00\00\04\00\00\00\00\006") + (data $23 (i32.const 1980) "\1c") + (data $23.1 (i32.const 1992) "\01\00\00\00\0c\00\00\00A\00\00\00B\00\00\00C") + (data $24 (i32.const 2012) "\1c") + (data $24.1 (i32.const 2024) "\02\00\00\00\06\00\00\00A\00B\00C") + (data $25 (i32.const 2044) ",") + (data $25.1 (i32.const 2056) "\01\00\00\00\14\00\00\004\d8\00\00\06\df\00\00a\00\00\004\d8\00\00\07\df") + (data $26 (i32.const 2092) "\1c") + (data $26.1 (i32.const 2104) "\02\00\00\00\n\00\00\004\d8\06\dfa\004\d8\07\df") + (data $27 (i32.const 2124) "\1c") + (data $27.1 (i32.const 2136) "\02\00\00\00\04\00\00\004\d8\06\df") + (data $28 (i32.const 2156) "\1c") + (data $28.1 (i32.const 2168) "\02\00\00\00\04\00\00\00h\00i") + (data $29 (i32.const 2188) "\1c") + (data $29.1 (i32.const 2200) "\02\00\00\00\0c\00\00\00s\00t\00r\00i\00n\00g") + (data $30 (i32.const 2220) "\1c") + (data $30.1 (i32.const 2232) "\02\00\00\00\06\00\00\00I\00\'\00m") + (data $31 (i32.const 2252) "\1c") + (data $31.1 (i32.const 2264) "\02\00\00\00\02\00\00\00 ") + (data $32 (i32.const 2284) "\1c") + (data $32.1 (i32.const 2296) "\02\00\00\00\06\00\00\00 \00 \00 ") + (data $33 (i32.const 2316) "\1c") + (data $33.1 (i32.const 2328) "\02\00\00\00\06\00\00\00a\00b\00c") + (data $34 (i32.const 2348) "\1c") + (data $34.1 (i32.const 2360) "\02\00\00\00\n\00\00\00 \00 \00a\00b\00c") + (data $35 (i32.const 2380) "\1c") + (data $35.1 (i32.const 2392) "\02\00\00\00\06\00\00\001\002\003") + (data $36 (i32.const 2412) "\1c") + (data $36.1 (i32.const 2424) "\02\00\00\00\0c\00\00\001\002\003\00a\00b\00c") + (data $37 (i32.const 2444) ",") + (data $37.1 (i32.const 2456) "\02\00\00\00\10\00\00\001\002\003\001\002\00a\00b\00c") + (data $38 (i32.const 2492) "\1c") + (data $38.1 (i32.const 2504) "\02\00\00\00\n\00\00\00a\00b\00c\00 \00 ") + (data $39 (i32.const 2524) "\1c") + (data $39.1 (i32.const 2536) "\02\00\00\00\0c\00\00\00a\00b\00c\00a\00b\00c") + (data $40 (i32.const 2556) ",") + (data $40.1 (i32.const 2568) "\02\00\00\00\10\00\00\00a\00b\00c\00a\00b\00c\00a\00b") + (data $41 (i32.const 2604) "\1c") + (data $41.1 (i32.const 2616) "\02\00\00\00\02\00\00\00,") + (data $42 (i32.const 2636) "\1c") + (data $42.1 (i32.const 2648) "\02\00\00\00\02\00\00\00x") + (data $43 (i32.const 2668) "\1c") + (data $43.1 (i32.const 2680) "\02\00\00\00\06\00\00\00,\00 \00I") + (data $44 (i32.const 2700) "\1c") + (data $44.1 (i32.const 2712) "\02\00\00\00\02\00\00\00g") + (data $45 (i32.const 2732) "\1c") + (data $45.1 (i32.const 2744) "\02\00\00\00\02\00\00\00i") + (data $46 (i32.const 2764) "\1c") + (data $46.1 (i32.const 2776) "\02\00\00\00\08\00\00\00n\00u\00l\00l") + (data $47 (i32.const 2796) "\1c") + (data $47.1 (i32.const 2808) "\02\00\00\00\06\00\00\00a\00b\00d") + (data $48 (i32.const 2828) "\1c") + (data $48.1 (i32.const 2840) "\02\00\00\00\06\00\00\00a\00b\00f") + (data $49 (i32.const 2860) "\1c") + (data $49.1 (i32.const 2872) "\02\00\00\00\06\00\00\00a\00b\00z") + (data $50 (i32.const 2892) "\1c") + (data $50.1 (i32.const 2904) "\02\00\00\00\08\00\00\00a\00b\00c\00d") + (data $51 (i32.const 2924) "\1c") + (data $51.1 (i32.const 2936) "\02\00\00\00\08\00\00\00a\00b\00d\00d") + (data $52 (i32.const 2956) "\1c") + (data $52.1 (i32.const 2968) "\02\00\00\00\08\00\00\00a\00b\00 \00c") + (data $53 (i32.const 2988) ",") + (data $53.1 (i32.const 3000) "\02\00\00\00\16\00\00\00 \00\n\00\t\00\r\00a\00b\00c\00 \00\t\00\r\00 ") + (data $54 (i32.const 3036) ",") + (data $54.1 (i32.const 3048) "\02\00\00\00\0e\00\00\00a\00b\00c\00 \00\t\00\r\00 ") + (data $55 (i32.const 3084) ",") + (data $55.1 (i32.const 3096) "\02\00\00\00\0e\00\00\00 \00\n\00\t\00\r\00a\00b\00c") + (data $56 (i32.const 3132) ",") + (data $56.1 (i32.const 3144) "\02\00\00\00\0e\00\00\00\t\00\n\00 \00t\00r\00u\00e") + (data $57 (i32.const 3180) ",") + (data $57.1 (i32.const 3192) "\02\00\00\00\14\00\00\00\t\00\n\00 \00t\00r\00u\00e\00\n\00\r\00 ") + (data $58 (i32.const 3228) ",") + (data $58.1 (i32.const 3240) "\02\00\00\00\12\00\00\00 \00 \00t\00r\00u\00e\00a\00b\00c") + (data $59 (i32.const 3276) "\1c") + (data $59.1 (i32.const 3288) "\02\00\00\00\06\00\00\00t\00r\00u") + (data $60 (i32.const 3308) "\1c") + (data $60.1 (i32.const 3320) "\02\00\00\00\08\00\00\00T\00r\00u\00e") + (data $61 (i32.const 3340) "\1c") + (data $61.1 (i32.const 3352) "\02\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data $62 (i32.const 3372) "\1c") + (data $62.1 (i32.const 3384) "\02\00\00\00\02\00\00\000") + (data $63 (i32.const 3404) "\1c") + (data $63.1 (i32.const 3416) "\02\00\00\00\06\00\00\000\000\000") + (data $64 (i32.const 3436) "\1c") + (data $64.1 (i32.const 3448) "\02\00\00\00\02\00\00\001") + (data $65 (i32.const 3468) "\1c") + (data $65.1 (i32.const 3480) "\02\00\00\00\08\00\00\000\000\000\001") + (data $66 (i32.const 3500) "\1c") + (data $66.1 (i32.const 3512) "\02\00\00\00\n\00\00\000\00b\001\000\001") + (data $67 (i32.const 3532) "\1c") + (data $67.1 (i32.const 3544) "\02\00\00\00\n\00\00\000\00o\007\000\007") + (data $68 (i32.const 3564) "\1c") + (data $68.1 (i32.const 3576) "\02\00\00\00\n\00\00\000\00x\00f\000\00f") + (data $69 (i32.const 3596) "\1c") + (data $69.1 (i32.const 3608) "\02\00\00\00\n\00\00\000\00X\00F\000\00F") + (data $70 (i32.const 3628) "\1c") + (data $70.1 (i32.const 3640) "\02\00\00\00\06\00\00\000\001\001") + (data $71 (i32.const 3660) "\1c") + (data $71.1 (i32.const 3672) "\02\00\00\00\08\00\00\000\00x\001\00g") + (data $72 (i32.const 3692) "\1c") + (data $72.1 (i32.const 3704) "\02\00\00\00\08\00\00\00-\001\002\003") + (data $73 (i32.const 3724) "\1c") + (data $73.1 (i32.const 3736) "\02\00\00\00\08\00\00\00+\001\002\003") + (data $74 (i32.const 3756) "\1c") + (data $74.1 (i32.const 3768) "\02\00\00\00\n\00\00\00-\001\002\00.\003") + (data $75 (i32.const 3788) "\1c") + (data $75.1 (i32.const 3800) "\02\00\00\00\06\00\00\000\00x\000") + (data $76 (i32.const 3820) "\1c") + (data $76.1 (i32.const 3832) "\02\00\00\00\08\00\00\000\00b\001\001") + (data $77 (i32.const 3852) "\1c") + (data $77.1 (i32.const 3864) "\02\00\00\00\04\00\00\00\n\001") + (data $78 (i32.const 3884) "\1c") + (data $78.1 (i32.const 3896) "\02\00\00\00\04\00\00\00( 1") + (data $79 (i32.const 3916) "\1c") + (data $79.1 (i32.const 3928) "\02\00\00\00\04\00\00\00) 1") + (data $80 (i32.const 3948) "\1c") + (data $80.1 (i32.const 3960) "\02\00\00\00\04\00\00\00-\000") + (data $81 (i32.const 3980) ",") + (data $81.1 (i32.const 3992) "\02\00\00\00\10\00\00\000\00X\00A\00B\00C\00D\00E\00F") + (data $82 (i32.const 4028) "\1c") + (data $82.1 (i32.const 4040) "\02\00\00\00\0c\00\00\00A\00B\00C\00D\00E\00F") + (data $83 (i32.const 4060) "<") + (data $83.1 (i32.const 4072) "\02\00\00\00(\00\00\003\006\008\009\003\004\008\008\001\004\007\004\001\009\001\000\003\002\003\002") + (data $84 (i32.const 4124) "L") + (data $84.1 (i32.const 4136) "\02\00\00\004\00\00\00-\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (data $85 (i32.const 4204) "<") + (data $85.1 (i32.const 4216) "\02\00\00\00,\00\00\000\00x\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (data $86 (i32.const 4268) "\1c") + (data $86.1 (i32.const 4280) "\02\00\00\00\06\00\00\001\00=\d8%\dd") + (data $87 (i32.const 4300) ",") + (data $87.1 (i32.const 4312) "\02\00\00\00\0e\00\00\002\00b\00a\00d\00n\00u\00m") + (data $88 (i32.const 4348) "\1c") + (data $88.1 (i32.const 4360) "\02\00\00\00\08\00\00\00 \00\t\00\n\001") + (data $89 (i32.const 4380) ",") + (data $89.1 (i32.const 4392) "\02\00\00\00\0e\00\00\00 \00\t\00\n\000\00x\000\002") + (data $90 (i32.const 4428) "\1c") + (data $90.1 (i32.const 4440) "\02\00\00\00\n\00\00\000\00 \00a\00b\00c") + (data $91 (i32.const 4460) "\1c") + (data $91.1 (i32.const 4472) "\02\00\00\00\n\00\00\001\00 \00a\00b\00c") + (data $92 (i32.const 4492) ",") + (data $92.1 (i32.const 4504) "\02\00\00\00\10\00\00\00 \00\t\00\n\000\00 \00a\00b\00c") + (data $93 (i32.const 4540) "\1c") + (data $93.1 (i32.const 4552) "\02\00\00\00\02\00\00\00-") + (data $94 (i32.const 4572) "\1c") + (data $94.1 (i32.const 4584) "\02\00\00\00\02\00\00\00+") + (data $95 (i32.const 4604) "\1c") + (data $95.1 (i32.const 4616) "\02\00\00\00\04\00\00\00=\d8%\dd") + (data $96 (i32.const 4636) "\1c") + (data $96.1 (i32.const 4648) "\02\00\00\00\0c\00\00\00b\00a\00d\00n\00u\00m") + (data $97 (i32.const 4678) "\f0?\00\00\00\00\00\00$@\00\00\00\00\00\00Y@\00\00\00\00\00@\8f@\00\00\00\00\00\88\c3@\00\00\00\00\00j\f8@\00\00\00\00\80\84.A\00\00\00\00\d0\12cA\00\00\00\00\84\d7\97A\00\00\00\00e\cd\cdA\00\00\00 _\a0\02B\00\00\00\e8vH7B\00\00\00\a2\94\1amB\00\00@\e5\9c0\a2B\00\00\90\1e\c4\bc\d6B\00\004&\f5k\0cC\00\80\e07y\c3AC\00\a0\d8\85W4vC\00\c8Ngm\c1\abC\00=\91`\e4X\e1C@\8c\b5x\1d\af\15DP\ef\e2\d6\e4\1aKD\92\d5M\06\cf\f0\80D") + (data $98 (i32.const 4860) ",") + (data $98.1 (i32.const 4872) "\02\00\00\00\14\00\00\000\00x\007\00F\00F\00F\00F\00F\00F\00F") + (data $99 (i32.const 4908) "<") + (data $99.1 (i32.const 4920) "\02\00\00\00$\00\00\000\00x\007\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F\00F") + (data $100 (i32.const 4972) "\1c") + (data $100.1 (i32.const 4984) "\02\00\00\00\04\00\00\001\00.") + (data $101 (i32.const 5004) "\1c") + (data $101.1 (i32.const 5016) "\02\00\00\00\08\00\00\001\00.\000\000") + (data $102 (i32.const 5036) "\1c") + (data $102.1 (i32.const 5048) "\02\00\00\00\08\00\00\001\00e\00-\005") + (data $103 (i32.const 5068) "\1c") + (data $103.1 (i32.const 5080) "\02\00\00\00\n\00\00\00-\001\00e\00-\005") + (data $104 (i32.const 5100) ",") + (data $104.1 (i32.const 5112) "\02\00\00\00\10\00\00\00-\000\00.\003\00e\00-\002\002") + (data $105 (i32.const 5148) ",") + (data $105.1 (i32.const 5160) "\02\00\00\00\0e\00\00\000\00.\003\00e\00+\002\002") + (data $106 (i32.const 5196) "\1c") + (data $106.1 (i32.const 5208) "\02\00\00\00\08\00\00\001\00e\00-\001") + (data $107 (i32.const 5228) "\1c") + (data $107.1 (i32.const 5240) "\02\00\00\00\0c\00\00\000\00.\001\00e\00-\000") + (data $108 (i32.const 5260) "\1c") + (data $108.1 (i32.const 5272) "\02\00\00\00\06\00\00\000\00.\001") + (data $109 (i32.const 5292) "\1c") + (data $109.1 (i32.const 5304) "\02\00\00\00\06\00\00\00.\002\005") + (data $110 (i32.const 5324) "\1c") + (data $110.1 (i32.const 5336) "\02\00\00\00\0c\00\00\001\00.\00e\00+\003\00a") + (data $111 (i32.const 5356) ",") + (data $111.1 (i32.const 5368) "\02\00\00\00\0e\00\00\001\00.\000\00e\00-\001\000") + (data $112 (i32.const 5404) ",") + (data $112.1 (i32.const 5416) "\02\00\00\00\0e\00\00\001\00.\000\00e\00-\003\000") + (data $113 (i32.const 5452) ",") + (data $113.1 (i32.const 5464) "\02\00\00\00\10\00\00\001\00.\000\00e\00-\003\002\003") + (data $114 (i32.const 5500) ",") + (data $114.1 (i32.const 5512) "\02\00\00\00\10\00\00\001\00.\000\00e\00-\003\002\004") + (data $115 (i32.const 5548) "\1c") + (data $115.1 (i32.const 5560) "\02\00\00\00\0c\00\00\001\00e\00+\003\000\008") + (data $116 (i32.const 5580) "\1c") + (data $116.1 (i32.const 5592) "\02\00\00\00\0c\00\00\001\00e\00+\003\000\009") + (data $117 (i32.const 5612) ",") + (data $117.1 (i32.const 5624) "\02\00\00\00\10\00\00\001\00.\000\00e\00-\001\00_\000") + (data $118 (i32.const 5660) ",") + (data $118.1 (i32.const 5672) "\02\00\00\00\12\00\00\001\00.\000\00e\00-\001\000\00_\000") + (data $119 (i32.const 5708) ",") + (data $119.1 (i32.const 5720) "\02\00\00\00\10\00\00\001\00.\000\00e\00+\001\00_\000") + (data $120 (i32.const 5756) "\1c") + (data $120.1 (i32.const 5768) "\02\00\00\00\06\00\00\001\00_\000") + (data $121 (i32.const 5788) "\1c") + (data $121.1 (i32.const 5800) "\02\00\00\00\06\00\00\001\00_\001") + (data $122 (i32.const 5820) ",") + (data $122.1 (i32.const 5832) "\02\00\00\00\14\00\00\001\000\00.\000\000\00_\000\001\00e\002") + (data $123 (i32.const 5868) ",") + (data $123.1 (i32.const 5880) "\02\00\00\00\16\00\00\001\002\003\004\005\006\007\008\009\00_\004") + (data $124 (i32.const 5916) ",") + (data $124.1 (i32.const 5928) "\02\00\00\00\18\00\00\001\00_\000\001\002\003\004\005\006\007\008\009") + (data $125 (i32.const 5964) "\1c") + (data $125.1 (i32.const 5976) "\02\00\00\00\n\00\00\001\00e\00-\006\000") + (data $126 (i32.const 5996) "\1c") + (data $126.1 (i32.const 6008) "\02\00\00\00\08\00\00\001\00e\006\000") + (data $127 (i32.const 6028) "\1c") + (data $127.1 (i32.const 6040) "\02\00\00\00\0c\00\00\001\002\003\00.\004\00e") + (data $128 (i32.const 6060) "\1c") + (data $128.1 (i32.const 6072) "\02\00\00\00\04\00\00\001\00x") + (data $129 (i32.const 6092) ",") + (data $129.1 (i32.const 6104) "\02\00\00\00\18\00\00\00-\001\001\00e\00-\001\00s\00t\00r\00i\00n\00g") + (data $130 (i32.const 6140) ",") + (data $130.1 (i32.const 6152) "\02\00\00\00\14\00\00\000\001\00e\001\00s\00t\00r\00i\00n\00g") + (data $131 (i32.const 6188) ",") + (data $131.1 (i32.const 6200) "\02\00\00\00\12\00\00\000\001\000\00s\00t\00r\00i\00n\00g") + (data $132 (i32.const 6236) ",") + (data $132.1 (i32.const 6248) "\02\00\00\00\0e\00\00\00+\00.\002\002\00e\00-\001") + (data $133 (i32.const 6284) "\1c") + (data $133.1 (i32.const 6296) "\02\00\00\00\n\00\00\001\001\00.\00s\001") + (data $134 (i32.const 6316) "\1c") + (data $134.1 (i32.const 6328) "\02\00\00\00\06\00\00\000\00x\005") + (data $135 (i32.const 6348) "\1c") + (data $135.1 (i32.const 6360) "\02\00\00\00\06\00\00\000\00x\00D") + (data $136 (i32.const 6380) "\1c") + (data $136.1 (i32.const 6392) "\02\00\00\00\08\00\00\00\0b\001\00.\001") + (data $137 (i32.const 6412) "\1c") + (data $137.1 (i32.const 6424) "\02\00\00\00\0c\00\00\00\0b\00\0b\00-\001\00.\001") + (data $138 (i32.const 6444) "\1c") + (data $138.1 (i32.const 6456) "\02\00\00\00\0c\00\00\00\0c\00\0c\00-\001\00.\001") + (data $139 (i32.const 6476) "\1c") + (data $139.1 (i32.const 6488) "\02\00\00\00\0c\00\00\00( ( -\001\00.\001") + (data $140 (i32.const 6508) "\1c") + (data $140.1 (i32.const 6520) "\02\00\00\00\0c\00\00\00) ) -\001\00.\001") + (data $141 (i32.const 6540) "\1c") + (data $141.1 (i32.const 6552) "\02\00\00\00\n\00\00\000\000\000\000\000") + (data $142 (i32.const 6572) "\1c") + (data $142.1 (i32.const 6584) "\02\00\00\00\n\00\00\000\000\000\000\00a") + (data $143 (i32.const 6604) "\1c") + (data $143.1 (i32.const 6616) "\02\00\00\00\n\00\00\000\000\000\000\001") + (data $144 (i32.const 6636) "\1c") + (data $144.1 (i32.const 6648) "\02\00\00\00\n\00\00\000\000\00.\000\000") + (data $145 (i32.const 6668) "\1c") + (data $145.1 (i32.const 6680) "\02\00\00\00\n\00\00\000\000\00.\000\00a") + (data $146 (i32.const 6700) "\1c") + (data $146.1 (i32.const 6712) "\02\00\00\00\08\00\00\001\00e\001\00e") + (data $147 (i32.const 6732) ",") + (data $147.1 (i32.const 6744) "\02\00\00\00\0e\00\00\001\00e\00+\000\000\000\001") + (data $148 (i32.const 6780) "\1c") + (data $148.1 (i32.const 6792) "\02\00\00\00\0c\00\00\000\00e\00+\001\000\000") + (data $149 (i32.const 6812) "\1c") + (data $149.1 (i32.const 6824) "\02\00\00\00\n\00\00\001\00.\00-\001\00.") + (data $150 (i32.const 6844) "\1c") + (data $150.1 (i32.const 6856) "\02\00\00\00\0c\00\00\001\00e\00-\001\00.\002") + (data $151 (i32.const 6876) "\1c") + (data $151.1 (i32.const 6888) "\02\00\00\00\06\00\00\001\00e\00x") + (data $152 (i32.const 6908) "\1c") + (data $152.1 (i32.const 6920) "\02\00\00\00\08\00\00\001\00e\001\00x") + (data $153 (i32.const 6940) "\1c") + (data $153.1 (i32.const 6952) "\02\00\00\00\08\00\00\001\00e\00-\00x") + (data $154 (i32.const 6972) "\1c") + (data $154.1 (i32.const 6984) "\02\00\00\00\n\00\00\001\00e\00-\001\00x") + (data $155 (i32.const 7004) ",") + (data $155.1 (i32.const 7016) "\02\00\00\00\0e\00\00\000\00.\001\00e\00-\001\00x") + (data $156 (i32.const 7052) "\1c") + (data $156.1 (i32.const 7064) "\02\00\00\00\06\00\00\000\000\00.") + (data $157 (i32.const 7084) "\1c") + (data $157.1 (i32.const 7096) "\02\00\00\00\06\00\00\00.\000\000") + (data $158 (i32.const 7116) "\1c") + (data $158.1 (i32.const 7128) "\02\00\00\00\06\00\00\00.\000\00.") + (data $159 (i32.const 7148) "\1c") + (data $159.1 (i32.const 7160) "\02\00\00\00\06\00\00\00.\001\00.") + (data $160 (i32.const 7180) "\1c") + (data $160.1 (i32.const 7192) "\02\00\00\00\06\00\00\000\00.\00.") + (data $161 (i32.const 7212) "\1c") + (data $161.1 (i32.const 7224) "\02\00\00\00\06\00\00\000\00.\00a") + (data $162 (i32.const 7244) "\1c") + (data $162.1 (i32.const 7256) "\02\00\00\00\08\00\00\001\00.\00.\001") + (data $163 (i32.const 7276) "\1c") + (data $163.1 (i32.const 7288) "\02\00\00\00\n\00\00\000\00.\001\00.\001") + (data $164 (i32.const 7308) "\1c") + (data $164.1 (i32.const 7320) "\02\00\00\00\08\00\00\000\00.\00 \001") + (data $165 (i32.const 7340) "\1c") + (data $165.1 (i32.const 7352) "\02\00\00\00\08\00\00\00+\000\00.\000") + (data $166 (i32.const 7372) "\1c") + (data $166.1 (i32.const 7384) "\02\00\00\00\08\00\00\00-\000\00.\000") + (data $167 (i32.const 7404) "\1c") + (data $167.1 (i32.const 7416) "\02\00\00\00\04\00\00\00+\000") + (data $168 (i32.const 7436) ",") + (data $168.1 (i32.const 7448) "\02\00\00\00\0e\00\00\00-\00.\000\000\000\000\000") + (data $169 (i32.const 7484) "\1c") + (data $169.1 (i32.const 7496) "\02\00\00\00\06\00\00\00-\00-\000") + (data $170 (i32.const 7516) "\1c") + (data $170.1 (i32.const 7528) "\02\00\00\00\06\00\00\00+\00+\000") + (data $171 (i32.const 7548) "\1c") + (data $171.1 (i32.const 7560) "\02\00\00\00\04\00\00\00.\00a") + (data $172 (i32.const 7580) "\1c") + (data $172.1 (i32.const 7592) "\02\00\00\00\06\00\00\00.\00.\000") + (data $173 (i32.const 7612) "\1c") + (data $173.1 (i32.const 7624) "\02\00\00\00\02\00\00\00.") + (data $174 (i32.const 7644) "\1c") + (data $174.1 (i32.const 7656) "\02\00\00\00\04\00\00\00.\00.") + (data $175 (i32.const 7676) "\1c") + (data $175.1 (i32.const 7688) "\02\00\00\00\06\00\00\00N\00a\00N") + (data $176 (i32.const 7708) "\1c") + (data $176.1 (i32.const 7720) "\02\00\00\00\02\00\00\00\0b") + (data $177 (i32.const 7740) "\1c") + (data $177.1 (i32.const 7752) "\02\00\00\00\02\00\00\00\0e\18") + (data $178 (i32.const 7772) "\1c") + (data $178.1 (i32.const 7784) "\02\00\00\00\08\00\00\00\0e\181\00.\001") + (data $179 (i32.const 7804) "\1c") + (data $179.1 (i32.const 7816) "\02\00\00\00\n\00\00\00\0e\18\0e\181\00.\001") + (data $180 (i32.const 7836) "\1c") + (data $180.1 (i32.const 7848) "\02\00\00\00\02\00\00\00\0c") + (data $181 (i32.const 7868) "\1c") + (data $181.1 (i32.const 7880) "\02\00\00\00\08\00\00\00t\00r\00u\00e") + (data $182 (i32.const 7900) "\1c") + (data $182.1 (i32.const 7912) "\02\00\00\00\08\00\00\001\00e\002\002") + (data $183 (i32.const 7932) "\1c") + (data $183.1 (i32.const 7944) "\02\00\00\00\n\00\00\001\00e\00-\002\002") + (data $184 (i32.const 7964) "\1c") + (data $184.1 (i32.const 7976) "\02\00\00\00\08\00\00\001\00e\002\003") + (data $185 (i32.const 7996) "\1c") + (data $185.1 (i32.const 8008) "\02\00\00\00\n\00\00\001\00e\00-\002\003") + (data $186 (i32.const 8028) "\1c") + (data $186.1 (i32.const 8040) "\02\00\00\00\08\00\00\001\00e\003\007") + (data $187 (i32.const 8060) "\1c") + (data $187.1 (i32.const 8072) "\02\00\00\00\n\00\00\001\00e\00-\003\007") + (data $188 (i32.const 8092) "\1c") + (data $188.1 (i32.const 8104) "\02\00\00\00\08\00\00\001\00e\003\008") + (data $189 (i32.const 8124) "\1c") + (data $189.1 (i32.const 8136) "\02\00\00\00\n\00\00\001\00e\00-\003\008") + (data $190 (i32.const 8156) "<") + (data $190.1 (i32.const 8168) "\02\00\00\00*\00\00\002\00.\002\002\000\004\004\006\000\004\009\002\005\000\003\001\003\00e\00-\001\006") + (data $191 (i32.const 8220) "L") + (data $191.1 (i32.const 8232) "\02\00\00\00.\00\00\001\00.\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\007\00e\00+\003\000\008") + (data $192 (i32.const 8300) "\1c") + (data $192.1 (i32.const 8312) "\02\00\00\00\0c\00\00\005\00e\00-\003\002\004") + (data $193 (i32.const 8332) ",") + (data $193.1 (i32.const 8344) "\02\00\00\00\1a\00\00\000\00.\000\000\000\000\000\001\00e\00+\003\001\004") + (data $194 (i32.const 8380) "\8c") + (data $194.1 (i32.const 8392) "\02\00\00\00|\00\00\000\00.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\00e\00+\005\006") + (data $195 (i32.const 8524) ",") + (data $195.1 (i32.const 8536) "\02\00\00\00\0e\00\00\00+\001\00E\00-\003\002\005") + (data $196 (i32.const 8572) ",") + (data $196.1 (i32.const 8584) "\02\00\00\00\0e\00\00\00+\001\00E\00+\003\000\009") + (data $197 (i32.const 8620) ",") + (data $197.1 (i32.const 8632) "\02\00\00\00\0e\00\00\00-\001\00E\00-\003\002\005") + (data $198 (i32.const 8668) ",") + (data $198.1 (i32.const 8680) "\02\00\00\00\0e\00\00\00-\001\00E\00+\003\000\009") + (data $199 (i32.const 8716) ",") + (data $199.1 (i32.const 8728) "\02\00\00\00\14\00\00\001\00e\00-\001\000\000\000\000\000\000") + (data $200 (i32.const 8764) ",") + (data $200.1 (i32.const 8776) "\02\00\00\00\14\00\00\001\00e\00+\001\000\000\000\000\000\000") + (data $201 (i32.const 8812) "\1c") + (data $201.1 (i32.const 8824) "\02\00\00\00\0c\00\00\001\00.\00e\003\006\000") + (data $202 (i32.const 8844) ",") + (data $202.1 (i32.const 8856) "\02\00\00\00\12\00\00\00 \00I\00n\00f\00i\00n\00i\00t\00y") + (data $203 (i32.const 8892) ",") + (data $203.1 (i32.const 8904) "\02\00\00\00\12\00\00\00+\00I\00n\00f\00i\00n\00i\00t\00y") + (data $204 (i32.const 8940) ",") + (data $204.1 (i32.const 8952) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data $205 (i32.const 8988) ",") + (data $205.1 (i32.const 9000) "\02\00\00\00\12\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00x") + (data $206 (i32.const 9036) ",") + (data $206.1 (i32.const 9048) "\02\00\00\00\14\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00+\001") + (data $207 (i32.const 9084) "\1c") + (data $207.1 (i32.const 9096) "\02\00\00\00\08\00\00\00I\00n\00f\00i") + (data $208 (i32.const 9116) ",") + (data $208.1 (i32.const 9128) "\02\00\00\00\10\00\00\00+\00I\00n\00f\00i\00n\00i\00t") + (data $209 (i32.const 9164) ",") + (data $209.1 (i32.const 9176) "\02\00\00\00\10\00\00\00i\00n\00f\00i\00n\00i\00t\00y") + (data $210 (i32.const 9212) "\bc") + (data $210.1 (i32.const 9224) "\02\00\00\00\aa\00\00\00.\002\004\007\000\003\002\008\002\002\009\002\000\006\002\003\002\007\002\000\008\008\002\008\004\003\009\006\004\003\004\001\001\000\006\008\006\001\008\002\005\002\009\009\000\001\003\000\007\001\006\002\003\008\002\002\001\002\007\009\002\008\004\001\002\005\000\003\003\007\007\005\003\006\003\005\001\000\004\003\00e\00-\003\002\003") + (data $211 (i32.const 9404) "\bc") + (data $211.1 (i32.const 9416) "\02\00\00\00\aa\00\00\00.\007\004\001\000\009\008\004\006\008\007\006\001\008\006\009\008\001\006\002\006\004\008\005\003\001\008\009\003\000\002\003\003\002\000\005\008\005\004\007\005\008\009\007\000\003\009\002\001\004\008\007\001\004\006\006\003\008\003\007\008\005\002\003\007\005\001\000\001\003\002\006\000\009\000\005\003\001\003\002\00e\00-\003\002\003") + (data $212 (i32.const 9596) "\bc") + (data $212.1 (i32.const 9608) "\02\00\00\00\aa\00\00\00.\002\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\006\003\000\001\002\003\000\005\005\006\003\007\009\005\005\006\007\006\001\005\002\005\000\003\006\001\002\004\001\004\005\007\003\000\001\008\000\001\003\000\008\003\002\002\008\007\002\004\000\004\009\005\008\006\006\004\007\006\000\006\007\006\000\00e\00-\003\000\007") + (data $213 (i32.const 9788) "\9c") + (data $213.1 (i32.const 9800) "\02\00\00\00\88\00\00\001\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\008\000\007\009\003\007\002\008\009\007\001\004\000\005\003\000\003\004\001\005\000\007\009\009\003\004\001\003\002\007\001\000\000\003\007\008\002\006\009\003\006\001\007\003\007\007\008\009\008\000\004\004") + (data $214 (i32.const 9948) "\9c") + (data $214.1 (i32.const 9960) "\02\00\00\00\88\00\00\004\009\006\008\002\009\002\007\006\004\007\005\000\009\004\006\006\004\009\000\001\007\009\007\007\005\008\007\002\000\007\000\009\006\003\003\000\002\008\006\004\001\006\006\009\002\008\008\007\009\001\000\009\004\006\005\005\005\005\004\007\008\005\001\009\004\000\004") + (data $215 (i32.const 10108) "\9c") + (data $215.1 (i32.const 10120) "\02\00\00\00\88\00\00\000\002\006\003\000\006\005\007\004\008\008\006\007\001\005\000\005\008\002\000\006\008\001\009\000\008\009\000\002\000\000\000\007\000\008\003\008\003\006\007\006\002\007\003\008\005\004\008\004\005\008\001\007\007\001\001\005\003\001\007\006\004\004\007\005\007\003\000") + (data $216 (i32.const 10268) "\9c") + (data $216.1 (i32.const 10280) "\02\00\00\00\88\00\00\002\007\000\000\006\009\008\005\005\005\007\001\003\006\006\009\005\009\006\002\002\008\004\002\009\001\004\008\001\009\008\006\000\008\003\004\009\003\006\004\007\005\002\009\002\007\001\009\000\007\004\001\006\008\004\004\004\003\006\005\005\001\000\007\000\004\003\004") + (data $217 (i32.const 10428) "\9c") + (data $217.1 (i32.const 10440) "\02\00\00\00\88\00\00\002\007\001\001\005\005\009\006\009\009\005\000\008\000\009\003\000\004\002\008\008\000\001\007\007\009\000\004\001\007\004\004\009\007\007\009\001\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009") + (data $218 (i32.const 10588) "l") + (data $218.1 (i32.const 10600) "\02\00\00\00\\\00\00\000\00.\009\007\005\003\005\003\001\008\008\008\007\009\009\005\000\002\006\001\003\008\000\007\001\003\005\002\007\006\001\004\007\001\006\004\004\000\004\003\009\00e\00-\001\000\003") + (data $219 (i32.const 10700) "l") + (data $219.1 (i32.const 10712) "\02\00\00\00X\00\00\00.\005\009\006\001\008\006\000\003\004\008\001\003\001\008\000\007\000\009\001\008\006\001\000\000\002\002\006\006\004\005\003\009\004\001\009\005\000\004\002\008\00e\000\000") + (data $220 (i32.const 10812) "l") + (data $220.1 (i32.const 10824) "\02\00\00\00X\00\00\001\00.\008\001\005\000\001\003\001\006\009\002\001\008\000\003\008\007\002\009\008\008\007\004\006\000\008\009\008\007\003\003\005\002\006\009\005\007\004\004\002\00e\00-\001") + (data $221 (i32.const 10924) "l") + (data $221.1 (i32.const 10936) "\02\00\00\00X\00\00\004\002\00.\000\007\000\008\002\003\005\007\005\003\004\004\005\003\006\000\000\006\008\001\006\001\008\006\008\005\006\008\002\002\005\007\005\009\000\007\007\002\00e\00-\002") + (data $222 (i32.const 11036) "l") + (data $222.1 (i32.const 11048) "\02\00\00\00X\00\00\006\006\005\00.\004\006\008\006\003\000\006\005\001\006\002\006\001\004\005\006\003\002\008\009\007\003\002\002\005\005\007\009\008\003\003\004\007\000\008\001\006\00e\00-\003") + (data $223 (i32.const 11148) "l") + (data $223.1 (i32.const 11160) "\02\00\00\00X\00\00\006\001\000\001\00.\008\005\002\009\002\002\009\007\000\008\006\008\006\002\001\007\008\006\006\009\000\004\009\005\004\008\005\004\004\009\008\003\001\007\005\003\00e\00-\004") + (data $224 (i32.const 11260) "l") + (data $224.1 (i32.const 11272) "\02\00\00\00X\00\00\007\006\009\006\006\00.\009\005\002\000\008\002\003\006\009\006\008\000\007\007\008\004\009\004\006\004\003\004\008\008\007\005\004\007\001\001\005\008\005\004\009\00e\00-\005") + (data $225 (i32.const 11372) "l") + (data $225.1 (i32.const 11384) "\02\00\00\00X\00\00\002\005\000\005\000\006\00.\005\003\002\002\002\002\008\006\008\002\004\009\006\001\003\002\006\000\004\008\000\007\002\002\002\009\002\003\007\000\002\003\000\004\00e\00-\006") + (data $226 (i32.const 11484) "l") + (data $226.1 (i32.const 11496) "\02\00\00\00X\00\00\002\007\004\000\000\003\007\00.\002\003\000\002\002\008\000\000\005\003\002\005\008\005\002\004\002\004\006\009\007\006\009\008\003\003\001\001\007\007\003\007\007\00e\00-\007") + (data $227 (i32.const 11596) "l") + (data $227.1 (i32.const 11608) "\02\00\00\00X\00\00\002\000\007\002\003\000\009\003\00.\005\000\000\004\009\007\004\002\006\004\005\009\004\001\005\002\009\002\006\008\007\001\005\004\002\008\003\002\004\004\009\000\00e\00-\008") + (data $228 (i32.const 11708) "l") + (data $228.1 (i32.const 11720) "\02\00\00\00X\00\00\000\00.\007\009\000\000\002\008\000\002\003\008\000\008\001\006\000\004\009\005\006\002\002\006\000\001\001\000\004\007\004\006\000\002\003\008\007\004\008\009\001\002\00e\001") + (data $229 (i32.const 11820) "l") + (data $229.1 (i32.const 11832) "\02\00\00\00X\00\00\000\00.\009\008\002\002\008\006\000\006\005\003\007\003\007\002\009\006\008\004\008\001\009\000\005\005\008\004\004\008\007\006\000\004\006\005\008\006\003\005\009\007\00e\002") + (data $230 (i32.const 11932) "l") + (data $230.1 (i32.const 11944) "\02\00\00\00X\00\00\000\00.\007\004\006\008\009\004\009\007\002\003\001\009\000\003\007\000\008\000\009\004\000\005\005\007\000\005\006\000\001\006\000\004\000\005\003\002\004\008\006\009\00e\003") + (data $231 (i32.const 12044) "l") + (data $231.1 (i32.const 12056) "\02\00\00\00X\00\00\000\00.\001\006\003\000\002\006\008\003\002\000\002\008\002\007\002\008\004\007\005\009\008\000\004\005\009\008\004\004\002\007\001\000\003\001\007\005\001\006\006\005\00e\004") + (data $232 (i32.const 12156) "l") + (data $232.1 (i32.const 12168) "\02\00\00\00X\00\00\000\00.\004\006\003\007\001\006\008\006\002\009\007\001\009\001\007\000\006\009\005\001\000\009\009\001\008\007\006\009\006\004\005\004\009\002\000\002\002\000\008\008\00e\005") + (data $233 (i32.const 12268) "l") + (data $233.1 (i32.const 12280) "\02\00\00\00X\00\00\000\00.\006\005\003\007\008\000\005\009\004\004\004\009\007\007\001\001\005\005\004\002\000\009\004\006\001\006\008\006\004\001\005\008\007\002\000\006\007\005\002\003\00e\006") + (data $234 (i32.const 12380) "l") + (data $234.1 (i32.const 12392) "\02\00\00\00X\00\00\000\00.\002\003\004\006\003\002\004\003\005\006\005\000\002\004\003\007\000\004\005\002\001\002\002\003\000\007\001\003\009\006\000\004\005\007\006\007\006\005\003\001\00e\006") + (data $235 (i32.const 12492) "l") + (data $235.1 (i32.const 12504) "\02\00\00\00X\00\00\000\00.\009\007\000\009\004\008\001\007\001\006\004\002\000\000\004\008\003\004\001\008\009\007\002\005\008\009\008\000\004\005\004\002\009\008\002\000\005\002\007\008\00e\008") + (data $236 (i32.const 12604) "l") + (data $236.1 (i32.const 12616) "\02\00\00\00X\00\00\000\00.\004\009\009\006\009\000\008\005\002\002\000\005\001\008\007\004\001\001\000\007\007\009\009\008\002\003\005\004\009\003\002\004\009\009\004\009\009\006\000\002\00e\009") + (data $237 (i32.const 12716) "l") + (data $237.1 (i32.const 12728) "\02\00\00\00Z\00\00\000\00.\007\009\002\005\002\000\001\002\000\000\005\005\007\002\004\005\008\006\001\009\004\004\000\001\001\002\006\007\000\004\001\007\008\007\005\000\005\001\004\009\00e\002\002") + (data $238 (i32.const 12828) "l") + (data $238.1 (i32.const 12840) "\02\00\00\00Z\00\00\000\00.\006\000\009\006\005\006\004\005\008\005\009\008\003\001\007\007\004\000\008\009\003\004\003\005\002\005\007\000\002\001\003\003\007\007\004\007\005\007\003\009\00e\003\000") + (data $239 (i32.const 12940) "l") + (data $239.1 (i32.const 12952) "\02\00\00\00Z\00\00\000\00.\004\008\000\000\004\001\006\001\001\007\004\007\007\000\002\008\007\008\007\008\007\004\003\006\000\002\000\005\000\002\003\005\004\009\004\009\007\001\002\008\00e\006\007") + (data $240 (i32.const 13052) "l") + (data $240.1 (i32.const 13064) "\02\00\00\00\\\00\00\000\00.\008\005\002\004\008\002\009\000\007\009\008\001\007\009\006\008\002\002\004\008\003\000\003\003\007\009\003\001\000\005\002\007\008\001\006\004\001\004\008\003\00e\001\000\005") + (data $241 (i32.const 13164) "l") + (data $241.1 (i32.const 13176) "\02\00\00\00\\\00\00\000\00.\000\003\002\007\001\002\003\009\002\009\001\007\000\009\007\008\002\001\001\005\004\004\007\000\006\009\003\007\002\007\004\008\009\005\006\000\008\004\002\005\00e\002\006\009") + (data $242 (i32.const 13276) "\1c") + (data $242.1 (i32.const 13288) "\02\00\00\00\06\00\00\00 \00\t\00\n") + (data $243 (i32.const 13308) "\1c") + (data $243.1 (i32.const 13320) "\02\00\00\00\0c\00\00\00 \00\t\00\n\00\r\00.\001") + (data $244 (i32.const 13340) "\1c") + (data $244.1 (i32.const 13352) "\02\00\00\00\02\00\00\00b") + (data $245 (i32.const 13372) "\1c") + (data $245.1 (i32.const 13384) "\02\00\00\00\04\00\00\00a\00b") + (data $246 (i32.const 13404) "\1c") + (data $246.1 (i32.const 13416) "\02\00\00\00\08\00\00\00k\00e\00y\001") + (data $247 (i32.const 13436) "\1c") + (data $247.1 (i32.const 13448) "\02\00\00\00\08\00\00\00k\00e\00y\002") + (data $248 (i32.const 13468) "\1c") + (data $248.1 (i32.const 13480) "\02\00\00\00\06\00\00\00k\00e\001") + (data $249 (i32.const 13500) "\1c") + (data $249.1 (i32.const 13512) "\02\00\00\00\06\00\00\00k\00e\002") + (data $250 (i32.const 13532) "\1c") + (data $250.1 (i32.const 13544) "\02\00\00\00\n\00\00\00k\00e\00y\001\002") + (data $251 (i32.const 13564) "\1c") + (data $251.1 (i32.const 13576) "\02\00\00\00\n\00\00\00k\00e\00y\001\001") + (data $252 (i32.const 13596) ",") + (data $252.1 (i32.const 13608) "\02\00\00\00\0e\00\00\00\a40\ed0\cf0\cb0\db0\d80\c80") + (data $253 (i32.const 13644) ",") + (data $253.1 (i32.const 13656) "\02\00\00\00\0e\00\00\00\a60\f00\ce0\aa0\af0\e40\de0") + (data $254 (i32.const 13692) ",") + (data $254.1 (i32.const 13704) "\02\00\00\00\16\00\00\00D\00\19 f\00h\00u\00a\00s\00c\00a\00i\00l") + (data $255 (i32.const 13740) ",") + (data $255.1 (i32.const 13752) "\02\00\00\00\14\00\00\00D\00\19 \1f\1eu\00a\00s\00c\00a\00i\00l") + (data $256 (i32.const 13788) "\1c") + (data $256.1 (i32.const 13800) "\02\00\00\00\04\00\00\00b\00a") + (data $257 (i32.const 13820) "\1c") + (data $257.1 (i32.const 13832) "\02\00\00\00\04\00\00\00a\00a") + (data $258 (i32.const 13852) "\1c") + (data $258.1 (i32.const 13864) "\02\00\00\00\04\00\00\001\000") + (data $259 (i32.const 13884) "\1c") + (data $259.1 (i32.const 13896) "\02\00\00\00\04\00\00\001\001") + (data $260 (i32.const 13916) "\1c") + (data $260.1 (i32.const 13928) "\02\00\00\00\06\00\00\001\000\001") + (data $261 (i32.const 13948) "\1c") + (data $261.1 (i32.const 13960) "\02\00\00\00\06\00\00\001\002\002") + (data $262 (i32.const 13980) "\1c") + (data $262.1 (i32.const 13992) "\02\00\00\00\08\00\00\001\002\003\004") + (data $263 (i32.const 14012) "\1c") + (data $263.1 (i32.const 14024) "\02\00\00\00\08\00\00\001\002\003\003") + (data $264 (i32.const 14044) ",") + (data $264.1 (i32.const 14056) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $265 (i32.const 14092) "\1c") + (data $265.1 (i32.const 14104) "\02\00\00\00\06\00\00\00a\00a\00a") + (data $266 (i32.const 14124) ",") + (data $266.1 (i32.const 14136) "\02\00\00\00\10\00\00\00a\00b\00a\00b\00a\00b\00a\00b") + (data $267 (i32.const 14172) "\1c") + (data $267.1 (i32.const 14184) "\02\00\00\00\n\00\00\00a\00a\00a\00a\00a") + (data $268 (i32.const 14204) "\1c") + (data $268.1 (i32.const 14216) "\02\00\00\00\0c\00\00\00a\00a\00a\00a\00a\00a") + (data $269 (i32.const 14236) ",") + (data $269.1 (i32.const 14248) "\02\00\00\00\0e\00\00\00a\00a\00a\00a\00a\00a\00a") + (data $270 (i32.const 14284) "\1c") + (data $270.1 (i32.const 14296) "\02\00\00\00\n\00\00\00a\00-\00b\00-\00c") + (data $271 (i32.const 14316) "\1c") + (data $271.1 (i32.const 14328) "\02\00\00\00\n\00\00\00a\00+\00b\00-\00c") + (data $272 (i32.const 14348) "\1c") + (data $272.1 (i32.const 14360) "\02\00\00\00\08\00\00\00+\00a\00b\00c") + (data $273 (i32.const 14380) "\1c") + (data $273.1 (i32.const 14392) "\02\00\00\00\08\00\00\00\n\00a\00b\00c") + (data $274 (i32.const 14412) "\1c") + (data $274.1 (i32.const 14424) "\02\00\00\00\02\00\00\00\n") + (data $275 (i32.const 14444) "\1c") + (data $275.1 (i32.const 14456) "\02\00\00\00\02\00\00\00c") + (data $276 (i32.const 14476) "\1c") + (data $276.1 (i32.const 14488) "\02\00\00\00\04\00\00\00+\00+") + (data $277 (i32.const 14508) "\1c") + (data $277.1 (i32.const 14520) "\02\00\00\00\08\00\00\00a\00b\00+\00+") + (data $278 (i32.const 14540) ",") + (data $278.1 (i32.const 14552) "\02\00\00\00\12\00\00\00a\00b\00c\00a\00b\00c\00a\00b\00c") + (data $279 (i32.const 14588) "\1c") + (data $279.1 (i32.const 14600) "\02\00\00\00\06\00\00\00+\00+\00+") + (data $280 (i32.const 14620) ",") + (data $280.1 (i32.const 14632) "\02\00\00\00\0e\00\00\00a\00b\00c\00a\00b\00c\00a") + (data $281 (i32.const 14668) ",") + (data $281.1 (i32.const 14680) "\02\00\00\00\1a\00\00\00+\00+\00+\00b\00c\00+\00+\00+\00b\00c\00+\00+\00+") + (data $282 (i32.const 14716) "\1c") + (data $282.1 (i32.const 14728) "\02\00\00\00\0c\00\00\00+\00+\00c\00+\00+\00c") + (data $283 (i32.const 14748) "\1c") + (data $283.1 (i32.const 14760) "\02\00\00\00\08\00\00\00c\00c\00c\00c") + (data $284 (i32.const 14780) "\1c") + (data $284.1 (i32.const 14792) "\02\00\00\00\04\00\00\00c\00c") + (data $285 (i32.const 14812) "\1c") + (data $285.1 (i32.const 14824) "\02\00\00\00\08\00\00\00+\00+\00+\00+") + (data $286 (i32.const 14844) "\1c") + (data $286.1 (i32.const 14856) "\02\00\00\00\02\00\00\00e") + (data $287 (i32.const 14876) "\1c") + (data $287.1 (i32.const 14888) "\02\00\00\00\04\00\00\00b\00c") + (data $288 (i32.const 14908) "\1c") + (data $288.1 (i32.const 14920) "\02\00\00\00\04\00\00\00a\00+") + (data $289 (i32.const 14940) "\1c") + (data $289.1 (i32.const 14952) "\02\00\00\00\n\00\00\00a\00+\00b\00+\00c") + (data $290 (i32.const 14972) ",") + (data $290.1 (i32.const 14984) "\02\00\00\00\0e\00\00\00+\00a\00+\00b\00+\00c\00+") + (data $291 (i32.const 15020) "\1c") + (data $291.1 (i32.const 15032) "\02\00\00\00\n\00\00\00a\00b\00c\00d\00e") + (data $292 (i32.const 15052) "\1c") + (data $292.1 (i32.const 15064) "\02\00\00\00\06\00\00\00-\00-\00-") + (data $293 (i32.const 15084) ",") + (data $293.1 (i32.const 15096) "\02\00\00\00\0e\00\00\00-\00-\00-\00b\00c\00d\00e") + (data $294 (i32.const 15132) "\1c") + (data $294.1 (i32.const 15144) "\02\00\00\00\n\00\00\00-\00-\00-\00-\00-") + (data $295 (i32.const 15164) "\1c") + (data $295.1 (i32.const 15176) "\02\00\00\00\08\00\00\00-\00-\00-\00-") + (data $296 (i32.const 15196) ",") + (data $296.1 (i32.const 15208) "\02\00\00\00\18\00\00\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-\00-") + (data $297 (i32.const 15244) "\1c") + (data $297.1 (i32.const 15256) "\02\00\00\00\08\00\00\00-\00-\00-\00a") + (data $298 (i32.const 15276) ",") + (data $298.1 (i32.const 15288) "\02\00\00\00\1c\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n") + (data $299 (i32.const 15324) "\1c") + (data $299.1 (i32.const 15336) "\02\00\00\00\02\00\00\00n") + (data $300 (i32.const 15356) "\1c") + (data $300.1 (i32.const 15368) "\02\00\00\00\n\00\00\00j\00k\00l\00m\00n") + (data $301 (i32.const 15388) "\1c") + (data $301.1 (i32.const 15400) "\02\00\00\00\n\00\00\00c\00d\00e\00f\00g") + (data $302 (i32.const 15420) "\1c") + (data $302.1 (i32.const 15432) "\02\00\00\00\n\00\00\00d\00e\00f\00g\00h") + (data $303 (i32.const 15452) ",") + (data $303.1 (i32.const 15464) "\02\00\00\00\1a\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m") + (data $304 (i32.const 15500) ",") + (data $304.1 (i32.const 15512) "\02\00\00\00\0e\00\00\00c\00d\00e\00f\00g\00h\00i") + (data $305 (i32.const 15548) "\1c") + (data $305.1 (i32.const 15560) "\02\00\00\00\06\00\00\00e\00f\00g") + (data $306 (i32.const 15580) "\1c") + (data $306.1 (i32.const 15592) "\02\00\00\00\08\00\00\00e\00f\00g\00h") + (data $307 (i32.const 15612) "\1c") + (data $307.1 (i32.const 15624) "\02\00\00\00\02\00\00\00d") + (data $308 (i32.const 15644) ",") + (data $308.1 (i32.const 15656) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $309 (i32.const 15692) "|") + (data $309.1 (i32.const 15704) "\02\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 $310 (i32.const 15820) "\1c") + (data $310.1 (i32.const 15832) "\02\00\00\00\n\00\00\00a\00,\00b\00,\00c") + (data $311 (i32.const 15852) ",") + (data $311.1 (i32.const 15864) "\02\00\00\00\0e\00\00\00a\00,\00 \00b\00,\00 \00c") + (data $312 (i32.const 15900) "\1c") + (data $312.1 (i32.const 15912) "\02\00\00\00\04\00\00\00,\00 ") + (data $313 (i32.const 15932) "\1c") + (data $313.1 (i32.const 15944) "\02\00\00\00\0c\00\00\00a\00,\00b\00,\00,\00c") + (data $314 (i32.const 15964) "\1c") + (data $314.1 (i32.const 15976) "\02\00\00\00\0c\00\00\00,\00a\00,\00b\00,\00c") + (data $315 (i32.const 15996) "\1c") + (data $315.1 (i32.const 16008) "\02\00\00\00\0c\00\00\00a\00,\00b\00,\00c\00,") + (data $316 (i32.const 16028) "|") + (data $316.1 (i32.const 16040) "\02\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 $317 (i32.const 16156) "<") + (data $317.1 (i32.const 16168) "\02\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 $318 (i32.const 16220) "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 $319 (i32.const 16620) "\1c\04") + (data $319.1 (i32.const 16632) "\02\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 $320 (i32.const 17676) "\\") + (data $320.1 (i32.const 17688) "\02\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 $321 (i32.const 17772) "\1c") + (data $321.1 (i32.const 17784) "\02\00\00\00\02\00\00\008") + (data $322 (i32.const 17804) "\1c") + (data $322.1 (i32.const 17816) "\02\00\00\00\04\00\00\001\002") + (data $323 (i32.const 17836) "\1c") + (data $323.1 (i32.const 17848) "\02\00\00\00\n\00\00\00-\001\000\000\000") + (data $324 (i32.const 17868) "\1c") + (data $324.1 (i32.const 17880) "\02\00\00\00\n\00\00\001\002\003\004\005") + (data $325 (i32.const 17900) "\1c") + (data $325.1 (i32.const 17912) "\02\00\00\00\0c\00\00\001\002\003\004\005\006") + (data $326 (i32.const 17932) ",") + (data $326.1 (i32.const 17944) "\02\00\00\00\0e\00\00\001\001\001\001\001\001\001") + (data $327 (i32.const 17980) ",") + (data $327.1 (i32.const 17992) "\02\00\00\00\0e\00\00\001\002\003\004\005\006\007") + (data $328 (i32.const 18028) ",") + (data $328.1 (i32.const 18040) "\02\00\00\00\10\00\00\001\002\003\004\005\006\007\008") + (data $329 (i32.const 18076) ",") + (data $329.1 (i32.const 18088) "\02\00\00\00\12\00\00\001\002\003\004\005\006\007\008\009") + (data $330 (i32.const 18124) ",") + (data $330.1 (i32.const 18136) "\02\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\006") + (data $331 (i32.const 18172) ",") + (data $331.1 (i32.const 18184) "\02\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\007") + (data $332 (i32.const 18220) ",") + (data $332.1 (i32.const 18232) "\02\00\00\00\16\00\00\00-\002\001\004\007\004\008\003\006\004\008") + (data $333 (i32.const 18268) "\1c") + (data $333.1 (i32.const 18280) "\02\00\00\00\04\00\00\00-\001") + (data $334 (i32.const 18300) "\1c") + (data $334.1 (i32.const 18312) "\02\00\00\00\08\00\00\00-\001\002\008") + (data $335 (i32.const 18332) "\1c") + (data $335.1 (i32.const 18344) "\02\00\00\00\0c\00\00\00-\003\002\007\006\008") + (data $336 (i32.const 18364) "\1c") + (data $336.1 (i32.const 18376) "\02\00\00\00\08\00\00\001\000\000\000") + (data $337 (i32.const 18396) ",") + (data $337.1 (i32.const 18408) "\02\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\008") + (data $338 (i32.const 18444) ",") + (data $338.1 (i32.const 18456) "\02\00\00\00\14\00\00\004\002\009\004\009\006\007\002\009\005") (data $339 (i32.const 18492) "\1c") - (data $339.1 (i32.const 18504) "\02\00\00\00\0c\00\00\00-\003\002\007\006\008") + (data $339.1 (i32.const 18504) "\02\00\00\00\04\00\00\007\00b") (data $340 (i32.const 18524) "\1c") - (data $340.1 (i32.const 18536) "\02\00\00\00\08\00\00\001\000\000\000") - (data $341 (i32.const 18556) ",") - (data $341.1 (i32.const 18568) "\02\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\008") - (data $342 (i32.const 18604) ",") - (data $342.1 (i32.const 18616) "\02\00\00\00\14\00\00\004\002\009\004\009\006\007\002\009\005") - (data $343 (i32.const 18652) "\1c") - (data $343.1 (i32.const 18664) "\02\00\00\00\04\00\00\007\00b") - (data $344 (i32.const 18684) "\1c") - (data $344.1 (i32.const 18696) "\02\00\00\00\06\00\00\004\00d\002") - (data $345 (i32.const 18716) "\1c") - (data $345.1 (i32.const 18728) "\02\00\00\00\08\00\00\003\000\003\009") - (data $346 (i32.const 18748) "\1c") - (data $346.1 (i32.const 18760) "\02\00\00\00\n\00\00\001\00e\002\004\000") - (data $347 (i32.const 18780) "\1c") - (data $347.1 (i32.const 18792) "\02\00\00\00\0c\00\00\001\000\00f\004\004\007") - (data $348 (i32.const 18812) "\1c") - (data $348.1 (i32.const 18824) "\02\00\00\00\0c\00\00\001\002\00d\006\008\007") - (data $349 (i32.const 18844) "\1c") - (data $349.1 (i32.const 18856) "\02\00\00\00\0c\00\00\00b\00c\006\001\004\00e") - (data $350 (i32.const 18876) ",") - (data $350.1 (i32.const 18888) "\02\00\00\00\0e\00\00\007\005\00b\00c\00d\001\005") - (data $351 (i32.const 18924) ",") - (data $351.1 (i32.const 18936) "\02\00\00\00\10\00\00\007\00f\00f\00f\00f\00f\00f\00e") - (data $352 (i32.const 18972) ",") - (data $352.1 (i32.const 18984) "\02\00\00\00\10\00\00\007\00f\00f\00f\00f\00f\00f\00f") - (data $353 (i32.const 19020) ",") - (data $353.1 (i32.const 19032) "\02\00\00\00\10\00\00\008\000\000\000\000\000\000\000") - (data $354 (i32.const 19068) ",") - (data $354.1 (i32.const 19080) "\02\00\00\00\10\00\00\00f\00f\00f\00f\00f\00f\00f\00f") - (data $355 (i32.const 19116) ",") - (data $355.1 (i32.const 19128) "\02\00\00\00\12\00\00\00-\007\00f\00f\00f\00f\00f\00f\00f") - (data $356 (i32.const 19164) ",") - (data $356.1 (i32.const 19176) "\02\00\00\00\10\00\00\00-\00f\00f\00f\00f\00f\00f\00f") - (data $357 (i32.const 19212) ",") - (data $357.1 (i32.const 19224) "\02\00\00\00\12\00\00\00-\008\000\000\000\000\000\000\000") - (data $358 (i32.const 19260) "\1c") - (data $358.1 (i32.const 19272) "\02\00\00\00\06\00\00\001\001\001") - (data $359 (i32.const 19292) "\1c") - (data $359.1 (i32.const 19304) "\02\00\00\00\08\00\00\001\001\001\000") - (data $360 (i32.const 19324) "\1c") - (data $360.1 (i32.const 19336) "\02\00\00\00\n\00\00\001\001\001\000\001") - (data $361 (i32.const 19356) "\1c") - (data $361.1 (i32.const 19368) "\02\00\00\00\0c\00\00\001\001\001\000\001\001") - (data $362 (i32.const 19388) ",") - (data $362.1 (i32.const 19400) "\02\00\00\00\18\00\00\001\001\001\001\001\001\001\001\001\001\001\001") - (data $363 (i32.const 19436) "L") - (data $363.1 (i32.const 19448) "\02\00\00\002\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001") - (data $364 (i32.const 19516) "\\") - (data $364.1 (i32.const 19528) "\02\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\000") - (data $365 (i32.const 19612) "\\") - (data $365.1 (i32.const 19624) "\02\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\000") - (data $366 (i32.const 19708) "\\") - (data $366.1 (i32.const 19720) "\02\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000") - (data $367 (i32.const 19804) "\\") - (data $367.1 (i32.const 19816) "\02\00\00\00@\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001") - (data $368 (i32.const 19900) ",") - (data $368.1 (i32.const 19912) "\02\00\00\00\18\00\00\00-\001\001\001\001\001\001\001\001\001\001\001") - (data $369 (i32.const 19948) "<") - (data $369.1 (i32.const 19960) "\02\00\00\00*\00\00\001\000\002\000\000\002\000\002\002\002\000\001\002\002\001\001\001\001\002\001\000") - (data $370 (i32.const 20012) "<") - (data $370.1 (i32.const 20024) "\02\00\00\00 \00\00\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003") - (data $371 (i32.const 20076) ",") - (data $371.1 (i32.const 20088) "\02\00\00\00\1c\00\00\003\002\002\004\004\000\000\002\004\002\003\001\004\000") - (data $372 (i32.const 20124) ",") - (data $372.1 (i32.const 20136) "\02\00\00\00\16\00\00\003\007\007\007\007\007\007\007\007\007\007") - (data $373 (i32.const 20172) ",") - (data $373.1 (i32.const 20184) "\02\00\00\00\14\00\00\001\009\000\004\004\004\000\005\005\003") - (data $374 (i32.const 20220) ",") - (data $374.1 (i32.const 20232) "\02\00\00\00\12\00\00\001\00a\002\000\00d\00c\00d\008\000") - (data $375 (i32.const 20268) ",") - (data $375.1 (i32.const 20280) "\02\00\00\00\10\00\00\00a\007\00f\00f\00d\00a\009\000") - (data $376 (i32.const 20316) ",") - (data $376.1 (i32.const 20328) "\02\00\00\00\10\00\00\002\008\001\00d\005\005\00i\003") - (data $377 (i32.const 20364) ",") - (data $377.1 (i32.const 20376) "\02\00\00\00\0e\00\00\00b\002\008\00j\00p\00d\00l") - (data $378 (i32.const 20412) ",") - (data $378.1 (i32.const 20424) "\02\00\00\00\0e\00\00\003\00v\00v\00v\00v\00v\00v") - (data $379 (i32.const 20460) ",") - (data $379.1 (i32.const 20472) "\02\00\00\00\0e\00\00\001\00z\001\004\001\00z\003") - (data $380 (i32.const 20508) ",") - (data $380.1 (i32.const 20520) "\02\00\00\00\10\00\00\009\009\009\009\009\009\009\009") - (data $381 (i32.const 20556) ",") - (data $381.1 (i32.const 20568) "\02\00\00\00\12\00\00\001\000\000\000\000\000\000\000\000") - (data $382 (i32.const 20604) ",") - (data $382.1 (i32.const 20616) "\02\00\00\00\14\00\00\004\002\009\004\009\006\007\002\009\007") - (data $383 (i32.const 20652) ",") - (data $383.1 (i32.const 20664) "\02\00\00\00\16\00\00\006\008\007\001\009\004\007\006\007\003\005") - (data $384 (i32.const 20700) ",") - (data $384.1 (i32.const 20712) "\02\00\00\00\18\00\00\008\006\008\007\001\009\004\007\006\007\003\005") - (data $385 (i32.const 20748) ",") - (data $385.1 (i32.const 20760) "\02\00\00\00\1a\00\00\008\006\008\007\001\009\004\007\006\007\003\005\000") - (data $386 (i32.const 20796) ",") - (data $386.1 (i32.const 20808) "\02\00\00\00\1c\00\00\008\006\008\007\001\009\004\007\006\007\003\005\000\001") - (data $387 (i32.const 20844) "<") - (data $387.1 (i32.const 20856) "\02\00\00\00\1e\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data $388 (i32.const 20908) "<") - (data $388.1 (i32.const 20920) "\02\00\00\00 \00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data $389 (i32.const 20972) "<") - (data $389.1 (i32.const 20984) "\02\00\00\00\"\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data $390 (i32.const 21036) "<") - (data $390.1 (i32.const 21048) "\02\00\00\00$\00\00\001\002\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data $391 (i32.const 21100) "<") - (data $391.1 (i32.const 21112) "\02\00\00\00&\00\00\001\002\003\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data $392 (i32.const 21164) "<") - (data $392.1 (i32.const 21176) "\02\00\00\00(\00\00\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005") - (data $393 (i32.const 21228) "\1c") - (data $393.1 (i32.const 21240) "\02\00\00\00\n\00\00\00-\001\002\003\004") - (data $394 (i32.const 21260) ",") - (data $394.1 (i32.const 21272) "\02\00\00\00\16\00\00\00-\004\002\009\004\009\006\007\002\009\005") - (data $395 (i32.const 21308) ",") - (data $395.1 (i32.const 21320) "\02\00\00\00\18\00\00\00-\006\008\007\001\009\004\007\006\007\003\005") - (data $396 (i32.const 21356) ",") - (data $396.1 (i32.const 21368) "\02\00\00\00\1a\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005") - (data $397 (i32.const 21404) "<") - (data $397.1 (i32.const 21416) "\02\00\00\00 \00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data $398 (i32.const 21468) "<") - (data $398.1 (i32.const 21480) "\02\00\00\00$\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data $399 (i32.const 21532) "<") - (data $399.1 (i32.const 21544) "\02\00\00\00&\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") - (data $400 (i32.const 21596) "<") - (data $400.1 (i32.const 21608) "\02\00\00\00(\00\00\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008") - (data $401 (i32.const 21660) ",") - (data $401.1 (i32.const 21672) "\02\00\00\00\12\00\00\001\00f\00f\00f\00f\00f\00f\00f\00f") - (data $402 (i32.const 21708) ",") - (data $402.1 (i32.const 21720) "\02\00\00\00\16\00\00\005\006\007\008\009\00a\00b\00c\00d\00e\001") - (data $403 (i32.const 21756) ",") - (data $403.1 (i32.const 21768) "\02\00\00\00\18\00\00\004\005\006\007\008\009\00a\00b\00c\00d\00e\001") - (data $404 (i32.const 21804) ",") - (data $404.1 (i32.const 21816) "\02\00\00\00\1a\00\00\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f") - (data $405 (i32.const 21852) ",") - (data $405.1 (i32.const 21864) "\02\00\00\00\1c\00\00\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f") - (data $406 (i32.const 21900) "<") - (data $406.1 (i32.const 21912) "\02\00\00\00\1e\00\00\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f") - (data $407 (i32.const 21964) "<") - (data $407.1 (i32.const 21976) "\02\00\00\00 \00\00\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\000") - (data $408 (i32.const 22028) "<") - (data $408.1 (i32.const 22040) "\02\00\00\00 \00\00\007\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f") - (data $409 (i32.const 22092) "<") - (data $409.1 (i32.const 22104) "\02\00\00\00 \00\00\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f") - (data $410 (i32.const 22156) "<") - (data $410.1 (i32.const 22168) "\02\00\00\00\"\00\00\00-\007\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f\00f") - (data $411 (i32.const 22220) "<") - (data $411.1 (i32.const 22232) "\02\00\00\00\"\00\00\00-\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") - (data $412 (i32.const 22284) "|") - (data $412.1 (i32.const 22296) "\02\00\00\00b\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001") - (data $413 (i32.const 22412) "\9c") - (data $413.1 (i32.const 22424) "\02\00\00\00\80\00\00\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001") - (data $414 (i32.const 22572) "\\") - (data $414.1 (i32.const 22584) "\02\00\00\00D\00\00\00-\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001") - (data $415 (i32.const 22668) "l") - (data $415.1 (i32.const 22680) "\02\00\00\00R\00\00\001\001\001\001\002\002\002\000\000\002\002\001\002\002\001\002\000\001\000\001\002\001\001\000\002\000\001\002\000\002\001\000\002\001\000\002\001\001\002\002\000") - (data $416 (i32.const 22780) "\\") - (data $416.1 (i32.const 22792) "\02\00\00\00@\00\00\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003") - (data $417 (i32.const 22876) "L") - (data $417.1 (i32.const 22888) "\02\00\00\008\00\00\002\002\001\004\002\002\000\003\000\003\001\001\004\004\000\000\004\002\004\001\002\001\001\002\002\004\003\000") - (data $418 (i32.const 22956) "<") - (data $418.1 (i32.const 22968) "\02\00\00\00,\00\00\001\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007") - (data $419 (i32.const 23020) "<") - (data $419.1 (i32.const 23032) "\02\00\00\00&\00\00\003\003\005\005\000\000\005\001\006\00a\004\002\009\000\007\001\002\008\004") - (data $420 (i32.const 23084) "<") - (data $420.1 (i32.const 23096) "\02\00\00\00\"\00\00\002\00c\001\00d\005\006\00b\006\004\008\00c\006\00c\00d\001\001\000") - (data $421 (i32.const 23148) "<") - (data $421.1 (i32.const 23160) "\02\00\00\00 \00\00\006\007\009\007\009\00g\006\000\00f\005\004\002\008\000\001\000") - (data $422 (i32.const 23212) "<") - (data $422.1 (i32.const 23224) "\02\00\00\00\1e\00\00\005\00e\008\00g\004\00g\00g\00g\007\00g\005\006\00d\00i\00f") - (data $423 (i32.const 23276) ",") - (data $423.1 (i32.const 23288) "\02\00\00\00\1c\00\00\004\00e\00o\008\00h\00f\00a\00m\006\00f\00l\00l\00m\00o") - (data $424 (i32.const 23324) ",") - (data $424.1 (i32.const 23336) "\02\00\00\00\1a\00\00\00f\00v\00v\00v\00v\00v\00v\00v\00v\00v\00v\00v\00v") - (data $425 (i32.const 23372) ",") - (data $425.1 (i32.const 23384) "\02\00\00\00\1a\00\00\003\00w\005\00e\001\001\002\006\004\00s\00g\00s\00f") - (data $426 (i32.const 23420) "\1c") - (data $426.1 (i32.const 23432) "\02\00\00\00\06\00\00\000\00.\000") - (data $427 (i32.const 23452) ",") - (data $427.1 (i32.const 23464) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data $429 (i32.const 23560) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\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#push end local.get $5 @@ -9979,13 +9908,13 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 1184 + i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end br $folding-inner4 end - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10018,11 +9947,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s if - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10067,11 +9996,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s if - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10088,9 +10017,9 @@ i32.load offset=12 i32.ge_u if - i32.const 1408 - i32.const 17568 - i32.const 114 + i32.const 1264 + i32.const 15664 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -10111,9 +10040,9 @@ local.get $0 i32.eqz if - i32.const 17616 - i32.const 17568 - i32.const 118 + i32.const 15712 + i32.const 15664 + i32.const 120 i32.const 40 call $~lib/builtins/abort unreachable @@ -10138,87 +10067,55 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 76 memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 59564 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/pinSpace - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/toSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 - i32.store - i32.const 1504 - global.set $~lib/rt/itcms/fromSpace global.get $std/string/str i32.const 1056 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 8 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3536 - i32.const 3536 + i32.const 1168 + i32.const 1168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 10 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3568 - i32.const 3568 + i32.const 1200 + i32.const 1200 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 11 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3600 - i32.const 3600 + i32.const 1232 + i32.const 1232 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -10238,7 +10135,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -10253,7 +10150,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10262,7 +10159,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/string/String#charCodeAt$295 + block $__inlined_func$~lib/string/String#charCodeAt$293 local.get $0 i32.const 20 i32.sub @@ -10277,7 +10174,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/string/String#charCodeAt$295 + br $__inlined_func$~lib/string/String#charCodeAt$293 end local.get $0 i32.load16_u @@ -10292,7 +10189,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -10307,7 +10204,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10316,7 +10213,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - block $__inlined_func$~lib/string/String#codePointAt$296 + block $__inlined_func$~lib/string/String#codePointAt$294 local.get $4 i32.const 20 i32.sub @@ -10333,7 +10230,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/string/String#codePointAt$296 + br $__inlined_func$~lib/string/String#codePointAt$294 end local.get $0 i32.const 2 @@ -10351,7 +10248,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#codePointAt$296 + br $__inlined_func$~lib/string/String#codePointAt$294 end local.get $4 i32.load16_u offset=4 @@ -10365,7 +10262,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#codePointAt$296 + br $__inlined_func$~lib/string/String#codePointAt$294 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10385,27 +10282,59 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=8 - local.get $0 - i32.const 15 - call $~lib/string/String#at - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 - i32.store offset=8 + memory.size + i32.const 16 + i32.shl + i32.const 59404 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1492 + i32.const 1488 + i32.store + i32.const 1496 + i32.const 1488 + i32.store + i32.const 1488 + global.set $~lib/rt/itcms/pinSpace + i32.const 1524 + i32.const 1520 + i32.store + i32.const 1528 + i32.const 1520 + i32.store + i32.const 1520 + global.set $~lib/rt/itcms/toSpace + i32.const 1604 + i32.const 1600 + i32.store + i32.const 1608 + i32.const 1600 + i32.store + i32.const 1600 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 15 + call $~lib/string/String#at + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $4 + i32.store offset=8 local.get $4 i32.const 15 call $~lib/string/String#charAt @@ -10419,7 +10348,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 17 i32.const 1 call $~lib/builtins/abort @@ -10464,7 +10393,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -10493,43 +10422,43 @@ local.get $0 i32.store local.get $0 - i32.const 3680 + i32.const 1744 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 19 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 call $~lib/string/String.__not i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3712 + i32.const 1776 call $~lib/string/String.__not if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 call $~lib/string/String.__not if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -10544,12 +10473,12 @@ local.get $0 i32.store local.get $0 - i32.const 3712 + i32.const 1776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -10564,12 +10493,12 @@ local.get $0 i32.store local.get $0 - i32.const 3776 + i32.const 1840 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -10584,12 +10513,12 @@ local.get $0 i32.store local.get $0 - i32.const 3808 + i32.const 1872 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -10604,12 +10533,12 @@ local.get $0 i32.store local.get $0 - i32.const 3808 + i32.const 1872 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -10623,12 +10552,12 @@ local.get $0 i32.store local.get $0 - i32.const 3840 + i32.const 1904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -10636,7 +10565,7 @@ end i32.const 2 i32.const 4 - i32.const 3872 + i32.const 1936 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -10649,12 +10578,12 @@ local.get $0 i32.store local.get $0 - i32.const 3904 + i32.const 1968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 30 i32.const 1 call $~lib/builtins/abort @@ -10662,7 +10591,7 @@ end i32.const 3 i32.const 4 - i32.const 3936 + i32.const 2000 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -10675,12 +10604,12 @@ local.get $0 i32.store local.get $0 - i32.const 3968 + i32.const 2032 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -10688,7 +10617,7 @@ end i32.const 5 i32.const 4 - i32.const 4000 + i32.const 2064 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -10701,12 +10630,12 @@ local.get $0 i32.store local.get $0 - i32.const 4048 + i32.const 2112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 32 i32.const 1 call $~lib/builtins/abort @@ -10719,12 +10648,12 @@ local.get $0 i32.store local.get $0 - i32.const 3712 + i32.const 1776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 34 i32.const 1 call $~lib/builtins/abort @@ -10737,12 +10666,12 @@ local.get $0 i32.store local.get $0 - i32.const 3808 + i32.const 1872 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -10755,12 +10684,12 @@ local.get $0 i32.store local.get $0 - i32.const 4080 + i32.const 2144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 36 i32.const 1 call $~lib/builtins/abort @@ -10775,7 +10704,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10792,11 +10721,11 @@ i32.shr_u local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 4112 + i32.const 2176 i32.store - block $__inlined_func$~lib/string/String#startsWith$297 + block $__inlined_func$~lib/string/String#startsWith$295 local.get $4 - i32.const 4108 + i32.const 2172 i32.load i32.const 1 i32.shr_u @@ -10809,17 +10738,17 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - br $__inlined_func$~lib/string/String#startsWith$297 + br $__inlined_func$~lib/string/String#startsWith$295 end global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4112 + i32.const 2176 i32.store offset=4 local.get $0 i32.const 0 - i32.const 4112 + i32.const 2176 local.get $4 call $~lib/util/string/compareImpl i32.eqz @@ -10833,7 +10762,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -10850,7 +10779,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10860,14 +10789,14 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4144 + i32.const 2208 i32.store offset=4 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 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10884,16 +10813,16 @@ i32.shr_u local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 4144 + i32.const 2208 i32.store - block $__inlined_func$~lib/string/String#endsWith$298 + block $__inlined_func$~lib/string/String#endsWith$296 i32.const 536870910 local.get $4 local.get $4 i32.const 536870910 i32.gt_s select - i32.const 4140 + i32.const 2204 i32.load i32.const 1 i32.shr_u @@ -10909,17 +10838,17 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - br $__inlined_func$~lib/string/String#endsWith$298 + br $__inlined_func$~lib/string/String#endsWith$296 end global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4144 + i32.const 2208 i32.store offset=4 local.get $0 local.get $5 - i32.const 4144 + i32.const 2208 local.get $4 call $~lib/util/string/compareImpl i32.eqz @@ -10937,7 +10866,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 39 i32.const 1 call $~lib/builtins/abort @@ -10952,7 +10881,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10962,10 +10891,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4176 + i32.const 2240 i32.store offset=4 local.get $0 - i32.const 4176 + i32.const 2240 i32.const 0 call $~lib/string/String#indexOf i32.const -1 @@ -10977,7 +10906,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -10989,7 +10918,7 @@ i32.store offset=8 local.get $0 i32.const 0 - i32.const 4208 + i32.const 2272 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer @@ -11005,7 +10934,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -11017,7 +10946,7 @@ i32.store offset=8 local.get $0 i32.const 15 - i32.const 4208 + i32.const 2272 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer @@ -11033,127 +10962,127 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 43 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 i32.const 3 - i32.const 4208 + i32.const 2272 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4240 + i32.const 2304 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 44 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 i32.const 10 - i32.const 1184 + i32.const 1712 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 45 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 i32.const 100 - i32.const 1184 + i32.const 1712 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 46 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 + i32.const 2336 i32.const 5 - i32.const 4208 + i32.const 2272 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4304 + i32.const 2368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 47 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 + i32.const 2336 i32.const 6 - i32.const 4336 + i32.const 2400 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4368 + i32.const 2432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 48 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 + i32.const 2336 i32.const 8 - i32.const 4336 + i32.const 2400 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4400 + i32.const 2464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 49 i32.const 1 call $~lib/builtins/abort @@ -11165,7 +11094,7 @@ i32.store offset=8 local.get $0 i32.const 0 - i32.const 4208 + i32.const 2272 call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer @@ -11181,7 +11110,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -11193,7 +11122,7 @@ i32.store offset=8 local.get $0 i32.const 15 - i32.const 4208 + i32.const 2272 call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer @@ -11209,165 +11138,165 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 52 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 i32.const 3 - i32.const 4208 + i32.const 2272 call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4240 + i32.const 2304 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 53 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 i32.const 10 - i32.const 1184 + i32.const 1712 call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 54 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 i32.const 100 - i32.const 1184 + i32.const 1712 call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 55 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 + i32.const 2336 i32.const 5 - i32.const 4208 + i32.const 2272 call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4448 + i32.const 2512 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 56 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 + i32.const 2336 i32.const 6 - i32.const 4272 + i32.const 2336 call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4480 + i32.const 2544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 57 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 + i32.const 2336 i32.const 8 - i32.const 4272 + i32.const 2336 call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4512 + i32.const 2576 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 58 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 i32.const 0 call $~lib/string/String#indexOf if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 60 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 4112 + i32.const 1712 + i32.const 2176 i32.const 0 call $~lib/string/String#indexOf i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 61 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 - i32.const 3744 + i32.const 1808 + i32.const 1808 i32.const 0 call $~lib/string/String#indexOf if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -11387,7 +11316,7 @@ call $~lib/string/String#indexOf if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 63 i32.const 1 call $~lib/builtins/abort @@ -11398,12 +11327,12 @@ local.tee $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 i32.const 0 call $~lib/string/String#indexOf if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 64 i32.const 1 call $~lib/builtins/abort @@ -11414,14 +11343,14 @@ local.tee $0 i32.store local.get $0 - i32.const 4560 + i32.const 2624 i32.const 0 call $~lib/string/String#indexOf i32.const 2 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 65 i32.const 1 call $~lib/builtins/abort @@ -11432,14 +11361,14 @@ local.tee $0 i32.store local.get $0 - i32.const 4592 + i32.const 2656 i32.const 0 call $~lib/string/String#indexOf i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 66 i32.const 1 call $~lib/builtins/abort @@ -11450,14 +11379,14 @@ local.tee $0 i32.store local.get $0 - i32.const 4560 + i32.const 2624 i32.const 2 call $~lib/string/String#indexOf i32.const 2 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 67 i32.const 1 call $~lib/builtins/abort @@ -11468,14 +11397,14 @@ local.tee $0 i32.store local.get $0 - i32.const 4560 + i32.const 2624 i32.const 3 call $~lib/string/String#indexOf i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 68 i32.const 1 call $~lib/builtins/abort @@ -11486,14 +11415,14 @@ local.tee $0 i32.store local.get $0 - i32.const 4624 + i32.const 2688 i32.const -1 call $~lib/string/String#indexOf i32.const 2 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 69 i32.const 1 call $~lib/builtins/abort @@ -11501,12 +11430,12 @@ end i32.const 1 global.set $~argumentsLength - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 call $~lib/string/String#lastIndexOf@varargs if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 71 i32.const 1 call $~lib/builtins/abort @@ -11514,14 +11443,14 @@ end i32.const 1 global.set $~argumentsLength - i32.const 1184 - i32.const 4112 + i32.const 1712 + i32.const 2176 call $~lib/string/String#lastIndexOf@varargs i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 72 i32.const 1 call $~lib/builtins/abort @@ -11534,7 +11463,7 @@ i32.const 1 global.set $~argumentsLength local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String#lastIndexOf@varargs global.get $~lib/memory/__stack_pointer global.get $std/string/str @@ -11549,7 +11478,7 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 73 i32.const 1 call $~lib/builtins/abort @@ -11562,13 +11491,13 @@ i32.const 1 global.set $~argumentsLength local.get $0 - i32.const 4560 + i32.const 2624 call $~lib/string/String#lastIndexOf@varargs i32.const 2 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 74 i32.const 1 call $~lib/builtins/abort @@ -11581,13 +11510,13 @@ i32.const 1 global.set $~argumentsLength local.get $0 - i32.const 4592 + i32.const 2656 call $~lib/string/String#lastIndexOf@varargs i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 75 i32.const 1 call $~lib/builtins/abort @@ -11600,13 +11529,13 @@ i32.const 1 global.set $~argumentsLength local.get $0 - i32.const 4656 + i32.const 2720 call $~lib/string/String#lastIndexOf@varargs i32.const 15 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 76 i32.const 1 call $~lib/builtins/abort @@ -11617,14 +11546,14 @@ local.tee $0 i32.store local.get $0 - i32.const 4560 + i32.const 2624 i32.const 2 call $~lib/string/String#lastIndexOf i32.const 2 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 77 i32.const 1 call $~lib/builtins/abort @@ -11635,14 +11564,14 @@ local.tee $0 i32.store local.get $0 - i32.const 4560 + i32.const 2624 i32.const 3 call $~lib/string/String#lastIndexOf i32.const 2 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 78 i32.const 1 call $~lib/builtins/abort @@ -11653,14 +11582,14 @@ local.tee $0 i32.store local.get $0 - i32.const 4624 + i32.const 2688 i32.const -1 call $~lib/string/String#lastIndexOf i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 79 i32.const 1 call $~lib/builtins/abort @@ -11671,14 +11600,14 @@ local.tee $0 i32.store local.get $0 - i32.const 4688 + i32.const 2752 i32.const 0 call $~lib/string/String#lastIndexOf i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 80 i32.const 1 call $~lib/builtins/abort @@ -11689,719 +11618,719 @@ local.tee $0 i32.store local.get $0 - i32.const 4112 + i32.const 2176 i32.const 0 call $~lib/string/String#lastIndexOf if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 81 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 call $~lib/string/String#localeCompare if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 83 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 - i32.const 1184 + i32.const 1808 + i32.const 1712 call $~lib/string/String#localeCompare i32.const 1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 84 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 3744 + i32.const 1712 + i32.const 1808 call $~lib/string/String#localeCompare i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 85 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4720 - i32.const 4720 + i32.const 2784 + i32.const 2784 call $~lib/string/String#localeCompare if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 4752 + i32.const 2336 + i32.const 2816 call $~lib/string/String#localeCompare i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 87 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 4784 + i32.const 2336 + i32.const 2848 call $~lib/string/String#localeCompare i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 88 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4752 - i32.const 4272 + i32.const 2816 + i32.const 2336 call $~lib/string/String#localeCompare i32.const 1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 89 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4816 - i32.const 4272 + i32.const 2880 + i32.const 2336 call $~lib/string/String#localeCompare i32.const 1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 90 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4848 - i32.const 4272 + i32.const 2912 + i32.const 2336 call $~lib/string/String#localeCompare i32.const 1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 91 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4816 - i32.const 4880 + i32.const 2880 + i32.const 2944 call $~lib/string/String#localeCompare i32.const 1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 92 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 4848 + i32.const 2336 + i32.const 2912 call $~lib/string/String#localeCompare i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 93 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4880 - i32.const 4816 + i32.const 2944 + i32.const 2880 call $~lib/string/String#localeCompare i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 4240 + i32.const 1712 + i32.const 2304 call $~lib/string/String#localeCompare i32.const -1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 95 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3712 - i32.const 1184 + i32.const 1776 + i32.const 1712 call $~lib/string/String#localeCompare i32.const 1 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 96 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 call $~lib/string/String#trimStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 98 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4912 + i32.const 2976 call $~lib/string/String#trimStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4912 + i32.const 2976 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 99 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4944 + i32.const 3008 call $~lib/string/String#trimStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4992 + i32.const 3056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 100 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 call $~lib/string/String#trimEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 102 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4912 + i32.const 2976 call $~lib/string/String#trimEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4912 + i32.const 2976 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 103 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4944 + i32.const 3008 call $~lib/string/String#trimEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5040 + i32.const 3104 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 104 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 call $~lib/string/String#trim local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 106 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4912 + i32.const 2976 call $~lib/string/String#trim local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4912 + i32.const 2976 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 107 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4944 + i32.const 3008 call $~lib/string/String#trim local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 108 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5088 + i32.const 3152 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 5088 + i32.const 3152 i32.store - i32.const 5088 + i32.const 3152 call $~lib/util/string/strtob i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 111 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5136 + i32.const 3200 i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 5136 + i32.const 3200 i32.store - i32.const 5136 + i32.const 3200 call $~lib/util/string/strtob i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 112 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5184 + i32.const 3248 i32.store offset=24 global.get $~lib/memory/__stack_pointer - i32.const 5184 + i32.const 3248 i32.store - i32.const 5184 + i32.const 3248 call $~lib/util/string/strtob if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 113 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1184 + i32.const 1712 i32.store offset=28 global.get $~lib/memory/__stack_pointer - i32.const 1184 + i32.const 1712 i32.store - i32.const 1184 + i32.const 1712 call $~lib/util/string/strtob if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 114 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5232 + i32.const 3296 i32.store offset=32 global.get $~lib/memory/__stack_pointer - i32.const 5232 + i32.const 3296 i32.store - i32.const 5232 + i32.const 3296 call $~lib/util/string/strtob if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 115 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5264 + i32.const 3328 i32.store offset=36 global.get $~lib/memory/__stack_pointer - i32.const 5264 + i32.const 3328 i32.store - i32.const 5264 + i32.const 3328 call $~lib/util/string/strtob if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 116 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5296 + i32.const 3360 i32.store offset=40 global.get $~lib/memory/__stack_pointer - i32.const 5296 + i32.const 3360 i32.store - i32.const 5296 + i32.const 3360 call $~lib/util/string/strtob if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 117 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1840 + i32.const 3392 i32.const 0 call $~lib/string/parseInt f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 119 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5328 + i32.const 3424 i32.const 0 call $~lib/string/parseInt f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 120 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5360 + i32.const 3456 i32.const 0 call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 121 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5392 + i32.const 3488 i32.const 0 call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 122 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5424 + i32.const 3520 i32.const 0 call $~lib/string/parseInt f64.const 5 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 123 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5456 + i32.const 3552 i32.const 0 call $~lib/string/parseInt f64.const 455 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 124 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5488 + i32.const 3584 i32.const 0 call $~lib/string/parseInt f64.const 3855 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 125 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5520 + i32.const 3616 i32.const 0 call $~lib/string/parseInt f64.const 3855 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 126 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5552 + i32.const 3648 i32.const 0 call $~lib/string/parseInt f64.const 11 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 127 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5584 + i32.const 3680 i32.const 0 call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 128 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5616 + i32.const 3712 i32.const 0 call $~lib/string/parseInt f64.const -123 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 129 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5648 + i32.const 3744 i32.const 0 call $~lib/string/parseInt f64.const 123 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 130 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5680 + i32.const 3776 i32.const 0 call $~lib/string/parseInt f64.const -12 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 131 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1840 + i32.const 3392 i32.const 0 call $~lib/string/parseInt f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 132 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5712 + i32.const 3808 i32.const 0 call $~lib/string/parseInt f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 133 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5744 + i32.const 3840 i32.const 16 call $~lib/string/parseInt f64.const 2833 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 134 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5776 + i32.const 3872 i32.const 0 call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 135 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5808 + i32.const 3904 i32.const 0 call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 136 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5840 + i32.const 3936 i32.const 0 call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 137 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5872 + i32.const 3968 i32.const 0 call $~lib/string/parseInt i64.reinterpret_f64 @@ -12410,171 +12339,171 @@ i64.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 138 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5904 + i32.const 4000 i32.const 0 call $~lib/string/parseInt - i32.const 5952 + i32.const 4048 i32.const 16 call $~lib/string/parseInt f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 139 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5984 + i32.const 4080 i32.const 0 call $~lib/string/parseInt f64.const 36893488147419103232 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 140 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5984 + i32.const 4080 i32.const 13 call $~lib/string/parseInt f64.const 5135857308667095285760 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 141 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6048 + i32.const 4144 i32.const 10 call $~lib/string/parseInt f64.const -1.e+24 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 142 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6128 + i32.const 4224 i32.const 16 call $~lib/string/parseInt f64.const 75557863725914323419136 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 143 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6192 + i32.const 4288 i32.const 0 call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 144 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6224 + i32.const 4320 i32.const 0 call $~lib/string/parseInt f64.const 2 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 145 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6272 + i32.const 4368 i32.const 0 call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 147 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6304 + i32.const 4400 i32.const 0 call $~lib/string/parseInt f64.const 2 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 148 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6352 + i32.const 4448 i32.const 0 call $~lib/string/parseInt f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 149 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6384 + i32.const 4480 i32.const 0 call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 150 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6416 + i32.const 4512 i32.const 0 call $~lib/string/parseInt f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 151 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 i32.const 0 call $~lib/string/parseInt local.tee $1 @@ -12582,13 +12511,13 @@ f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 152 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6464 + i32.const 4560 i32.const 0 call $~lib/string/parseInt local.tee $1 @@ -12596,13 +12525,13 @@ f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 153 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6496 + i32.const 4592 i32.const 0 call $~lib/string/parseInt local.tee $1 @@ -12610,13 +12539,13 @@ f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 154 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4336 + i32.const 2400 i32.const 37 call $~lib/string/parseInt local.tee $1 @@ -12624,13 +12553,13 @@ f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 155 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6528 + i32.const 4624 i32.const 0 call $~lib/string/parseInt local.tee $1 @@ -12638,13 +12567,13 @@ f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 156 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6560 + i32.const 4656 i32.const 0 call $~lib/string/parseInt local.tee $1 @@ -12652,7 +12581,7 @@ f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 157 i32.const 1 call $~lib/builtins/abort @@ -12663,16 +12592,16 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6560 + i32.const 4656 i32.store - i32.const 6560 + i32.const 4656 call $~lib/util/string/strtod f32.demote_f64 local.set $2 @@ -12685,32 +12614,32 @@ f32.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 158 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6560 + i32.const 4656 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 159 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6560 + i32.const 4656 i32.store offset=44 global.get $~lib/memory/__stack_pointer - i32.const 6560 + i32.const 4656 i32.store - i32.const 6560 + i32.const 4656 call $~lib/util/string/strtod f32.demote_f64 local.tee $2 @@ -12718,26 +12647,26 @@ f32.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 160 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6560 + i32.const 4656 i32.store offset=48 global.get $~lib/memory/__stack_pointer - i32.const 6560 + i32.const 4656 i32.store - i32.const 6560 + i32.const 4656 call $~lib/util/string/strtod local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -12748,14 +12677,14 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6784 + i32.const 4880 i32.store call $~lib/util/string/strtol global.get $~lib/memory/__stack_pointer @@ -12766,24 +12695,24 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 163 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6784 + i32.const 4880 i32.store offset=52 global.get $~lib/memory/__stack_pointer - i32.const 6784 + i32.const 4880 i32.store call $~lib/util/string/strtol i32.const 2147483647 i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 164 i32.const 1 call $~lib/builtins/abort @@ -12794,14 +12723,14 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6832 + i32.const 4928 i32.store call $~lib/util/string/strtol global.get $~lib/memory/__stack_pointer @@ -12812,1529 +12741,1529 @@ i64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 165 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6832 + i32.const 4928 i32.store offset=56 global.get $~lib/memory/__stack_pointer - i32.const 6832 + i32.const 4928 i32.store call $~lib/util/string/strtol i64.const 9223372036854775807 i64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 166 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1840 + i32.const 3392 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 169 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5360 + i32.const 3456 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 170 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6896 + i32.const 4992 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 171 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6928 + i32.const 5024 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 172 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6960 + i32.const 5056 call $~lib/number/F64.parseFloat f64.const 1e-05 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 173 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6992 + i32.const 5088 call $~lib/number/F64.parseFloat f64.const -1e-05 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 174 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7024 + i32.const 5120 call $~lib/number/F64.parseFloat f64.const -3e-23 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 175 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7072 + i32.const 5168 call $~lib/number/F64.parseFloat f64.const 3e21 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 176 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7120 + i32.const 5216 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 177 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7152 + i32.const 5248 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 178 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7184 + i32.const 5280 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 179 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7216 + i32.const 5312 call $~lib/number/F64.parseFloat f64.const 0.25 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 180 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7248 + i32.const 5344 call $~lib/number/F64.parseFloat f64.const 1e3 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 181 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7280 + i32.const 5376 call $~lib/number/F64.parseFloat f64.const 1e-10 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 182 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7328 + i32.const 5424 call $~lib/number/F64.parseFloat f64.const 1e-30 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 183 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7376 + i32.const 5472 call $~lib/number/F64.parseFloat f64.const 1e-323 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 184 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7424 + i32.const 5520 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 185 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7472 + i32.const 5568 call $~lib/number/F64.parseFloat f64.const 1.e+308 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 186 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7504 + i32.const 5600 call $~lib/number/F64.parseFloat f64.const inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 187 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 188 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7536 + i32.const 5632 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 191 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7584 + i32.const 5680 call $~lib/number/F64.parseFloat f64.const 1e-10 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 192 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7632 + i32.const 5728 call $~lib/number/F64.parseFloat f64.const 10 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 193 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7680 + i32.const 5776 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 194 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7712 + i32.const 5808 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 195 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7744 + i32.const 5840 call $~lib/number/F64.parseFloat f64.const 10 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 196 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7792 + i32.const 5888 call $~lib/number/F64.parseFloat f64.const 123456789 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 197 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7840 + i32.const 5936 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 198 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7888 + i32.const 5984 call $~lib/number/F64.parseFloat f64.const 1e-60 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 200 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7920 + i32.const 6016 call $~lib/number/F64.parseFloat f64.const 1.e+60 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 201 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7952 + i32.const 6048 call $~lib/number/F64.parseFloat f64.const 123.4 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 204 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7984 + i32.const 6080 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 205 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8016 + i32.const 6112 call $~lib/number/F64.parseFloat f64.const -1.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 206 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8064 + i32.const 6160 call $~lib/number/F64.parseFloat f64.const 10 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 207 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8112 + i32.const 6208 call $~lib/number/F64.parseFloat f64.const 10 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 208 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8160 + i32.const 6256 call $~lib/number/F64.parseFloat f64.const 0.022 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 209 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8208 + i32.const 6304 call $~lib/number/F64.parseFloat f64.const 11 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 210 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5712 + i32.const 3808 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 211 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8240 + i32.const 6336 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 212 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8272 + i32.const 6368 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 213 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8304 + i32.const 6400 call $~lib/number/F64.parseFloat f64.const 1.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 214 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8336 + i32.const 6432 call $~lib/number/F64.parseFloat f64.const -1.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 215 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8368 + i32.const 6464 call $~lib/number/F64.parseFloat f64.const -1.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 216 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8400 + i32.const 6496 call $~lib/number/F64.parseFloat f64.const -1.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 217 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8432 + i32.const 6528 call $~lib/number/F64.parseFloat f64.const -1.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 218 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8464 + i32.const 6560 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 219 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8496 + i32.const 6592 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 220 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8528 + i32.const 6624 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 221 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8560 + i32.const 6656 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 222 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8592 + i32.const 6688 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 223 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8624 + i32.const 6720 call $~lib/number/F64.parseFloat f64.const 10 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 224 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8656 + i32.const 6752 call $~lib/number/F64.parseFloat f64.const 10 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 225 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8704 + i32.const 6800 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 226 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8736 + i32.const 6832 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 227 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8768 + i32.const 6864 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 228 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8800 + i32.const 6896 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 229 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8832 + i32.const 6928 call $~lib/number/F64.parseFloat f64.const 10 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 230 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8864 + i32.const 6960 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 231 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8896 + i32.const 6992 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 232 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8928 + i32.const 7024 call $~lib/number/F64.parseFloat f64.const 0.01 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 233 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8976 + i32.const 7072 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 234 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9008 + i32.const 7104 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 235 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9040 + i32.const 7136 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 236 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9072 + i32.const 7168 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 237 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9104 + i32.const 7200 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 238 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9136 + i32.const 7232 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 239 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9168 + i32.const 7264 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 240 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9200 + i32.const 7296 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 241 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9232 + i32.const 7328 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 242 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9264 + i32.const 7360 call $~lib/number/F64.parseFloat i64.reinterpret_f64 i64.const 0 i64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 243 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9296 + i32.const 7392 call $~lib/number/F64.parseFloat i64.reinterpret_f64 i64.const -9223372036854775808 i64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 244 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9328 + i32.const 7424 call $~lib/number/F64.parseFloat i64.reinterpret_f64 i64.const 0 i64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 245 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5872 + i32.const 3968 call $~lib/number/F64.parseFloat i64.reinterpret_f64 i64.const -9223372036854775808 i64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 246 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9360 + i32.const 7456 call $~lib/number/F64.parseFloat i64.reinterpret_f64 i64.const -9223372036854775808 i64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 247 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6496 + i32.const 4592 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 248 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6464 + i32.const 4560 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 249 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9408 + i32.const 7504 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 250 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9440 + i32.const 7536 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 251 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9472 + i32.const 7568 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 252 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9504 + i32.const 7600 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 253 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9536 + i32.const 7632 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 254 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9568 + i32.const 7664 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 255 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9600 + i32.const 7696 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 256 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9632 + i32.const 7728 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 257 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9664 + i32.const 7760 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 258 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9696 + i32.const 7792 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 259 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9728 + i32.const 7824 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 260 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9760 + i32.const 7856 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 261 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9792 + i32.const 7888 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 262 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5296 + i32.const 3360 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 263 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9824 + i32.const 7920 call $~lib/number/F64.parseFloat f64.const 1e22 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 264 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9856 + i32.const 7952 call $~lib/number/F64.parseFloat f64.const 1e-22 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 265 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9888 + i32.const 7984 call $~lib/number/F64.parseFloat f64.const 1.e+23 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 266 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9920 + i32.const 8016 call $~lib/number/F64.parseFloat f64.const 1e-23 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 267 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9952 + i32.const 8048 call $~lib/number/F64.parseFloat f64.const 1.e+37 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 268 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9984 + i32.const 8080 call $~lib/number/F64.parseFloat f64.const 1e-37 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 269 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10016 + i32.const 8112 call $~lib/number/F64.parseFloat f64.const 1.e+38 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 270 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10048 + i32.const 8144 call $~lib/number/F64.parseFloat f64.const 1e-38 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 271 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10080 + i32.const 8176 call $~lib/number/F64.parseFloat f64.const 2.220446049250313e-16 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 272 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10144 + i32.const 8240 call $~lib/number/F64.parseFloat f64.const 1797693134862315708145274e284 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 273 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10224 + i32.const 8320 call $~lib/number/F64.parseFloat f64.const 5e-324 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 274 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10256 + i32.const 8352 call $~lib/number/F64.parseFloat f64.const 1.e+308 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 275 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10304 + i32.const 8400 call $~lib/number/F64.parseFloat f64.const 1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 276 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10448 + i32.const 8544 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 277 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10496 + i32.const 8592 call $~lib/number/F64.parseFloat f64.const inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 278 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10544 + i32.const 8640 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 279 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10592 + i32.const 8688 call $~lib/number/F64.parseFloat f64.const -inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 280 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10640 + i32.const 8736 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 281 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10688 + i32.const 8784 call $~lib/number/F64.parseFloat f64.const inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 282 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10736 + i32.const 8832 call $~lib/number/F64.parseFloat f64.const inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 283 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10768 + i32.const 8864 call $~lib/number/F64.parseFloat f64.const inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 284 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10816 + i32.const 8912 call $~lib/number/F64.parseFloat f64.const inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 285 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10864 + i32.const 8960 call $~lib/number/F64.parseFloat f64.const -inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 286 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10912 + i32.const 9008 call $~lib/number/F64.parseFloat f64.const inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 287 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10960 + i32.const 9056 call $~lib/number/F64.parseFloat f64.const inf f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 288 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11008 + i32.const 9104 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 289 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11040 + i32.const 9136 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 290 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11088 + i32.const 9184 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 291 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11136 + i32.const 9232 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 295 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11328 + i32.const 9424 call $~lib/number/F64.parseFloat f64.const 1e-323 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 308 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11520 + i32.const 9616 call $~lib/number/F64.parseFloat f64.const 2.225073858507202e-308 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 312 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11712 - i32.const 11872 + i32.const 9808 + i32.const 9968 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 local.get $0 - i32.const 12032 + i32.const 10128 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 12192 + i32.const 10288 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 12352 + i32.const 10448 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -14346,328 +14275,328 @@ f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 315 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12512 + i32.const 10608 call $~lib/number/F64.parseFloat f64.const 9.753531888799502e-104 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 333 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12624 + i32.const 10720 call $~lib/number/F64.parseFloat f64.const 0.5961860348131807 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 334 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12736 + i32.const 10832 call $~lib/number/F64.parseFloat f64.const 0.18150131692180388 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 335 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12848 + i32.const 10944 call $~lib/number/F64.parseFloat f64.const 0.42070823575344535 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 336 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12960 + i32.const 11056 call $~lib/number/F64.parseFloat f64.const 0.6654686306516261 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 337 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13072 + i32.const 11168 call $~lib/number/F64.parseFloat f64.const 0.6101852922970868 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 338 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13184 + i32.const 11280 call $~lib/number/F64.parseFloat f64.const 0.7696695208236968 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 339 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13296 + i32.const 11392 call $~lib/number/F64.parseFloat f64.const 0.25050653222286823 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 340 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13408 + i32.const 11504 call $~lib/number/F64.parseFloat f64.const 0.2740037230228005 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 341 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13520 + i32.const 11616 call $~lib/number/F64.parseFloat f64.const 0.20723093500497428 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 342 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13632 + i32.const 11728 call $~lib/number/F64.parseFloat f64.const 7.900280238081605 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 343 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13744 + i32.const 11840 call $~lib/number/F64.parseFloat f64.const 98.22860653737297 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 344 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13856 + i32.const 11952 call $~lib/number/F64.parseFloat f64.const 746.894972319037 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 345 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13968 + i32.const 12064 call $~lib/number/F64.parseFloat f64.const 1630.2683202827284 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 346 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14080 + i32.const 12176 call $~lib/number/F64.parseFloat f64.const 46371.68629719171 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 347 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14192 + i32.const 12288 call $~lib/number/F64.parseFloat f64.const 653780.5944497711 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 348 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14304 + i32.const 12400 call $~lib/number/F64.parseFloat f64.const 234632.43565024371 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 349 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14416 + i32.const 12512 call $~lib/number/F64.parseFloat f64.const 97094817.16420048 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 350 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14528 + i32.const 12624 call $~lib/number/F64.parseFloat f64.const 499690852.20518744 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 351 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14640 + i32.const 12736 call $~lib/number/F64.parseFloat f64.const 7925201200557245595648 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 352 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14752 + i32.const 12848 call $~lib/number/F64.parseFloat f64.const 6096564585983177528398588e5 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 353 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14864 + i32.const 12960 call $~lib/number/F64.parseFloat f64.const 4800416117477028695992383e42 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 354 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14976 + i32.const 13072 call $~lib/number/F64.parseFloat f64.const 8524829079817968137287277e80 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 355 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15088 + i32.const 13184 call $~lib/number/F64.parseFloat f64.const 3271239291709782092398754e243 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 356 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15200 + i32.const 13296 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 f64.eq if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 359 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15232 + i32.const 13328 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 360 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.const 15264 + i32.const 1808 + i32.const 13360 call $~lib/string/String.__concat local.tee $0 i32.store offset=60 @@ -14675,12 +14604,12 @@ local.get $0 i32.store local.get $0 - i32.const 15296 + i32.const 13392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 364 i32.const 3 call $~lib/builtins/abort @@ -14690,24 +14619,24 @@ local.get $0 i32.store local.get $0 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 365 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 367 i32.const 1 call $~lib/builtins/abort @@ -14722,7 +14651,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 369 i32.const 1 call $~lib/builtins/abort @@ -14731,13 +14660,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 1184 + i32.const 1712 i32.const 0 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 371 i32.const 1 call $~lib/builtins/abort @@ -14747,518 +14676,518 @@ i32.const 0 i32.store i32.const 0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 373 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 - i32.const 15264 + i32.const 1808 + i32.const 13360 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 375 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 - i32.const 3744 + i32.const 1808 + i32.const 1808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 376 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15328 - i32.const 15360 + i32.const 13424 + i32.const 13456 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 378 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15328 - i32.const 15328 + i32.const 13424 + i32.const 13424 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 379 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15392 - i32.const 15424 + i32.const 13488 + i32.const 13520 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 381 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15456 - i32.const 15488 + i32.const 13552 + i32.const 13584 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 383 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15520 - i32.const 15520 + i32.const 13616 + i32.const 13616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 384 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15520 - i32.const 15568 + i32.const 13616 + i32.const 13664 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 386 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15616 - i32.const 15664 + i32.const 13712 + i32.const 13760 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 388 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15264 - i32.const 3744 + i32.const 13360 + i32.const 1808 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 390 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15712 - i32.const 3744 + i32.const 13808 + i32.const 1808 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 391 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15712 - i32.const 15744 + i32.const 13808 + i32.const 13840 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 392 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15712 - i32.const 15296 + i32.const 13808 + i32.const 13392 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 393 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15712 - i32.const 15296 + i32.const 13808 + i32.const 13392 call $~lib/string/String.__lt if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 394 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 1184 + i32.const 2336 + i32.const 1712 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 396 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 4272 + i32.const 1712 + i32.const 2336 call $~lib/string/String.__lt i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 397 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 1184 + i32.const 2336 + i32.const 1712 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 398 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 4272 + i32.const 1712 + i32.const 2336 call $~lib/string/String.__lte i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 399 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 1184 + i32.const 2336 + i32.const 1712 call $~lib/string/String.__lt if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 400 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 4272 + i32.const 1712 + i32.const 2336 call $~lib/string/String.__gt if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 401 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 call $~lib/string/String.__lt if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 402 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 call $~lib/string/String.__gt if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 403 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 404 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 call $~lib/string/String.__lte i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 405 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5360 - i32.const 15776 + i32.const 3456 + i32.const 13872 call $~lib/string/String.__lt i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 407 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15776 - i32.const 5360 + i32.const 13872 + i32.const 3456 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 408 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15808 - i32.const 15776 + i32.const 13904 + i32.const 13872 call $~lib/string/String.__lt if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 409 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15776 - i32.const 15808 + i32.const 13872 + i32.const 13904 call $~lib/string/String.__gt if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 410 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15808 - i32.const 15776 + i32.const 13904 + i32.const 13872 call $~lib/string/String.__gt i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 411 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15776 - i32.const 15808 + i32.const 13872 + i32.const 13904 call $~lib/string/String.__lt i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 412 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15808 - i32.const 15808 + i32.const 13904 + i32.const 13904 call $~lib/string/String.__lt if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 413 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15808 - i32.const 15808 + i32.const 13904 + i32.const 13904 call $~lib/string/String.__gt if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 414 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15808 - i32.const 15808 + i32.const 13904 + i32.const 13904 call $~lib/string/String.__lte i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 415 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15808 - i32.const 15808 + i32.const 13904 + i32.const 13904 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 416 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15776 - i32.const 15840 + i32.const 13872 + i32.const 13936 call $~lib/string/String.__gte if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 417 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15840 - i32.const 15776 + i32.const 13936 + i32.const 13872 call $~lib/string/String.__gte i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 418 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15776 - i32.const 15840 + i32.const 13872 + i32.const 13936 call $~lib/string/String.__lte i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 419 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5360 - i32.const 5360 + i32.const 3456 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 420 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15808 - i32.const 15808 + i32.const 13904 + i32.const 13904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 421 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4336 - i32.const 4336 + i32.const 2400 + i32.const 2400 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 422 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4336 - i32.const 15872 + i32.const 2400 + i32.const 13968 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 424 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15904 - i32.const 15904 + i32.const 14000 + i32.const 14000 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 425 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15936 - i32.const 15904 + i32.const 14032 + i32.const 14000 call $~lib/string/String.__ne i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 427 i32.const 1 call $~lib/builtins/abort @@ -15299,13 +15228,13 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 432 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4332 + i32.const 2396 i32.load i32.const 1 i32.shr_u @@ -15313,13 +15242,13 @@ i32.ne if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 435 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 + i32.const 1712 i32.const 100 call $~lib/string/String#repeat local.set $0 @@ -15327,18 +15256,18 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 437 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 i32.const 0 call $~lib/string/String#repeat local.set $0 @@ -15346,18 +15275,18 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 438 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 i32.const 1 call $~lib/string/String#repeat local.set $0 @@ -15365,18 +15294,18 @@ local.get $0 i32.store local.get $0 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 439 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 i32.const 2 call $~lib/string/String#repeat local.set $0 @@ -15384,18 +15313,18 @@ local.get $0 i32.store local.get $0 - i32.const 15744 + i32.const 13840 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 440 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 i32.const 3 call $~lib/string/String#repeat local.set $0 @@ -15403,18 +15332,18 @@ local.get $0 i32.store local.get $0 - i32.const 16016 + i32.const 14112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 441 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15296 + i32.const 13392 i32.const 4 call $~lib/string/String#repeat local.set $0 @@ -15422,18 +15351,18 @@ local.get $0 i32.store local.get $0 - i32.const 16048 + i32.const 14144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 442 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 i32.const 5 call $~lib/string/String#repeat local.set $0 @@ -15441,18 +15370,18 @@ local.get $0 i32.store local.get $0 - i32.const 16096 + i32.const 14192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 443 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 i32.const 6 call $~lib/string/String#repeat local.set $0 @@ -15460,18 +15389,18 @@ local.get $0 i32.store local.get $0 - i32.const 16128 + i32.const 14224 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 444 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 + i32.const 1808 i32.const 7 call $~lib/string/String#repeat local.set $0 @@ -15479,785 +15408,785 @@ local.get $0 i32.store local.get $0 - i32.const 16160 + i32.const 14256 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 445 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 + i32.const 1712 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 447 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 - i32.const 6496 + i32.const 1712 + i32.const 1712 + i32.const 4592 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6496 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 448 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6496 - i32.const 6496 - i32.const 1184 + i32.const 4592 + i32.const 4592 + i32.const 1712 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 449 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6496 - i32.const 1184 - i32.const 1184 + i32.const 4592 + i32.const 1712 + i32.const 1712 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6496 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 450 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 6464 - i32.const 6496 + i32.const 2336 + i32.const 4560 + i32.const 4592 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 451 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 4272 - i32.const 6496 + i32.const 2336 + i32.const 2336 + i32.const 4592 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6496 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 452 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 4848 - i32.const 6496 + i32.const 2336 + i32.const 2912 + i32.const 4592 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 453 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 15296 - i32.const 15296 + i32.const 2336 + i32.const 13392 + i32.const 13392 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 454 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16208 - i32.const 6464 - i32.const 6496 + i32.const 14304 + i32.const 4560 + i32.const 4592 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16240 + i32.const 14336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 455 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 1184 - i32.const 6496 + i32.const 2336 + i32.const 1712 + i32.const 4592 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16272 + i32.const 14368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 456 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16304 - i32.const 16336 - i32.const 6496 + i32.const 14400 + i32.const 14432 + i32.const 4592 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16272 + i32.const 14368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 457 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 16368 - i32.const 16400 + i32.const 2336 + i32.const 14464 + i32.const 14496 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16432 + i32.const 14528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 458 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 16368 - i32.const 1184 + i32.const 2336 + i32.const 14464 + i32.const 1712 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15296 + i32.const 13392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 459 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 - i32.const 4272 + i32.const 1712 + i32.const 1712 + i32.const 2336 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 461 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 6464 - i32.const 6496 + i32.const 2336 + i32.const 4560 + i32.const 4592 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 462 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4480 - i32.const 4272 - i32.const 6496 + i32.const 2544 + i32.const 2336 + i32.const 4592 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16400 + i32.const 14496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 464 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16464 - i32.const 4272 - i32.const 6496 + i32.const 14560 + i32.const 2336 + i32.const 4592 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16512 + i32.const 14608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 465 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4480 - i32.const 15296 - i32.const 15296 + i32.const 2544 + i32.const 13392 + i32.const 13392 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4480 + i32.const 2544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 466 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16544 - i32.const 3744 - i32.const 16512 + i32.const 14640 + i32.const 1808 + i32.const 14608 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16592 + i32.const 14688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 467 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4480 - i32.const 15296 - i32.const 16400 + i32.const 2544 + i32.const 13392 + i32.const 14496 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16640 + i32.const 14736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 468 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16672 - i32.const 16704 - i32.const 16400 + i32.const 14768 + i32.const 14800 + i32.const 14496 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16736 + i32.const 14832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 469 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 4848 - i32.const 6496 + i32.const 2336 + i32.const 2912 + i32.const 4592 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 470 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4848 - i32.const 16768 - i32.const 16400 + i32.const 2912 + i32.const 14864 + i32.const 14496 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4848 + i32.const 2912 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 471 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 16800 - i32.const 6496 + i32.const 2336 + i32.const 14896 + i32.const 4592 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16832 + i32.const 14928 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 472 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15296 - i32.const 15296 - i32.const 6496 + i32.const 13392 + i32.const 13392 + i32.const 4592 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6496 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 473 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16208 - i32.const 6464 - i32.const 6496 + i32.const 14304 + i32.const 4560 + i32.const 4592 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16864 + i32.const 14960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 474 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 + i32.const 1712 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 476 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 - i32.const 6496 + i32.const 1712 + i32.const 1712 + i32.const 4592 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6496 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 477 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6496 - i32.const 6496 - i32.const 1184 + i32.const 4592 + i32.const 4592 + i32.const 1712 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 478 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6496 - i32.const 1184 - i32.const 1184 + i32.const 4592 + i32.const 1712 + i32.const 1712 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6496 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 479 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 4272 - i32.const 6464 + i32.const 2336 + i32.const 2336 + i32.const 4560 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6464 + i32.const 4560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 480 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 4752 - i32.const 6464 + i32.const 2336 + i32.const 2816 + i32.const 4560 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 481 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 1184 - i32.const 6496 + i32.const 2336 + i32.const 1712 + i32.const 4592 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 16896 + i32.const 14992 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 482 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 - i32.const 1184 - i32.const 1184 + i32.const 2336 + i32.const 1712 + i32.const 1712 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 483 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16944 - i32.const 3744 - i32.const 16976 + i32.const 15040 + i32.const 1808 + i32.const 15072 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17008 + i32.const 15104 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 486 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15296 - i32.const 15296 - i32.const 17056 + i32.const 13392 + i32.const 13392 + i32.const 15152 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17056 + i32.const 15152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 487 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16016 - i32.const 3744 - i32.const 17088 + i32.const 14112 + i32.const 1808 + i32.const 15184 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17120 + i32.const 15216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 488 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16016 - i32.const 15744 - i32.const 16976 + i32.const 14112 + i32.const 13840 + i32.const 15072 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17168 + i32.const 15264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 489 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17200 + i32.const 15296 global.set $std/string/str global.get $~lib/memory/__stack_pointer - i32.const 17200 + i32.const 15296 i32.store offset=4 i32.const 1 global.set $~argumentsLength - i32.const 17200 + i32.const 15296 i32.const 0 call $~lib/string/String#slice@varargs local.set $0 @@ -16265,12 +16194,12 @@ local.get $0 i32.store local.get $0 - i32.const 17200 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 493 i32.const 1 call $~lib/builtins/abort @@ -16290,12 +16219,12 @@ local.get $0 i32.store local.get $0 - i32.const 17248 + i32.const 15344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 494 i32.const 1 call $~lib/builtins/abort @@ -16315,12 +16244,12 @@ local.get $0 i32.store local.get $0 - i32.const 17280 + i32.const 15376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 495 i32.const 1 call $~lib/builtins/abort @@ -16339,12 +16268,12 @@ local.get $0 i32.store local.get $0 - i32.const 17312 + i32.const 15408 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 496 i32.const 1 call $~lib/builtins/abort @@ -16363,12 +16292,12 @@ local.get $0 i32.store local.get $0 - i32.const 17344 + i32.const 15440 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 497 i32.const 1 call $~lib/builtins/abort @@ -16387,12 +16316,12 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 498 i32.const 1 call $~lib/builtins/abort @@ -16411,12 +16340,12 @@ local.get $0 i32.store local.get $0 - i32.const 17376 + i32.const 15472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 499 i32.const 1 call $~lib/builtins/abort @@ -16436,12 +16365,12 @@ local.get $0 i32.store local.get $0 - i32.const 17200 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 501 i32.const 1 call $~lib/builtins/abort @@ -16461,12 +16390,12 @@ local.get $0 i32.store local.get $0 - i32.const 17248 + i32.const 15344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 502 i32.const 1 call $~lib/builtins/abort @@ -16486,12 +16415,12 @@ local.get $0 i32.store local.get $0 - i32.const 17280 + i32.const 15376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 503 i32.const 1 call $~lib/builtins/abort @@ -16510,12 +16439,12 @@ local.get $0 i32.store local.get $0 - i32.const 17424 + i32.const 15520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 504 i32.const 1 call $~lib/builtins/abort @@ -16534,12 +16463,12 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 505 i32.const 1 call $~lib/builtins/abort @@ -16558,12 +16487,12 @@ local.get $0 i32.store local.get $0 - i32.const 17472 + i32.const 15568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 506 i32.const 1 call $~lib/builtins/abort @@ -16582,12 +16511,12 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 507 i32.const 1 call $~lib/builtins/abort @@ -16606,12 +16535,12 @@ local.get $0 i32.store local.get $0 - i32.const 17200 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 508 i32.const 1 call $~lib/builtins/abort @@ -16630,12 +16559,12 @@ local.get $0 i32.store local.get $0 - i32.const 17504 + i32.const 15600 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 509 i32.const 1 call $~lib/builtins/abort @@ -16654,12 +16583,12 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 510 i32.const 1 call $~lib/builtins/abort @@ -16679,12 +16608,12 @@ local.get $0 i32.store local.get $0 - i32.const 17200 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 512 i32.const 1 call $~lib/builtins/abort @@ -16704,12 +16633,12 @@ local.get $0 i32.store local.get $0 - i32.const 17200 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 513 i32.const 1 call $~lib/builtins/abort @@ -16729,12 +16658,12 @@ local.get $0 i32.store local.get $0 - i32.const 17200 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 514 i32.const 1 call $~lib/builtins/abort @@ -16753,12 +16682,12 @@ local.get $0 i32.store local.get $0 - i32.const 17312 + i32.const 15408 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 515 i32.const 1 call $~lib/builtins/abort @@ -16777,12 +16706,12 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 516 i32.const 1 call $~lib/builtins/abort @@ -16801,12 +16730,12 @@ local.get $0 i32.store local.get $0 - i32.const 17536 + i32.const 15632 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 517 i32.const 1 call $~lib/builtins/abort @@ -16825,12 +16754,12 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 518 i32.const 1 call $~lib/builtins/abort @@ -16849,12 +16778,12 @@ local.get $0 i32.store local.get $0 - i32.const 17200 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 519 i32.const 1 call $~lib/builtins/abort @@ -16873,12 +16802,12 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 520 i32.const 1 call $~lib/builtins/abort @@ -16897,12 +16826,12 @@ local.get $0 i32.store local.get $0 - i32.const 4848 + i32.const 2912 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 521 i32.const 1 call $~lib/builtins/abort @@ -16911,7 +16840,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 1184 + i32.const 1712 i32.const 0 call $~lib/string/String#split@varargs local.tee $0 @@ -16935,7 +16864,7 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq else i32.const 0 @@ -16943,7 +16872,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 527 i32.const 3 call $~lib/builtins/abort @@ -16952,8 +16881,8 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=72 @@ -16964,7 +16893,7 @@ call $~lib/array/Array#get:length if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 529 i32.const 3 call $~lib/builtins/abort @@ -16973,8 +16902,8 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.const 4560 + i32.const 1712 + i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=72 @@ -16997,7 +16926,7 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq else i32.const 0 @@ -17005,7 +16934,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 531 i32.const 3 call $~lib/builtins/abort @@ -17014,8 +16943,8 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 17744 - i32.const 9536 + i32.const 15840 + i32.const 7632 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=72 @@ -17038,7 +16967,7 @@ local.get $0 i32.store local.get $0 - i32.const 17744 + i32.const 15840 call $~lib/string/String.__eq else i32.const 0 @@ -17046,7 +16975,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 533 i32.const 3 call $~lib/builtins/abort @@ -17055,8 +16984,8 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 17744 - i32.const 4560 + i32.const 15840 + i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=72 @@ -17079,7 +17008,7 @@ local.get $4 i32.store local.get $4 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17096,7 +17025,7 @@ local.get $4 i32.store local.get $4 - i32.const 15264 + i32.const 13360 call $~lib/string/String.__eq else i32.const 0 @@ -17113,7 +17042,7 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq else i32.const 0 @@ -17121,7 +17050,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 535 i32.const 3 call $~lib/builtins/abort @@ -17130,8 +17059,8 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 17776 - i32.const 17824 + i32.const 15872 + i32.const 15920 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=72 @@ -17154,7 +17083,7 @@ local.get $4 i32.store local.get $4 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17171,7 +17100,7 @@ local.get $4 i32.store local.get $4 - i32.const 15264 + i32.const 13360 call $~lib/string/String.__eq else i32.const 0 @@ -17188,7 +17117,7 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq else i32.const 0 @@ -17196,7 +17125,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 537 i32.const 3 call $~lib/builtins/abort @@ -17205,8 +17134,8 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 17856 - i32.const 4560 + i32.const 15952 + i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=72 @@ -17229,7 +17158,7 @@ local.get $4 i32.store local.get $4 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17246,7 +17175,7 @@ local.get $4 i32.store local.get $4 - i32.const 15264 + i32.const 13360 call $~lib/string/String.__eq else i32.const 0 @@ -17263,7 +17192,7 @@ local.get $4 i32.store local.get $4 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq else i32.const 0 @@ -17280,7 +17209,7 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq else i32.const 0 @@ -17288,7 +17217,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 539 i32.const 3 call $~lib/builtins/abort @@ -17297,8 +17226,8 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 17888 - i32.const 4560 + i32.const 15984 + i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=72 @@ -17321,7 +17250,7 @@ local.get $4 i32.store local.get $4 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq else i32.const 0 @@ -17338,7 +17267,7 @@ local.get $4 i32.store local.get $4 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17355,7 +17284,7 @@ local.get $4 i32.store local.get $4 - i32.const 15264 + i32.const 13360 call $~lib/string/String.__eq else i32.const 0 @@ -17372,7 +17301,7 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq else i32.const 0 @@ -17380,7 +17309,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -17389,8 +17318,8 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 17920 - i32.const 4560 + i32.const 16016 + i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=72 @@ -17413,7 +17342,7 @@ local.get $4 i32.store local.get $4 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17430,7 +17359,7 @@ local.get $4 i32.store local.get $4 - i32.const 15264 + i32.const 13360 call $~lib/string/String.__eq else i32.const 0 @@ -17447,7 +17376,7 @@ local.get $4 i32.store local.get $4 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq else i32.const 0 @@ -17464,7 +17393,7 @@ local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq else i32.const 0 @@ -17472,7 +17401,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 543 i32.const 3 call $~lib/builtins/abort @@ -17481,8 +17410,8 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.const 1184 + i32.const 2336 + i32.const 1712 call $~lib/string/String#split@varargs local.tee $0 i32.store offset=72 @@ -17505,7 +17434,7 @@ local.get $4 i32.store local.get $4 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17522,7 +17451,7 @@ local.get $4 i32.store local.get $4 - i32.const 15264 + i32.const 13360 call $~lib/string/String.__eq else i32.const 0 @@ -17539,7 +17468,7 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq else i32.const 0 @@ -17547,15 +17476,15 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 545 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.const 1184 + i32.const 2336 + i32.const 1712 i32.const 0 call $~lib/string/String#split local.tee $0 @@ -17567,15 +17496,15 @@ call $~lib/array/Array#get:length if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 547 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.const 1184 + i32.const 2336 + i32.const 1712 i32.const 1 call $~lib/string/String#split local.tee $0 @@ -17599,7 +17528,7 @@ local.get $0 i32.store local.get $0 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17607,15 +17536,15 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 549 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 17744 - i32.const 4560 + i32.const 15840 + i32.const 2624 i32.const 1 call $~lib/string/String#split local.tee $0 @@ -17639,7 +17568,7 @@ local.get $0 i32.store local.get $0 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17647,15 +17576,15 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 551 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.const 1184 + i32.const 2336 + i32.const 1712 i32.const 4 call $~lib/string/String#split local.tee $0 @@ -17679,7 +17608,7 @@ local.get $4 i32.store local.get $4 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17696,7 +17625,7 @@ local.get $4 i32.store local.get $4 - i32.const 15264 + i32.const 13360 call $~lib/string/String.__eq else i32.const 0 @@ -17713,7 +17642,7 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq else i32.const 0 @@ -17721,15 +17650,15 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 553 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.const 1184 + i32.const 2336 + i32.const 1712 i32.const -1 call $~lib/string/String#split local.tee $0 @@ -17753,7 +17682,7 @@ local.get $4 i32.store local.get $4 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17770,7 +17699,7 @@ local.get $4 i32.store local.get $4 - i32.const 15264 + i32.const 13360 call $~lib/string/String.__eq else i32.const 0 @@ -17787,7 +17716,7 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq else i32.const 0 @@ -17795,15 +17724,15 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 555 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 17744 - i32.const 4560 + i32.const 15840 + i32.const 2624 i32.const -1 call $~lib/string/String#split local.tee $0 @@ -17827,7 +17756,7 @@ local.get $4 i32.store local.get $4 - i32.const 3744 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -17844,7 +17773,7 @@ local.get $4 i32.store local.get $4 - i32.const 15264 + i32.const 13360 call $~lib/string/String.__eq else i32.const 0 @@ -17861,7 +17790,7 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq else i32.const 0 @@ -17869,7 +17798,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 557 i32.const 3 call $~lib/builtins/abort @@ -17883,12 +17812,12 @@ local.get $0 i32.store local.get $0 - i32.const 1840 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 562 i32.const 1 call $~lib/builtins/abort @@ -17902,12 +17831,12 @@ local.get $0 i32.store local.get $0 - i32.const 5360 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 563 i32.const 1 call $~lib/builtins/abort @@ -17921,12 +17850,12 @@ local.get $0 i32.store local.get $0 - i32.const 17952 + i32.const 17792 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 564 i32.const 1 call $~lib/builtins/abort @@ -17940,12 +17869,12 @@ local.get $0 i32.store local.get $0 - i32.const 17984 + i32.const 17824 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 565 i32.const 1 call $~lib/builtins/abort @@ -17959,12 +17888,12 @@ local.get $0 i32.store local.get $0 - i32.const 4336 + i32.const 2400 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 566 i32.const 1 call $~lib/builtins/abort @@ -17978,12 +17907,12 @@ local.get $0 i32.store local.get $0 - i32.const 18016 + i32.const 17856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 567 i32.const 1 call $~lib/builtins/abort @@ -17997,12 +17926,12 @@ local.get $0 i32.store local.get $0 - i32.const 15904 + i32.const 14000 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 568 i32.const 1 call $~lib/builtins/abort @@ -18016,12 +17945,12 @@ local.get $0 i32.store local.get $0 - i32.const 18048 + i32.const 17888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 569 i32.const 1 call $~lib/builtins/abort @@ -18035,12 +17964,12 @@ local.get $0 i32.store local.get $0 - i32.const 18080 + i32.const 17920 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 570 i32.const 1 call $~lib/builtins/abort @@ -18054,12 +17983,12 @@ local.get $0 i32.store local.get $0 - i32.const 18112 + i32.const 17952 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 571 i32.const 1 call $~lib/builtins/abort @@ -18073,12 +18002,12 @@ local.get $0 i32.store local.get $0 - i32.const 18160 + i32.const 18000 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 572 i32.const 1 call $~lib/builtins/abort @@ -18092,12 +18021,12 @@ local.get $0 i32.store local.get $0 - i32.const 18208 + i32.const 18048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 573 i32.const 1 call $~lib/builtins/abort @@ -18111,12 +18040,12 @@ local.get $0 i32.store local.get $0 - i32.const 18256 + i32.const 18096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 574 i32.const 1 call $~lib/builtins/abort @@ -18130,12 +18059,12 @@ local.get $0 i32.store local.get $0 - i32.const 18304 + i32.const 18144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 575 i32.const 1 call $~lib/builtins/abort @@ -18149,12 +18078,12 @@ local.get $0 i32.store local.get $0 - i32.const 18352 + i32.const 18192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 576 i32.const 1 call $~lib/builtins/abort @@ -18168,12 +18097,12 @@ local.get $0 i32.store local.get $0 - i32.const 18400 + i32.const 18240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 577 i32.const 1 call $~lib/builtins/abort @@ -18187,12 +18116,12 @@ local.get $0 i32.store local.get $0 - i32.const 18448 + i32.const 18288 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 578 i32.const 1 call $~lib/builtins/abort @@ -18206,12 +18135,12 @@ local.get $0 i32.store local.get $0 - i32.const 18480 + i32.const 18320 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 580 i32.const 1 call $~lib/builtins/abort @@ -18225,12 +18154,12 @@ local.get $0 i32.store local.get $0 - i32.const 18512 + i32.const 18352 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 581 i32.const 1 call $~lib/builtins/abort @@ -18244,12 +18173,12 @@ local.get $0 i32.store local.get $0 - i32.const 18400 + i32.const 18240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 582 i32.const 1 call $~lib/builtins/abort @@ -18263,12 +18192,12 @@ local.get $0 i32.store local.get $0 - i32.const 1840 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 584 i32.const 1 call $~lib/builtins/abort @@ -18282,12 +18211,12 @@ local.get $0 i32.store local.get $0 - i32.const 18544 + i32.const 18384 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 585 i32.const 1 call $~lib/builtins/abort @@ -18301,12 +18230,12 @@ local.get $0 i32.store local.get $0 - i32.const 18352 + i32.const 18192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 586 i32.const 1 call $~lib/builtins/abort @@ -18320,12 +18249,12 @@ local.get $0 i32.store local.get $0 - i32.const 18576 + i32.const 18416 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 587 i32.const 1 call $~lib/builtins/abort @@ -18339,12 +18268,12 @@ local.get $0 i32.store local.get $0 - i32.const 18624 + i32.const 18464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 588 i32.const 1 call $~lib/builtins/abort @@ -18358,12 +18287,12 @@ local.get $0 i32.store local.get $0 - i32.const 1840 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 592 i32.const 1 call $~lib/builtins/abort @@ -18377,12 +18306,12 @@ local.get $0 i32.store local.get $0 - i32.const 5360 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 593 i32.const 1 call $~lib/builtins/abort @@ -18396,12 +18325,12 @@ local.get $0 i32.store local.get $0 - i32.const 17952 + i32.const 17792 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 594 i32.const 1 call $~lib/builtins/abort @@ -18415,12 +18344,12 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 595 i32.const 1 call $~lib/builtins/abort @@ -18434,12 +18363,12 @@ local.get $0 i32.store local.get $0 - i32.const 18672 + i32.const 18512 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 596 i32.const 1 call $~lib/builtins/abort @@ -18453,12 +18382,12 @@ local.get $0 i32.store local.get $0 - i32.const 18704 + i32.const 18544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 597 i32.const 1 call $~lib/builtins/abort @@ -18472,12 +18401,12 @@ local.get $0 i32.store local.get $0 - i32.const 18736 + i32.const 18576 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 598 i32.const 1 call $~lib/builtins/abort @@ -18491,12 +18420,12 @@ local.get $0 i32.store local.get $0 - i32.const 18768 + i32.const 18608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 599 i32.const 1 call $~lib/builtins/abort @@ -18510,12 +18439,12 @@ local.get $0 i32.store local.get $0 - i32.const 18800 + i32.const 18640 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 600 i32.const 1 call $~lib/builtins/abort @@ -18529,12 +18458,12 @@ local.get $0 i32.store local.get $0 - i32.const 18832 + i32.const 18672 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 601 i32.const 1 call $~lib/builtins/abort @@ -18548,12 +18477,12 @@ local.get $0 i32.store local.get $0 - i32.const 18864 + i32.const 18704 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 602 i32.const 1 call $~lib/builtins/abort @@ -18567,12 +18496,12 @@ local.get $0 i32.store local.get $0 - i32.const 18896 + i32.const 18736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 603 i32.const 1 call $~lib/builtins/abort @@ -18586,12 +18515,12 @@ local.get $0 i32.store local.get $0 - i32.const 18944 + i32.const 18784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 604 i32.const 1 call $~lib/builtins/abort @@ -18605,12 +18534,12 @@ local.get $0 i32.store local.get $0 - i32.const 18992 + i32.const 18832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 605 i32.const 1 call $~lib/builtins/abort @@ -18624,12 +18553,12 @@ local.get $0 i32.store local.get $0 - i32.const 19040 + i32.const 18880 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 606 i32.const 1 call $~lib/builtins/abort @@ -18643,12 +18572,12 @@ local.get $0 i32.store local.get $0 - i32.const 19088 + i32.const 18928 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 607 i32.const 1 call $~lib/builtins/abort @@ -18662,12 +18591,12 @@ local.get $0 i32.store local.get $0 - i32.const 1840 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 609 i32.const 1 call $~lib/builtins/abort @@ -18681,12 +18610,12 @@ local.get $0 i32.store local.get $0 - i32.const 18016 + i32.const 17856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 610 i32.const 1 call $~lib/builtins/abort @@ -18700,12 +18629,12 @@ local.get $0 i32.store local.get $0 - i32.const 18992 + i32.const 18832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 611 i32.const 1 call $~lib/builtins/abort @@ -18719,12 +18648,12 @@ local.get $0 i32.store local.get $0 - i32.const 19136 + i32.const 18976 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 612 i32.const 1 call $~lib/builtins/abort @@ -18738,12 +18667,12 @@ local.get $0 i32.store local.get $0 - i32.const 19184 + i32.const 19024 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 613 i32.const 1 call $~lib/builtins/abort @@ -18757,12 +18686,12 @@ local.get $0 i32.store local.get $0 - i32.const 19232 + i32.const 19072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 614 i32.const 1 call $~lib/builtins/abort @@ -18776,12 +18705,12 @@ local.get $0 i32.store local.get $0 - i32.const 19232 + i32.const 19072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 615 i32.const 1 call $~lib/builtins/abort @@ -18795,12 +18724,12 @@ local.get $0 i32.store local.get $0 - i32.const 1840 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 619 i32.const 1 call $~lib/builtins/abort @@ -18814,12 +18743,12 @@ local.get $0 i32.store local.get $0 - i32.const 5360 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 620 i32.const 1 call $~lib/builtins/abort @@ -18833,12 +18762,12 @@ local.get $0 i32.store local.get $0 - i32.const 15808 + i32.const 13904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 621 i32.const 1 call $~lib/builtins/abort @@ -18852,12 +18781,12 @@ local.get $0 i32.store local.get $0 - i32.const 19280 + i32.const 19120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 622 i32.const 1 call $~lib/builtins/abort @@ -18871,12 +18800,12 @@ local.get $0 i32.store local.get $0 - i32.const 19312 + i32.const 19152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 623 i32.const 1 call $~lib/builtins/abort @@ -18890,12 +18819,12 @@ local.get $0 i32.store local.get $0 - i32.const 19344 + i32.const 19184 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 624 i32.const 1 call $~lib/builtins/abort @@ -18909,12 +18838,12 @@ local.get $0 i32.store local.get $0 - i32.const 19376 + i32.const 19216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 625 i32.const 1 call $~lib/builtins/abort @@ -18928,12 +18857,12 @@ local.get $0 i32.store local.get $0 - i32.const 19408 + i32.const 19248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 626 i32.const 1 call $~lib/builtins/abort @@ -18947,12 +18876,12 @@ local.get $0 i32.store local.get $0 - i32.const 19456 + i32.const 19296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 627 i32.const 1 call $~lib/builtins/abort @@ -18966,12 +18895,12 @@ local.get $0 i32.store local.get $0 - i32.const 19536 + i32.const 19376 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 628 i32.const 1 call $~lib/builtins/abort @@ -18985,12 +18914,12 @@ local.get $0 i32.store local.get $0 - i32.const 19632 + i32.const 19472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 629 i32.const 1 call $~lib/builtins/abort @@ -19004,12 +18933,12 @@ local.get $0 i32.store local.get $0 - i32.const 19728 + i32.const 19568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 630 i32.const 1 call $~lib/builtins/abort @@ -19023,12 +18952,12 @@ local.get $0 i32.store local.get $0 - i32.const 19824 + i32.const 19664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 631 i32.const 1 call $~lib/builtins/abort @@ -19042,12 +18971,12 @@ local.get $0 i32.store local.get $0 - i32.const 19920 + i32.const 19760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 633 i32.const 1 call $~lib/builtins/abort @@ -19061,12 +18990,12 @@ local.get $0 i32.store local.get $0 - i32.const 19968 + i32.const 19808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 637 i32.const 1 call $~lib/builtins/abort @@ -19080,12 +19009,12 @@ local.get $0 i32.store local.get $0 - i32.const 20032 + i32.const 19872 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 638 i32.const 1 call $~lib/builtins/abort @@ -19099,12 +19028,12 @@ local.get $0 i32.store local.get $0 - i32.const 20096 + i32.const 19936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 639 i32.const 1 call $~lib/builtins/abort @@ -19118,12 +19047,12 @@ local.get $0 i32.store local.get $0 - i32.const 20144 + i32.const 19984 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 640 i32.const 1 call $~lib/builtins/abort @@ -19137,12 +19066,12 @@ local.get $0 i32.store local.get $0 - i32.const 20192 + i32.const 20032 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 641 i32.const 1 call $~lib/builtins/abort @@ -19156,12 +19085,12 @@ local.get $0 i32.store local.get $0 - i32.const 20240 + i32.const 20080 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 642 i32.const 1 call $~lib/builtins/abort @@ -19175,12 +19104,12 @@ local.get $0 i32.store local.get $0 - i32.const 20288 + i32.const 20128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 643 i32.const 1 call $~lib/builtins/abort @@ -19194,12 +19123,12 @@ local.get $0 i32.store local.get $0 - i32.const 20336 + i32.const 20176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 644 i32.const 1 call $~lib/builtins/abort @@ -19213,12 +19142,12 @@ local.get $0 i32.store local.get $0 - i32.const 20384 + i32.const 20224 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 645 i32.const 1 call $~lib/builtins/abort @@ -19232,12 +19161,12 @@ local.get $0 i32.store local.get $0 - i32.const 20432 + i32.const 20272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 646 i32.const 1 call $~lib/builtins/abort @@ -19251,12 +19180,12 @@ local.get $0 i32.store local.get $0 - i32.const 20480 + i32.const 20320 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 647 i32.const 1 call $~lib/builtins/abort @@ -19270,12 +19199,12 @@ local.get $0 i32.store local.get $0 - i32.const 1840 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 651 i32.const 1 call $~lib/builtins/abort @@ -19289,12 +19218,12 @@ local.get $0 i32.store local.get $0 - i32.const 17984 + i32.const 17824 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 652 i32.const 1 call $~lib/builtins/abort @@ -19308,12 +19237,12 @@ local.get $0 i32.store local.get $0 - i32.const 4336 + i32.const 2400 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 653 i32.const 1 call $~lib/builtins/abort @@ -19327,12 +19256,12 @@ local.get $0 i32.store local.get $0 - i32.const 15904 + i32.const 14000 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 654 i32.const 1 call $~lib/builtins/abort @@ -19346,12 +19275,12 @@ local.get $0 i32.store local.get $0 - i32.const 18048 + i32.const 17888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 655 i32.const 1 call $~lib/builtins/abort @@ -19365,12 +19294,12 @@ local.get $0 i32.store local.get $0 - i32.const 18080 + i32.const 17920 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 656 i32.const 1 call $~lib/builtins/abort @@ -19384,12 +19313,12 @@ local.get $0 i32.store local.get $0 - i32.const 18160 + i32.const 18000 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 657 i32.const 1 call $~lib/builtins/abort @@ -19403,12 +19332,12 @@ local.get $0 i32.store local.get $0 - i32.const 20528 + i32.const 20368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 658 i32.const 1 call $~lib/builtins/abort @@ -19422,12 +19351,12 @@ local.get $0 i32.store local.get $0 - i32.const 20576 + i32.const 20416 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 659 i32.const 1 call $~lib/builtins/abort @@ -19441,12 +19370,12 @@ local.get $0 i32.store local.get $0 - i32.const 18624 + i32.const 18464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 660 i32.const 1 call $~lib/builtins/abort @@ -19460,12 +19389,12 @@ local.get $0 i32.store local.get $0 - i32.const 20624 + i32.const 20464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 661 i32.const 1 call $~lib/builtins/abort @@ -19479,12 +19408,12 @@ local.get $0 i32.store local.get $0 - i32.const 20672 + i32.const 20512 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 662 i32.const 1 call $~lib/builtins/abort @@ -19498,12 +19427,12 @@ local.get $0 i32.store local.get $0 - i32.const 20720 + i32.const 20560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 663 i32.const 1 call $~lib/builtins/abort @@ -19517,12 +19446,12 @@ local.get $0 i32.store local.get $0 - i32.const 20768 + i32.const 20608 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 664 i32.const 1 call $~lib/builtins/abort @@ -19536,12 +19465,12 @@ local.get $0 i32.store local.get $0 - i32.const 20816 + i32.const 20656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 665 i32.const 1 call $~lib/builtins/abort @@ -19555,12 +19484,12 @@ local.get $0 i32.store local.get $0 - i32.const 20864 + i32.const 20704 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 666 i32.const 1 call $~lib/builtins/abort @@ -19574,12 +19503,12 @@ local.get $0 i32.store local.get $0 - i32.const 20928 + i32.const 20768 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 667 i32.const 1 call $~lib/builtins/abort @@ -19593,12 +19522,12 @@ local.get $0 i32.store local.get $0 - i32.const 20992 + i32.const 20832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 668 i32.const 1 call $~lib/builtins/abort @@ -19612,12 +19541,12 @@ local.get $0 i32.store local.get $0 - i32.const 21056 + i32.const 20896 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 669 i32.const 1 call $~lib/builtins/abort @@ -19631,12 +19560,12 @@ local.get $0 i32.store local.get $0 - i32.const 21120 + i32.const 20960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 670 i32.const 1 call $~lib/builtins/abort @@ -19650,12 +19579,12 @@ local.get $0 i32.store local.get $0 - i32.const 21184 + i32.const 21024 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 671 i32.const 1 call $~lib/builtins/abort @@ -19669,12 +19598,12 @@ local.get $0 i32.store local.get $0 - i32.const 1840 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 673 i32.const 1 call $~lib/builtins/abort @@ -19688,12 +19617,12 @@ local.get $0 i32.store local.get $0 - i32.const 21248 + i32.const 21088 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 674 i32.const 1 call $~lib/builtins/abort @@ -19707,12 +19636,12 @@ local.get $0 i32.store local.get $0 - i32.const 18624 + i32.const 18464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 675 i32.const 1 call $~lib/builtins/abort @@ -19726,12 +19655,12 @@ local.get $0 i32.store local.get $0 - i32.const 20624 + i32.const 20464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 676 i32.const 1 call $~lib/builtins/abort @@ -19745,12 +19674,12 @@ local.get $0 i32.store local.get $0 - i32.const 21280 + i32.const 21120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 677 i32.const 1 call $~lib/builtins/abort @@ -19764,12 +19693,12 @@ local.get $0 i32.store local.get $0 - i32.const 20672 + i32.const 20512 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 678 i32.const 1 call $~lib/builtins/abort @@ -19783,12 +19712,12 @@ local.get $0 i32.store local.get $0 - i32.const 21328 + i32.const 21168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 679 i32.const 1 call $~lib/builtins/abort @@ -19802,12 +19731,12 @@ local.get $0 i32.store local.get $0 - i32.const 21376 + i32.const 21216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 680 i32.const 1 call $~lib/builtins/abort @@ -19821,12 +19750,12 @@ local.get $0 i32.store local.get $0 - i32.const 21424 + i32.const 21264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 681 i32.const 1 call $~lib/builtins/abort @@ -19840,12 +19769,12 @@ local.get $0 i32.store local.get $0 - i32.const 21488 + i32.const 21328 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 682 i32.const 1 call $~lib/builtins/abort @@ -19859,12 +19788,12 @@ local.get $0 i32.store local.get $0 - i32.const 21552 + i32.const 21392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 683 i32.const 1 call $~lib/builtins/abort @@ -19878,12 +19807,12 @@ local.get $0 i32.store local.get $0 - i32.const 21616 + i32.const 21456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 684 i32.const 1 call $~lib/builtins/abort @@ -19897,12 +19826,12 @@ local.get $0 i32.store local.get $0 - i32.const 1840 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 688 i32.const 1 call $~lib/builtins/abort @@ -19916,12 +19845,12 @@ local.get $0 i32.store local.get $0 - i32.const 5360 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 689 i32.const 1 call $~lib/builtins/abort @@ -19935,12 +19864,12 @@ local.get $0 i32.store local.get $0 - i32.const 16368 + i32.const 14464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 690 i32.const 1 call $~lib/builtins/abort @@ -19954,12 +19883,12 @@ local.get $0 i32.store local.get $0 - i32.const 18704 + i32.const 18544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 691 i32.const 1 call $~lib/builtins/abort @@ -19973,12 +19902,12 @@ local.get $0 i32.store local.get $0 - i32.const 18800 + i32.const 18640 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 692 i32.const 1 call $~lib/builtins/abort @@ -19992,12 +19921,12 @@ local.get $0 i32.store local.get $0 - i32.const 21680 + i32.const 21520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 693 i32.const 1 call $~lib/builtins/abort @@ -20011,12 +19940,12 @@ local.get $0 i32.store local.get $0 - i32.const 21728 + i32.const 21568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 694 i32.const 1 call $~lib/builtins/abort @@ -20030,12 +19959,12 @@ local.get $0 i32.store local.get $0 - i32.const 21776 + i32.const 21616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 695 i32.const 1 call $~lib/builtins/abort @@ -20049,12 +19978,12 @@ local.get $0 i32.store local.get $0 - i32.const 21824 + i32.const 21664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 696 i32.const 1 call $~lib/builtins/abort @@ -20068,12 +19997,12 @@ local.get $0 i32.store local.get $0 - i32.const 21872 + i32.const 21712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 697 i32.const 1 call $~lib/builtins/abort @@ -20087,12 +20016,12 @@ local.get $0 i32.store local.get $0 - i32.const 21920 + i32.const 21760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 698 i32.const 1 call $~lib/builtins/abort @@ -20106,12 +20035,12 @@ local.get $0 i32.store local.get $0 - i32.const 21984 + i32.const 21824 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 699 i32.const 1 call $~lib/builtins/abort @@ -20125,12 +20054,12 @@ local.get $0 i32.store local.get $0 - i32.const 22048 + i32.const 21888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 700 i32.const 1 call $~lib/builtins/abort @@ -20144,12 +20073,12 @@ local.get $0 i32.store local.get $0 - i32.const 22112 + i32.const 21952 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 701 i32.const 1 call $~lib/builtins/abort @@ -20163,12 +20092,12 @@ local.get $0 i32.store local.get $0 - i32.const 22176 + i32.const 22016 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 703 i32.const 1 call $~lib/builtins/abort @@ -20182,12 +20111,12 @@ local.get $0 i32.store local.get $0 - i32.const 22240 + i32.const 22080 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 704 i32.const 1 call $~lib/builtins/abort @@ -20201,12 +20130,12 @@ local.get $0 i32.store local.get $0 - i32.const 22240 + i32.const 22080 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 705 i32.const 1 call $~lib/builtins/abort @@ -20220,12 +20149,12 @@ local.get $0 i32.store local.get $0 - i32.const 1840 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 709 i32.const 1 call $~lib/builtins/abort @@ -20239,12 +20168,12 @@ local.get $0 i32.store local.get $0 - i32.const 5360 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 710 i32.const 1 call $~lib/builtins/abort @@ -20258,12 +20187,12 @@ local.get $0 i32.store local.get $0 - i32.const 19280 + i32.const 19120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 711 i32.const 1 call $~lib/builtins/abort @@ -20277,12 +20206,12 @@ local.get $0 i32.store local.get $0 - i32.const 19312 + i32.const 19152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 712 i32.const 1 call $~lib/builtins/abort @@ -20296,12 +20225,12 @@ local.get $0 i32.store local.get $0 - i32.const 19376 + i32.const 19216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 713 i32.const 1 call $~lib/builtins/abort @@ -20315,12 +20244,12 @@ local.get $0 i32.store local.get $0 - i32.const 19408 + i32.const 19248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 714 i32.const 1 call $~lib/builtins/abort @@ -20334,12 +20263,12 @@ local.get $0 i32.store local.get $0 - i32.const 19824 + i32.const 19664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 715 i32.const 1 call $~lib/builtins/abort @@ -20353,12 +20282,12 @@ local.get $0 i32.store local.get $0 - i32.const 22304 + i32.const 22144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 716 i32.const 1 call $~lib/builtins/abort @@ -20372,12 +20301,12 @@ local.get $0 i32.store local.get $0 - i32.const 22432 + i32.const 22272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 717 i32.const 1 call $~lib/builtins/abort @@ -20391,12 +20320,12 @@ local.get $0 i32.store local.get $0 - i32.const 22592 + i32.const 22432 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 719 i32.const 1 call $~lib/builtins/abort @@ -20410,12 +20339,12 @@ local.get $0 i32.store local.get $0 - i32.const 22688 + i32.const 22528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 723 i32.const 1 call $~lib/builtins/abort @@ -20429,12 +20358,12 @@ local.get $0 i32.store local.get $0 - i32.const 22800 + i32.const 22640 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 724 i32.const 1 call $~lib/builtins/abort @@ -20448,12 +20377,12 @@ local.get $0 i32.store local.get $0 - i32.const 22896 + i32.const 22736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 725 i32.const 1 call $~lib/builtins/abort @@ -20467,12 +20396,12 @@ local.get $0 i32.store local.get $0 - i32.const 22976 + i32.const 22816 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 726 i32.const 1 call $~lib/builtins/abort @@ -20486,12 +20415,12 @@ local.get $0 i32.store local.get $0 - i32.const 23040 + i32.const 22880 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 727 i32.const 1 call $~lib/builtins/abort @@ -20505,12 +20434,12 @@ local.get $0 i32.store local.get $0 - i32.const 23104 + i32.const 22944 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 728 i32.const 1 call $~lib/builtins/abort @@ -20524,12 +20453,12 @@ local.get $0 i32.store local.get $0 - i32.const 23168 + i32.const 23008 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 729 i32.const 1 call $~lib/builtins/abort @@ -20543,12 +20472,12 @@ local.get $0 i32.store local.get $0 - i32.const 23232 + i32.const 23072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 730 i32.const 1 call $~lib/builtins/abort @@ -20562,12 +20491,12 @@ local.get $0 i32.store local.get $0 - i32.const 23296 + i32.const 23136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 731 i32.const 1 call $~lib/builtins/abort @@ -20581,12 +20510,12 @@ local.get $0 i32.store local.get $0 - i32.const 23344 + i32.const 23184 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 732 i32.const 1 call $~lib/builtins/abort @@ -20600,12 +20529,12 @@ local.get $0 i32.store local.get $0 - i32.const 23392 + i32.const 23232 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 733 i32.const 1 call $~lib/builtins/abort @@ -20618,12 +20547,12 @@ local.get $0 i32.store local.get $0 - i32.const 23440 + i32.const 23280 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 736 i32.const 1 call $~lib/builtins/abort @@ -20636,12 +20565,12 @@ local.get $0 i32.store local.get $0 - i32.const 23440 + i32.const 23280 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 737 i32.const 1 call $~lib/builtins/abort @@ -20654,12 +20583,12 @@ local.get $0 i32.store local.get $0 - i32.const 9600 + i32.const 7696 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 738 i32.const 1 call $~lib/builtins/abort @@ -20672,12 +20601,12 @@ local.get $0 i32.store local.get $0 - i32.const 23472 + i32.const 23312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 739 i32.const 1 call $~lib/builtins/abort @@ -20690,12 +20619,12 @@ local.get $0 i32.store local.get $0 - i32.const 10864 + i32.const 8960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 740 i32.const 1 call $~lib/builtins/abort @@ -20708,12 +20637,12 @@ local.get $0 i32.store local.get $0 - i32.const 10080 + i32.const 8176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 741 i32.const 1 call $~lib/builtins/abort @@ -20726,12 +20655,12 @@ local.get $0 i32.store local.get $0 - i32.const 24496 + i32.const 24336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 742 i32.const 1 call $~lib/builtins/abort @@ -20744,12 +20673,12 @@ local.get $0 i32.store local.get $0 - i32.const 10144 + i32.const 8240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 743 i32.const 1 call $~lib/builtins/abort @@ -20762,12 +20691,12 @@ local.get $0 i32.store local.get $0 - i32.const 24560 + i32.const 24400 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 744 i32.const 1 call $~lib/builtins/abort @@ -20780,12 +20709,12 @@ local.get $0 i32.store local.get $0 - i32.const 24640 + i32.const 24480 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 745 i32.const 1 call $~lib/builtins/abort @@ -20798,12 +20727,12 @@ local.get $0 i32.store local.get $0 - i32.const 24688 + i32.const 24528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 746 i32.const 1 call $~lib/builtins/abort @@ -20816,12 +20745,12 @@ local.get $0 i32.store local.get $0 - i32.const 24736 + i32.const 24576 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 747 i32.const 1 call $~lib/builtins/abort @@ -20834,12 +20763,12 @@ local.get $0 i32.store local.get $0 - i32.const 24784 + i32.const 24624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 748 i32.const 1 call $~lib/builtins/abort @@ -20852,12 +20781,12 @@ local.get $0 i32.store local.get $0 - i32.const 24832 + i32.const 24672 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 749 i32.const 1 call $~lib/builtins/abort @@ -20870,12 +20799,12 @@ local.get $0 i32.store local.get $0 - i32.const 24896 + i32.const 24736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 750 i32.const 1 call $~lib/builtins/abort @@ -20888,12 +20817,12 @@ local.get $0 i32.store local.get $0 - i32.const 24976 + i32.const 24816 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 751 i32.const 1 call $~lib/builtins/abort @@ -20906,12 +20835,12 @@ local.get $0 i32.store local.get $0 - i32.const 25024 + i32.const 24864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 752 i32.const 1 call $~lib/builtins/abort @@ -20924,12 +20853,12 @@ local.get $0 i32.store local.get $0 - i32.const 25088 + i32.const 24928 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 753 i32.const 1 call $~lib/builtins/abort @@ -20942,12 +20871,12 @@ local.get $0 i32.store local.get $0 - i32.const 25152 + i32.const 24992 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 754 i32.const 1 call $~lib/builtins/abort @@ -20960,12 +20889,12 @@ local.get $0 i32.store local.get $0 - i32.const 10224 + i32.const 8320 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 755 i32.const 1 call $~lib/builtins/abort @@ -20978,12 +20907,12 @@ local.get $0 i32.store local.get $0 - i32.const 25216 + i32.const 25056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 757 i32.const 1 call $~lib/builtins/abort @@ -20996,12 +20925,12 @@ local.get $0 i32.store local.get $0 - i32.const 7184 + i32.const 5280 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 758 i32.const 1 call $~lib/builtins/abort @@ -21014,12 +20943,12 @@ local.get $0 i32.store local.get $0 - i32.const 25248 + i32.const 25088 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 759 i32.const 1 call $~lib/builtins/abort @@ -21032,12 +20961,12 @@ local.get $0 i32.store local.get $0 - i32.const 25280 + i32.const 25120 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 760 i32.const 1 call $~lib/builtins/abort @@ -21050,12 +20979,12 @@ local.get $0 i32.store local.get $0 - i32.const 25312 + i32.const 25152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 762 i32.const 1 call $~lib/builtins/abort @@ -21068,12 +20997,12 @@ local.get $0 i32.store local.get $0 - i32.const 25360 + i32.const 25200 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 763 i32.const 1 call $~lib/builtins/abort @@ -21086,12 +21015,12 @@ local.get $0 i32.store local.get $0 - i32.const 25408 + i32.const 25248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 764 i32.const 1 call $~lib/builtins/abort @@ -21104,12 +21033,12 @@ local.get $0 i32.store local.get $0 - i32.const 25456 + i32.const 25296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 765 i32.const 1 call $~lib/builtins/abort @@ -21122,12 +21051,12 @@ local.get $0 i32.store local.get $0 - i32.const 25504 + i32.const 25344 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 766 i32.const 1 call $~lib/builtins/abort @@ -21140,12 +21069,12 @@ local.get $0 i32.store local.get $0 - i32.const 25552 + i32.const 25392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 767 i32.const 1 call $~lib/builtins/abort @@ -21158,12 +21087,12 @@ local.get $0 i32.store local.get $0 - i32.const 7472 + i32.const 5568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 769 i32.const 1 call $~lib/builtins/abort @@ -21176,12 +21105,12 @@ local.get $0 i32.store local.get $0 - i32.const 25584 + i32.const 25424 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 770 i32.const 1 call $~lib/builtins/abort @@ -21194,12 +21123,12 @@ local.get $0 i32.store local.get $0 - i32.const 23472 + i32.const 23312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 771 i32.const 1 call $~lib/builtins/abort @@ -21212,12 +21141,12 @@ local.get $0 i32.store local.get $0 - i32.const 10864 + i32.const 8960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 772 i32.const 1 call $~lib/builtins/abort @@ -21230,12 +21159,12 @@ local.get $0 i32.store local.get $0 - i32.const 25632 + i32.const 25472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 773 i32.const 1 call $~lib/builtins/abort @@ -21248,12 +21177,12 @@ local.get $0 i32.store local.get $0 - i32.const 25664 + i32.const 25504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 774 i32.const 1 call $~lib/builtins/abort @@ -21266,12 +21195,12 @@ local.get $0 i32.store local.get $0 - i32.const 25712 + i32.const 25552 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 775 i32.const 1 call $~lib/builtins/abort @@ -21284,12 +21213,12 @@ local.get $0 i32.store local.get $0 - i32.const 25744 + i32.const 25584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 776 i32.const 1 call $~lib/builtins/abort @@ -21302,12 +21231,12 @@ local.get $0 i32.store local.get $0 - i32.const 23440 + i32.const 23280 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 777 i32.const 1 call $~lib/builtins/abort @@ -21318,7 +21247,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -21337,7 +21266,7 @@ local.tee $4 i32.store local.get $4 - i32.const 23504 + i32.const 23344 local.get $0 memory.copy global.get $~lib/memory/__stack_pointer @@ -21348,12 +21277,12 @@ local.get $4 i32.store local.get $4 - i32.const 25792 + i32.const 25632 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 779 i32.const 1 call $~lib/builtins/abort @@ -21366,12 +21295,12 @@ local.get $0 i32.store local.get $0 - i32.const 25840 + i32.const 25680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 780 i32.const 1 call $~lib/builtins/abort @@ -21384,12 +21313,12 @@ local.get $0 i32.store local.get $0 - i32.const 25904 + i32.const 25744 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 781 i32.const 1 call $~lib/builtins/abort @@ -21402,12 +21331,12 @@ local.get $0 i32.store local.get $0 - i32.const 25968 + i32.const 25808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 782 i32.const 1 call $~lib/builtins/abort @@ -21420,12 +21349,12 @@ local.get $0 i32.store local.get $0 - i32.const 25216 + i32.const 25056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 783 i32.const 1 call $~lib/builtins/abort @@ -21438,12 +21367,12 @@ local.get $0 i32.store local.get $0 - i32.const 26032 + i32.const 25872 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 784 i32.const 1 call $~lib/builtins/abort @@ -21456,12 +21385,12 @@ local.get $0 i32.store local.get $0 - i32.const 26064 + i32.const 25904 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 785 i32.const 1 call $~lib/builtins/abort @@ -21474,12 +21403,12 @@ local.get $0 i32.store local.get $0 - i32.const 26128 + i32.const 25968 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 786 i32.const 1 call $~lib/builtins/abort @@ -21492,12 +21421,12 @@ local.get $0 i32.store local.get $0 - i32.const 26208 + i32.const 26048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 787 i32.const 1 call $~lib/builtins/abort @@ -21510,12 +21439,12 @@ local.get $0 i32.store local.get $0 - i32.const 26256 + i32.const 26096 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 788 i32.const 1 call $~lib/builtins/abort @@ -21528,12 +21457,12 @@ local.get $0 i32.store local.get $0 - i32.const 26304 + i32.const 26144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 789 i32.const 1 call $~lib/builtins/abort @@ -21546,12 +21475,12 @@ local.get $0 i32.store local.get $0 - i32.const 26352 + i32.const 26192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 790 i32.const 1 call $~lib/builtins/abort @@ -21564,12 +21493,12 @@ local.get $0 i32.store local.get $0 - i32.const 26400 + i32.const 26240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 791 i32.const 1 call $~lib/builtins/abort @@ -21582,12 +21511,12 @@ local.get $0 i32.store local.get $0 - i32.const 26448 + i32.const 26288 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 792 i32.const 1 call $~lib/builtins/abort @@ -21600,136 +21529,136 @@ local.get $0 i32.store local.get $0 - i32.const 26496 + i32.const 26336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 793 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26544 - i32.const 26576 + i32.const 26384 + i32.const 26416 call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26608 + i32.const 26448 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 820 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 26656 + i32.const 1712 + i32.const 26496 call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26656 + i32.const 26496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 821 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26656 - i32.const 1184 + i32.const 26496 + i32.const 1712 call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26656 + i32.const 26496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 822 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1184 - i32.const 1184 + i32.const 1712 + i32.const 1712 call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1184 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 823 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26688 - i32.const 26688 + i32.const 26528 + i32.const 26528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 831 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26688 - i32.const 26688 + i32.const 26528 + i32.const 26528 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 832 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26720 - i32.const 26720 + i32.const 26560 + i32.const 26560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 833 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26752 - i32.const 26752 + i32.const 26592 + i32.const 26592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 834 i32.const 1 call $~lib/builtins/abort @@ -21737,7 +21666,7 @@ end i32.const 0 global.set $std/string/str - i32.const 59564 + i32.const 59404 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -21778,29 +21707,215 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.fromCharCode (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 + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + local.get $1 + i32.const 0 + i32.gt_s + local.tee $3 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + i32.store16 + local.get $3 + if + local.get $2 + local.get $1 + i32.store16 offset=2 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result 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 + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $4 + memory.copy + end + local.get $3 + i32.store + i32.const 16 + local.get $1 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $1 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) + (local $1 i32) + (local $2 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + local.get $0 + i32.const 65535 + i32.gt_u + local.tee $2 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $2 + if + local.get $0 + i32.const 1114111 + i32.gt_u + if + i32.const 0 + i32.const 1328 + i32.const 40 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.const 65536 + i32.sub + local.tee $0 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $0 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + i32.const 16 + i32.shl + i32.or + i32.store + else + local.get $1 + local.get $0 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i64) - (local $4 i64) + (local $4 i32) (local $5 i64) - (local $6 i32) + (local $6 i64) + (local $7 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 26796 + i32.const 26636 i32.lt_s if - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21817,9 +21932,9 @@ i32.gt_s i32.or if - i32.const 1648 - i32.const 1776 - i32.const 350 + i32.const 16048 + i32.const 16176 + i32.const 373 i32.const 5 call $~lib/builtins/abort unreachable @@ -21831,55 +21946,67 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1840 + i32.const 3392 return end + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 + select + local.set $2 local.get $1 i32.const 10 i32.eq if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -21888,12 +22015,16 @@ local.tee $1 i32.const 1 i32.shl + local.get $4 + i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $4 + i32.add + local.get $2 local.get $1 call $~lib/util/number/utoa32_dec_lut else @@ -21903,7 +22034,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 31 - local.get $0 + local.get $2 i32.clz i32.sub i32.const 2 @@ -21913,11 +22044,17 @@ local.tee $1 i32.const 1 i32.shl + local.get $4 + i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store local.get $0 + local.get $4 + i32.add + local.set $7 + local.get $2 i64.extend_i32_u local.set $3 loop $while-continue|0 @@ -21925,7 +22062,7 @@ i32.const 2 i32.ge_u if - local.get $2 + local.get $7 local.get $1 i32.const 2 i32.sub @@ -21939,7 +22076,7 @@ i32.and i32.const 2 i32.shl - i32.const 2272 + i32.const 16640 i32.add i32.load i32.store @@ -21954,29 +22091,29 @@ i32.const 1 i32.and if - local.get $2 + local.get $7 local.get $3 i32.wrap_i64 i32.const 6 i32.shl - i32.const 2272 + i32.const 16640 i32.add i32.load16_u i32.store16 end else global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$165 (result i32) - local.get $0 + block $__inlined_func$~lib/util/number/ulog_base$167 (result i32) + local.get $2 i64.extend_i32_u - local.set $4 + local.set $5 local.get $1 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $4 + local.get $5 i64.clz i32.wrap_i64 i32.sub @@ -21987,277 +22124,101 @@ i32.div_u i32.const 1 i32.add - br $__inlined_func$~lib/util/number/ulog_base$165 + br $__inlined_func$~lib/util/number/ulog_base$167 end local.get $1 i64.extend_i32_s - local.tee $5 + local.tee $6 local.set $3 i32.const 1 - local.set $2 + local.set $0 loop $while-continue|01 local.get $3 - local.get $4 + local.get $5 i64.le_u if - local.get $4 + local.get $5 local.get $3 i64.div_u - local.set $4 + local.set $5 local.get $3 local.get $3 i64.mul local.set $3 - local.get $2 + local.get $0 i32.const 1 i32.shl - local.set $2 + local.set $0 br $while-continue|01 - end - end - loop $while-continue|1 - local.get $4 - i64.const 0 - i64.ne - if - local.get $4 - local.get $5 - i64.div_u - local.set $4 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 1 - i32.sub - end - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - i64.extend_i32_u - local.get $6 - local.get $1 - call $~lib/util/number/utoa64_any_core - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/string/String.fromCharCode (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 - global.get $~lib/memory/__stack_pointer - i32.const 26796 - i32.lt_s - if - i32.const 59584 - i32.const 59632 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $1 - i32.const 0 - i32.gt_s - local.tee $3 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - i32.store16 - local.get $3 - if - local.get $2 - local.get $1 - i32.store16 offset=2 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result 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 - global.get $~lib/memory/__stack_pointer - i32.const 26796 - i32.lt_s - if - i32.const 59584 - i32.const 59632 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $3 - local.get $2 - if - local.get $3 - local.get $2 - local.get $4 - memory.copy + end + end + loop $while-continue|1 + local.get $5 + i64.const 0 + i64.ne + if + local.get $5 + local.get $6 + i64.div_u + local.set $5 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|1 + end + end + local.get $0 + i32.const 1 + i32.sub + end + local.tee $7 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $4 + i32.add + local.get $2 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end end - local.get $3 - i32.store - i32.const 16 - local.get $1 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.store offset=4 - local.get $1 local.get $4 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) - (local $1 i32) - (local $2 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 26796 - i32.lt_s - if - i32.const 59584 - i32.const 59632 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $0 - i32.const 65535 - i32.gt_u - local.tee $2 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $2 if local.get $0 - i32.const 1114111 - i32.gt_u - if - i32.const 0 - i32.const 3632 - i32.const 39 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - i32.const 65536 - i32.sub - local.tee $0 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $0 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or - i32.store - else - local.get $1 - 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 - local.get $1 + local.get $0 ) - (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i64) - (local $4 i32) + (local $4 i64) (local $5 i64) - (local $6 i64) - (local $7 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 26796 + i32.const 26636 i32.lt_s if - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22274,9 +22235,9 @@ i32.gt_s i32.or if - i32.const 1648 - i32.const 1776 - i32.const 373 + i32.const 16048 + i32.const 16176 + i32.const 350 i32.const 5 call $~lib/builtins/abort unreachable @@ -22288,67 +22249,55 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1840 + i32.const 3392 return end - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $4 - select - local.set $2 local.get $1 i32.const 10 i32.eq if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $0 i32.const 100000000 i32.ge_u i32.add @@ -22357,16 +22306,12 @@ local.tee $1 i32.const 1 i32.shl - local.get $4 - i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 - local.get $4 - i32.add local.get $2 + local.get $0 local.get $1 call $~lib/util/number/utoa32_dec_lut else @@ -22376,7 +22321,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 31 - local.get $2 + local.get $0 i32.clz i32.sub i32.const 2 @@ -22386,17 +22331,11 @@ local.tee $1 i32.const 1 i32.shl - local.get $4 - i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store local.get $0 - local.get $4 - i32.add - local.set $7 - local.get $2 i64.extend_i32_u local.set $3 loop $while-continue|0 @@ -22404,7 +22343,7 @@ i32.const 2 i32.ge_u if - local.get $7 + local.get $2 local.get $1 i32.const 2 i32.sub @@ -22418,7 +22357,7 @@ i32.and i32.const 2 i32.shl - i32.const 2272 + i32.const 16640 i32.add i32.load i32.store @@ -22433,29 +22372,29 @@ i32.const 1 i32.and if - local.get $7 + local.get $2 local.get $3 i32.wrap_i64 i32.const 6 i32.shl - i32.const 2272 + i32.const 16640 i32.add i32.load16_u i32.store16 end else global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$173 (result i32) - local.get $2 + block $__inlined_func$~lib/util/number/ulog_base$171 (result i32) + local.get $0 i64.extend_i32_u - local.set $5 + local.set $4 local.get $1 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $5 + local.get $4 i64.clz i32.wrap_i64 i32.sub @@ -22466,84 +22405,74 @@ i32.div_u i32.const 1 i32.add - br $__inlined_func$~lib/util/number/ulog_base$173 + br $__inlined_func$~lib/util/number/ulog_base$171 end local.get $1 i64.extend_i32_s - local.tee $6 + local.tee $5 local.set $3 i32.const 1 - local.set $0 + local.set $2 loop $while-continue|01 local.get $3 - local.get $5 + local.get $4 i64.le_u if - local.get $5 + local.get $4 local.get $3 i64.div_u - local.set $5 + local.set $4 local.get $3 local.get $3 i64.mul local.set $3 - local.get $0 + local.get $2 i32.const 1 i32.shl - local.set $0 + local.set $2 br $while-continue|01 end end loop $while-continue|1 - local.get $5 + local.get $4 i64.const 0 i64.ne if + local.get $4 local.get $5 - local.get $6 i64.div_u - local.set $5 - local.get $0 + local.set $4 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $while-continue|1 end end - local.get $0 + local.get $2 i32.const 1 i32.sub end - local.tee $7 + local.tee $6 i32.const 1 i32.shl - local.get $4 - i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 - local.get $4 - i32.add local.get $2 + local.get $0 i64.extend_i32_u - local.get $7 + local.get $6 local.get $1 call $~lib/util/number/utoa64_any_core end end - local.get $4 - 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 - local.get $0 + local.get $2 ) (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) (local $2 i64) @@ -22556,11 +22485,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s if - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22577,8 +22506,8 @@ i32.gt_s i32.or if - i32.const 1648 - i32.const 1776 + i32.const 16048 + i32.const 16176 i32.const 401 i32.const 5 call $~lib/builtins/abort @@ -22591,7 +22520,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1840 + i32.const 3392 return end local.get $1 @@ -22767,7 +22696,7 @@ i32.and i32.const 2 i32.shl - i32.const 2272 + i32.const 16640 i32.add i32.load i32.store @@ -22787,14 +22716,14 @@ i32.wrap_i64 i32.const 6 i32.shl - i32.const 2272 + i32.const 16640 i32.add i32.load16_u i32.store16 end else global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$178 (result i32) + block $__inlined_func$~lib/util/number/ulog_base$176 (result i32) local.get $0 local.set $2 local.get $1 @@ -22814,7 +22743,7 @@ i32.div_u i32.const 1 i32.add - br $__inlined_func$~lib/util/number/ulog_base$178 + br $__inlined_func$~lib/util/number/ulog_base$176 end local.get $1 i64.extend_i32_s @@ -22894,11 +22823,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s if - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22915,8 +22844,8 @@ i32.gt_s i32.or if - i32.const 1648 - i32.const 1776 + i32.const 16048 + i32.const 16176 i32.const 431 i32.const 5 call $~lib/builtins/abort @@ -22929,7 +22858,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1840 + i32.const 3392 return end i64.const 0 @@ -23132,7 +23061,7 @@ i32.and i32.const 2 i32.shl - i32.const 2272 + i32.const 16640 i32.add i32.load i32.store @@ -23152,14 +23081,14 @@ i32.wrap_i64 i32.const 6 i32.shl - i32.const 2272 + i32.const 16640 i32.add i32.load16_u i32.store16 end else global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$183 (result i32) + block $__inlined_func$~lib/util/number/ulog_base$181 (result i32) local.get $0 local.set $2 local.get $1 @@ -23179,7 +23108,7 @@ i32.div_u i32.const 1 i32.add - br $__inlined_func$~lib/util/number/ulog_base$183 + br $__inlined_func$~lib/util/number/ulog_base$181 end local.get $1 i64.extend_i32_s @@ -23265,11 +23194,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s if - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23278,7 +23207,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 23440 + i32.const 23280 local.set $1 block $~lib/util/number/dtoa_impl|inlined.0 local.get $0 @@ -23291,14 +23220,14 @@ f64.const 0 f64.ne if - i32.const 9600 + i32.const 7696 local.set $1 local.get $0 local.get $0 f64.ne br_if $~lib/util/number/dtoa_impl|inlined.0 - i32.const 10864 - i32.const 23472 + i32.const 8960 + i32.const 23312 local.get $0 f64.const 0 f64.lt @@ -23319,7 +23248,7 @@ local.tee $1 i32.store local.get $1 - i32.const 23504 + i32.const 23344 local.get $2 memory.copy end @@ -23338,11 +23267,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s if - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23351,7 +23280,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 23440 + i32.const 23280 local.set $2 block $~lib/util/number/dtoa_impl|inlined.1 local.get $0 @@ -23366,14 +23295,14 @@ f64.const 0 f64.ne if - i32.const 9600 + i32.const 7696 local.set $2 local.get $1 local.get $1 f64.ne br_if $~lib/util/number/dtoa_impl|inlined.1 - i32.const 10864 - i32.const 23472 + i32.const 8960 + i32.const 23312 local.get $1 f64.const 0 f64.lt @@ -23394,7 +23323,7 @@ local.tee $2 i32.store local.get $2 - i32.const 23504 + i32.const 23344 local.get $3 memory.copy end @@ -23439,7 +23368,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -23452,7 +23381,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26796 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -23497,8 +23426,8 @@ end unreachable end - i32.const 59584 - i32.const 59632 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index e76ddde8a3..c2d15da79b 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -4,21 +4,21 @@ (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $13 (func (param i32 i32 i32 i32))) - (global $~lib/symbol/nextId (mut i32) (i32.const 12)) - (global $std/symbol/sym1 (mut i32) (i32.const 0)) - (global $std/symbol/sym2 (mut i32) (i32.const 0)) + (type $5 (func (param i32 i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/symbol/nextId (mut i32) (i32.const 12)) + (global $std/symbol/sym1 (mut i32) (i32.const 0)) + (global $std/symbol/sym2 (mut i32) (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -30,9 +30,9 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/symbol/idToString (mut i32) (i32.const 0)) (global $std/symbol/sym3 (mut i32) (i32.const 0)) (global $std/symbol/sym4 (mut i32) (i32.const 0)) @@ -44,56 +44,46 @@ (global $std/symbol/hasInstance (mut i32) (i32.const 0)) (global $~lib/symbol/_Symbol.isConcatSpreadable i32 (i32.const 2)) (global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3632)) - (global $~lib/memory/__data_end i32 (i32.const 3660)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36428)) - (global $~lib/memory/__heap_base i32 (i32.const 36428)) + (global $~lib/rt/__rtti_base i32 (i32.const 1696)) + (global $~lib/memory/__data_end i32 (i32.const 1724)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34492)) + (global $~lib/memory/__heap_base i32 (i32.const 34492)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s\00\00\00") - (data $21 (i32.const 2460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $22 (i32.const 2508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $23 (i32.const 2572) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $24 (i32.const 2636) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $25 (i32.const 2684) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2812) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00\00\00\00\00\00\00") - (data $27 (i32.const 2860) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2924) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00m\00a\00t\00c\00h\00\00\00") - (data $30 (i32.const 3004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 3052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00") - (data $32 (i32.const 3084) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00p\00l\00i\00t\00\00\00") - (data $34 (i32.const 3164) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00\00\00\00\00\00\00") - (data $35 (i32.const 3212) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00\00\00\00\00\00\00") - (data $36 (i32.const 3260) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00\00\00\00\00\00\00") - (data $37 (i32.const 3308) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $38 (i32.const 3356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data $39 (i32.const 3388) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $40 (i32.const 3436) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00\00\00\00\00\00\00") - (data $41 (i32.const 3484) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") - (data $42 (i32.const 3548) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") - (data $43 (i32.const 3632) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02\00") + (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s\00\00\00") + (data $2 (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 284) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $11 (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 604) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 716) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 876) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00\00\00\00\00\00\00") + (data $17 (i32.const 924) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 988) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00m\00a\00t\00c\00h\00\00\00") + (data $20 (i32.const 1068) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00") + (data $22 (i32.const 1148) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 1196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00p\00l\00i\00t\00\00\00") + (data $24 (i32.const 1228) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00\00\00\00\00\00\00") + (data $25 (i32.const 1276) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00\00\00\00\00\00\00") + (data $26 (i32.const 1324) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00\00\00\00\00\00\00") + (data $27 (i32.const 1372) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $28 (i32.const 1420) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data $29 (i32.const 1452) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1500) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00\00\00\00\00\00\00") + (data $31 (i32.const 1548) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") + (data $32 (i32.const 1612) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1696) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -116,19 +106,6 @@ local.get $id return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -193,7 +170,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 176 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -263,7 +240,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 176 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -280,7 +257,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 176 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -310,9 +287,9 @@ i32.load i32.gt_u if - i32.const 352 - i32.const 416 - i32.const 21 + i32.const 304 + i32.const 368 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -379,7 +356,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 224 + i32.const 176 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -531,7 +508,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -551,7 +528,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -614,7 +591,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -767,7 +744,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -784,7 +761,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -873,7 +850,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -916,7 +893,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -934,7 +911,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1002,7 +979,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1119,7 +1096,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1165,7 +1142,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1197,7 +1174,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1441,7 +1418,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1661,7 +1638,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 176 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1772,8 +1749,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 160 - i32.const 496 + i32.const 112 + i32.const 448 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1875,7 +1852,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1946,7 +1923,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2103,7 +2080,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2218,7 +2195,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2238,7 +2215,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 448 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2286,8 +2263,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 160 - i32.const 224 + i32.const 112 + i32.const 176 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2332,422 +2309,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2763,7 +2324,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 176 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -2854,6 +2415,19 @@ local.get $entriesCount i32.store offset=20 ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $"~lib/map/Map<~lib/string/String,usize>#get:buckets" (param $this i32) (result i32) local.get $this i32.load @@ -3180,20 +2754,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 36448 - i32.const 36496 + i32.const 34512 + i32.const 34560 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3202,196 +2772,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 + i32.const 0 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $"~lib/map/Map<~lib/string/String,usize>#constructor" (param $this i32) (result i32) (local $1 i32) @@ -4050,9 +3451,9 @@ local.get $entry i32.eqz if - i32.const 2592 - i32.const 2656 - i32.const 105 + i32.const 624 + i32.const 688 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -4437,6 +3838,10 @@ call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $key i32.const 1 @@ -4929,6 +4334,10 @@ call $"~lib/map/MapEntry#set:value" i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -5049,6 +4458,10 @@ call $"~lib/map/MapEntry#set:value" i32.const 1 drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.get $value i32.const 1 @@ -5259,9 +4672,9 @@ local.get $entry i32.eqz if - i32.const 2592 - i32.const 2656 - i32.const 105 + i32.const 624 + i32.const 688 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -5314,6 +4727,113 @@ local.get $1 return ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize + i32.add + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 864 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) (func $~lib/symbol/_Symbol#toString (param $this i32) (result i32) (local $id i32) (local $str i32) @@ -5333,7 +4853,7 @@ local.get $this local.set $id global.get $~lib/memory/__stack_pointer - i32.const 128 + i32.const 864 local.tee $str i32.store block $break|0 @@ -5398,67 +4918,67 @@ br $case11|0 end global.get $~lib/memory/__stack_pointer - i32.const 2832 + i32.const 896 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 944 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 2944 + i32.const 1008 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 2992 + i32.const 1056 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 3024 + i32.const 1088 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 3072 + i32.const 1136 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 3104 + i32.const 1168 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 3152 + i32.const 1216 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 3184 + i32.const 1248 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 3232 + i32.const 1296 local.tee $str i32.store br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 3280 + i32.const 1344 local.tee $str i32.store br $break|0 @@ -5493,7 +5013,7 @@ end br $break|0 end - i32.const 3328 + i32.const 1392 local.get $str local.set $4 global.get $~lib/memory/__stack_pointer @@ -5506,7 +5026,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 3376 + i32.const 1440 call $~lib/string/String.__concat local.set $4 global.get $~lib/memory/__stack_pointer @@ -5537,6 +5057,18 @@ i32.const 32 call $~lib/symbol/Symbol global.set $std/symbol/sym2 + global.get $std/symbol/sym1 + global.get $std/symbol/sym2 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end memory.size i32.const 16 i32.shl @@ -5545,27 +5077,15 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 272 + i32.const 224 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 304 + i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 448 + i32.const 400 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace - global.get $std/symbol/sym1 - global.get $std/symbol/sym2 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 2432 - i32.const 4 - i32.const 1 - call $~lib/builtins/abort - unreachable - end i32.const 0 call $"~lib/map/Map<~lib/string/String,usize>#constructor" global.set $~lib/symbol/stringToId @@ -5584,7 +5104,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -5607,7 +5127,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -5624,7 +5144,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -5639,8 +5159,8 @@ if (result i32) local.get $0 else - i32.const 2704 - i32.const 2432 + i32.const 736 + i32.const 64 i32.const 17 i32.const 12 call $~lib/builtins/abort @@ -5656,8 +5176,8 @@ if (result i32) local.get $1 else - i32.const 2704 - i32.const 2432 + i32.const 736 + i32.const 64 i32.const 18 i32.const 12 call $~lib/builtins/abort @@ -5675,7 +5195,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -5697,7 +5217,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -5711,12 +5231,12 @@ local.get $2 i32.store local.get $2 - i32.const 3408 + i32.const 1472 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -5729,12 +5249,12 @@ local.get $2 i32.store local.get $2 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -5751,12 +5271,12 @@ local.get $2 i32.store local.get $2 - i32.const 3504 + i32.const 1568 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -5769,12 +5289,12 @@ local.get $2 i32.store local.get $2 - i32.const 3568 + i32.const 1632 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -5789,153 +5309,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) (local $buffer i32) (local $3 i32) @@ -5951,8 +5324,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2480 - i32.const 2528 + i32.const 512 + i32.const 560 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -6021,22 +5394,16 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2480 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2592 + i32.const 304 local.get $0 call $~lib/rt/itcms/__visit - i32.const 160 + i32.const 512 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1216 + i32.const 624 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2272 + i32.const 112 local.get $0 call $~lib/rt/itcms/__visit ) @@ -6120,6 +5487,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $7 global.get $~lib/memory/__stack_pointer @@ -6215,6 +5586,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $7 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index af5d9f9221..f799de9760 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1,14 +1,15 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func (param i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32))) + (type $3 (func (param i32) (result i32))) (type $4 (func (param i32))) - (type $5 (func (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (result i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (param i32 i32 i32))) (type $9 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) (global $std/symbol/sym2 (mut i32) (i32.const 0)) @@ -31,89 +32,70 @@ (global $std/symbol/key3 (mut i32) (i32.const 0)) (global $std/symbol/key4 (mut i32) (i32.const 0)) (global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37452)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35516)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\06\00\00\001\002\003") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) ",") - (data $20.1 (i32.const 3448) "\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s") - (data $21 (i32.const 3484) ",") - (data $21.1 (i32.const 3496) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $22 (i32.const 3532) "<") - (data $22.1 (i32.const 3544) "\02\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 $23 (i32.const 3596) "<") - (data $23.1 (i32.const 3608) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data $24 (i32.const 3660) ",") - (data $24.1 (i32.const 3672) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data $25 (i32.const 3708) "|") - (data $25.1 (i32.const 3720) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") - (data $26 (i32.const 3836) ",") - (data $26.1 (i32.const 3848) "\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e") - (data $27 (i32.const 3884) "<") - (data $27.1 (i32.const 3896) "\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e") - (data $28 (i32.const 3948) ",") - (data $28.1 (i32.const 3960) "\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p") - (data $29 (i32.const 3996) "\1c") - (data $29.1 (i32.const 4008) "\02\00\00\00\n\00\00\00m\00a\00t\00c\00h") - (data $30 (i32.const 4028) ",") - (data $30.1 (i32.const 4040) "\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e") - (data $31 (i32.const 4076) "\1c") - (data $31.1 (i32.const 4088) "\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h") - (data $32 (i32.const 4108) ",") - (data $32.1 (i32.const 4120) "\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s") - (data $33 (i32.const 4156) "\1c") - (data $33.1 (i32.const 4168) "\02\00\00\00\n\00\00\00s\00p\00l\00i\00t") - (data $34 (i32.const 4188) ",") - (data $34.1 (i32.const 4200) "\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e") - (data $35 (i32.const 4236) ",") - (data $35.1 (i32.const 4248) "\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g") - (data $36 (i32.const 4284) ",") - (data $36.1 (i32.const 4296) "\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s") - (data $37 (i32.const 4332) ",") - (data $37.1 (i32.const 4344) "\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(") - (data $38 (i32.const 4380) "\1c") - (data $38.1 (i32.const 4392) "\02\00\00\00\02\00\00\00)") - (data $39 (i32.const 4412) ",") - (data $39.1 (i32.const 4424) "\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)") - (data $40 (i32.const 4460) ",") - (data $40.1 (i32.const 4472) "\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)") - (data $41 (i32.const 4508) "<") - (data $41.1 (i32.const 4520) "\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)") - (data $42 (i32.const 4572) "L") - (data $42.1 (i32.const 4584) "\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)") - (data $43 (i32.const 4656) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02") + (data $1 (i32.const 1068) ",") + (data $1.1 (i32.const 1080) "\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s") + (data $2 (i32.const 1116) "<") + (data $2.1 (i32.const 1128) "\02\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 $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1308) "<") + (data $6.1 (i32.const 1320) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1372) ",") + (data $7.1 (i32.const 1384) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1452) "<") + (data $9.1 (i32.const 1464) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1516) ",") + (data $10.1 (i32.const 1528) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $11 (i32.const 1564) "<") + (data $11.1 (i32.const 1576) "\02\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 $12 (i32.const 1628) "<") + (data $12.1 (i32.const 1640) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data $13 (i32.const 1692) ",") + (data $13.1 (i32.const 1704) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data $14 (i32.const 1740) "|") + (data $14.1 (i32.const 1752) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") + (data $15 (i32.const 1868) "\1c") + (data $15.1 (i32.const 1880) "\02") + (data $16 (i32.const 1900) ",") + (data $16.1 (i32.const 1912) "\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e") + (data $17 (i32.const 1948) "<") + (data $17.1 (i32.const 1960) "\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e") + (data $18 (i32.const 2012) ",") + (data $18.1 (i32.const 2024) "\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p") + (data $19 (i32.const 2060) "\1c") + (data $19.1 (i32.const 2072) "\02\00\00\00\n\00\00\00m\00a\00t\00c\00h") + (data $20 (i32.const 2092) ",") + (data $20.1 (i32.const 2104) "\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e") + (data $21 (i32.const 2140) "\1c") + (data $21.1 (i32.const 2152) "\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h") + (data $22 (i32.const 2172) ",") + (data $22.1 (i32.const 2184) "\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s") + (data $23 (i32.const 2220) "\1c") + (data $23.1 (i32.const 2232) "\02\00\00\00\n\00\00\00s\00p\00l\00i\00t") + (data $24 (i32.const 2252) ",") + (data $24.1 (i32.const 2264) "\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e") + (data $25 (i32.const 2300) ",") + (data $25.1 (i32.const 2312) "\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g") + (data $26 (i32.const 2348) ",") + (data $26.1 (i32.const 2360) "\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s") + (data $27 (i32.const 2396) ",") + (data $27.1 (i32.const 2408) "\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(") + (data $28 (i32.const 2444) "\1c") + (data $28.1 (i32.const 2456) "\02\00\00\00\02\00\00\00)") + (data $29 (i32.const 2476) ",") + (data $29.1 (i32.const 2488) "\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)") + (data $30 (i32.const 2524) ",") + (data $30.1 (i32.const 2536) "\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)") + (data $31 (i32.const 2572) "<") + (data $31.1 (i32.const 2584) "\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)") + (data $32 (i32.const 2636) "L") + (data $32.1 (i32.const 2648) "\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)") + (data $33 (i32.const 2720) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/rt/itcms/visitRoots @@ -155,17 +137,13 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1376 + i32.const 1328 call $~lib/rt/itcms/__visit - i32.const 3504 + i32.const 1536 call $~lib/rt/itcms/__visit - i32.const 3616 + i32.const 1648 call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 2240 - call $~lib/rt/itcms/__visit - i32.const 3296 + i32.const 1136 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -186,7 +164,7 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1200 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -219,7 +197,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1200 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -228,7 +206,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$254 + block $__inlined_func$~lib/rt/itcms/Object#unlink$247 local.get $0 i32.load offset=4 i32.const -4 @@ -240,19 +218,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 37452 + i32.const 35516 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1200 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$254 + br $__inlined_func$~lib/rt/itcms/Object#unlink$247 end local.get $0 i32.load offset=8 @@ -260,7 +238,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1200 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -289,13 +267,13 @@ i32.const 1 else local.get $1 - i32.const 4656 + i32.const 2720 i32.load i32.gt_u if - i32.const 1376 - i32.const 1440 - i32.const 21 + i32.const 1328 + i32.const 1392 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -303,7 +281,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 4660 + i32.const 2724 i32.add i32.load i32.const 32 @@ -374,7 +352,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -388,7 +366,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -434,7 +412,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -517,7 +495,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -531,7 +509,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -592,7 +570,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -625,7 +603,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -640,7 +618,7 @@ i32.ne if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -691,7 +669,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -763,7 +741,7 @@ i64.lt_u if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -788,7 +766,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -815,7 +793,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -887,10 +865,10 @@ if unreachable end - i32.const 37456 + i32.const 35520 i32.const 0 i32.store - i32.const 39024 + i32.const 37088 i32.const 0 i32.store loop $for-loop|0 @@ -901,7 +879,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 37456 + i32.const 35520 i32.add i32.const 0 i32.store offset=4 @@ -919,7 +897,7 @@ i32.add i32.const 2 i32.shl - i32.const 37456 + i32.const 35520 i32.add i32.const 0 i32.store offset=96 @@ -937,14 +915,14 @@ br $for-loop|0 end end - i32.const 37456 - i32.const 39028 + i32.const 35520 + i32.const 37092 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 37456 + i32.const 35520 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1029,7 +1007,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 37452 + i32.const 35516 i32.lt_u if local.get $0 @@ -1118,14 +1096,14 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1200 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 37452 + i32.const 35516 i32.lt_u if local.get $0 @@ -1148,7 +1126,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 37452 + i32.const 35516 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1177,7 +1155,7 @@ end if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1261,7 +1239,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1313,7 +1291,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1345,8 +1323,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1184 - i32.const 1248 + i32.const 1136 + i32.const 1200 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1356,7 +1334,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1373,7 +1351,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1406,8 +1384,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1184 - i32.const 1520 + i32.const 1136 + i32.const 1472 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1509,7 +1487,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1524,7 +1502,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1543,7 +1521,7 @@ i32.and if i32.const 0 - i32.const 1520 + i32.const 1472 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1648,204 +1626,6 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 4684 - i32.lt_s - if - i32.const 37472 - i32.const 37520 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -1857,7 +1637,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1200 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -1914,205 +1694,40 @@ global.set $~started call $start:std/symbol ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 4684 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 4684 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$259 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$259 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 37472 - i32.const 37520 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) (local $1 i32) @@ -2127,11 +1742,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2345,11 +1960,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2448,7 +2063,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$87 + block $__inlined_func$~lib/util/string/compareImpl$84 loop $while-continue|1 local.get $0 local.tee $3 @@ -2468,7 +2083,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$87 + br_if $__inlined_func$~lib/util/string/compareImpl$84 local.get $2 i32.const 2 i32.add @@ -2504,11 +2119,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2594,7 +2209,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2677,7 +2292,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2915,8 +2530,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2929,11 +2544,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3013,7 +2628,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3123,7 +2738,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3384,8 +2999,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3401,7 +3016,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3419,7 +3034,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3460,7 +3075,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3485,9 +3100,9 @@ local.tee $0 i32.eqz if - i32.const 3616 - i32.const 3680 - i32.const 105 + i32.const 1648 + i32.const 1712 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -3533,8 +3148,8 @@ call $"~lib/map/Map#set" br $folding-inner1 end - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3552,11 +3167,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3612,11 +3227,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3662,9 +3277,9 @@ local.tee $0 i32.eqz if - i32.const 3616 - i32.const 3680 - i32.const 105 + i32.const 1648 + i32.const 1712 + i32.const 106 i32.const 17 call $~lib/builtins/abort unreachable @@ -3683,11 +3298,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3719,6 +3334,109 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 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 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$252 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1888 + local.set $0 + br $__inlined_func$~lib/string/String#concat$252 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/symbol/_Symbol#toString (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -3727,11 +3445,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3743,10 +3461,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - i32.const 1152 + i32.const 1888 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 1152 + i32.const 1888 i32.store block $break|0 block $case11|0 @@ -3766,80 +3484,80 @@ i32.sub 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 end - i32.const 3856 + i32.const 1920 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 3856 + i32.const 1920 i32.store br $break|0 end - i32.const 3904 + i32.const 1968 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 1968 i32.store br $break|0 end - i32.const 3968 + i32.const 2032 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 3968 + i32.const 2032 i32.store br $break|0 end - i32.const 4016 + i32.const 2080 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4016 + i32.const 2080 i32.store br $break|0 end - i32.const 4048 + i32.const 2112 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4048 + i32.const 2112 i32.store br $break|0 end - i32.const 4096 + i32.const 2160 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4096 + i32.const 2160 i32.store br $break|0 end - i32.const 4128 + i32.const 2192 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4128 + i32.const 2192 i32.store br $break|0 end - i32.const 4176 + i32.const 2240 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4176 + i32.const 2240 i32.store br $break|0 end - i32.const 4208 + i32.const 2272 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4208 + i32.const 2272 i32.store br $break|0 end - i32.const 4256 + i32.const 2320 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4256 + i32.const 2320 i32.store br $break|0 end - i32.const 4304 + i32.const 2368 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4304 + i32.const 2368 i32.store br $break|0 end @@ -3871,7 +3589,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - i32.const 4352 + i32.const 2416 local.get $1 call $~lib/string/String.__concat local.set $0 @@ -3879,7 +3597,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 4400 + i32.const 2464 call $~lib/string/String.__concat global.get $~lib/memory/__stack_pointer i32.const 12 @@ -3895,7 +3613,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3928,55 +3646,55 @@ end local.get $0 global.set $std/symbol/sym2 + global.get $std/symbol/sym1 + global.get $std/symbol/sym2 + i32.eq + if + i32.const 0 + i32.const 1088 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end memory.size i32.const 16 i32.shl - i32.const 37452 + i32.const 35516 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 + i32.const 1252 + i32.const 1248 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1256 + i32.const 1248 i32.store - i32.const 1296 + i32.const 1248 global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 + i32.const 1284 + i32.const 1280 i32.store - i32.const 1336 - i32.const 1328 + i32.const 1288 + i32.const 1280 i32.store - i32.const 1328 + i32.const 1280 global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 + i32.const 1428 + i32.const 1424 i32.store - i32.const 1480 - i32.const 1472 + i32.const 1432 + i32.const 1424 i32.store - i32.const 1472 + i32.const 1424 global.set $~lib/rt/itcms/fromSpace - global.get $std/symbol/sym1 - global.get $std/symbol/sym2 - i32.eq - if - i32.const 0 - i32.const 3456 - i32.const 4 - i32.const 1 - call $~lib/builtins/abort - unreachable - end 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 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4058,7 +3776,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4144,7 +3862,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 9 i32.const 1 call $~lib/builtins/abort @@ -4166,7 +3884,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -4182,7 +3900,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -4196,8 +3914,8 @@ local.get $0 i32.eqz if - i32.const 3728 - i32.const 3456 + i32.const 1760 + i32.const 1088 i32.const 17 i32.const 12 call $~lib/builtins/abort @@ -4213,8 +3931,8 @@ local.get $0 i32.eqz if - i32.const 3728 - i32.const 3456 + i32.const 1760 + i32.const 1088 i32.const 18 i32.const 12 call $~lib/builtins/abort @@ -4232,7 +3950,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -4252,7 +3970,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 21 i32.const 1 call $~lib/builtins/abort @@ -4275,12 +3993,12 @@ local.get $0 i32.store local.get $0 - i32.const 4432 + i32.const 2496 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 23 i32.const 1 call $~lib/builtins/abort @@ -4293,12 +4011,12 @@ local.get $0 i32.store local.get $0 - i32.const 4480 + i32.const 2544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -4313,12 +4031,12 @@ local.get $0 i32.store local.get $0 - i32.const 4528 + i32.const 2592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -4331,12 +4049,12 @@ local.get $0 i32.store local.get $0 - i32.const 4592 + i32.const 2656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -4348,8 +4066,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4361,11 +4079,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4378,8 +4096,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3504 - i32.const 3552 + i32.const 1536 + i32.const 1584 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -4431,7 +4149,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4489,7 +4207,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 4684 + i32.const 2748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4544,8 +4262,8 @@ end unreachable end - i32.const 37472 - i32.const 37520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index 2c3c616822..76684d5b79 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -28,32 +28,33 @@ (type $26 (func (param i64 i32 i32))) (type $27 (func (param i32 f32 i32) (result i32))) (type $28 (func (param i64 i32) (result i32))) - (type $29 (func (param i32 i64 i32))) + (type $29 (func (param i32 i32 i32 i32))) (type $30 (func (param i32 i32 i32 i32 i32) (result i32))) (type $31 (func (param f32 i32 i32) (result f32))) (type $32 (func (param f64 i32 i32) (result f64))) - (type $33 (func (param i32 i64) (result i32))) - (type $34 (func (param i32 i32 i64))) - (type $35 (func (param i32 i32 f32) (result f32))) - (type $36 (func (param i32 i32 f64) (result f64))) - (type $37 (func (param f32 i32 i32))) - (type $38 (func (param f64 i32 i32))) - (type $39 (func (param i32 i32 i64) (result i32))) - (type $40 (func (result i32))) - (type $41 (func (param i32 i64 i32 i32))) + (type $33 (func (param i32 i64 i32))) + (type $34 (func (param i32 i64) (result i32))) + (type $35 (func (param i32 i32 i64))) + (type $36 (func (param i32 i32 f32) (result f32))) + (type $37 (func (param i32 i32 f64) (result f64))) + (type $38 (func (param f32 i32 i32))) + (type $39 (func (param f64 i32 i32))) + (type $40 (func (param i32 i32 i64) (result i32))) + (type $41 (func (result i32))) (type $42 (func (param f32 f32) (result f32))) (type $43 (func (param f64 f64) (result f64))) (type $44 (func (param i64) (result i64))) - (type $45 (func (param i64) (result i32))) - (type $46 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $47 (func (param i32 f32) (result i32))) - (type $48 (func (param i32 f64) (result i32))) - (type $49 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $50 (func (param i32 i32 i32 i32))) + (type $45 (func (param i32 i64 i32 i32))) + (type $46 (func (param i64) (result i32))) + (type $47 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $48 (func (param i32 f32) (result i32))) + (type $49 (func (param i32 f64) (result i32))) + (type $50 (func (param i32 i32 f64 f64 f64 f64 f64))) (type $51 (func (param i32 i32 f64))) (type $52 (func (param i32 i32 f32))) (type $53 (func (param f32) (result i32))) (type $54 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) (global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) @@ -69,6 +70,8 @@ (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -80,358 +83,341 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $std/typedarray/forEachCallCount (mut i32) (i32.const 0)) (global $std/typedarray/forEachSelf (mut i32) (i32.const 0)) - (global $std/typedarray/forEachValues i32 (i32.const 8096)) - (global $std/typedarray/testArrayReverseValues i32 (i32.const 8560)) - (global $std/typedarray/testArrayIndexOfAndLastIndexOfValues i32 (i32.const 8672)) + (global $std/typedarray/forEachValues i32 (i32.const 6128)) + (global $std/typedarray/testArrayReverseValues i32 (i32.const 6592)) + (global $std/typedarray/testArrayIndexOfAndLastIndexOfValues i32 (i32.const 6704)) (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 $std/typedarray/testArrayWrapValues i32 (i32.const 10064)) - (global $std/typedarray/setSource1 (mut i32) (i32.const 10144)) - (global $std/typedarray/setSource2 (mut i32) (i32.const 10224)) - (global $std/typedarray/setSource3 (mut i32) (i32.const 10320)) - (global $std/typedarray/setSource7 (mut i32) (i32.const 10400)) - (global $~lib/rt/__rtti_base i32 (i32.const 15136)) - (global $~lib/memory/__data_end i32 (i32.const 15456)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 48224)) - (global $~lib/memory/__heap_base i32 (i32.const 48224)) + (global $std/typedarray/testArrayWrapValues i32 (i32.const 9904)) + (global $std/typedarray/setSource1 (mut i32) (i32.const 9984)) + (global $std/typedarray/setSource2 (mut i32) (i32.const 10064)) + (global $std/typedarray/setSource3 (mut i32) (i32.const 10160)) + (global $std/typedarray/setSource7 (mut i32) (i32.const 10240)) + (global $~lib/rt/__rtti_base i32 (i32.const 14976)) + (global $~lib/memory/__data_end i32 (i32.const 15296)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 48064)) + (global $~lib/memory/__heap_base i32 (i32.const 48064)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data $20 (i32.const 2428) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $21 (i32.const 2492) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2556) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $23 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\01\04\05\00\00\00\00\00\00\00") - (data $25 (i32.const 2684) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data $26 (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2764) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2796) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") - (data $29 (i32.const 2828) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") - (data $30 (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data $32 (i32.const 2924) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2972) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 3020) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 3068) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 3116) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $38 (i32.const 3196) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $39 (i32.const 3244) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $40 (i32.const 3292) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $41 (i32.const 3340) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $42 (i32.const 3388) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $43 (i32.const 3436) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $44 (i32.const 3484) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $45 (i32.const 3532) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $46 (i32.const 3580) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $47 (i32.const 3628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $48 (i32.const 3676) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $49 (i32.const 3724) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $50 (i32.const 3772) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $51 (i32.const 3820) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data $52 (i32.const 3852) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data $53 (i32.const 3884) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data $54 (i32.const 3916) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data $55 (i32.const 3948) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data $56 (i32.const 3980) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data $57 (i32.const 4012) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data $58 (i32.const 4044) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $59 (i32.const 4076) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data $60 (i32.const 4108) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data $61 (i32.const 4140) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data $62 (i32.const 4172) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") - (data $63 (i32.const 4204) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") - (data $64 (i32.const 4236) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") - (data $65 (i32.const 4268) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") - (data $66 (i32.const 4300) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") - (data $67 (i32.const 4332) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") - (data $68 (i32.const 4364) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") - (data $69 (i32.const 4396) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") - (data $70 (i32.const 4428) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") - (data $71 (i32.const 4460) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") - (data $72 (i32.const 4492) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") - (data $73 (i32.const 4524) "\1c\00\00\00\00\00\00\00\00\00\00\00\1d\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") - (data $74 (i32.const 4556) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") - (data $75 (i32.const 4588) "\1c\00\00\00\00\00\00\00\00\00\00\00\1f\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") - (data $76 (i32.const 4620) "\1c\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") - (data $77 (i32.const 4652) "\1c\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") - (data $78 (i32.const 4684) "\1c\00\00\00\00\00\00\00\00\00\00\00\"\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") - (data $79 (i32.const 4716) "\1c\00\00\00\00\00\00\00\00\00\00\00#\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") - (data $80 (i32.const 4748) "\1c\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") - (data $81 (i32.const 4780) "\1c\00\00\00\00\00\00\00\00\00\00\00%\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $82 (i32.const 4812) "\1c\00\00\00\00\00\00\00\00\00\00\00&\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") - (data $83 (i32.const 4844) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") - (data $84 (i32.const 4876) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") - (data $85 (i32.const 4908) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") - (data $86 (i32.const 4940) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") - (data $87 (i32.const 4972) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") - (data $88 (i32.const 5004) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") - (data $89 (i32.const 5036) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") - (data $90 (i32.const 5068) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data $91 (i32.const 5100) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") - (data $92 (i32.const 5132) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") - (data $93 (i32.const 5164) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data $94 (i32.const 5196) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data $95 (i32.const 5228) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") - (data $96 (i32.const 5260) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") - (data $97 (i32.const 5292) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $98 (i32.const 5324) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $99 (i32.const 5356) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data $100 (i32.const 5388) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") - (data $101 (i32.const 5420) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data $102 (i32.const 5452) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") - (data $103 (i32.const 5484) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") - (data $104 (i32.const 5516) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") - (data $105 (i32.const 5548) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") - (data $106 (i32.const 5580) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") - (data $107 (i32.const 5612) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $108 (i32.const 5644) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") - (data $109 (i32.const 5676) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") - (data $110 (i32.const 5708) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") - (data $111 (i32.const 5740) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") - (data $112 (i32.const 5772) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") - (data $113 (i32.const 5804) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00@\00\00\00\00\00\00\00\00\00\00\00") - (data $114 (i32.const 5836) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") - (data $115 (i32.const 5868) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") - (data $116 (i32.const 5900) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") - (data $117 (i32.const 5932) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00D\00\00\00\00\00\00\00\00\00\00\00") - (data $118 (i32.const 5964) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00E\00\00\00\00\00\00\00\00\00\00\00") - (data $119 (i32.const 5996) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00F\00\00\00\00\00\00\00\00\00\00\00") - (data $120 (i32.const 6028) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00G\00\00\00\00\00\00\00\00\00\00\00") - (data $121 (i32.const 6060) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00H\00\00\00\00\00\00\00\00\00\00\00") - (data $122 (i32.const 6092) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00I\00\00\00\00\00\00\00\00\00\00\00") - (data $123 (i32.const 6124) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00J\00\00\00\00\00\00\00\00\00\00\00") - (data $124 (i32.const 6156) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00K\00\00\00\00\00\00\00\00\00\00\00") - (data $125 (i32.const 6188) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00L\00\00\00\00\00\00\00\00\00\00\00") - (data $126 (i32.const 6220) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00M\00\00\00\00\00\00\00\00\00\00\00") - (data $127 (i32.const 6252) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00N\00\00\00\00\00\00\00\00\00\00\00") - (data $128 (i32.const 6284) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00O\00\00\00\00\00\00\00\00\00\00\00") - (data $129 (i32.const 6316) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00P\00\00\00\00\00\00\00\00\00\00\00") - (data $130 (i32.const 6348) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00Q\00\00\00\00\00\00\00\00\00\00\00") - (data $131 (i32.const 6380) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00R\00\00\00\00\00\00\00\00\00\00\00") - (data $132 (i32.const 6412) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00S\00\00\00\00\00\00\00\00\00\00\00") - (data $133 (i32.const 6444) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00T\00\00\00\00\00\00\00\00\00\00\00") - (data $134 (i32.const 6476) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00U\00\00\00\00\00\00\00\00\00\00\00") - (data $135 (i32.const 6508) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00V\00\00\00\00\00\00\00\00\00\00\00") - (data $136 (i32.const 6540) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00W\00\00\00\00\00\00\00\00\00\00\00") - (data $137 (i32.const 6572) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00X\00\00\00\00\00\00\00\00\00\00\00") - (data $138 (i32.const 6604) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00Y\00\00\00\00\00\00\00\00\00\00\00") - (data $139 (i32.const 6636) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00Z\00\00\00\00\00\00\00\00\00\00\00") - (data $140 (i32.const 6668) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00[\00\00\00\00\00\00\00\00\00\00\00") - (data $141 (i32.const 6700) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00\\\00\00\00\00\00\00\00\00\00\00\00") - (data $142 (i32.const 6732) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00]\00\00\00\00\00\00\00\00\00\00\00") - (data $143 (i32.const 6764) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00^\00\00\00\00\00\00\00\00\00\00\00") - (data $144 (i32.const 6796) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00_\00\00\00\00\00\00\00\00\00\00\00") - (data $145 (i32.const 6828) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00`\00\00\00\00\00\00\00\00\00\00\00") - (data $146 (i32.const 6860) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data $147 (i32.const 6892) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") - (data $148 (i32.const 6924) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") - (data $149 (i32.const 6956) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00d\00\00\00\00\00\00\00\00\00\00\00") - (data $150 (i32.const 6988) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00e\00\00\00\00\00\00\00\00\00\00\00") - (data $151 (i32.const 7020) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00f\00\00\00\00\00\00\00\00\00\00\00") - (data $152 (i32.const 7052) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00g\00\00\00\00\00\00\00\00\00\00\00") - (data $153 (i32.const 7084) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") - (data $154 (i32.const 7116) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00i\00\00\00\00\00\00\00\00\00\00\00") - (data $155 (i32.const 7148) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00j\00\00\00\00\00\00\00\00\00\00\00") - (data $156 (i32.const 7180) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00k\00\00\00\00\00\00\00\00\00\00\00") - (data $157 (i32.const 7212) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00l\00\00\00\00\00\00\00\00\00\00\00") - (data $158 (i32.const 7244) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00m\00\00\00\00\00\00\00\00\00\00\00") - (data $159 (i32.const 7276) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00n\00\00\00\00\00\00\00\00\00\00\00") - (data $160 (i32.const 7308) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00o\00\00\00\00\00\00\00\00\00\00\00") - (data $161 (i32.const 7340) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00p\00\00\00\00\00\00\00\00\00\00\00") - (data $162 (i32.const 7372) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00q\00\00\00\00\00\00\00\00\00\00\00") - (data $163 (i32.const 7404) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00r\00\00\00\00\00\00\00\00\00\00\00") - (data $164 (i32.const 7436) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $165 (i32.const 7468) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00t\00\00\00\00\00\00\00\00\00\00\00") - (data $166 (i32.const 7500) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00u\00\00\00\00\00\00\00\00\00\00\00") - (data $167 (i32.const 7532) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00v\00\00\00\00\00\00\00\00\00\00\00") - (data $168 (i32.const 7564) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00w\00\00\00\00\00\00\00\00\00\00\00") - (data $169 (i32.const 7596) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00x\00\00\00\00\00\00\00\00\00\00\00") - (data $170 (i32.const 7628) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $171 (i32.const 7660) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00z\00\00\00\00\00\00\00\00\00\00\00") - (data $172 (i32.const 7692) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00{\00\00\00\00\00\00\00\00\00\00\00") - (data $173 (i32.const 7724) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00|\00\00\00\00\00\00\00\00\00\00\00") - (data $174 (i32.const 7756) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00}\00\00\00\00\00\00\00\00\00\00\00") - (data $175 (i32.const 7788) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00~\00\00\00\00\00\00\00\00\00\00\00") - (data $176 (i32.const 7820) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00\7f\00\00\00\00\00\00\00\00\00\00\00") - (data $177 (i32.const 7852) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00\80\00\00\00\00\00\00\00\00\00\00\00") - (data $178 (i32.const 7884) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00\81\00\00\00\00\00\00\00\00\00\00\00") - (data $179 (i32.const 7916) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00\82\00\00\00\00\00\00\00\00\00\00\00") - (data $180 (i32.const 7948) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00\83\00\00\00\00\00\00\00\00\00\00\00") - (data $181 (i32.const 7980) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00\84\00\00\00\00\00\00\00\00\00\00\00") - (data $182 (i32.const 8012) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00\85\00\00\00\00\00\00\00\00\00\00\00") - (data $183 (i32.const 8044) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e\00\00\00") - (data $184 (i32.const 8076) ",\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\10\00\00\00\80\1f\00\00\80\1f\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $185 (i32.const 8124) "\1c\00\00\00\00\00\00\00\00\00\00\003\00\00\00\08\00\00\00\86\00\00\00\00\00\00\00\00\00\00\00") - (data $186 (i32.const 8156) "\1c\00\00\00\00\00\00\00\00\00\00\004\00\00\00\08\00\00\00\87\00\00\00\00\00\00\00\00\00\00\00") - (data $187 (i32.const 8188) "\1c\00\00\00\00\00\00\00\00\00\00\005\00\00\00\08\00\00\00\88\00\00\00\00\00\00\00\00\00\00\00") - (data $188 (i32.const 8220) "\1c\00\00\00\00\00\00\00\00\00\00\006\00\00\00\08\00\00\00\89\00\00\00\00\00\00\00\00\00\00\00") - (data $189 (i32.const 8252) "\1c\00\00\00\00\00\00\00\00\00\00\007\00\00\00\08\00\00\00\8a\00\00\00\00\00\00\00\00\00\00\00") - (data $190 (i32.const 8284) "\1c\00\00\00\00\00\00\00\00\00\00\008\00\00\00\08\00\00\00\8b\00\00\00\00\00\00\00\00\00\00\00") - (data $191 (i32.const 8316) "\1c\00\00\00\00\00\00\00\00\00\00\009\00\00\00\08\00\00\00\8c\00\00\00\00\00\00\00\00\00\00\00") - (data $192 (i32.const 8348) "\1c\00\00\00\00\00\00\00\00\00\00\00:\00\00\00\08\00\00\00\8d\00\00\00\00\00\00\00\00\00\00\00") - (data $193 (i32.const 8380) "\1c\00\00\00\00\00\00\00\00\00\00\00;\00\00\00\08\00\00\00\8e\00\00\00\00\00\00\00\00\00\00\00") - (data $194 (i32.const 8412) "\1c\00\00\00\00\00\00\00\00\00\00\00<\00\00\00\08\00\00\00\8f\00\00\00\00\00\00\00\00\00\00\00") - (data $195 (i32.const 8444) "\1c\00\00\00\00\00\00\00\00\00\00\00=\00\00\00\08\00\00\00\90\00\00\00\00\00\00\00\00\00\00\00") - (data $196 (i32.const 8476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $197 (i32.const 8540) ",\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\10\00\00\000!\00\000!\00\00$\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $198 (i32.const 8588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00,\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\n\00\00\00") - (data $199 (i32.const 8652) ",\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\10\00\00\00\a0!\00\00\a0!\00\00,\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $200 (i32.const 8700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data $201 (i32.const 8732) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00,\002\00,\003\00,\004\00,\005\00\00\00\00\00\00\00\00\00\00\00") - (data $202 (i32.const 8780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data $203 (i32.const 8812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data $204 (i32.const 8844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $205 (i32.const 8892) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $206 (i32.const 8944) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $207 (i32.const 9000) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\10\00\00\00\d0\'\00\00\d0\'\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $217 (i32.const 10252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00") - (data $218 (i32.const 10300) ",\00\00\00\00\00\00\00\00\00\00\00?\00\00\00\10\00\00\00 (\00\00 (\00\00\18\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $219 (i32.const 10348) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\92\91\90\00\00\00\00\00\00\00\00\00") - (data $220 (i32.const 10380) ",\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\10\00\00\00\80(\00\00\80(\00\00\03\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $221 (i32.const 10428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\00\00\00\00\00\00\00\00\00") - (data $222 (i32.const 10460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00I\00n\00t\008\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $223 (i32.const 10508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\00\00\00\00\00\00") - (data $224 (i32.const 10540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t\00\00\00") - (data $225 (i32.const 10572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t\00\00\00") - (data $226 (i32.const 10604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90\00\00") - (data $227 (i32.const 10636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\00\00\00\00\00\00\00\00\00") - (data $228 (i32.const 10668) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00U\00i\00n\00t\008\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") - (data $229 (i32.const 10716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\00\00\00\00\00\00") - (data $230 (i32.const 10748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t\00\00\00") - (data $231 (i32.const 10780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t\00\00\00") - (data $232 (i32.const 10812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90\00\00") - (data $233 (i32.const 10844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\00\00\00\00\00\00\00\00\00") - (data $234 (i32.const 10876) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00U\00i\00n\00t\008\00C\00l\00a\00m\00p\00e\00d\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $235 (i32.const 10940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\00\00\00\00\00\00") - (data $236 (i32.const 10972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t\00\00\00") - (data $237 (i32.const 11004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t\00\00\00") - (data $238 (i32.const 11036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00defg\ff\ff\ff\00\00\00\00\00") - (data $239 (i32.const 11068) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $240 (i32.const 11116) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00I\00n\00t\001\006\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") - (data $241 (i32.const 11164) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $242 (i32.const 11212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $243 (i32.const 11260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $244 (i32.const 11308) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff\00\00\00\00\00\00\00\00") - (data $245 (i32.const 11356) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $246 (i32.const 11404) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00U\00i\00n\00t\001\006\00A\00r\00r\00a\00y\00\00\00\00\00\00\00") - (data $247 (i32.const 11452) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $248 (i32.const 11500) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $249 (i32.const 11548) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $250 (i32.const 11596) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff\00\00\00\00\00\00\00\00") - (data $251 (i32.const 11644) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $252 (i32.const 11708) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00I\00n\00t\003\002\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") - (data $253 (i32.const 11756) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $254 (i32.const 11820) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $255 (i32.const 11884) "<\00\00\00\00\00\00\00\00\00\00\00\01\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\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $256 (i32.const 11948) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff\00\00\00\00") - (data $257 (i32.const 12012) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $258 (i32.const 12076) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00U\00i\00n\00t\003\002\00A\00r\00r\00a\00y\00\00\00\00\00\00\00") - (data $259 (i32.const 12124) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $260 (i32.const 12188) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $261 (i32.const 12252) "<\00\00\00\00\00\00\00\00\00\00\00\01\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\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data $262 (i32.const 12316) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff\00\00\00\00") - (data $263 (i32.const 12380) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $264 (i32.const 12492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00I\00n\00t\006\004\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") - (data $265 (i32.const 12540) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $266 (i32.const 12652) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $267 (i32.const 12764) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $268 (i32.const 12876) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") - (data $269 (i32.const 12988) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $270 (i32.const 13100) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00U\00i\00n\00t\006\004\00A\00r\00r\00a\00y\00\00\00\00\00\00\00") - (data $271 (i32.const 13148) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $272 (i32.const 13260) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $273 (i32.const 13372) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $274 (i32.const 13484) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") - (data $275 (i32.const 13596) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $276 (i32.const 13660) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00F\00l\00o\00a\00t\003\002\00A\00r\00r\00a\00y\00\00\00\00\00") - (data $277 (i32.const 13708) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $278 (i32.const 13772) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@\00\00\e0@\00\00\00A\00\00\10A\00\00\00\00\00\00\00\00") - (data $279 (i32.const 13836) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\00\00\c8B\00\00\caB\00\00\ccB\00\00\ceB\00\00zD\00@zD\00\80zD\00\00\dc\c2\00\00\de\c2\00\00\e0\c2\00\00\00\00") - (data $280 (i32.const 13900) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $281 (i32.const 14012) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00F\00l\00o\00a\00t\006\004\00A\00r\00r\00a\00y\00\00\00\00\00") - (data $282 (i32.const 14060) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $283 (i32.const 14172) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\1c@\00\00\00\00\00\00 @\00\00\00\00\00\00\"@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $284 (i32.const 14284) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\00\00\00\00\00\00Y@\00\00\00\00\00@Y@\00\00\00\00\00\80Y@\00\00\00\00\00\c0Y@\00\00\00\00\00@\8f@\00\00\00\00\00H\8f@\00\00\00\00\00P\8f@\00\00\00\00\00\80[\c0\00\00\00\00\00\c0[\c0\00\00\00\00\00\00\\\c0\00\00\00\00\00\00\00\00\00\00\00\00") - (data $285 (i32.const 14396) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\00\ff\00\00\00d\n\ff\ff\00\00\00") - (data $286 (i32.const 14428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\ffd\ff\00\00d\n\ff\00\00\00") - (data $287 (i32.const 14460) "\1c\00\00\00\00\00\00\00\00\00\00\00F\00\00\00\08\00\00\00\91\00\00\00\00\00\00\00\00\00\00\00") - (data $288 (i32.const 14492) "\1c\00\00\00\00\00\00\00\00\00\00\00F\00\00\00\08\00\00\00\92\00\00\00\00\00\00\00\00\00\00\00") - (data $289 (i32.const 14524) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\93\00\00\00\00\00\00\00\00\00\00\00") - (data $290 (i32.const 14556) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\94\00\00\00\00\00\00\00\00\00\00\00") - (data $291 (i32.const 14588) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\95\00\00\00\00\00\00\00\00\00\00\00") - (data $292 (i32.const 14620) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\96\00\00\00\00\00\00\00\00\00\00\00") - (data $293 (i32.const 14652) "\1c\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\08\00\00\00\97\00\00\00\00\00\00\00\00\00\00\00") - (data $294 (i32.const 14684) "\1c\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\08\00\00\00\98\00\00\00\00\00\00\00\00\00\00\00") - (data $295 (i32.const 14716) "\1c\00\00\00\00\00\00\00\00\00\00\00I\00\00\00\08\00\00\00\99\00\00\00\00\00\00\00\00\00\00\00") - (data $296 (i32.const 14748) "\1c\00\00\00\00\00\00\00\00\00\00\00I\00\00\00\08\00\00\00\9a\00\00\00\00\00\00\00\00\00\00\00") - (data $297 (i32.const 14780) "\1c\00\00\00\00\00\00\00\00\00\00\00J\00\00\00\08\00\00\00\9b\00\00\00\00\00\00\00\00\00\00\00") - (data $298 (i32.const 14812) "\1c\00\00\00\00\00\00\00\00\00\00\00J\00\00\00\08\00\00\00\9c\00\00\00\00\00\00\00\00\00\00\00") - (data $299 (i32.const 14844) "\1c\00\00\00\00\00\00\00\00\00\00\00K\00\00\00\08\00\00\00\9d\00\00\00\00\00\00\00\00\00\00\00") - (data $300 (i32.const 14876) "\1c\00\00\00\00\00\00\00\00\00\00\00K\00\00\00\08\00\00\00\9e\00\00\00\00\00\00\00\00\00\00\00") - (data $301 (i32.const 14908) "\1c\00\00\00\00\00\00\00\00\00\00\00L\00\00\00\08\00\00\00\9f\00\00\00\00\00\00\00\00\00\00\00") - (data $302 (i32.const 14940) "\1c\00\00\00\00\00\00\00\00\00\00\00L\00\00\00\08\00\00\00\a0\00\00\00\00\00\00\00\00\00\00\00") - (data $303 (i32.const 14972) "\1c\00\00\00\00\00\00\00\00\00\00\00M\00\00\00\08\00\00\00\a1\00\00\00\00\00\00\00\00\00\00\00") - (data $304 (i32.const 15004) "\1c\00\00\00\00\00\00\00\00\00\00\00M\00\00\00\08\00\00\00\a2\00\00\00\00\00\00\00\00\00\00\00") - (data $305 (i32.const 15036) "\1c\00\00\00\00\00\00\00\00\00\00\00N\00\00\00\08\00\00\00\a3\00\00\00\00\00\00\00\00\00\00\00") - (data $306 (i32.const 15068) "\1c\00\00\00\00\00\00\00\00\00\00\00N\00\00\00\08\00\00\00\a4\00\00\00\00\00\00\00\00\00\00\00") - (data $307 (i32.const 15100) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\a5\00\00\00\00\00\00\00\00\00\00\00") - (data $308 (i32.const 15136) "O\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00\00\00\00\00B\08\00\00\02\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\19\00\00\02\1a\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\01\00\00\02\n\00\00\02\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 652) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\01\04\05\00\00\00\00\00\00\00") + (data $14 (i32.const 716) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 828) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") + (data $18 (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\01\00\02\02\00\00\00\00\00\00\00") + (data $19 (i32.const 892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\05\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data $21 (i32.const 956) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 1004) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 1052) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 1100) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 1148) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1196) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 1228) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $28 (i32.const 1276) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $29 (i32.const 1324) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1372) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $31 (i32.const 1420) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $32 (i32.const 1468) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $33 (i32.const 1516) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $34 (i32.const 1564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $35 (i32.const 1612) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $36 (i32.const 1660) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $37 (i32.const 1708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $38 (i32.const 1756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $39 (i32.const 1804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $40 (i32.const 1852) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $41 (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $42 (i32.const 1916) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data $43 (i32.const 1948) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data $44 (i32.const 1980) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data $45 (i32.const 2012) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data $46 (i32.const 2044) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data $47 (i32.const 2076) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $48 (i32.const 2108) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data $49 (i32.const 2140) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data $50 (i32.const 2172) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data $51 (i32.const 2204) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") + (data $52 (i32.const 2236) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data $53 (i32.const 2268) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data $54 (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data $55 (i32.const 2332) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 2364) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data $57 (i32.const 2396) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") + (data $59 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") + (data $60 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") + (data $61 (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") + (data $62 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\1d\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") + (data $63 (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") + (data $64 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\1f\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") + (data $65 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") + (data $66 (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") + (data $67 (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00\"\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") + (data $68 (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00#\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") + (data $69 (i32.const 2780) "\1c\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") + (data $70 (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00%\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $71 (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00&\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") + (data $72 (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00\'\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") + (data $73 (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") + (data $74 (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") + (data $75 (i32.const 2972) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") + (data $76 (i32.const 3004) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") + (data $77 (i32.const 3036) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") + (data $78 (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") + (data $79 (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data $80 (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") + (data $81 (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data $82 (i32.const 3196) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data $83 (i32.const 3228) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data $84 (i32.const 3260) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data $85 (i32.const 3292) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") + (data $86 (i32.const 3324) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $87 (i32.const 3356) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data $88 (i32.const 3388) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data $89 (i32.const 3420) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data $90 (i32.const 3452) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data $91 (i32.const 3484) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") + (data $92 (i32.const 3516) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") + (data $93 (i32.const 3548) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") + (data $94 (i32.const 3580) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data $95 (i32.const 3612) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") + (data $96 (i32.const 3644) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") + (data $97 (i32.const 3676) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") + (data $98 (i32.const 3708) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") + (data $99 (i32.const 3740) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") + (data $100 (i32.const 3772) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") + (data $101 (i32.const 3804) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") + (data $102 (i32.const 3836) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00@\00\00\00\00\00\00\00\00\00\00\00") + (data $103 (i32.const 3868) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00A\00\00\00\00\00\00\00\00\00\00\00") + (data $104 (i32.const 3900) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00B\00\00\00\00\00\00\00\00\00\00\00") + (data $105 (i32.const 3932) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00C\00\00\00\00\00\00\00\00\00\00\00") + (data $106 (i32.const 3964) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00D\00\00\00\00\00\00\00\00\00\00\00") + (data $107 (i32.const 3996) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00E\00\00\00\00\00\00\00\00\00\00\00") + (data $108 (i32.const 4028) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00F\00\00\00\00\00\00\00\00\00\00\00") + (data $109 (i32.const 4060) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00G\00\00\00\00\00\00\00\00\00\00\00") + (data $110 (i32.const 4092) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00H\00\00\00\00\00\00\00\00\00\00\00") + (data $111 (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00I\00\00\00\00\00\00\00\00\00\00\00") + (data $112 (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00J\00\00\00\00\00\00\00\00\00\00\00") + (data $113 (i32.const 4188) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00K\00\00\00\00\00\00\00\00\00\00\00") + (data $114 (i32.const 4220) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00L\00\00\00\00\00\00\00\00\00\00\00") + (data $115 (i32.const 4252) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00M\00\00\00\00\00\00\00\00\00\00\00") + (data $116 (i32.const 4284) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00N\00\00\00\00\00\00\00\00\00\00\00") + (data $117 (i32.const 4316) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00O\00\00\00\00\00\00\00\00\00\00\00") + (data $118 (i32.const 4348) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00P\00\00\00\00\00\00\00\00\00\00\00") + (data $119 (i32.const 4380) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00Q\00\00\00\00\00\00\00\00\00\00\00") + (data $120 (i32.const 4412) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00R\00\00\00\00\00\00\00\00\00\00\00") + (data $121 (i32.const 4444) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00S\00\00\00\00\00\00\00\00\00\00\00") + (data $122 (i32.const 4476) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00T\00\00\00\00\00\00\00\00\00\00\00") + (data $123 (i32.const 4508) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00U\00\00\00\00\00\00\00\00\00\00\00") + (data $124 (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00V\00\00\00\00\00\00\00\00\00\00\00") + (data $125 (i32.const 4572) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00W\00\00\00\00\00\00\00\00\00\00\00") + (data $126 (i32.const 4604) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00X\00\00\00\00\00\00\00\00\00\00\00") + (data $127 (i32.const 4636) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00Y\00\00\00\00\00\00\00\00\00\00\00") + (data $128 (i32.const 4668) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00Z\00\00\00\00\00\00\00\00\00\00\00") + (data $129 (i32.const 4700) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00[\00\00\00\00\00\00\00\00\00\00\00") + (data $130 (i32.const 4732) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00\\\00\00\00\00\00\00\00\00\00\00\00") + (data $131 (i32.const 4764) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00]\00\00\00\00\00\00\00\00\00\00\00") + (data $132 (i32.const 4796) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00^\00\00\00\00\00\00\00\00\00\00\00") + (data $133 (i32.const 4828) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00_\00\00\00\00\00\00\00\00\00\00\00") + (data $134 (i32.const 4860) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00`\00\00\00\00\00\00\00\00\00\00\00") + (data $135 (i32.const 4892) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data $136 (i32.const 4924) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data $137 (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") + (data $138 (i32.const 4988) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00d\00\00\00\00\00\00\00\00\00\00\00") + (data $139 (i32.const 5020) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00e\00\00\00\00\00\00\00\00\00\00\00") + (data $140 (i32.const 5052) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00f\00\00\00\00\00\00\00\00\00\00\00") + (data $141 (i32.const 5084) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00g\00\00\00\00\00\00\00\00\00\00\00") + (data $142 (i32.const 5116) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") + (data $143 (i32.const 5148) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00i\00\00\00\00\00\00\00\00\00\00\00") + (data $144 (i32.const 5180) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00j\00\00\00\00\00\00\00\00\00\00\00") + (data $145 (i32.const 5212) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00k\00\00\00\00\00\00\00\00\00\00\00") + (data $146 (i32.const 5244) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00l\00\00\00\00\00\00\00\00\00\00\00") + (data $147 (i32.const 5276) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00m\00\00\00\00\00\00\00\00\00\00\00") + (data $148 (i32.const 5308) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00n\00\00\00\00\00\00\00\00\00\00\00") + (data $149 (i32.const 5340) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00o\00\00\00\00\00\00\00\00\00\00\00") + (data $150 (i32.const 5372) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00p\00\00\00\00\00\00\00\00\00\00\00") + (data $151 (i32.const 5404) "\1c\00\00\00\00\00\00\00\00\00\00\00(\00\00\00\08\00\00\00q\00\00\00\00\00\00\00\00\00\00\00") + (data $152 (i32.const 5436) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00r\00\00\00\00\00\00\00\00\00\00\00") + (data $153 (i32.const 5468) "\1c\00\00\00\00\00\00\00\00\00\00\00)\00\00\00\08\00\00\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $154 (i32.const 5500) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00t\00\00\00\00\00\00\00\00\00\00\00") + (data $155 (i32.const 5532) "\1c\00\00\00\00\00\00\00\00\00\00\00*\00\00\00\08\00\00\00u\00\00\00\00\00\00\00\00\00\00\00") + (data $156 (i32.const 5564) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00v\00\00\00\00\00\00\00\00\00\00\00") + (data $157 (i32.const 5596) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\00w\00\00\00\00\00\00\00\00\00\00\00") + (data $158 (i32.const 5628) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00x\00\00\00\00\00\00\00\00\00\00\00") + (data $159 (i32.const 5660) "\1c\00\00\00\00\00\00\00\00\00\00\00,\00\00\00\08\00\00\00y\00\00\00\00\00\00\00\00\00\00\00") + (data $160 (i32.const 5692) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00z\00\00\00\00\00\00\00\00\00\00\00") + (data $161 (i32.const 5724) "\1c\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\08\00\00\00{\00\00\00\00\00\00\00\00\00\00\00") + (data $162 (i32.const 5756) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00|\00\00\00\00\00\00\00\00\00\00\00") + (data $163 (i32.const 5788) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00}\00\00\00\00\00\00\00\00\00\00\00") + (data $164 (i32.const 5820) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00~\00\00\00\00\00\00\00\00\00\00\00") + (data $165 (i32.const 5852) "\1c\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\08\00\00\00\7f\00\00\00\00\00\00\00\00\00\00\00") + (data $166 (i32.const 5884) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00\80\00\00\00\00\00\00\00\00\00\00\00") + (data $167 (i32.const 5916) "\1c\00\00\00\00\00\00\00\00\00\00\000\00\00\00\08\00\00\00\81\00\00\00\00\00\00\00\00\00\00\00") + (data $168 (i32.const 5948) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00\82\00\00\00\00\00\00\00\00\00\00\00") + (data $169 (i32.const 5980) "\1c\00\00\00\00\00\00\00\00\00\00\001\00\00\00\08\00\00\00\83\00\00\00\00\00\00\00\00\00\00\00") + (data $170 (i32.const 6012) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00\84\00\00\00\00\00\00\00\00\00\00\00") + (data $171 (i32.const 6044) "\1c\00\00\00\00\00\00\00\00\00\00\002\00\00\00\08\00\00\00\85\00\00\00\00\00\00\00\00\00\00\00") + (data $172 (i32.const 6076) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e\00\00\00") + (data $173 (i32.const 6108) ",\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\10\00\00\00\d0\17\00\00\d0\17\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $174 (i32.const 6156) "\1c\00\00\00\00\00\00\00\00\00\00\003\00\00\00\08\00\00\00\86\00\00\00\00\00\00\00\00\00\00\00") + (data $175 (i32.const 6188) "\1c\00\00\00\00\00\00\00\00\00\00\004\00\00\00\08\00\00\00\87\00\00\00\00\00\00\00\00\00\00\00") + (data $176 (i32.const 6220) "\1c\00\00\00\00\00\00\00\00\00\00\005\00\00\00\08\00\00\00\88\00\00\00\00\00\00\00\00\00\00\00") + (data $177 (i32.const 6252) "\1c\00\00\00\00\00\00\00\00\00\00\006\00\00\00\08\00\00\00\89\00\00\00\00\00\00\00\00\00\00\00") + (data $178 (i32.const 6284) "\1c\00\00\00\00\00\00\00\00\00\00\007\00\00\00\08\00\00\00\8a\00\00\00\00\00\00\00\00\00\00\00") + (data $179 (i32.const 6316) "\1c\00\00\00\00\00\00\00\00\00\00\008\00\00\00\08\00\00\00\8b\00\00\00\00\00\00\00\00\00\00\00") + (data $180 (i32.const 6348) "\1c\00\00\00\00\00\00\00\00\00\00\009\00\00\00\08\00\00\00\8c\00\00\00\00\00\00\00\00\00\00\00") + (data $181 (i32.const 6380) "\1c\00\00\00\00\00\00\00\00\00\00\00:\00\00\00\08\00\00\00\8d\00\00\00\00\00\00\00\00\00\00\00") + (data $182 (i32.const 6412) "\1c\00\00\00\00\00\00\00\00\00\00\00;\00\00\00\08\00\00\00\8e\00\00\00\00\00\00\00\00\00\00\00") + (data $183 (i32.const 6444) "\1c\00\00\00\00\00\00\00\00\00\00\00<\00\00\00\08\00\00\00\8f\00\00\00\00\00\00\00\00\00\00\00") + (data $184 (i32.const 6476) "\1c\00\00\00\00\00\00\00\00\00\00\00=\00\00\00\08\00\00\00\90\00\00\00\00\00\00\00\00\00\00\00") + (data $185 (i32.const 6508) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $186 (i32.const 6572) ",\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\10\00\00\00\80\19\00\00\80\19\00\00$\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $187 (i32.const 6620) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00,\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\n\00\00\00") + (data $188 (i32.const 6684) ",\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\10\00\00\00\f0\19\00\00\f0\19\00\00,\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $189 (i32.const 6732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $190 (i32.const 6764) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $191 (i32.const 6892) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $192 (i32.const 6956) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data $193 (i32.const 6988) "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 $194 (i32.const 7388) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $195 (i32.const 8444) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $196 (i32.const 8540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data $197 (i32.const 8572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00,\002\00,\003\00,\004\00,\005\00\00\00\00\00\00\00\00\00\00\00") + (data $198 (i32.const 8620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data $199 (i32.const 8652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data $200 (i32.const 8684) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data $201 (i32.const 8732) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $202 (i32.const 8784) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $203 (i32.const 8840) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\10\00\00\000\'\00\000\'\00\00\0c\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $213 (i32.const 10092) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00") + (data $214 (i32.const 10140) ",\00\00\00\00\00\00\00\00\00\00\00?\00\00\00\10\00\00\00\80\'\00\00\80\'\00\00\18\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $215 (i32.const 10188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\92\91\90\00\00\00\00\00\00\00\00\00") + (data $216 (i32.const 10220) ",\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\10\00\00\00\e0\'\00\00\e0\'\00\00\03\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $217 (i32.const 10268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\00\00\00\00\00\00\00\00\00") + (data $218 (i32.const 10300) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00I\00n\00t\008\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00\00\00") + (data $219 (i32.const 10348) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\00\00\00\00\00\00") + (data $220 (i32.const 10380) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t\00\00\00") + (data $221 (i32.const 10412) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t\00\00\00") + (data $222 (i32.const 10444) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90\00\00") + (data $223 (i32.const 10476) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\00\00\00\00\00\00\00\00\00") + (data $224 (i32.const 10508) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00U\00i\00n\00t\008\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") + (data $225 (i32.const 10556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\00\00\00\00\00\00") + (data $226 (i32.const 10588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t\00\00\00") + (data $227 (i32.const 10620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t\00\00\00") + (data $228 (i32.const 10652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90\00\00") + (data $229 (i32.const 10684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\00\00\00\00\00\00\00\00\00") + (data $230 (i32.const 10716) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00U\00i\00n\00t\008\00C\00l\00a\00m\00p\00e\00d\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00\00\00") + (data $231 (i32.const 10780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\00\00\00\00\00\00") + (data $232 (i32.const 10812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t\00\00\00") + (data $233 (i32.const 10844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t\00\00\00") + (data $234 (i32.const 10876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00defg\ff\ff\ff\00\00\00\00\00") + (data $235 (i32.const 10908) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $236 (i32.const 10956) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00I\00n\00t\001\006\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") + (data $237 (i32.const 11004) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $238 (i32.const 11052) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $239 (i32.const 11100) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $240 (i32.const 11148) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff\00\00\00\00\00\00\00\00") + (data $241 (i32.const 11196) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $242 (i32.const 11244) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00U\00i\00n\00t\001\006\00A\00r\00r\00a\00y\00\00\00\00\00\00\00") + (data $243 (i32.const 11292) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $244 (i32.const 11340) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $245 (i32.const 11388) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $246 (i32.const 11436) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff\00\00\00\00\00\00\00\00") + (data $247 (i32.const 11484) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $248 (i32.const 11548) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00I\00n\00t\003\002\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") + (data $249 (i32.const 11596) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $250 (i32.const 11660) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $251 (i32.const 11724) "<\00\00\00\00\00\00\00\00\00\00\00\01\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\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $252 (i32.const 11788) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff\00\00\00\00") + (data $253 (i32.const 11852) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $254 (i32.const 11916) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00U\00i\00n\00t\003\002\00A\00r\00r\00a\00y\00\00\00\00\00\00\00") + (data $255 (i32.const 11964) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $256 (i32.const 12028) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $257 (i32.const 12092) "<\00\00\00\00\00\00\00\00\00\00\00\01\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\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data $258 (i32.const 12156) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff\00\00\00\00") + (data $259 (i32.const 12220) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $260 (i32.const 12332) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00I\00n\00t\006\004\00A\00r\00r\00a\00y\00\00\00\00\00\00\00\00\00") + (data $261 (i32.const 12380) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $262 (i32.const 12492) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $263 (i32.const 12604) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $264 (i32.const 12716) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data $265 (i32.const 12828) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $266 (i32.const 12940) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00U\00i\00n\00t\006\004\00A\00r\00r\00a\00y\00\00\00\00\00\00\00") + (data $267 (i32.const 12988) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $268 (i32.const 13100) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $269 (i32.const 13212) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $270 (i32.const 13324) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data $271 (i32.const 13436) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $272 (i32.const 13500) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00F\00l\00o\00a\00t\003\002\00A\00r\00r\00a\00y\00\00\00\00\00") + (data $273 (i32.const 13548) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $274 (i32.const 13612) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@\00\00\e0@\00\00\00A\00\00\10A\00\00\00\00\00\00\00\00") + (data $275 (i32.const 13676) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\00\00\c8B\00\00\caB\00\00\ccB\00\00\ceB\00\00zD\00@zD\00\80zD\00\00\dc\c2\00\00\de\c2\00\00\e0\c2\00\00\00\00") + (data $276 (i32.const 13740) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $277 (i32.const 13852) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00F\00l\00o\00a\00t\006\004\00A\00r\00r\00a\00y\00\00\00\00\00") + (data $278 (i32.const 13900) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $279 (i32.const 14012) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\1c@\00\00\00\00\00\00 @\00\00\00\00\00\00\"@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $280 (i32.const 14124) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00P\00\00\00\00\00\00\00\00\00Y@\00\00\00\00\00@Y@\00\00\00\00\00\80Y@\00\00\00\00\00\c0Y@\00\00\00\00\00@\8f@\00\00\00\00\00H\8f@\00\00\00\00\00P\8f@\00\00\00\00\00\80[\c0\00\00\00\00\00\c0[\c0\00\00\00\00\00\00\\\c0\00\00\00\00\00\00\00\00\00\00\00\00") + (data $281 (i32.const 14236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\00\ff\00\00\00d\n\ff\ff\00\00\00") + (data $282 (i32.const 14268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00\01\ffd\ff\00\00d\n\ff\00\00\00") + (data $283 (i32.const 14300) "\1c\00\00\00\00\00\00\00\00\00\00\00F\00\00\00\08\00\00\00\91\00\00\00\00\00\00\00\00\00\00\00") + (data $284 (i32.const 14332) "\1c\00\00\00\00\00\00\00\00\00\00\00F\00\00\00\08\00\00\00\92\00\00\00\00\00\00\00\00\00\00\00") + (data $285 (i32.const 14364) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\93\00\00\00\00\00\00\00\00\00\00\00") + (data $286 (i32.const 14396) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\94\00\00\00\00\00\00\00\00\00\00\00") + (data $287 (i32.const 14428) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\95\00\00\00\00\00\00\00\00\00\00\00") + (data $288 (i32.const 14460) "\1c\00\00\00\00\00\00\00\00\00\00\00G\00\00\00\08\00\00\00\96\00\00\00\00\00\00\00\00\00\00\00") + (data $289 (i32.const 14492) "\1c\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\08\00\00\00\97\00\00\00\00\00\00\00\00\00\00\00") + (data $290 (i32.const 14524) "\1c\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\08\00\00\00\98\00\00\00\00\00\00\00\00\00\00\00") + (data $291 (i32.const 14556) "\1c\00\00\00\00\00\00\00\00\00\00\00I\00\00\00\08\00\00\00\99\00\00\00\00\00\00\00\00\00\00\00") + (data $292 (i32.const 14588) "\1c\00\00\00\00\00\00\00\00\00\00\00I\00\00\00\08\00\00\00\9a\00\00\00\00\00\00\00\00\00\00\00") + (data $293 (i32.const 14620) "\1c\00\00\00\00\00\00\00\00\00\00\00J\00\00\00\08\00\00\00\9b\00\00\00\00\00\00\00\00\00\00\00") + (data $294 (i32.const 14652) "\1c\00\00\00\00\00\00\00\00\00\00\00J\00\00\00\08\00\00\00\9c\00\00\00\00\00\00\00\00\00\00\00") + (data $295 (i32.const 14684) "\1c\00\00\00\00\00\00\00\00\00\00\00K\00\00\00\08\00\00\00\9d\00\00\00\00\00\00\00\00\00\00\00") + (data $296 (i32.const 14716) "\1c\00\00\00\00\00\00\00\00\00\00\00K\00\00\00\08\00\00\00\9e\00\00\00\00\00\00\00\00\00\00\00") + (data $297 (i32.const 14748) "\1c\00\00\00\00\00\00\00\00\00\00\00L\00\00\00\08\00\00\00\9f\00\00\00\00\00\00\00\00\00\00\00") + (data $298 (i32.const 14780) "\1c\00\00\00\00\00\00\00\00\00\00\00L\00\00\00\08\00\00\00\a0\00\00\00\00\00\00\00\00\00\00\00") + (data $299 (i32.const 14812) "\1c\00\00\00\00\00\00\00\00\00\00\00M\00\00\00\08\00\00\00\a1\00\00\00\00\00\00\00\00\00\00\00") + (data $300 (i32.const 14844) "\1c\00\00\00\00\00\00\00\00\00\00\00M\00\00\00\08\00\00\00\a2\00\00\00\00\00\00\00\00\00\00\00") + (data $301 (i32.const 14876) "\1c\00\00\00\00\00\00\00\00\00\00\00N\00\00\00\08\00\00\00\a3\00\00\00\00\00\00\00\00\00\00\00") + (data $302 (i32.const 14908) "\1c\00\00\00\00\00\00\00\00\00\00\00N\00\00\00\08\00\00\00\a4\00\00\00\00\00\00\00\00\00\00\00") + (data $303 (i32.const 14940) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\a5\00\00\00\00\00\00\00\00\00\00\00") + (data $304 (i32.const 14976) "O\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00\00\00\00\00B\08\00\00\02\t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\19\00\00\02\1a\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\01\00\00\02\n\00\00\02\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 166 166 funcref) (elem $0 (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|1 $"std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -496,7 +482,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -566,7 +552,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -583,7 +569,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -613,9 +599,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 336 + i32.const 400 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -682,7 +668,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 208 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -834,7 +820,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -854,7 +840,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -917,7 +903,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1070,7 +1056,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1087,7 +1073,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1176,7 +1162,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1219,7 +1205,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1237,7 +1223,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1305,7 +1291,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1422,7 +1408,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1468,7 +1454,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1500,7 +1486,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1744,7 +1730,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1964,7 +1950,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2075,8 +2061,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 144 + i32.const 480 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2178,7 +2164,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2249,7 +2235,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2406,7 +2392,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2521,7 +2507,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2541,7 +2527,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 480 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2589,8 +2575,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 + i32.const 144 + i32.const 208 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2635,422 +2621,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -3066,7 +2636,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 208 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -5817,6 +5387,429 @@ end end ) + (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) + local.get $value + i32.const 100000 + i32.lt_u + if + local.get $value + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $value + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $value + i32.const 10000 + i32.ge_u + i32.add + local.get $value + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $value + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $value + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $value + i32.const 1000000000 + i32.ge_u + i32.add + local.get $value + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) + (local $t i32) + (local $r i32) + (local $d1 i32) + (local $d2 i32) + (local $digits1 i64) + (local $digits2 i64) + (local $t|9 i32) + (local $d1|10 i32) + (local $digits i32) + (local $digits|12 i32) + (local $digit i32) + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 6988 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6988 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $num + i32.const 100 + i32.ge_u + if + local.get $num + i32.const 100 + i32.div_u + local.set $t|9 + local.get $num + i32.const 100 + i32.rem_u + local.set $d1|10 + local.get $t|9 + local.set $num + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 6988 + local.get $d1|10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits + i32.store + end + local.get $num + i32.const 10 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + i32.const 6988 + local.get $num + i32.const 2 + i32.shl + i32.add + i32.load + local.set $digits|12 + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits|12 + i32.store + else + local.get $offset + i32.const 1 + i32.sub + local.set $offset + i32.const 48 + local.get $num + i32.add + local.set $digit + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digit + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 7408 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end + end + local.get $offset + i32.const 1 + i32.and + if + local.get $buffer + i32.const 7408 + local.get $num + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end + ) + (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) + (local $value i32) + (local $b64 i64) + (local $b i64) + (local $e i32) + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end + if + i32.const 63 + local.get $num + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $base + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + return + end + local.get $base + i64.extend_i32_s + local.set $b64 + local.get $b64 + local.set $b + i32.const 1 + local.set $e + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end + end + local.get $e + i32.const 1 + i32.sub + return + ) + (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) + (local $base i64) + (local $shift i64) + (local $mask i64) + (local $q i64) + local.get $radix + i64.extend_i32_s + local.set $base + local.get $radix + local.get $radix + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $radix + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $shift + local.get $base + i64.const 1 + i64.sub + local.set $mask + loop $do-loop|0 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 8464 + local.get $num + local.get $mask + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $num + local.get $shift + i64.shr_u + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|0 + end + else + loop $do-loop|1 + local.get $offset + i32.const 1 + i32.sub + local.set $offset + local.get $num + local.get $base + i64.div_u + local.set $q + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 8464 + local.get $num + local.get $q + local.get $base + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $q + local.set $num + local.get $num + i64.const 0 + i64.ne + br_if $do-loop|1 + end + end + ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) (func $~lib/util/number/itoa_buffered (param $buffer i32) (param $value i32) (result i32) (local $sign i32) (local $dest i32) @@ -6614,14 +6607,14 @@ i32.const 100 i32.rem_u local.set $c2 - i32.const 764 + i32.const 6988 local.get $c1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 764 + i32.const 6988 local.get $c2 i32.const 2 i32.shl @@ -6643,14 +6636,14 @@ i64.shl i64.or i64.store - i32.const 764 + i32.const 6988 local.get $b1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 764 + i32.const 6988 local.get $b2 i32.const 2 i32.shl @@ -7178,7 +7171,7 @@ local.set $delta|21 local.get $tmp local.set $rest - i32.const 9872 + i32.const 9712 local.get $kappa i32.const 2 i32.shl @@ -7315,7 +7308,7 @@ i32.add global.set $~lib/util/number/_K local.get $wp_w_frc - i32.const 9872 + i32.const 9712 i32.const 0 local.get $kappa i32.sub @@ -7994,14 +7987,14 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 9000 + i32.const 8840 local.get $index i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow - i32.const 9696 + i32.const 9536 local.get $index i32.const 1 i32.shl @@ -13101,20 +13094,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 48256 - i32.const 48304 + i32.const 48096 + i32.const 48144 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -13123,196 +13112,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) @@ -13368,8 +13188,8 @@ i32.shr_u i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 19 i32.const 57 call $~lib/builtins/abort @@ -14229,7 +14049,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -14249,7 +14069,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -14267,7 +14087,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 34 i32.const 3 call $~lib/builtins/abort @@ -14291,7 +14111,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -14311,7 +14131,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -14329,7 +14149,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 39 i32.const 3 call $~lib/builtins/abort @@ -14353,7 +14173,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -14373,7 +14193,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -14391,7 +14211,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -14415,7 +14235,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -14435,7 +14255,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 48 i32.const 3 call $~lib/builtins/abort @@ -14453,7 +14273,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -14477,7 +14297,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -14497,7 +14317,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 53 i32.const 3 call $~lib/builtins/abort @@ -14515,7 +14335,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 54 i32.const 3 call $~lib/builtins/abort @@ -14539,7 +14359,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -14559,7 +14379,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 58 i32.const 3 call $~lib/builtins/abort @@ -14577,7 +14397,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 59 i32.const 3 call $~lib/builtins/abort @@ -14601,7 +14421,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 62 i32.const 3 call $~lib/builtins/abort @@ -14621,7 +14441,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 63 i32.const 3 call $~lib/builtins/abort @@ -14639,7 +14459,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -14663,7 +14483,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -14683,7 +14503,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -14701,7 +14521,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 69 i32.const 3 call $~lib/builtins/abort @@ -14725,7 +14545,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 72 i32.const 3 call $~lib/builtins/abort @@ -14745,7 +14565,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 73 i32.const 3 call $~lib/builtins/abort @@ -14763,7 +14583,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -14787,7 +14607,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 77 i32.const 3 call $~lib/builtins/abort @@ -14807,7 +14627,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 78 i32.const 3 call $~lib/builtins/abort @@ -14825,7 +14645,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 79 i32.const 3 call $~lib/builtins/abort @@ -14849,7 +14669,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 82 i32.const 3 call $~lib/builtins/abort @@ -14869,7 +14689,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -14887,7 +14707,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -14920,9 +14740,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 747 + i32.const 336 + i32.const 608 + i32.const 748 i32.const 64 call $~lib/builtins/abort unreachable @@ -14967,9 +14787,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 736 + i32.const 336 + i32.const 608 + i32.const 737 i32.const 64 call $~lib/builtins/abort unreachable @@ -15116,6 +14936,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -15173,9 +14997,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1457 + i32.const 336 + i32.const 608 + i32.const 1458 i32.const 64 call $~lib/builtins/abort unreachable @@ -15320,6 +15144,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -15900,7 +15728,7 @@ i32.const 4 i32.eq drop - i32.const 2640 + i32.const 672 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -15949,9 +15777,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1446 + i32.const 336 + i32.const 608 + i32.const 1447 i32.const 64 call $~lib/builtins/abort unreachable @@ -15996,9 +15824,9 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 320 + i32.const 336 + i32.const 608 + i32.const 321 i32.const 45 call $~lib/builtins/abort unreachable @@ -16051,9 +15879,9 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 309 + i32.const 336 + i32.const 608 + i32.const 310 i32.const 45 call $~lib/builtins/abort unreachable @@ -16096,9 +15924,9 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 36 + i32.const 336 + i32.const 608 + i32.const 37 i32.const 45 call $~lib/builtins/abort unreachable @@ -16201,9 +16029,9 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 25 + i32.const 336 + i32.const 608 + i32.const 26 i32.const 45 call $~lib/builtins/abort unreachable @@ -16247,9 +16075,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 320 - i32.const 2704 - i32.const 114 + i32.const 336 + i32.const 736 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -16539,6 +16367,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -16657,9 +16489,9 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 320 - i32.const 2704 - i32.const 114 + i32.const 336 + i32.const 736 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -17383,7 +17215,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 3840 + i32.const 1872 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -17399,7 +17231,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -17430,9 +17262,9 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 178 + i32.const 336 + i32.const 608 + i32.const 179 i32.const 45 call $~lib/builtins/abort unreachable @@ -17598,7 +17430,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 3872 + i32.const 1904 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -17615,7 +17447,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -17771,7 +17603,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 3904 + i32.const 1936 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -17788,7 +17620,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -17821,9 +17653,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 463 + i32.const 336 + i32.const 608 + i32.const 464 i32.const 64 call $~lib/builtins/abort unreachable @@ -17991,7 +17823,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 3936 + i32.const 1968 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -18007,7 +17839,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -18040,9 +17872,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 605 + i32.const 336 + i32.const 608 + i32.const 606 i32.const 64 call $~lib/builtins/abort unreachable @@ -18210,7 +18042,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 3968 + i32.const 2000 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -18227,7 +18059,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -18383,7 +18215,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4000 + i32.const 2032 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -18398,7 +18230,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -18431,9 +18263,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 889 + i32.const 336 + i32.const 608 + i32.const 890 i32.const 64 call $~lib/builtins/abort unreachable @@ -18601,7 +18433,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4032 + i32.const 2064 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -18616,7 +18448,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -18649,9 +18481,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1031 + i32.const 336 + i32.const 608 + i32.const 1032 i32.const 64 call $~lib/builtins/abort unreachable @@ -18820,7 +18652,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4064 + i32.const 2096 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -18835,7 +18667,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -18868,9 +18700,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1173 + i32.const 336 + i32.const 608 + i32.const 1174 i32.const 64 call $~lib/builtins/abort unreachable @@ -19039,7 +18871,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4096 + i32.const 2128 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -19054,7 +18886,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -19087,9 +18919,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1315 + i32.const 336 + i32.const 608 + i32.const 1316 i32.const 64 call $~lib/builtins/abort unreachable @@ -19258,7 +19090,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4128 + i32.const 2160 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -19273,7 +19105,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -19430,7 +19262,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4160 + i32.const 2192 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -19445,7 +19277,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 323 i32.const 3 call $~lib/builtins/abort @@ -19488,9 +19320,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 48 + i32.const 336 + i32.const 608 + i32.const 49 i32.const 33 call $~lib/builtins/abort unreachable @@ -19570,7 +19402,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -19589,7 +19421,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -19608,7 +19440,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -19651,9 +19483,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 190 + i32.const 336 + i32.const 608 + i32.const 191 i32.const 33 call $~lib/builtins/abort unreachable @@ -19733,7 +19565,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -19752,7 +19584,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -19771,7 +19603,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -19814,9 +19646,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 332 + i32.const 336 + i32.const 608 + i32.const 333 i32.const 33 call $~lib/builtins/abort unreachable @@ -19896,7 +19728,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -19915,7 +19747,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -19934,7 +19766,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -19979,9 +19811,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 475 + i32.const 336 + i32.const 608 + i32.const 476 i32.const 33 call $~lib/builtins/abort unreachable @@ -20063,7 +19895,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -20082,7 +19914,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -20101,7 +19933,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -20146,9 +19978,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 617 + i32.const 336 + i32.const 608 + i32.const 618 i32.const 33 call $~lib/builtins/abort unreachable @@ -20230,7 +20062,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -20249,7 +20081,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -20268,7 +20100,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -20313,9 +20145,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 759 + i32.const 336 + i32.const 608 + i32.const 760 i32.const 33 call $~lib/builtins/abort unreachable @@ -20397,7 +20229,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -20416,7 +20248,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -20435,7 +20267,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -20480,9 +20312,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 901 + i32.const 336 + i32.const 608 + i32.const 902 i32.const 33 call $~lib/builtins/abort unreachable @@ -20564,7 +20396,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -20583,7 +20415,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -20602,7 +20434,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -20648,9 +20480,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1043 + i32.const 336 + i32.const 608 + i32.const 1044 i32.const 33 call $~lib/builtins/abort unreachable @@ -20732,7 +20564,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -20751,7 +20583,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -20770,7 +20602,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -20816,9 +20648,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1185 + i32.const 336 + i32.const 608 + i32.const 1186 i32.const 33 call $~lib/builtins/abort unreachable @@ -20900,7 +20732,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -20919,7 +20751,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -20938,7 +20770,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -20984,9 +20816,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1327 + i32.const 336 + i32.const 608 + i32.const 1328 i32.const 33 call $~lib/builtins/abort unreachable @@ -21068,7 +20900,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -21087,7 +20919,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -21106,7 +20938,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -21152,9 +20984,9 @@ local.get $len i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1469 + i32.const 336 + i32.const 608 + i32.const 1470 i32.const 33 call $~lib/builtins/abort unreachable @@ -21236,7 +21068,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 344 i32.const 3 call $~lib/builtins/abort @@ -21255,7 +21087,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 345 i32.const 3 call $~lib/builtins/abort @@ -21274,7 +21106,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 346 i32.const 3 call $~lib/builtins/abort @@ -21429,7 +21261,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4192 + i32.const 2224 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -21445,7 +21277,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -21600,7 +21432,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4224 + i32.const 2256 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -21617,7 +21449,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -21772,7 +21604,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4256 + i32.const 2288 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -21789,7 +21621,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -21944,7 +21776,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4288 + i32.const 2320 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -21960,7 +21792,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -22115,7 +21947,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4320 + i32.const 2352 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -22132,7 +21964,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -22287,7 +22119,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4352 + i32.const 2384 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -22302,7 +22134,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -22457,7 +22289,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4384 + i32.const 2416 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -22472,7 +22304,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -22628,7 +22460,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4416 + i32.const 2448 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -22643,7 +22475,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -22799,7 +22631,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4448 + i32.const 2480 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -22814,7 +22646,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -22970,7 +22802,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4480 + i32.const 2512 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -22985,7 +22817,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -23141,7 +22973,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4512 + i32.const 2544 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -23156,7 +22988,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 367 i32.const 3 call $~lib/builtins/abort @@ -23268,6 +23100,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -23344,7 +23180,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4544 + i32.const 2576 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -23366,7 +23202,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -23385,7 +23221,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -23404,7 +23240,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -23516,6 +23352,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -23557,9 +23397,9 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 167 + i32.const 336 + i32.const 608 + i32.const 168 i32.const 45 call $~lib/builtins/abort unreachable @@ -23637,7 +23477,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4576 + i32.const 2608 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -23659,7 +23499,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -23678,7 +23518,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -23697,7 +23537,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -23809,6 +23649,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -23885,7 +23729,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4608 + i32.const 2640 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -23907,7 +23751,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -23926,7 +23770,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -23945,7 +23789,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -24057,6 +23901,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -24100,9 +23948,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 452 + i32.const 336 + i32.const 608 + i32.const 453 i32.const 64 call $~lib/builtins/abort unreachable @@ -24182,7 +24030,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4640 + i32.const 2672 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -24204,7 +24052,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -24223,7 +24071,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -24242,7 +24090,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -24354,6 +24202,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -24397,9 +24249,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 594 + i32.const 336 + i32.const 608 + i32.const 595 i32.const 64 call $~lib/builtins/abort unreachable @@ -24479,7 +24331,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4672 + i32.const 2704 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -24501,7 +24353,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -24520,7 +24372,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -24539,7 +24391,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -24651,6 +24503,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -24727,7 +24583,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4704 + i32.const 2736 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -24749,7 +24605,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -24768,7 +24624,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -24787,7 +24643,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -24899,6 +24755,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -24942,9 +24802,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 878 + i32.const 336 + i32.const 608 + i32.const 879 i32.const 64 call $~lib/builtins/abort unreachable @@ -25024,7 +24884,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4736 + i32.const 2768 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -25046,7 +24906,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -25065,7 +24925,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -25084,7 +24944,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -25196,6 +25056,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -25240,9 +25104,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1020 + i32.const 336 + i32.const 608 + i32.const 1021 i32.const 64 call $~lib/builtins/abort unreachable @@ -25322,7 +25186,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4768 + i32.const 2800 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -25344,7 +25208,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -25363,7 +25227,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -25382,7 +25246,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -25494,6 +25358,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -25538,9 +25406,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1162 + i32.const 336 + i32.const 608 + i32.const 1163 i32.const 64 call $~lib/builtins/abort unreachable @@ -25620,7 +25488,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4800 + i32.const 2832 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -25642,7 +25510,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -25661,7 +25529,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -25680,7 +25548,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -25792,6 +25660,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -25836,9 +25708,9 @@ i32.shr_u i32.ge_u if - i32.const 320 - i32.const 2576 - i32.const 1304 + i32.const 336 + i32.const 608 + i32.const 1305 i32.const 64 call $~lib/builtins/abort unreachable @@ -25918,7 +25790,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4832 + i32.const 2864 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -25940,7 +25812,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -25959,7 +25831,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -25978,7 +25850,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -26090,6 +25962,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -26166,7 +26042,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4864 + i32.const 2896 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -26188,7 +26064,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -26207,7 +26083,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -26226,7 +26102,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -26360,6 +26236,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -26454,7 +26334,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4896 + i32.const 2928 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -26475,7 +26355,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -26493,7 +26373,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -26512,7 +26392,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -26531,7 +26411,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -26550,7 +26430,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -26684,6 +26564,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -26778,7 +26662,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4928 + i32.const 2960 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -26799,7 +26683,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -26817,7 +26701,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -26836,7 +26720,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -26855,7 +26739,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -26874,7 +26758,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -27008,6 +26892,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -27102,7 +26990,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4960 + i32.const 2992 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -27123,7 +27011,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -27141,7 +27029,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -27160,7 +27048,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -27179,7 +27067,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -27198,7 +27086,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -27332,6 +27220,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -27426,7 +27318,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4992 + i32.const 3024 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -27447,7 +27339,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -27465,7 +27357,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -27484,7 +27376,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -27503,7 +27395,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -27522,7 +27414,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -27656,6 +27548,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -27750,7 +27646,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 5024 + i32.const 3056 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -27771,7 +27667,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -27789,7 +27685,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -27808,7 +27704,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -27827,7 +27723,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -27846,7 +27742,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -27980,6 +27876,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -28074,7 +27974,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 5056 + i32.const 3088 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -28095,7 +27995,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -28113,7 +28013,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -28132,7 +28032,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -28151,7 +28051,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -28170,7 +28070,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -28304,6 +28204,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -28398,7 +28302,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 5088 + i32.const 3120 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -28419,7 +28323,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -28437,7 +28341,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -28456,7 +28360,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -28475,7 +28379,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -28494,7 +28398,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -28628,6 +28532,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -28722,7 +28630,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 5120 + i32.const 3152 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -28743,7 +28651,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -28761,7 +28669,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -28780,7 +28688,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -28799,7 +28707,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -28818,7 +28726,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -28952,6 +28860,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -29046,7 +28958,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 5152 + i32.const 3184 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -29067,7 +28979,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -29085,7 +28997,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -29104,7 +29016,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -29123,7 +29035,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -29142,7 +29054,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -29276,6 +29188,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -29370,7 +29286,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 5184 + i32.const 3216 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -29391,7 +29307,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -29409,7 +29325,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -29428,7 +29344,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -29447,7 +29363,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -29466,7 +29382,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -29600,6 +29516,10 @@ local.get $out local.get $data i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $data i32.const 0 @@ -29694,7 +29614,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 5216 + i32.const 3248 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -29715,7 +29635,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -29733,7 +29653,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -29752,7 +29672,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -29771,7 +29691,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -29790,7 +29710,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -29946,7 +29866,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5248 + i32.const 3280 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -29960,7 +29880,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -29972,7 +29892,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5280 + i32.const 3312 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -29985,7 +29905,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -30141,7 +30061,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5312 + i32.const 3344 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30155,7 +30075,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -30167,7 +30087,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5344 + i32.const 3376 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30180,7 +30100,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -30336,7 +30256,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5376 + i32.const 3408 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30350,7 +30270,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -30362,7 +30282,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5408 + i32.const 3440 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30375,7 +30295,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -30531,7 +30451,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5440 + i32.const 3472 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30545,7 +30465,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -30557,7 +30477,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5472 + i32.const 3504 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30570,7 +30490,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -30726,7 +30646,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5504 + i32.const 3536 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30740,7 +30660,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -30752,7 +30672,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5536 + i32.const 3568 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30765,7 +30685,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -30921,7 +30841,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5568 + i32.const 3600 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30935,7 +30855,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -30947,7 +30867,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5600 + i32.const 3632 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -30960,7 +30880,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -31116,7 +31036,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5632 + i32.const 3664 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31130,7 +31050,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -31142,7 +31062,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5664 + i32.const 3696 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31155,7 +31075,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -31311,7 +31231,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5696 + i32.const 3728 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31325,7 +31245,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -31337,7 +31257,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5728 + i32.const 3760 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31350,7 +31270,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -31506,7 +31426,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5760 + i32.const 3792 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31520,7 +31440,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -31532,7 +31452,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5792 + i32.const 3824 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31545,7 +31465,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -31701,7 +31621,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5824 + i32.const 3856 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31715,7 +31635,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -31727,7 +31647,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5856 + i32.const 3888 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31740,7 +31660,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -31896,7 +31816,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5888 + i32.const 3920 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31910,7 +31830,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 438 i32.const 3 call $~lib/builtins/abort @@ -31922,7 +31842,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5920 + i32.const 3952 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -31935,7 +31855,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 440 i32.const 3 call $~lib/builtins/abort @@ -32091,7 +32011,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5952 + i32.const 3984 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32105,7 +32025,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -32117,7 +32037,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 5984 + i32.const 4016 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32131,7 +32051,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -32287,7 +32207,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6016 + i32.const 4048 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32301,7 +32221,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -32313,7 +32233,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6048 + i32.const 4080 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32327,7 +32247,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -32483,7 +32403,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6080 + i32.const 4112 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32497,7 +32417,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -32509,7 +32429,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6112 + i32.const 4144 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32523,7 +32443,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -32679,7 +32599,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6144 + i32.const 4176 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32693,7 +32613,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -32705,7 +32625,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6176 + i32.const 4208 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32719,7 +32639,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -32875,7 +32795,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6208 + i32.const 4240 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32889,7 +32809,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -32901,7 +32821,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6240 + i32.const 4272 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -32915,7 +32835,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -33071,7 +32991,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6272 + i32.const 4304 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33085,7 +33005,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -33097,7 +33017,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6304 + i32.const 4336 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33111,7 +33031,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -33267,7 +33187,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6336 + i32.const 4368 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33281,7 +33201,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -33293,7 +33213,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6368 + i32.const 4400 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33307,7 +33227,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -33463,7 +33383,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6400 + i32.const 4432 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33477,7 +33397,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -33489,7 +33409,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6432 + i32.const 4464 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33503,7 +33423,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -33659,7 +33579,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6464 + i32.const 4496 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33673,7 +33593,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -33685,7 +33605,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6496 + i32.const 4528 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33699,7 +33619,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -33855,7 +33775,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6528 + i32.const 4560 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33869,7 +33789,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -33881,7 +33801,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6560 + i32.const 4592 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -33895,7 +33815,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -34051,7 +33971,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6592 + i32.const 4624 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34065,7 +33985,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 461 i32.const 3 call $~lib/builtins/abort @@ -34077,7 +33997,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6624 + i32.const 4656 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34091,7 +34011,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 463 i32.const 3 call $~lib/builtins/abort @@ -34246,7 +34166,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6656 + i32.const 4688 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34260,7 +34180,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -34272,7 +34192,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6688 + i32.const 4720 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34286,7 +34206,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -34441,7 +34361,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6720 + i32.const 4752 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34455,7 +34375,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -34467,7 +34387,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6752 + i32.const 4784 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34481,7 +34401,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -34636,7 +34556,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6784 + i32.const 4816 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34650,7 +34570,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -34662,7 +34582,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6816 + i32.const 4848 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34676,7 +34596,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -34831,7 +34751,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6848 + i32.const 4880 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34845,7 +34765,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -34857,7 +34777,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6880 + i32.const 4912 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -34871,7 +34791,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -35026,7 +34946,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6912 + i32.const 4944 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35040,7 +34960,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -35052,7 +34972,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6944 + i32.const 4976 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35066,7 +34986,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -35221,7 +35141,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 6976 + i32.const 5008 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35235,7 +35155,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -35247,7 +35167,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7008 + i32.const 5040 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35261,7 +35181,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -35416,7 +35336,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7040 + i32.const 5072 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35430,7 +35350,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -35442,7 +35362,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7072 + i32.const 5104 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35456,7 +35376,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -35611,7 +35531,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7104 + i32.const 5136 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35625,7 +35545,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -35637,7 +35557,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7136 + i32.const 5168 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35651,7 +35571,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -35806,7 +35726,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7168 + i32.const 5200 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35820,7 +35740,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -35832,7 +35752,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7200 + i32.const 5232 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -35846,7 +35766,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -36001,7 +35921,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7232 + i32.const 5264 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36015,7 +35935,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -36027,7 +35947,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7264 + i32.const 5296 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36041,7 +35961,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -36196,7 +36116,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7296 + i32.const 5328 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36210,7 +36130,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 484 i32.const 3 call $~lib/builtins/abort @@ -36222,7 +36142,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7328 + i32.const 5360 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36236,7 +36156,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 486 i32.const 3 call $~lib/builtins/abort @@ -36395,7 +36315,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7360 + i32.const 5392 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36409,7 +36329,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -36421,7 +36341,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7392 + i32.const 5424 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36434,7 +36354,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -36593,7 +36513,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7424 + i32.const 5456 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36607,7 +36527,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -36619,7 +36539,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7456 + i32.const 5488 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36632,7 +36552,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -36791,7 +36711,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7488 + i32.const 5520 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36805,7 +36725,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -36817,7 +36737,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7520 + i32.const 5552 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -36830,7 +36750,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -36989,7 +36909,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7552 + i32.const 5584 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37003,7 +36923,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -37015,7 +36935,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7584 + i32.const 5616 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37028,7 +36948,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -37187,7 +37107,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7616 + i32.const 5648 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37201,7 +37121,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -37213,7 +37133,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7648 + i32.const 5680 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37226,7 +37146,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -37385,7 +37305,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7680 + i32.const 5712 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37399,7 +37319,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -37411,7 +37331,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7712 + i32.const 5744 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37424,7 +37344,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -37583,7 +37503,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7744 + i32.const 5776 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37597,7 +37517,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -37609,7 +37529,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7776 + i32.const 5808 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37622,7 +37542,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -37781,7 +37701,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7808 + i32.const 5840 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37795,7 +37715,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -37807,7 +37727,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7840 + i32.const 5872 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37820,7 +37740,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -37979,7 +37899,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7872 + i32.const 5904 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -37993,7 +37913,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -38005,7 +37925,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7904 + i32.const 5936 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -38018,7 +37938,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -38177,7 +38097,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7936 + i32.const 5968 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -38191,7 +38111,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -38203,7 +38123,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 7968 + i32.const 6000 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -38216,7 +38136,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -38375,7 +38295,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 8000 + i32.const 6032 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -38389,7 +38309,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 507 i32.const 3 call $~lib/builtins/abort @@ -38401,7 +38321,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 8032 + i32.const 6064 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -38414,7 +38334,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 509 i32.const 3 call $~lib/builtins/abort @@ -38453,7 +38373,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -38465,7 +38385,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -38477,7 +38397,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -38652,7 +38572,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8144 + i32.const 6176 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -38665,7 +38585,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -38706,7 +38626,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -38718,7 +38638,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -38730,7 +38650,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -38908,7 +38828,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8176 + i32.const 6208 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -38921,7 +38841,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -38962,7 +38882,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -38974,7 +38894,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -38986,7 +38906,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -39164,7 +39084,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8208 + i32.const 6240 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -39177,7 +39097,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -39216,7 +39136,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -39228,7 +39148,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -39240,7 +39160,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -39415,7 +39335,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8240 + i32.const 6272 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -39428,7 +39348,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -39469,7 +39389,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -39481,7 +39401,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -39493,7 +39413,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -39671,7 +39591,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8272 + i32.const 6304 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -39684,7 +39604,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -39721,7 +39641,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -39733,7 +39653,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -39745,7 +39665,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -39917,7 +39837,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8304 + i32.const 6336 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -39930,7 +39850,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -39967,7 +39887,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -39979,7 +39899,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -39991,7 +39911,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -40163,7 +40083,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8336 + i32.const 6368 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -40176,7 +40096,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -40214,7 +40134,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -40226,7 +40146,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -40238,7 +40158,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -40413,7 +40333,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8368 + i32.const 6400 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -40426,7 +40346,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -40464,7 +40384,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -40476,7 +40396,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -40488,7 +40408,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -40663,7 +40583,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8400 + i32.const 6432 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -40676,7 +40596,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -40714,7 +40634,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -40726,7 +40646,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -40738,7 +40658,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -40819,7 +40739,7 @@ global.set $~argumentsLength local.get $fn|3 i32.load - call_indirect (type $37) + call_indirect (type $38) local.get $i i32.const 1 i32.add @@ -40913,7 +40833,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8432 + i32.const 6464 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -40926,7 +40846,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -40964,7 +40884,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -40976,7 +40896,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -40988,7 +40908,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -41069,7 +40989,7 @@ global.set $~argumentsLength local.get $fn|3 i32.load - call_indirect (type $38) + call_indirect (type $39) local.get $i i32.const 1 i32.add @@ -41163,7 +41083,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8464 + i32.const 6496 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -41176,7 +41096,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 541 i32.const 3 call $~lib/builtins/abort @@ -41351,7 +41271,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -41395,7 +41315,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -41414,7 +41334,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -41433,7 +41353,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -41452,7 +41372,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -41619,6 +41539,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -41787,7 +41711,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -41831,7 +41755,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -41850,7 +41774,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -41869,7 +41793,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -41888,7 +41812,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -42055,6 +41979,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -42223,7 +42151,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -42267,7 +42195,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -42286,7 +42214,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -42305,7 +42233,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -42324,7 +42252,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -42491,6 +42419,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -42656,7 +42588,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -42700,7 +42632,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -42719,7 +42651,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -42738,7 +42670,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -42757,7 +42689,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -42924,6 +42856,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -43092,7 +43028,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -43136,7 +43072,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -43155,7 +43091,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -43174,7 +43110,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -43193,7 +43129,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -43365,7 +43301,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -43409,7 +43345,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -43428,7 +43364,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -43447,7 +43383,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -43466,7 +43402,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -43633,6 +43569,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -43795,7 +43735,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -43839,7 +43779,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -43858,7 +43798,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -43877,7 +43817,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -43896,7 +43836,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -44063,6 +44003,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -44228,7 +44172,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -44272,7 +44216,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -44291,7 +44235,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -44310,7 +44254,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -44329,7 +44273,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -44496,6 +44440,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -44661,7 +44609,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -44705,7 +44653,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -44724,7 +44672,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -44743,7 +44691,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -44762,7 +44710,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -44929,6 +44877,10 @@ local.get $out local.get $buf i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buf i32.const 0 @@ -45094,7 +45046,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -45138,7 +45090,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -45157,7 +45109,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -45176,7 +45128,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -45195,7 +45147,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -45370,7 +45322,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -45414,7 +45366,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -45433,7 +45385,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -45452,7 +45404,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -45471,7 +45423,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -45822,7 +45774,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -45842,7 +45794,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -45862,7 +45814,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -45882,7 +45834,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -45902,7 +45854,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -45922,7 +45874,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -45942,7 +45894,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -45962,7 +45914,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -45982,7 +45934,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -46004,7 +45956,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -46026,7 +45978,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -46048,7 +46000,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -46070,7 +46022,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -46090,7 +46042,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -46110,7 +46062,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -46130,7 +46082,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -46150,7 +46102,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -46170,7 +46122,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -46190,7 +46142,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -46222,7 +46174,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -46244,7 +46196,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -46266,7 +46218,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -46286,7 +46238,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -46306,7 +46258,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -46326,7 +46278,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -46348,7 +46300,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -46368,7 +46320,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -46722,7 +46674,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -46742,7 +46694,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -46762,7 +46714,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -46782,7 +46734,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -46802,7 +46754,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -46822,7 +46774,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -46842,7 +46794,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -46862,7 +46814,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -46882,7 +46834,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -46904,7 +46856,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -46926,7 +46878,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -46948,7 +46900,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -46970,7 +46922,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -46990,7 +46942,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -47010,7 +46962,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -47030,7 +46982,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -47050,7 +47002,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -47070,7 +47022,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -47090,7 +47042,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -47122,7 +47074,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -47144,7 +47096,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -47166,7 +47118,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -47186,7 +47138,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -47206,7 +47158,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -47226,7 +47178,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -47248,7 +47200,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -47268,7 +47220,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -47622,7 +47574,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -47642,7 +47594,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -47662,7 +47614,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -47682,7 +47634,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -47702,7 +47654,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -47722,7 +47674,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -47742,7 +47694,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -47762,7 +47714,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -47782,7 +47734,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -47804,7 +47756,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -47826,7 +47778,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -47848,7 +47800,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -47870,7 +47822,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -47890,7 +47842,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -47910,7 +47862,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -47930,7 +47882,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -47950,7 +47902,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -47970,7 +47922,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -47990,7 +47942,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -48022,7 +47974,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -48044,7 +47996,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -48066,7 +48018,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -48086,7 +48038,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -48106,7 +48058,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -48126,7 +48078,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -48148,7 +48100,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -48168,7 +48120,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -48519,7 +48471,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -48539,7 +48491,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -48559,7 +48511,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -48579,7 +48531,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -48599,7 +48551,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -48619,7 +48571,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -48639,7 +48591,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -48659,7 +48611,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -48679,7 +48631,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -48701,7 +48653,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -48723,7 +48675,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -48745,7 +48697,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -48767,7 +48719,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -48787,7 +48739,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -48807,7 +48759,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -48827,7 +48779,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -48847,7 +48799,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -48867,7 +48819,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -48887,7 +48839,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -48919,7 +48871,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -48941,7 +48893,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -48963,7 +48915,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -48983,7 +48935,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -49003,7 +48955,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -49023,7 +48975,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -49045,7 +48997,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -49065,7 +49017,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -49419,7 +49371,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -49439,7 +49391,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -49459,7 +49411,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -49479,7 +49431,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -49499,7 +49451,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -49519,7 +49471,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -49539,7 +49491,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -49559,7 +49511,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -49579,7 +49531,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -49601,7 +49553,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -49623,7 +49575,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -49645,7 +49597,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -49667,7 +49619,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -49687,7 +49639,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -49707,7 +49659,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -49727,7 +49679,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -49747,7 +49699,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -49767,7 +49719,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -49787,7 +49739,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -49819,7 +49771,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -49841,7 +49793,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -49863,7 +49815,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -49883,7 +49835,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -49903,7 +49855,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -49923,7 +49875,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -49945,7 +49897,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -49965,7 +49917,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -50313,7 +50265,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -50333,7 +50285,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -50353,7 +50305,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -50373,7 +50325,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -50393,7 +50345,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -50413,7 +50365,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -50433,7 +50385,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -50453,7 +50405,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -50473,7 +50425,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -50495,7 +50447,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -50517,7 +50469,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -50539,7 +50491,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -50561,7 +50513,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -50581,7 +50533,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -50601,7 +50553,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -50621,7 +50573,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -50641,7 +50593,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -50661,7 +50613,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -50681,7 +50633,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -50713,7 +50665,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -50735,7 +50687,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -50757,7 +50709,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -50777,7 +50729,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -50797,7 +50749,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -50817,7 +50769,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -50839,7 +50791,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -50859,7 +50811,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -51207,7 +51159,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -51227,7 +51179,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -51247,7 +51199,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -51267,7 +51219,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -51287,7 +51239,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -51307,7 +51259,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -51327,7 +51279,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -51347,7 +51299,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -51367,7 +51319,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -51389,7 +51341,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -51411,7 +51363,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -51433,7 +51385,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -51455,7 +51407,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -51475,7 +51427,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -51495,7 +51447,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -51515,7 +51467,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -51535,7 +51487,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -51555,7 +51507,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -51575,7 +51527,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -51607,7 +51559,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -51629,7 +51581,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -51651,7 +51603,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -51671,7 +51623,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -51691,7 +51643,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -51711,7 +51663,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -51733,7 +51685,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -51753,7 +51705,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -52102,7 +52054,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -52122,7 +52074,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -52142,7 +52094,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -52162,7 +52114,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -52182,7 +52134,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -52202,7 +52154,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -52222,7 +52174,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -52242,7 +52194,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -52262,7 +52214,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -52284,7 +52236,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -52306,7 +52258,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -52328,7 +52280,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -52350,7 +52302,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -52370,7 +52322,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -52390,7 +52342,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -52410,7 +52362,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -52430,7 +52382,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -52450,7 +52402,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -52470,7 +52422,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -52502,7 +52454,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -52524,7 +52476,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -52546,7 +52498,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -52566,7 +52518,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -52586,7 +52538,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -52606,7 +52558,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -52628,7 +52580,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -52648,7 +52600,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -52997,7 +52949,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -53017,7 +52969,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -53037,7 +52989,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -53057,7 +53009,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -53077,7 +53029,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -53097,7 +53049,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -53117,7 +53069,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -53137,7 +53089,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -53157,7 +53109,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -53179,7 +53131,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -53201,7 +53153,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -53223,7 +53175,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -53245,7 +53197,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -53265,7 +53217,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -53285,7 +53237,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -53305,7 +53257,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -53325,7 +53277,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -53345,7 +53297,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -53365,7 +53317,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -53397,7 +53349,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -53419,7 +53371,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -53441,7 +53393,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -53461,7 +53413,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -53481,7 +53433,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -53501,7 +53453,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -53523,7 +53475,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -53543,7 +53495,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -53892,7 +53844,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -53912,7 +53864,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -53932,7 +53884,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -53952,7 +53904,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -53972,7 +53924,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -53992,7 +53944,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -54012,7 +53964,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -54032,7 +53984,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -54052,7 +54004,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -54074,7 +54026,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -54096,7 +54048,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -54118,7 +54070,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -54140,7 +54092,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -54160,7 +54112,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -54180,7 +54132,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -54200,7 +54152,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -54220,7 +54172,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -54240,7 +54192,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -54260,7 +54212,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -54292,7 +54244,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -54314,7 +54266,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -54336,7 +54288,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -54356,7 +54308,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -54376,7 +54328,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -54396,7 +54348,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -54418,7 +54370,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -54438,7 +54390,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -54787,7 +54739,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -54807,7 +54759,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -54827,7 +54779,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -54847,7 +54799,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -54867,7 +54819,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -54887,7 +54839,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -54907,7 +54859,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -54927,7 +54879,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -54947,7 +54899,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -54969,7 +54921,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -54991,7 +54943,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -55013,7 +54965,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -55035,7 +54987,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -55055,7 +55007,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -55075,7 +55027,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -55095,7 +55047,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -55115,7 +55067,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -55135,7 +55087,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -55155,7 +55107,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -55187,7 +55139,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -55209,7 +55161,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -55231,7 +55183,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -55251,7 +55203,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -55271,7 +55223,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -55291,7 +55243,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -55313,7 +55265,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -55333,7 +55285,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -55694,7 +55646,7 @@ local.get $size i32.eqz if - i32.const 96 + i32.const 6752 local.set $22 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -55771,7 +55723,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -56075,7 +56027,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Int8Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -56158,19 +56110,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Int8Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 675 i32.const 5 call $~lib/builtins/abort @@ -56188,12 +56140,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 676 i32.const 5 call $~lib/builtins/abort @@ -56230,7 +56182,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -56438,7 +56390,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint8Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -56521,19 +56473,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint8Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 675 i32.const 5 call $~lib/builtins/abort @@ -56551,12 +56503,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 676 i32.const 5 call $~lib/builtins/abort @@ -56622,7 +56574,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint8ClampedArray#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -56705,19 +56657,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint8ClampedArray#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 675 i32.const 5 call $~lib/builtins/abort @@ -56735,12 +56687,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 676 i32.const 5 call $~lib/builtins/abort @@ -56777,7 +56729,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -56985,7 +56937,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Int16Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -57068,19 +57020,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Int16Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 675 i32.const 5 call $~lib/builtins/abort @@ -57098,12 +57050,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 676 i32.const 5 call $~lib/builtins/abort @@ -57140,7 +57092,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -57348,7 +57300,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint16Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -57431,19 +57383,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint16Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 675 i32.const 5 call $~lib/builtins/abort @@ -57461,12 +57413,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 676 i32.const 5 call $~lib/builtins/abort @@ -57503,7 +57455,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -57711,7 +57663,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Int32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -57794,19 +57746,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Int32Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 675 i32.const 5 call $~lib/builtins/abort @@ -57824,12 +57776,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 676 i32.const 5 call $~lib/builtins/abort @@ -57866,7 +57818,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -58074,7 +58026,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -58157,19 +58109,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint32Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 675 i32.const 5 call $~lib/builtins/abort @@ -58187,12 +58139,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 676 i32.const 5 call $~lib/builtins/abort @@ -58229,7 +58181,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -58439,7 +58391,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Int64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -58522,19 +58474,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Int64Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 675 i32.const 5 call $~lib/builtins/abort @@ -58552,12 +58504,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 676 i32.const 5 call $~lib/builtins/abort @@ -58594,7 +58546,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -58802,7 +58754,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -58885,19 +58837,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Uint64Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 675 i32.const 5 call $~lib/builtins/abort @@ -58915,12 +58867,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 8752 + i32.const 8592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 676 i32.const 5 call $~lib/builtins/abort @@ -58956,7 +58908,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -59155,7 +59107,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Float32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -59238,19 +59190,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Float32Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 9936 + i32.const 9776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 672 i32.const 5 call $~lib/builtins/abort @@ -59268,12 +59220,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9936 + i32.const 9776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 673 i32.const 5 call $~lib/builtins/abort @@ -59309,7 +59261,7 @@ i32.const 0 i32.lt_s if - i32.const 96 + i32.const 6752 local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -59508,7 +59460,7 @@ local.get $1 i32.store local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Float64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -59591,19 +59543,19 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 8720 + i32.const 8560 call $~lib/typedarray/Float64Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 9936 + i32.const 9776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 672 i32.const 5 call $~lib/builtins/abort @@ -59621,12 +59573,12 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9936 + i32.const 9776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 673 i32.const 5 call $~lib/builtins/abort @@ -59681,9 +59633,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -59700,9 +59652,9 @@ i32.const 0 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -59712,9 +59664,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -59730,9 +59682,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -59747,6 +59699,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -59970,9 +59926,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -59989,9 +59945,9 @@ i32.const 0 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -60001,9 +59957,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -60019,9 +59975,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -60036,6 +59992,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -60250,7 +60210,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -60419,7 +60379,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -60481,9 +60441,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -60500,9 +60460,9 @@ i32.const 0 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -60512,9 +60472,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -60530,9 +60490,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -60547,6 +60507,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -60766,7 +60730,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -60828,9 +60792,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -60847,9 +60811,9 @@ i32.const 1 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -60859,9 +60823,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -60877,9 +60841,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -60894,6 +60858,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -61114,7 +61082,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -61176,9 +61144,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -61195,9 +61163,9 @@ i32.const 1 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -61207,9 +61175,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -61225,9 +61193,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -61242,6 +61210,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -61465,7 +61437,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -61527,9 +61499,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -61546,9 +61518,9 @@ i32.const 3 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -61558,9 +61530,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -61576,9 +61548,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -61593,6 +61565,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -61816,7 +61792,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -61878,9 +61854,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -61897,9 +61873,9 @@ i32.const 3 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -61909,9 +61885,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -61927,9 +61903,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -61944,6 +61920,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -62169,7 +62149,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -62231,9 +62211,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -62250,9 +62230,9 @@ i32.const 7 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -62262,9 +62242,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -62280,9 +62260,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -62297,6 +62277,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -62525,7 +62509,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -62587,9 +62571,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -62606,9 +62590,9 @@ i32.const 7 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -62618,9 +62602,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -62636,9 +62620,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -62653,6 +62637,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -62883,7 +62871,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -62945,9 +62933,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -62964,9 +62952,9 @@ i32.const 3 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -62976,9 +62964,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -62994,9 +62982,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -63011,6 +62999,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -63243,7 +63235,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -63305,9 +63297,9 @@ i32.and i32.or if - i32.const 320 - i32.const 2576 - i32.const 1860 + i32.const 336 + i32.const 608 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -63324,9 +63316,9 @@ i32.const 7 i32.and if - i32.const 2400 - i32.const 2576 - i32.const 1865 + i32.const 32 + i32.const 608 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -63336,9 +63328,9 @@ i32.sub local.set $byteLength else - i32.const 2400 - i32.const 2576 - i32.const 1869 + i32.const 32 + i32.const 608 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -63354,9 +63346,9 @@ local.get $bufferByteLength i32.gt_s if - i32.const 2400 - i32.const 2576 - i32.const 1874 + i32.const 32 + i32.const 608 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -63371,6 +63363,10 @@ local.get $out local.get $buffer|3 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $out local.get $buffer|3 i32.const 0 @@ -63605,7 +63601,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -63684,9 +63680,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -63846,7 +63842,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -63881,7 +63877,7 @@ local.get $valb i32.ne if - i32.const 10480 + i32.const 10320 i32.const 3 local.get $i f64.convert_i32_s @@ -63896,7 +63892,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -64001,9 +63997,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -64143,9 +64139,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -64300,9 +64296,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -64439,9 +64435,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -64541,9 +64537,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -64669,9 +64665,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -64867,7 +64863,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 10448 + i32.const 10288 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -64898,7 +64894,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 10528 + i32.const 10368 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -64929,7 +64925,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 10560 + i32.const 10400 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -64962,7 +64958,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 10592 + i32.const 10432 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -65023,7 +65019,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 10624 + i32.const 10464 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -65097,9 +65093,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -65284,7 +65280,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -65319,7 +65315,7 @@ local.get $valb i32.ne if - i32.const 10688 + i32.const 10528 i32.const 3 local.get $i f64.convert_i32_s @@ -65334,7 +65330,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -65414,9 +65410,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -65556,9 +65552,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -65688,9 +65684,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -65827,9 +65823,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -65929,9 +65925,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -66057,9 +66053,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -66255,7 +66251,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 10656 + i32.const 10496 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -66286,7 +66282,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 10736 + i32.const 10576 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -66317,7 +66313,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 10768 + i32.const 10608 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -66350,7 +66346,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 10800 + i32.const 10640 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -66411,7 +66407,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 10832 + i32.const 10672 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -66485,9 +66481,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -66636,7 +66632,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -66671,7 +66667,7 @@ local.get $valb i32.ne if - i32.const 10896 + i32.const 10736 i32.const 3 local.get $i f64.convert_i32_s @@ -66686,7 +66682,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -66766,9 +66762,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -66911,9 +66907,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -67065,9 +67061,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -67207,9 +67203,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -67309,9 +67305,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -67459,9 +67455,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -67704,7 +67700,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 10864 + i32.const 10704 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -67735,7 +67731,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 10960 + i32.const 10800 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -67766,7 +67762,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 10992 + i32.const 10832 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -67799,7 +67795,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 11024 + i32.const 10864 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -67860,7 +67856,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 11056 + i32.const 10896 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -67934,9 +67930,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -68123,7 +68119,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -68158,7 +68154,7 @@ local.get $valb i32.ne if - i32.const 11136 + i32.const 10976 i32.const 3 local.get $i f64.convert_i32_s @@ -68173,7 +68169,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -68253,9 +68249,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -68395,9 +68391,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -68527,9 +68523,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -68669,9 +68665,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -68797,9 +68793,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -68899,9 +68895,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -69126,7 +69122,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 11088 + i32.const 10928 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -69157,7 +69153,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 11184 + i32.const 11024 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -69188,7 +69184,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 11232 + i32.const 11072 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -69221,7 +69217,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 11280 + i32.const 11120 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -69282,7 +69278,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 11328 + i32.const 11168 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -69356,9 +69352,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -69545,7 +69541,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -69580,7 +69576,7 @@ local.get $valb i32.ne if - i32.const 11424 + i32.const 11264 i32.const 3 local.get $i f64.convert_i32_s @@ -69595,7 +69591,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -69675,9 +69671,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -69817,9 +69813,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -69949,9 +69945,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -70091,9 +70087,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -70219,9 +70215,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -70321,9 +70317,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -70548,7 +70544,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 11376 + i32.const 11216 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -70579,7 +70575,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 11472 + i32.const 11312 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -70610,7 +70606,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 11520 + i32.const 11360 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -70643,7 +70639,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 11568 + i32.const 11408 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -70704,7 +70700,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 11616 + i32.const 11456 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -70775,9 +70771,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -70910,7 +70906,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -70945,7 +70941,7 @@ local.get $valb i32.ne if - i32.const 11728 + i32.const 11568 i32.const 3 local.get $i f64.convert_i32_s @@ -70960,7 +70956,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -71040,9 +71036,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -71182,9 +71178,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -71314,9 +71310,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -71456,9 +71452,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -71587,9 +71583,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -71718,9 +71714,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -71945,7 +71941,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 11664 + i32.const 11504 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -71976,7 +71972,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 11776 + i32.const 11616 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -72007,7 +72003,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 11840 + i32.const 11680 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -72040,7 +72036,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 11904 + i32.const 11744 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -72101,7 +72097,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 11968 + i32.const 11808 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -72172,9 +72168,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -72332,7 +72328,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -72367,7 +72363,7 @@ local.get $valb i32.ne if - i32.const 12096 + i32.const 11936 i32.const 3 local.get $i f64.convert_i32_s @@ -72382,7 +72378,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -72462,9 +72458,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -72604,9 +72600,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -72736,9 +72732,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -72878,9 +72874,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -73009,9 +73005,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -73140,9 +73136,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -73367,7 +73363,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 12032 + i32.const 11872 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -73398,7 +73394,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 12144 + i32.const 11984 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -73429,7 +73425,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 12208 + i32.const 12048 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -73462,7 +73458,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 12272 + i32.const 12112 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -73523,7 +73519,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 12336 + i32.const 12176 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -73597,9 +73593,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -73789,7 +73785,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -73824,7 +73820,7 @@ local.get $valb i64.ne if - i32.const 12512 + i32.const 12352 i32.const 3 local.get $i f64.convert_i32_s @@ -73839,7 +73835,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -73919,9 +73915,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -74058,9 +74054,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -74160,9 +74156,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -74302,9 +74298,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -74434,9 +74430,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -74566,9 +74562,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -74794,7 +74790,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 12400 + i32.const 12240 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -74825,7 +74821,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 12560 + i32.const 12400 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -74856,7 +74852,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 12672 + i32.const 12512 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -74889,7 +74885,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 12784 + i32.const 12624 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -74950,7 +74946,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 12896 + i32.const 12736 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -75024,9 +75020,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -75216,7 +75212,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -75251,7 +75247,7 @@ local.get $valb i64.ne if - i32.const 13120 + i32.const 12960 i32.const 3 local.get $i f64.convert_i32_s @@ -75266,7 +75262,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -75346,9 +75342,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -75485,9 +75481,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -75587,9 +75583,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -75729,9 +75725,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -75861,9 +75857,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -75993,9 +75989,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -76221,7 +76217,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 13008 + i32.const 12848 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -76252,7 +76248,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 13168 + i32.const 13008 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -76283,7 +76279,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 13280 + i32.const 13120 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -76316,7 +76312,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 13392 + i32.const 13232 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -76377,7 +76373,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 13504 + i32.const 13344 call $~lib/rt/__newArray local.set $9 global.get $~lib/memory/__stack_pointer @@ -76451,9 +76447,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -76618,7 +76614,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -76653,7 +76649,7 @@ local.get $valb f32.ne if - i32.const 13680 + i32.const 13520 i32.const 3 local.get $i f64.convert_i32_s @@ -76668,7 +76664,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -76745,9 +76741,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -76847,9 +76843,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -76979,9 +76975,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -77111,9 +77107,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -77243,9 +77239,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -77470,7 +77466,7 @@ i32.const 10 i32.const 2 i32.const 62 - i32.const 13616 + i32.const 13456 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -77501,7 +77497,7 @@ i32.const 10 i32.const 2 i32.const 62 - i32.const 13728 + i32.const 13568 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -77532,7 +77528,7 @@ i32.const 10 i32.const 2 i32.const 62 - i32.const 13792 + i32.const 13632 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -77595,7 +77591,7 @@ i32.const 10 i32.const 2 i32.const 62 - i32.const 13856 + i32.const 13696 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -77669,9 +77665,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -77836,7 +77832,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -77871,7 +77867,7 @@ local.get $valb f64.ne if - i32.const 14032 + i32.const 13872 i32.const 3 local.get $i f64.convert_i32_s @@ -77884,7 +77880,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -77964,9 +77960,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -78097,9 +78093,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -78229,9 +78225,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -78361,9 +78357,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -78493,9 +78489,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -78720,7 +78716,7 @@ i32.const 10 i32.const 3 i32.const 63 - i32.const 13920 + i32.const 13760 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -78751,7 +78747,7 @@ i32.const 10 i32.const 3 i32.const 63 - i32.const 14080 + i32.const 13920 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -78782,7 +78778,7 @@ i32.const 10 i32.const 3 i32.const 63 - i32.const 14192 + i32.const 14032 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -78845,7 +78841,7 @@ i32.const 10 i32.const 3 i32.const 63 - i32.const 14304 + i32.const 14144 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -78919,9 +78915,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -79064,9 +79060,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -79216,9 +79212,9 @@ i32.gt_s end if - i32.const 320 - i32.const 2576 - i32.const 1902 + i32.const 336 + i32.const 608 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -79839,7 +79835,7 @@ i32.const 4 i32.le_u drop - i32.const 14480 + i32.const 14320 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -79939,7 +79935,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -79958,7 +79954,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -79977,7 +79973,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -79989,7 +79985,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 14512 + i32.const 14352 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -80010,7 +80006,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -80029,7 +80025,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -80048,7 +80044,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -80600,7 +80596,7 @@ drop i32.const 0 drop - i32.const 14544 + i32.const 14384 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -80700,7 +80696,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -80719,7 +80715,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -80738,7 +80734,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -80750,7 +80746,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 14576 + i32.const 14416 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -80771,7 +80767,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -80790,7 +80786,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -80809,7 +80805,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -80887,7 +80883,7 @@ drop i32.const 0 drop - i32.const 14608 + i32.const 14448 br $~lib/util/sort/COMPARATOR|inlined.1 end local.tee $comparator @@ -80987,7 +80983,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -81006,7 +81002,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -81025,7 +81021,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -81037,7 +81033,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 14640 + i32.const 14480 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -81058,7 +81054,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -81077,7 +81073,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -81096,7 +81092,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -81650,7 +81646,7 @@ i32.const 4 i32.le_u drop - i32.const 14672 + i32.const 14512 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -81750,7 +81746,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -81769,7 +81765,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -81788,7 +81784,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -81800,7 +81796,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 14704 + i32.const 14544 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -81821,7 +81817,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -81840,7 +81836,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -81859,7 +81855,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -82411,7 +82407,7 @@ drop i32.const 0 drop - i32.const 14736 + i32.const 14576 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -82511,7 +82507,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -82530,7 +82526,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -82549,7 +82545,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -82561,7 +82557,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 14768 + i32.const 14608 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -82582,7 +82578,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -82601,7 +82597,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -82620,7 +82616,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -83174,7 +83170,7 @@ i32.const 4 i32.le_u drop - i32.const 14800 + i32.const 14640 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -83274,7 +83270,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -83293,7 +83289,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -83312,7 +83308,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -83324,7 +83320,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 14832 + i32.const 14672 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -83345,7 +83341,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -83364,7 +83360,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -83383,7 +83379,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -83935,7 +83931,7 @@ drop i32.const 0 drop - i32.const 14864 + i32.const 14704 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -84035,7 +84031,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -84054,7 +84050,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -84073,7 +84069,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -84085,7 +84081,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 14896 + i32.const 14736 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -84106,7 +84102,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -84125,7 +84121,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -84144,7 +84140,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -84698,7 +84694,7 @@ i32.const 4 i32.le_u drop - i32.const 14928 + i32.const 14768 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -84798,7 +84794,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -84817,7 +84813,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -84836,7 +84832,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -84848,7 +84844,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 14960 + i32.const 14800 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -84869,7 +84865,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -84888,7 +84884,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -84907,7 +84903,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -85459,7 +85455,7 @@ drop i32.const 0 drop - i32.const 14992 + i32.const 14832 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -85559,7 +85555,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -85578,7 +85574,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -85597,7 +85593,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -85609,7 +85605,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 15024 + i32.const 14864 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -85630,7 +85626,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -85649,7 +85645,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -85668,7 +85664,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -86224,7 +86220,7 @@ i32.const 4 i32.eq drop - i32.const 15056 + i32.const 14896 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -86324,7 +86320,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -86343,7 +86339,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -86362,7 +86358,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -86374,7 +86370,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 15088 + i32.const 14928 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -86395,7 +86391,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -86414,7 +86410,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -86433,7 +86429,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -86518,7 +86514,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -86537,7 +86533,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -86556,7 +86552,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -86568,7 +86564,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 15120 + i32.const 14960 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -86589,7 +86585,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -86608,7 +86604,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -86627,7 +86623,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -86765,13 +86761,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 240 + i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 272 + i32.const 288 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 416 + i32.const 432 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -86823,7 +86819,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 95 i32.const 3 call $~lib/builtins/abort @@ -86841,7 +86837,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 96 i32.const 3 call $~lib/builtins/abort @@ -86861,7 +86857,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -86880,7 +86876,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -86899,7 +86895,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 99 i32.const 3 call $~lib/builtins/abort @@ -86918,7 +86914,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 100 i32.const 3 call $~lib/builtins/abort @@ -86948,7 +86944,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 103 i32.const 3 call $~lib/builtins/abort @@ -86968,7 +86964,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -86988,7 +86984,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -87007,7 +87003,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 106 i32.const 3 call $~lib/builtins/abort @@ -87115,7 +87111,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 122 i32.const 3 call $~lib/builtins/abort @@ -87135,7 +87131,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 123 i32.const 3 call $~lib/builtins/abort @@ -87155,7 +87151,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 124 i32.const 3 call $~lib/builtins/abort @@ -87227,7 +87223,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -87279,7 +87275,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -87298,7 +87294,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 136 i32.const 3 call $~lib/builtins/abort @@ -87317,7 +87313,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 137 i32.const 3 call $~lib/builtins/abort @@ -87394,7 +87390,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 2672 + i32.const 704 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87405,7 +87401,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 149 i32.const 3 call $~lib/builtins/abort @@ -87433,7 +87429,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 2752 + i32.const 784 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87444,7 +87440,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 152 i32.const 3 call $~lib/builtins/abort @@ -87470,7 +87466,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 2784 + i32.const 816 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87481,7 +87477,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -87509,7 +87505,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 2816 + i32.const 848 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87520,7 +87516,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 158 i32.const 3 call $~lib/builtins/abort @@ -87546,7 +87542,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 2848 + i32.const 880 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87557,7 +87553,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 161 i32.const 3 call $~lib/builtins/abort @@ -87600,7 +87596,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 165 i32.const 3 call $~lib/builtins/abort @@ -87618,7 +87614,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 166 i32.const 3 call $~lib/builtins/abort @@ -87636,7 +87632,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 167 i32.const 3 call $~lib/builtins/abort @@ -87651,7 +87647,7 @@ i32.const 3 i32.const 0 i32.const 16 - i32.const 2880 + i32.const 912 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87662,7 +87658,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 168 i32.const 3 call $~lib/builtins/abort @@ -87677,7 +87673,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 2912 + i32.const 944 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87688,7 +87684,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 169 i32.const 3 call $~lib/builtins/abort @@ -87765,7 +87761,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 2944 + i32.const 976 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87776,7 +87772,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 181 i32.const 3 call $~lib/builtins/abort @@ -87804,7 +87800,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 2992 + i32.const 1024 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87815,7 +87811,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 184 i32.const 3 call $~lib/builtins/abort @@ -87841,7 +87837,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3040 + i32.const 1072 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87852,7 +87848,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 187 i32.const 3 call $~lib/builtins/abort @@ -87880,7 +87876,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3088 + i32.const 1120 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87891,7 +87887,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 190 i32.const 3 call $~lib/builtins/abort @@ -87917,7 +87913,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3136 + i32.const 1168 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -87928,7 +87924,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 193 i32.const 3 call $~lib/builtins/abort @@ -87971,7 +87967,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 197 i32.const 3 call $~lib/builtins/abort @@ -87991,7 +87987,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 198 i32.const 3 call $~lib/builtins/abort @@ -88011,7 +88007,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 199 i32.const 3 call $~lib/builtins/abort @@ -88026,7 +88022,7 @@ i32.const 3 i32.const 2 i32.const 17 - i32.const 3184 + i32.const 1216 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88037,7 +88033,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 200 i32.const 3 call $~lib/builtins/abort @@ -88052,7 +88048,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3216 + i32.const 1248 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88063,7 +88059,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 201 i32.const 3 call $~lib/builtins/abort @@ -88154,7 +88150,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 222 i32.const 3 call $~lib/builtins/abort @@ -88172,7 +88168,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 223 i32.const 3 call $~lib/builtins/abort @@ -88190,7 +88186,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 224 i32.const 3 call $~lib/builtins/abort @@ -88208,7 +88204,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 225 i32.const 3 call $~lib/builtins/abort @@ -88239,7 +88235,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 228 i32.const 3 call $~lib/builtins/abort @@ -88257,7 +88253,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 229 i32.const 3 call $~lib/builtins/abort @@ -88275,7 +88271,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 230 i32.const 3 call $~lib/builtins/abort @@ -88293,7 +88289,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 231 i32.const 3 call $~lib/builtins/abort @@ -88324,7 +88320,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 234 i32.const 3 call $~lib/builtins/abort @@ -88342,7 +88338,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 235 i32.const 3 call $~lib/builtins/abort @@ -88360,7 +88356,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 236 i32.const 3 call $~lib/builtins/abort @@ -88378,7 +88374,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 237 i32.const 3 call $~lib/builtins/abort @@ -88469,7 +88465,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3264 + i32.const 1296 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88480,7 +88476,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 248 i32.const 3 call $~lib/builtins/abort @@ -88520,7 +88516,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3312 + i32.const 1344 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88531,7 +88527,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 250 i32.const 3 call $~lib/builtins/abort @@ -88571,7 +88567,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3360 + i32.const 1392 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88582,7 +88578,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 252 i32.const 3 call $~lib/builtins/abort @@ -88622,7 +88618,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3408 + i32.const 1440 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88633,7 +88629,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 254 i32.const 3 call $~lib/builtins/abort @@ -88671,7 +88667,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3456 + i32.const 1488 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88682,7 +88678,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 256 i32.const 3 call $~lib/builtins/abort @@ -88720,7 +88716,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3504 + i32.const 1536 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88731,7 +88727,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 258 i32.const 3 call $~lib/builtins/abort @@ -88769,7 +88765,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3552 + i32.const 1584 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88780,7 +88776,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 260 i32.const 3 call $~lib/builtins/abort @@ -88820,7 +88816,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3600 + i32.const 1632 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88831,7 +88827,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 262 i32.const 3 call $~lib/builtins/abort @@ -88869,7 +88865,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3648 + i32.const 1680 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88880,7 +88876,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 264 i32.const 3 call $~lib/builtins/abort @@ -88918,7 +88914,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3696 + i32.const 1728 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88929,7 +88925,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 266 i32.const 3 call $~lib/builtins/abort @@ -88967,7 +88963,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3744 + i32.const 1776 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -88978,7 +88974,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 268 i32.const 3 call $~lib/builtins/abort @@ -89018,7 +89014,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3792 + i32.const 1824 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -89029,7 +89025,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 270 i32.const 3 call $~lib/builtins/abort @@ -89110,7 +89106,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 282 i32.const 3 call $~lib/builtins/abort @@ -89128,7 +89124,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 283 i32.const 3 call $~lib/builtins/abort @@ -89146,7 +89142,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 284 i32.const 3 call $~lib/builtins/abort @@ -89177,7 +89173,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 287 i32.const 3 call $~lib/builtins/abort @@ -89196,7 +89192,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 288 i32.const 3 call $~lib/builtins/abort @@ -89214,7 +89210,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 289 i32.const 3 call $~lib/builtins/abort @@ -89232,7 +89228,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 290 i32.const 3 call $~lib/builtins/abort @@ -89250,7 +89246,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 291 i32.const 3 call $~lib/builtins/abort @@ -89281,7 +89277,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 294 i32.const 3 call $~lib/builtins/abort @@ -89299,7 +89295,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 295 i32.const 3 call $~lib/builtins/abort @@ -89317,7 +89313,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 296 i32.const 3 call $~lib/builtins/abort @@ -89335,7 +89331,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 297 i32.const 3 call $~lib/builtins/abort @@ -89361,7 +89357,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 300 i32.const 3 call $~lib/builtins/abort @@ -89385,7 +89381,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 301 i32.const 3 call $~lib/builtins/abort @@ -89409,7 +89405,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 302 i32.const 3 call $~lib/builtins/abort @@ -89433,7 +89429,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 303 i32.const 3 call $~lib/builtins/abort @@ -89600,7 +89596,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 653 i32.const 3 call $~lib/builtins/abort @@ -89622,7 +89618,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 654 i32.const 3 call $~lib/builtins/abort @@ -89657,7 +89653,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 659 i32.const 3 call $~lib/builtins/abort @@ -89679,7 +89675,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 660 i32.const 3 call $~lib/builtins/abort @@ -89728,7 +89724,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 737 i32.const 3 call $~lib/builtins/abort @@ -89766,7 +89762,7 @@ i32.eqz if i32.const 0 - i32.const 2512 + i32.const 544 i32.const 741 i32.const 3 call $~lib/builtins/abort @@ -89950,7 +89946,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 14416 + i32.const 14256 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -90079,7 +90075,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 14448 + i32.const 14288 call $~lib/rt/__newArray local.set $64 global.get $~lib/memory/__stack_pointer @@ -90106,153 +90102,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) (local $buffer i32) @@ -90284,6 +90133,10 @@ local.get $array local.get $buffer i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $array local.get $buffer i32.const 0 @@ -90339,8 +90192,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 6784 + i32.const 6912 i32.const 373 i32.const 5 call $~lib/builtins/abort @@ -90349,7 +90202,7 @@ local.get $value i32.eqz if - i32.const 752 + i32.const 6976 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -90488,6 +90341,153 @@ local.get $14 return ) + (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) + (local $out i32) + (local $decimals i32) + (local $buffer i32) + (local $num i32) + (local $offset i32) + (local $decimals|7 i32) + (local $buffer|8 i32) + (local $num|9 i32) + (local $offset|10 i32) + (local $decimals|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 $radix + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $radix + i32.const 36 + i32.gt_s + end + if + i32.const 6784 + i32.const 6912 + i32.const 350 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $value + i32.eqz + if + i32.const 6976 + 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 $radix + i32.const 10 + i32.eq + if + local.get $value + call $~lib/util/number/decimalCount32 + local.set $decimals + global.get $~lib/memory/__stack_pointer + local.get $decimals + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + else + local.get $radix + i32.const 16 + i32.eq + if + i32.const 31 + local.get $value + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $decimals|7 + global.get $~lib/memory/__stack_pointer + local.get $decimals|7 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut + else + local.get $value + i64.extend_i32_u + local.get $radix + call $~lib/util/number/ulog_base + local.set $decimals|11 + global.get $~lib/memory/__stack_pointer + local.get $decimals|11 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store + local.get $out + local.get $value + i64.extend_i32_u + local.get $decimals|11 + local.get $radix + call $~lib/util/number/utoa64_any_core + end + end + local.get $out + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + ) (func $~lib/util/number/itoa64 (param $value i64) (param $radix i32) (result i32) (local $sign i32) (local $out i32) @@ -90525,8 +90525,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 6784 + i32.const 6912 i32.const 431 i32.const 5 call $~lib/builtins/abort @@ -90537,7 +90537,7 @@ i64.ne i32.eqz if - i32.const 752 + i32.const 6976 local.set $18 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -90748,8 +90748,8 @@ i32.gt_s end if - i32.const 560 - i32.const 688 + i32.const 6784 + i32.const 6912 i32.const 401 i32.const 5 call $~lib/builtins/abort @@ -90760,7 +90760,7 @@ i64.ne i32.eqz if - i32.const 752 + i32.const 6976 local.set $17 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -90923,7 +90923,7 @@ f64.const 0 f64.eq if - i32.const 8800 + i32.const 8640 br $~lib/util/number/dtoa_impl|inlined.0 end local.get $value|1 @@ -90937,18 +90937,18 @@ local.get $value|1 f64.ne if - i32.const 8832 + i32.const 8672 br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8864 - i32.const 8912 + i32.const 8704 + i32.const 8752 local.get $value|1 f64.const 0 f64.lt select br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8944 + i32.const 8784 local.get $value|1 local.get $isSingle call $~lib/util/number/dtoa_core @@ -90962,7 +90962,7 @@ local.tee $result i32.store local.get $result - i32.const 8944 + i32.const 8784 local.get $size memory.copy local.get $result @@ -90999,7 +90999,7 @@ f64.const 0 f64.eq if - i32.const 8800 + i32.const 8640 br $~lib/util/number/dtoa_impl|inlined.1 end local.get $value|1 @@ -91013,18 +91013,18 @@ local.get $value|1 f64.ne if - i32.const 8832 + i32.const 8672 br $~lib/util/number/dtoa_impl|inlined.1 end - i32.const 8864 - i32.const 8912 + i32.const 8704 + i32.const 8752 local.get $value|1 f64.const 0 f64.lt select br $~lib/util/number/dtoa_impl|inlined.1 end - i32.const 8944 + i32.const 8784 local.get $value|1 local.get $isSingle call $~lib/util/number/dtoa_core @@ -91038,7 +91038,7 @@ local.tee $result i32.store local.get $result - i32.const 8944 + i32.const 8784 local.get $size memory.copy local.get $result @@ -91067,8 +91067,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2400 - i32.const 2448 + i32.const 32 + i32.const 80 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -91151,19 +91151,19 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 320 + i32.const 336 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2400 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 128 + i32.const 144 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 7408 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 8464 local.get $0 call $~lib/rt/itcms/__visit ) @@ -92487,6 +92487,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92511,6 +92515,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -92537,6 +92545,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -92563,6 +92575,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92587,6 +92603,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92611,6 +92631,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92635,6 +92659,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92659,6 +92687,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92683,6 +92715,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92707,6 +92743,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92731,6 +92771,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92755,6 +92799,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92779,6 +92827,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92803,6 +92855,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92827,6 +92883,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92851,6 +92911,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92875,6 +92939,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92899,6 +92967,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92923,6 +92995,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92947,6 +93023,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92971,6 +93051,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -92995,6 +93079,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93019,6 +93107,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93043,6 +93135,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93067,6 +93163,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93091,6 +93191,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93115,6 +93219,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93139,6 +93247,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93163,6 +93275,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93187,6 +93303,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93211,6 +93331,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93235,6 +93359,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93259,6 +93387,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93283,6 +93415,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93307,6 +93443,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93331,6 +93471,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93355,6 +93499,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93379,6 +93527,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93403,6 +93555,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93427,6 +93583,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93451,6 +93611,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93475,6 +93639,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93499,6 +93667,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93523,6 +93695,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93547,6 +93723,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93571,6 +93751,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93595,6 +93779,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93619,6 +93807,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -93645,6 +93837,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -93671,6 +93867,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -93697,6 +93897,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -93723,6 +93927,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -93749,6 +93957,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -93775,6 +93987,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -93801,6 +94017,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 0 drop local.get $this @@ -93827,6 +94047,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93851,6 +94075,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93875,6 +94103,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93899,6 +94131,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93923,6 +94159,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93947,6 +94187,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93971,6 +94215,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -93995,6 +94243,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -94019,6 +94271,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index fcd78a4fc3..0d0fdf9178 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -17,14 +17,14 @@ (type $15 (func (param f64 i32 i32) (result i32))) (type $16 (func (param i32 i32) (result i64))) (type $17 (func (param i64 i64 i32 i32) (result i64))) - (type $18 (func (param i32 i64) (result i32))) - (type $19 (func (param i32 i64 i32) (result i32))) - (type $20 (func (param i32 i32 i64))) - (type $21 (func (param f32 f32 i32 i32) (result f32))) - (type $22 (func (param f64 f64 i32 i32) (result f64))) - (type $23 (func (param i64 i32 i32) (result i64))) - (type $24 (func (param i32 f64 i32) (result i32))) - (type $25 (func (param i32 i32 i32 i32))) + (type $18 (func (param i32 i32 i32 i32))) + (type $19 (func (param i32 i64) (result i32))) + (type $20 (func (param i32 i64 i32) (result i32))) + (type $21 (func (param i32 i32 i64))) + (type $22 (func (param f32 f32 i32 i32) (result f32))) + (type $23 (func (param f64 f64 i32 i32) (result f64))) + (type $24 (func (param i64 i32 i32) (result i64))) + (type $25 (func (param i32 f64 i32) (result i32))) (type $26 (func (param i32 i32) (result f64))) (type $27 (func (param i32 i32) (result f32))) (type $28 (func (param i64 i32 i32))) @@ -41,6 +41,7 @@ (type $39 (func (param i32 i32 f64 f64 f64 f64 f64))) (type $40 (func (param i32 i32 f64))) (type $41 (func (param i32 i32 f32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) @@ -61,624 +62,616 @@ (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 49248)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 49088)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data $20 (i32.const 3452) "<") - (data $20.1 (i32.const 3464) "\02\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 $21 (i32.const 3516) "<") - (data $21.1 (i32.const 3528) "\02\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") - (data $22 (i32.const 3580) "<") - (data $22.1 (i32.const 3592) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") - (data $23 (i32.const 3644) "\1c") - (data $23.1 (i32.const 3656) "\0f\00\00\00\08\00\00\00\01") - (data $24 (i32.const 3676) "\1c") - (data $24.1 (i32.const 3688) "\01\00\00\00\05\00\00\00\01\01\01\04\05") - (data $25 (i32.const 3708) ",") - (data $25.1 (i32.const 3720) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data $26 (i32.const 3756) "\1c") - (data $26.1 (i32.const 3768) "\01\00\00\00\05") - (data $27 (i32.const 3788) "\1c") - (data $27.1 (i32.const 3800) "\01\00\00\00\05\00\00\00\01\01") - (data $28 (i32.const 3820) "\1c") - (data $28.1 (i32.const 3832) "\01\00\00\00\05\00\00\00\01\01\00\02\02") - (data $29 (i32.const 3852) "\1c") - (data $29.1 (i32.const 3864) "\01\00\00\00\05\00\00\00\01\01\00\02\02") - (data $30 (i32.const 3884) "\1c") - (data $30.1 (i32.const 3896) "\01\00\00\00\03") - (data $31 (i32.const 3916) "\1c") - (data $31.1 (i32.const 3928) "\01\00\00\00\05\00\00\00\01\00\00\00\02") - (data $32 (i32.const 3948) ",") - (data $32.1 (i32.const 3960) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") - (data $33 (i32.const 3996) ",") - (data $33.1 (i32.const 4008) "\01\00\00\00\14") - (data $34 (i32.const 4044) ",") - (data $34.1 (i32.const 4056) "\01\00\00\00\14\00\00\00\01\00\00\00\01") - (data $35 (i32.const 4092) ",") - (data $35.1 (i32.const 4104) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") - (data $36 (i32.const 4140) ",") - (data $36.1 (i32.const 4152) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") - (data $37 (i32.const 4188) "\1c") - (data $37.1 (i32.const 4200) "\01\00\00\00\0c") - (data $38 (i32.const 4220) ",") - (data $38.1 (i32.const 4232) "\01\00\00\00\14\00\00\00\01") - (data $38.2 (i32.const 4256) "\02") - (data $39 (i32.const 4268) ",") - (data $39.1 (i32.const 4280) "\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") - (data $40 (i32.const 4316) ",") - (data $40.1 (i32.const 4328) "\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05") - (data $41 (i32.const 4364) ",") - (data $41.1 (i32.const 4376) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") - (data $42 (i32.const 4412) ",") - (data $42.1 (i32.const 4424) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $43 (i32.const 4460) ",") - (data $43.1 (i32.const 4472) "\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $44 (i32.const 4508) ",") - (data $44.1 (i32.const 4520) "\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05") - (data $45 (i32.const 4556) ",") - (data $45.1 (i32.const 4568) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") - (data $46 (i32.const 4604) ",") - (data $46.1 (i32.const 4616) "\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") - (data $47 (i32.const 4652) ",") - (data $47.1 (i32.const 4664) "\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data $48 (i32.const 4700) ",") - (data $48.1 (i32.const 4712) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05") - (data $49 (i32.const 4748) ",") - (data $49.1 (i32.const 4760) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") - (data $50 (i32.const 4796) ",") - (data $50.1 (i32.const 4808) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") - (data $51 (i32.const 4844) "\1c") - (data $51.1 (i32.const 4856) "\12\00\00\00\08\00\00\00\02") - (data $52 (i32.const 4876) "\1c") - (data $52.1 (i32.const 4888) "\13\00\00\00\08\00\00\00\03") - (data $53 (i32.const 4908) "\1c") - (data $53.1 (i32.const 4920) "\14\00\00\00\08\00\00\00\04") - (data $54 (i32.const 4940) "\1c") - (data $54.1 (i32.const 4952) "\15\00\00\00\08\00\00\00\05") - (data $55 (i32.const 4972) "\1c") - (data $55.1 (i32.const 4984) "\16\00\00\00\08\00\00\00\06") - (data $56 (i32.const 5004) "\1c") - (data $56.1 (i32.const 5016) "\17\00\00\00\08\00\00\00\07") - (data $57 (i32.const 5036) "\1c") - (data $57.1 (i32.const 5048) "\18\00\00\00\08\00\00\00\08") - (data $58 (i32.const 5068) "\1c") - (data $58.1 (i32.const 5080) "\19\00\00\00\08\00\00\00\t") - (data $59 (i32.const 5100) "\1c") - (data $59.1 (i32.const 5112) "\1a\00\00\00\08\00\00\00\n") - (data $60 (i32.const 5132) "\1c") - (data $60.1 (i32.const 5144) "\1b\00\00\00\08\00\00\00\0b") - (data $61 (i32.const 5164) "\1c") - (data $61.1 (i32.const 5176) "\1c\00\00\00\08\00\00\00\0c") - (data $62 (i32.const 5196) "\1c") - (data $62.1 (i32.const 5208) "\12\00\00\00\08\00\00\00\r") - (data $63 (i32.const 5228) "\1c") - (data $63.1 (i32.const 5240) "\13\00\00\00\08\00\00\00\0e") - (data $64 (i32.const 5260) "\1c") - (data $64.1 (i32.const 5272) "\14\00\00\00\08\00\00\00\0f") - (data $65 (i32.const 5292) "\1c") - (data $65.1 (i32.const 5304) "\15\00\00\00\08\00\00\00\10") - (data $66 (i32.const 5324) "\1c") - (data $66.1 (i32.const 5336) "\16\00\00\00\08\00\00\00\11") - (data $67 (i32.const 5356) "\1c") - (data $67.1 (i32.const 5368) "\17\00\00\00\08\00\00\00\12") - (data $68 (i32.const 5388) "\1c") - (data $68.1 (i32.const 5400) "\18\00\00\00\08\00\00\00\13") - (data $69 (i32.const 5420) "\1c") - (data $69.1 (i32.const 5432) "\19\00\00\00\08\00\00\00\14") - (data $70 (i32.const 5452) "\1c") - (data $70.1 (i32.const 5464) "\1a\00\00\00\08\00\00\00\15") - (data $71 (i32.const 5484) "\1c") - (data $71.1 (i32.const 5496) "\1b\00\00\00\08\00\00\00\16") - (data $72 (i32.const 5516) "\1c") - (data $72.1 (i32.const 5528) "\1c\00\00\00\08\00\00\00\17") - (data $73 (i32.const 5548) "\1c") - (data $73.1 (i32.const 5560) "\1d\00\00\00\08\00\00\00\18") - (data $74 (i32.const 5580) "\1c") - (data $74.1 (i32.const 5592) "\1e\00\00\00\08\00\00\00\19") - (data $75 (i32.const 5612) "\1c") - (data $75.1 (i32.const 5624) "\1f\00\00\00\08\00\00\00\1a") - (data $76 (i32.const 5644) "\1c") - (data $76.1 (i32.const 5656) " \00\00\00\08\00\00\00\1b") - (data $77 (i32.const 5676) "\1c") - (data $77.1 (i32.const 5688) "!\00\00\00\08\00\00\00\1c") - (data $78 (i32.const 5708) "\1c") - (data $78.1 (i32.const 5720) "\"\00\00\00\08\00\00\00\1d") - (data $79 (i32.const 5740) "\1c") - (data $79.1 (i32.const 5752) "#\00\00\00\08\00\00\00\1e") - (data $80 (i32.const 5772) "\1c") - (data $80.1 (i32.const 5784) "$\00\00\00\08\00\00\00\1f") - (data $81 (i32.const 5804) "\1c") - (data $81.1 (i32.const 5816) "%\00\00\00\08\00\00\00 ") - (data $82 (i32.const 5836) "\1c") - (data $82.1 (i32.const 5848) "&\00\00\00\08\00\00\00!") - (data $83 (i32.const 5868) "\1c") - (data $83.1 (i32.const 5880) "\'\00\00\00\08\00\00\00\"") - (data $84 (i32.const 5900) "\1c") - (data $84.1 (i32.const 5912) "(\00\00\00\08\00\00\00#") - (data $85 (i32.const 5932) "\1c") - (data $85.1 (i32.const 5944) ")\00\00\00\08\00\00\00$") - (data $86 (i32.const 5964) "\1c") - (data $86.1 (i32.const 5976) "*\00\00\00\08\00\00\00%") - (data $87 (i32.const 5996) "\1c") - (data $87.1 (i32.const 6008) "+\00\00\00\08\00\00\00&") - (data $88 (i32.const 6028) "\1c") - (data $88.1 (i32.const 6040) ",\00\00\00\08\00\00\00\'") - (data $89 (i32.const 6060) "\1c") - (data $89.1 (i32.const 6072) "-\00\00\00\08\00\00\00(") - (data $90 (i32.const 6092) "\1c") - (data $90.1 (i32.const 6104) ".\00\00\00\08\00\00\00)") - (data $91 (i32.const 6124) "\1c") - (data $91.1 (i32.const 6136) "/\00\00\00\08\00\00\00*") - (data $92 (i32.const 6156) "\1c") - (data $92.1 (i32.const 6168) "0\00\00\00\08\00\00\00+") - (data $93 (i32.const 6188) "\1c") - (data $93.1 (i32.const 6200) "1\00\00\00\08\00\00\00,") - (data $94 (i32.const 6220) "\1c") - (data $94.1 (i32.const 6232) "2\00\00\00\08\00\00\00-") - (data $95 (i32.const 6252) "\1c") - (data $95.1 (i32.const 6264) "(\00\00\00\08\00\00\00.") - (data $96 (i32.const 6284) "\1c") - (data $96.1 (i32.const 6296) "(\00\00\00\08\00\00\00/") - (data $97 (i32.const 6316) "\1c") - (data $97.1 (i32.const 6328) ")\00\00\00\08\00\00\000") - (data $98 (i32.const 6348) "\1c") - (data $98.1 (i32.const 6360) ")\00\00\00\08\00\00\001") - (data $99 (i32.const 6380) "\1c") - (data $99.1 (i32.const 6392) "*\00\00\00\08\00\00\002") - (data $100 (i32.const 6412) "\1c") - (data $100.1 (i32.const 6424) "*\00\00\00\08\00\00\003") - (data $101 (i32.const 6444) "\1c") - (data $101.1 (i32.const 6456) "+\00\00\00\08\00\00\004") - (data $102 (i32.const 6476) "\1c") - (data $102.1 (i32.const 6488) "+\00\00\00\08\00\00\005") - (data $103 (i32.const 6508) "\1c") - (data $103.1 (i32.const 6520) ",\00\00\00\08\00\00\006") - (data $104 (i32.const 6540) "\1c") - (data $104.1 (i32.const 6552) ",\00\00\00\08\00\00\007") - (data $105 (i32.const 6572) "\1c") - (data $105.1 (i32.const 6584) "-\00\00\00\08\00\00\008") - (data $106 (i32.const 6604) "\1c") - (data $106.1 (i32.const 6616) "-\00\00\00\08\00\00\009") - (data $107 (i32.const 6636) "\1c") - (data $107.1 (i32.const 6648) ".\00\00\00\08\00\00\00:") - (data $108 (i32.const 6668) "\1c") - (data $108.1 (i32.const 6680) ".\00\00\00\08\00\00\00;") - (data $109 (i32.const 6700) "\1c") - (data $109.1 (i32.const 6712) "/\00\00\00\08\00\00\00<") - (data $110 (i32.const 6732) "\1c") - (data $110.1 (i32.const 6744) "/\00\00\00\08\00\00\00=") - (data $111 (i32.const 6764) "\1c") - (data $111.1 (i32.const 6776) "0\00\00\00\08\00\00\00>") - (data $112 (i32.const 6796) "\1c") - (data $112.1 (i32.const 6808) "0\00\00\00\08\00\00\00?") - (data $113 (i32.const 6828) "\1c") - (data $113.1 (i32.const 6840) "1\00\00\00\08\00\00\00@") - (data $114 (i32.const 6860) "\1c") - (data $114.1 (i32.const 6872) "1\00\00\00\08\00\00\00A") - (data $115 (i32.const 6892) "\1c") - (data $115.1 (i32.const 6904) "2\00\00\00\08\00\00\00B") - (data $116 (i32.const 6924) "\1c") - (data $116.1 (i32.const 6936) "2\00\00\00\08\00\00\00C") - (data $117 (i32.const 6956) "\1c") - (data $117.1 (i32.const 6968) "(\00\00\00\08\00\00\00D") - (data $118 (i32.const 6988) "\1c") - (data $118.1 (i32.const 7000) "(\00\00\00\08\00\00\00E") - (data $119 (i32.const 7020) "\1c") - (data $119.1 (i32.const 7032) ")\00\00\00\08\00\00\00F") - (data $120 (i32.const 7052) "\1c") - (data $120.1 (i32.const 7064) ")\00\00\00\08\00\00\00G") - (data $121 (i32.const 7084) "\1c") - (data $121.1 (i32.const 7096) "*\00\00\00\08\00\00\00H") - (data $122 (i32.const 7116) "\1c") - (data $122.1 (i32.const 7128) "*\00\00\00\08\00\00\00I") - (data $123 (i32.const 7148) "\1c") - (data $123.1 (i32.const 7160) "+\00\00\00\08\00\00\00J") - (data $124 (i32.const 7180) "\1c") - (data $124.1 (i32.const 7192) "+\00\00\00\08\00\00\00K") - (data $125 (i32.const 7212) "\1c") - (data $125.1 (i32.const 7224) ",\00\00\00\08\00\00\00L") - (data $126 (i32.const 7244) "\1c") - (data $126.1 (i32.const 7256) ",\00\00\00\08\00\00\00M") - (data $127 (i32.const 7276) "\1c") - (data $127.1 (i32.const 7288) "-\00\00\00\08\00\00\00N") - (data $128 (i32.const 7308) "\1c") - (data $128.1 (i32.const 7320) "-\00\00\00\08\00\00\00O") - (data $129 (i32.const 7340) "\1c") - (data $129.1 (i32.const 7352) ".\00\00\00\08\00\00\00P") - (data $130 (i32.const 7372) "\1c") - (data $130.1 (i32.const 7384) ".\00\00\00\08\00\00\00Q") - (data $131 (i32.const 7404) "\1c") - (data $131.1 (i32.const 7416) "/\00\00\00\08\00\00\00R") - (data $132 (i32.const 7436) "\1c") - (data $132.1 (i32.const 7448) "/\00\00\00\08\00\00\00S") - (data $133 (i32.const 7468) "\1c") - (data $133.1 (i32.const 7480) "0\00\00\00\08\00\00\00T") - (data $134 (i32.const 7500) "\1c") - (data $134.1 (i32.const 7512) "0\00\00\00\08\00\00\00U") - (data $135 (i32.const 7532) "\1c") - (data $135.1 (i32.const 7544) "1\00\00\00\08\00\00\00V") - (data $136 (i32.const 7564) "\1c") - (data $136.1 (i32.const 7576) "1\00\00\00\08\00\00\00W") - (data $137 (i32.const 7596) "\1c") - (data $137.1 (i32.const 7608) "2\00\00\00\08\00\00\00X") - (data $138 (i32.const 7628) "\1c") - (data $138.1 (i32.const 7640) "2\00\00\00\08\00\00\00Y") - (data $139 (i32.const 7660) "\1c") - (data $139.1 (i32.const 7672) "(\00\00\00\08\00\00\00Z") - (data $140 (i32.const 7692) "\1c") - (data $140.1 (i32.const 7704) "(\00\00\00\08\00\00\00[") - (data $141 (i32.const 7724) "\1c") - (data $141.1 (i32.const 7736) ")\00\00\00\08\00\00\00\\") - (data $142 (i32.const 7756) "\1c") - (data $142.1 (i32.const 7768) ")\00\00\00\08\00\00\00]") - (data $143 (i32.const 7788) "\1c") - (data $143.1 (i32.const 7800) "*\00\00\00\08\00\00\00^") - (data $144 (i32.const 7820) "\1c") - (data $144.1 (i32.const 7832) "*\00\00\00\08\00\00\00_") - (data $145 (i32.const 7852) "\1c") - (data $145.1 (i32.const 7864) "+\00\00\00\08\00\00\00`") - (data $146 (i32.const 7884) "\1c") - (data $146.1 (i32.const 7896) "+\00\00\00\08\00\00\00a") - (data $147 (i32.const 7916) "\1c") - (data $147.1 (i32.const 7928) ",\00\00\00\08\00\00\00b") - (data $148 (i32.const 7948) "\1c") - (data $148.1 (i32.const 7960) ",\00\00\00\08\00\00\00c") - (data $149 (i32.const 7980) "\1c") - (data $149.1 (i32.const 7992) "-\00\00\00\08\00\00\00d") - (data $150 (i32.const 8012) "\1c") - (data $150.1 (i32.const 8024) "-\00\00\00\08\00\00\00e") - (data $151 (i32.const 8044) "\1c") - (data $151.1 (i32.const 8056) ".\00\00\00\08\00\00\00f") - (data $152 (i32.const 8076) "\1c") - (data $152.1 (i32.const 8088) ".\00\00\00\08\00\00\00g") - (data $153 (i32.const 8108) "\1c") - (data $153.1 (i32.const 8120) "/\00\00\00\08\00\00\00h") - (data $154 (i32.const 8140) "\1c") - (data $154.1 (i32.const 8152) "/\00\00\00\08\00\00\00i") - (data $155 (i32.const 8172) "\1c") - (data $155.1 (i32.const 8184) "0\00\00\00\08\00\00\00j") - (data $156 (i32.const 8204) "\1c") - (data $156.1 (i32.const 8216) "0\00\00\00\08\00\00\00k") - (data $157 (i32.const 8236) "\1c") - (data $157.1 (i32.const 8248) "1\00\00\00\08\00\00\00l") - (data $158 (i32.const 8268) "\1c") - (data $158.1 (i32.const 8280) "1\00\00\00\08\00\00\00m") - (data $159 (i32.const 8300) "\1c") - (data $159.1 (i32.const 8312) "2\00\00\00\08\00\00\00n") - (data $160 (i32.const 8332) "\1c") - (data $160.1 (i32.const 8344) "2\00\00\00\08\00\00\00o") - (data $161 (i32.const 8364) "\1c") - (data $161.1 (i32.const 8376) "(\00\00\00\08\00\00\00p") - (data $162 (i32.const 8396) "\1c") - (data $162.1 (i32.const 8408) "(\00\00\00\08\00\00\00q") - (data $163 (i32.const 8428) "\1c") - (data $163.1 (i32.const 8440) ")\00\00\00\08\00\00\00r") - (data $164 (i32.const 8460) "\1c") - (data $164.1 (i32.const 8472) ")\00\00\00\08\00\00\00s") - (data $165 (i32.const 8492) "\1c") - (data $165.1 (i32.const 8504) "*\00\00\00\08\00\00\00t") - (data $166 (i32.const 8524) "\1c") - (data $166.1 (i32.const 8536) "*\00\00\00\08\00\00\00u") - (data $167 (i32.const 8556) "\1c") - (data $167.1 (i32.const 8568) "+\00\00\00\08\00\00\00v") - (data $168 (i32.const 8588) "\1c") - (data $168.1 (i32.const 8600) "+\00\00\00\08\00\00\00w") - (data $169 (i32.const 8620) "\1c") - (data $169.1 (i32.const 8632) ",\00\00\00\08\00\00\00x") - (data $170 (i32.const 8652) "\1c") - (data $170.1 (i32.const 8664) ",\00\00\00\08\00\00\00y") - (data $171 (i32.const 8684) "\1c") - (data $171.1 (i32.const 8696) "-\00\00\00\08\00\00\00z") - (data $172 (i32.const 8716) "\1c") - (data $172.1 (i32.const 8728) "-\00\00\00\08\00\00\00{") - (data $173 (i32.const 8748) "\1c") - (data $173.1 (i32.const 8760) ".\00\00\00\08\00\00\00|") - (data $174 (i32.const 8780) "\1c") - (data $174.1 (i32.const 8792) ".\00\00\00\08\00\00\00}") - (data $175 (i32.const 8812) "\1c") - (data $175.1 (i32.const 8824) "/\00\00\00\08\00\00\00~") - (data $176 (i32.const 8844) "\1c") - (data $176.1 (i32.const 8856) "/\00\00\00\08\00\00\00\7f") - (data $177 (i32.const 8876) "\1c") - (data $177.1 (i32.const 8888) "0\00\00\00\08\00\00\00\80") - (data $178 (i32.const 8908) "\1c") - (data $178.1 (i32.const 8920) "0\00\00\00\08\00\00\00\81") - (data $179 (i32.const 8940) "\1c") - (data $179.1 (i32.const 8952) "1\00\00\00\08\00\00\00\82") - (data $180 (i32.const 8972) "\1c") - (data $180.1 (i32.const 8984) "1\00\00\00\08\00\00\00\83") - (data $181 (i32.const 9004) "\1c") - (data $181.1 (i32.const 9016) "2\00\00\00\08\00\00\00\84") - (data $182 (i32.const 9036) "\1c") - (data $182.1 (i32.const 9048) "2\00\00\00\08\00\00\00\85") - (data $183 (i32.const 9068) "\1c") - (data $183.1 (i32.const 9080) "\01\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e") - (data $184 (i32.const 9100) ",") - (data $184.1 (i32.const 9112) "\11\00\00\00\10\00\00\00\80#\00\00\80#\00\00\0c\00\00\00\03") - (data $185 (i32.const 9148) "\1c") - (data $185.1 (i32.const 9160) "3\00\00\00\08\00\00\00\86") - (data $186 (i32.const 9180) "\1c") - (data $186.1 (i32.const 9192) "4\00\00\00\08\00\00\00\87") - (data $187 (i32.const 9212) "\1c") - (data $187.1 (i32.const 9224) "5\00\00\00\08\00\00\00\88") - (data $188 (i32.const 9244) "\1c") - (data $188.1 (i32.const 9256) "6\00\00\00\08\00\00\00\89") - (data $189 (i32.const 9276) "\1c") - (data $189.1 (i32.const 9288) "7\00\00\00\08\00\00\00\8a") - (data $190 (i32.const 9308) "\1c") - (data $190.1 (i32.const 9320) "8\00\00\00\08\00\00\00\8b") - (data $191 (i32.const 9340) "\1c") - (data $191.1 (i32.const 9352) "9\00\00\00\08\00\00\00\8c") - (data $192 (i32.const 9372) "\1c") - (data $192.1 (i32.const 9384) ":\00\00\00\08\00\00\00\8d") - (data $193 (i32.const 9404) "\1c") - (data $193.1 (i32.const 9416) ";\00\00\00\08\00\00\00\8e") - (data $194 (i32.const 9436) "\1c") - (data $194.1 (i32.const 9448) "<\00\00\00\08\00\00\00\8f") - (data $195 (i32.const 9468) "\1c") - (data $195.1 (i32.const 9480) "=\00\00\00\08\00\00\00\90") - (data $196 (i32.const 9500) "<") - (data $196.1 (i32.const 9512) "\01\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") - (data $197 (i32.const 9564) ",") - (data $197.1 (i32.const 9576) "\11\00\00\00\10\00\00\000%\00\000%\00\00$\00\00\00\t") - (data $198 (i32.const 9612) "<") - (data $198.1 (i32.const 9624) "\01\00\00\00,\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\n") - (data $199 (i32.const 9676) ",") - (data $199.1 (i32.const 9688) "\11\00\00\00\10\00\00\00\a0%\00\00\a0%\00\00,\00\00\00\0b") - (data $200 (i32.const 9724) "\1c") - (data $200.1 (i32.const 9736) "\02\00\00\00\02\00\00\00,") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\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 $3 (i32.const 1212) "<") + (data $3.1 (i32.const 1224) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1340) "<") + (data $6.1 (i32.const 1352) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1404) ",") + (data $7.1 (i32.const 1416) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1484) "<") + (data $9.1 (i32.const 1496) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1548) "<") + (data $10.1 (i32.const 1560) "\02\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data $11 (i32.const 1612) "<") + (data $11.1 (i32.const 1624) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data $12 (i32.const 1676) "\1c") + (data $12.1 (i32.const 1688) "\0f\00\00\00\08\00\00\00\01") + (data $13 (i32.const 1708) "\1c") + (data $13.1 (i32.const 1720) "\01\00\00\00\05\00\00\00\01\01\01\04\05") + (data $14 (i32.const 1740) ",") + (data $14.1 (i32.const 1752) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $15 (i32.const 1788) "\1c") + (data $15.1 (i32.const 1800) "\01\00\00\00\05") + (data $16 (i32.const 1820) "\1c") + (data $16.1 (i32.const 1832) "\01\00\00\00\05\00\00\00\01\01") + (data $17 (i32.const 1852) "\1c") + (data $17.1 (i32.const 1864) "\01\00\00\00\05\00\00\00\01\01\00\02\02") + (data $18 (i32.const 1884) "\1c") + (data $18.1 (i32.const 1896) "\01\00\00\00\05\00\00\00\01\01\00\02\02") + (data $19 (i32.const 1916) "\1c") + (data $19.1 (i32.const 1928) "\01\00\00\00\03") + (data $20 (i32.const 1948) "\1c") + (data $20.1 (i32.const 1960) "\01\00\00\00\05\00\00\00\01\00\00\00\02") + (data $21 (i32.const 1980) ",") + (data $21.1 (i32.const 1992) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") + (data $22 (i32.const 2028) ",") + (data $22.1 (i32.const 2040) "\01\00\00\00\14") + (data $23 (i32.const 2076) ",") + (data $23.1 (i32.const 2088) "\01\00\00\00\14\00\00\00\01\00\00\00\01") + (data $24 (i32.const 2124) ",") + (data $24.1 (i32.const 2136) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data $25 (i32.const 2172) ",") + (data $25.1 (i32.const 2184) "\01\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data $26 (i32.const 2220) "\1c") + (data $26.1 (i32.const 2232) "\01\00\00\00\0c") + (data $27 (i32.const 2252) ",") + (data $27.1 (i32.const 2264) "\01\00\00\00\14\00\00\00\01") + (data $27.2 (i32.const 2288) "\02") + (data $28 (i32.const 2300) ",") + (data $28.1 (i32.const 2312) "\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") + (data $29 (i32.const 2348) ",") + (data $29.1 (i32.const 2360) "\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05") + (data $30 (i32.const 2396) ",") + (data $30.1 (i32.const 2408) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") + (data $31 (i32.const 2444) ",") + (data $31.1 (i32.const 2456) "\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $32 (i32.const 2492) ",") + (data $32.1 (i32.const 2504) "\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $33 (i32.const 2540) ",") + (data $33.1 (i32.const 2552) "\01\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05") + (data $34 (i32.const 2588) ",") + (data $34.1 (i32.const 2600) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") + (data $35 (i32.const 2636) ",") + (data $35.1 (i32.const 2648) "\01\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05") + (data $36 (i32.const 2684) ",") + (data $36.1 (i32.const 2696) "\01\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data $37 (i32.const 2732) ",") + (data $37.1 (i32.const 2744) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05") + (data $38 (i32.const 2780) ",") + (data $38.1 (i32.const 2792) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05") + (data $39 (i32.const 2828) ",") + (data $39.1 (i32.const 2840) "\01\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05") + (data $40 (i32.const 2876) "\1c") + (data $40.1 (i32.const 2888) "\12\00\00\00\08\00\00\00\02") + (data $41 (i32.const 2908) "\1c") + (data $41.1 (i32.const 2920) "\13\00\00\00\08\00\00\00\03") + (data $42 (i32.const 2940) "\1c") + (data $42.1 (i32.const 2952) "\14\00\00\00\08\00\00\00\04") + (data $43 (i32.const 2972) "\1c") + (data $43.1 (i32.const 2984) "\15\00\00\00\08\00\00\00\05") + (data $44 (i32.const 3004) "\1c") + (data $44.1 (i32.const 3016) "\16\00\00\00\08\00\00\00\06") + (data $45 (i32.const 3036) "\1c") + (data $45.1 (i32.const 3048) "\17\00\00\00\08\00\00\00\07") + (data $46 (i32.const 3068) "\1c") + (data $46.1 (i32.const 3080) "\18\00\00\00\08\00\00\00\08") + (data $47 (i32.const 3100) "\1c") + (data $47.1 (i32.const 3112) "\19\00\00\00\08\00\00\00\t") + (data $48 (i32.const 3132) "\1c") + (data $48.1 (i32.const 3144) "\1a\00\00\00\08\00\00\00\n") + (data $49 (i32.const 3164) "\1c") + (data $49.1 (i32.const 3176) "\1b\00\00\00\08\00\00\00\0b") + (data $50 (i32.const 3196) "\1c") + (data $50.1 (i32.const 3208) "\1c\00\00\00\08\00\00\00\0c") + (data $51 (i32.const 3228) "\1c") + (data $51.1 (i32.const 3240) "\12\00\00\00\08\00\00\00\r") + (data $52 (i32.const 3260) "\1c") + (data $52.1 (i32.const 3272) "\13\00\00\00\08\00\00\00\0e") + (data $53 (i32.const 3292) "\1c") + (data $53.1 (i32.const 3304) "\14\00\00\00\08\00\00\00\0f") + (data $54 (i32.const 3324) "\1c") + (data $54.1 (i32.const 3336) "\15\00\00\00\08\00\00\00\10") + (data $55 (i32.const 3356) "\1c") + (data $55.1 (i32.const 3368) "\16\00\00\00\08\00\00\00\11") + (data $56 (i32.const 3388) "\1c") + (data $56.1 (i32.const 3400) "\17\00\00\00\08\00\00\00\12") + (data $57 (i32.const 3420) "\1c") + (data $57.1 (i32.const 3432) "\18\00\00\00\08\00\00\00\13") + (data $58 (i32.const 3452) "\1c") + (data $58.1 (i32.const 3464) "\19\00\00\00\08\00\00\00\14") + (data $59 (i32.const 3484) "\1c") + (data $59.1 (i32.const 3496) "\1a\00\00\00\08\00\00\00\15") + (data $60 (i32.const 3516) "\1c") + (data $60.1 (i32.const 3528) "\1b\00\00\00\08\00\00\00\16") + (data $61 (i32.const 3548) "\1c") + (data $61.1 (i32.const 3560) "\1c\00\00\00\08\00\00\00\17") + (data $62 (i32.const 3580) "\1c") + (data $62.1 (i32.const 3592) "\1d\00\00\00\08\00\00\00\18") + (data $63 (i32.const 3612) "\1c") + (data $63.1 (i32.const 3624) "\1e\00\00\00\08\00\00\00\19") + (data $64 (i32.const 3644) "\1c") + (data $64.1 (i32.const 3656) "\1f\00\00\00\08\00\00\00\1a") + (data $65 (i32.const 3676) "\1c") + (data $65.1 (i32.const 3688) " \00\00\00\08\00\00\00\1b") + (data $66 (i32.const 3708) "\1c") + (data $66.1 (i32.const 3720) "!\00\00\00\08\00\00\00\1c") + (data $67 (i32.const 3740) "\1c") + (data $67.1 (i32.const 3752) "\"\00\00\00\08\00\00\00\1d") + (data $68 (i32.const 3772) "\1c") + (data $68.1 (i32.const 3784) "#\00\00\00\08\00\00\00\1e") + (data $69 (i32.const 3804) "\1c") + (data $69.1 (i32.const 3816) "$\00\00\00\08\00\00\00\1f") + (data $70 (i32.const 3836) "\1c") + (data $70.1 (i32.const 3848) "%\00\00\00\08\00\00\00 ") + (data $71 (i32.const 3868) "\1c") + (data $71.1 (i32.const 3880) "&\00\00\00\08\00\00\00!") + (data $72 (i32.const 3900) "\1c") + (data $72.1 (i32.const 3912) "\'\00\00\00\08\00\00\00\"") + (data $73 (i32.const 3932) "\1c") + (data $73.1 (i32.const 3944) "(\00\00\00\08\00\00\00#") + (data $74 (i32.const 3964) "\1c") + (data $74.1 (i32.const 3976) ")\00\00\00\08\00\00\00$") + (data $75 (i32.const 3996) "\1c") + (data $75.1 (i32.const 4008) "*\00\00\00\08\00\00\00%") + (data $76 (i32.const 4028) "\1c") + (data $76.1 (i32.const 4040) "+\00\00\00\08\00\00\00&") + (data $77 (i32.const 4060) "\1c") + (data $77.1 (i32.const 4072) ",\00\00\00\08\00\00\00\'") + (data $78 (i32.const 4092) "\1c") + (data $78.1 (i32.const 4104) "-\00\00\00\08\00\00\00(") + (data $79 (i32.const 4124) "\1c") + (data $79.1 (i32.const 4136) ".\00\00\00\08\00\00\00)") + (data $80 (i32.const 4156) "\1c") + (data $80.1 (i32.const 4168) "/\00\00\00\08\00\00\00*") + (data $81 (i32.const 4188) "\1c") + (data $81.1 (i32.const 4200) "0\00\00\00\08\00\00\00+") + (data $82 (i32.const 4220) "\1c") + (data $82.1 (i32.const 4232) "1\00\00\00\08\00\00\00,") + (data $83 (i32.const 4252) "\1c") + (data $83.1 (i32.const 4264) "2\00\00\00\08\00\00\00-") + (data $84 (i32.const 4284) "\1c") + (data $84.1 (i32.const 4296) "(\00\00\00\08\00\00\00.") + (data $85 (i32.const 4316) "\1c") + (data $85.1 (i32.const 4328) "(\00\00\00\08\00\00\00/") + (data $86 (i32.const 4348) "\1c") + (data $86.1 (i32.const 4360) ")\00\00\00\08\00\00\000") + (data $87 (i32.const 4380) "\1c") + (data $87.1 (i32.const 4392) ")\00\00\00\08\00\00\001") + (data $88 (i32.const 4412) "\1c") + (data $88.1 (i32.const 4424) "*\00\00\00\08\00\00\002") + (data $89 (i32.const 4444) "\1c") + (data $89.1 (i32.const 4456) "*\00\00\00\08\00\00\003") + (data $90 (i32.const 4476) "\1c") + (data $90.1 (i32.const 4488) "+\00\00\00\08\00\00\004") + (data $91 (i32.const 4508) "\1c") + (data $91.1 (i32.const 4520) "+\00\00\00\08\00\00\005") + (data $92 (i32.const 4540) "\1c") + (data $92.1 (i32.const 4552) ",\00\00\00\08\00\00\006") + (data $93 (i32.const 4572) "\1c") + (data $93.1 (i32.const 4584) ",\00\00\00\08\00\00\007") + (data $94 (i32.const 4604) "\1c") + (data $94.1 (i32.const 4616) "-\00\00\00\08\00\00\008") + (data $95 (i32.const 4636) "\1c") + (data $95.1 (i32.const 4648) "-\00\00\00\08\00\00\009") + (data $96 (i32.const 4668) "\1c") + (data $96.1 (i32.const 4680) ".\00\00\00\08\00\00\00:") + (data $97 (i32.const 4700) "\1c") + (data $97.1 (i32.const 4712) ".\00\00\00\08\00\00\00;") + (data $98 (i32.const 4732) "\1c") + (data $98.1 (i32.const 4744) "/\00\00\00\08\00\00\00<") + (data $99 (i32.const 4764) "\1c") + (data $99.1 (i32.const 4776) "/\00\00\00\08\00\00\00=") + (data $100 (i32.const 4796) "\1c") + (data $100.1 (i32.const 4808) "0\00\00\00\08\00\00\00>") + (data $101 (i32.const 4828) "\1c") + (data $101.1 (i32.const 4840) "0\00\00\00\08\00\00\00?") + (data $102 (i32.const 4860) "\1c") + (data $102.1 (i32.const 4872) "1\00\00\00\08\00\00\00@") + (data $103 (i32.const 4892) "\1c") + (data $103.1 (i32.const 4904) "1\00\00\00\08\00\00\00A") + (data $104 (i32.const 4924) "\1c") + (data $104.1 (i32.const 4936) "2\00\00\00\08\00\00\00B") + (data $105 (i32.const 4956) "\1c") + (data $105.1 (i32.const 4968) "2\00\00\00\08\00\00\00C") + (data $106 (i32.const 4988) "\1c") + (data $106.1 (i32.const 5000) "(\00\00\00\08\00\00\00D") + (data $107 (i32.const 5020) "\1c") + (data $107.1 (i32.const 5032) "(\00\00\00\08\00\00\00E") + (data $108 (i32.const 5052) "\1c") + (data $108.1 (i32.const 5064) ")\00\00\00\08\00\00\00F") + (data $109 (i32.const 5084) "\1c") + (data $109.1 (i32.const 5096) ")\00\00\00\08\00\00\00G") + (data $110 (i32.const 5116) "\1c") + (data $110.1 (i32.const 5128) "*\00\00\00\08\00\00\00H") + (data $111 (i32.const 5148) "\1c") + (data $111.1 (i32.const 5160) "*\00\00\00\08\00\00\00I") + (data $112 (i32.const 5180) "\1c") + (data $112.1 (i32.const 5192) "+\00\00\00\08\00\00\00J") + (data $113 (i32.const 5212) "\1c") + (data $113.1 (i32.const 5224) "+\00\00\00\08\00\00\00K") + (data $114 (i32.const 5244) "\1c") + (data $114.1 (i32.const 5256) ",\00\00\00\08\00\00\00L") + (data $115 (i32.const 5276) "\1c") + (data $115.1 (i32.const 5288) ",\00\00\00\08\00\00\00M") + (data $116 (i32.const 5308) "\1c") + (data $116.1 (i32.const 5320) "-\00\00\00\08\00\00\00N") + (data $117 (i32.const 5340) "\1c") + (data $117.1 (i32.const 5352) "-\00\00\00\08\00\00\00O") + (data $118 (i32.const 5372) "\1c") + (data $118.1 (i32.const 5384) ".\00\00\00\08\00\00\00P") + (data $119 (i32.const 5404) "\1c") + (data $119.1 (i32.const 5416) ".\00\00\00\08\00\00\00Q") + (data $120 (i32.const 5436) "\1c") + (data $120.1 (i32.const 5448) "/\00\00\00\08\00\00\00R") + (data $121 (i32.const 5468) "\1c") + (data $121.1 (i32.const 5480) "/\00\00\00\08\00\00\00S") + (data $122 (i32.const 5500) "\1c") + (data $122.1 (i32.const 5512) "0\00\00\00\08\00\00\00T") + (data $123 (i32.const 5532) "\1c") + (data $123.1 (i32.const 5544) "0\00\00\00\08\00\00\00U") + (data $124 (i32.const 5564) "\1c") + (data $124.1 (i32.const 5576) "1\00\00\00\08\00\00\00V") + (data $125 (i32.const 5596) "\1c") + (data $125.1 (i32.const 5608) "1\00\00\00\08\00\00\00W") + (data $126 (i32.const 5628) "\1c") + (data $126.1 (i32.const 5640) "2\00\00\00\08\00\00\00X") + (data $127 (i32.const 5660) "\1c") + (data $127.1 (i32.const 5672) "2\00\00\00\08\00\00\00Y") + (data $128 (i32.const 5692) "\1c") + (data $128.1 (i32.const 5704) "(\00\00\00\08\00\00\00Z") + (data $129 (i32.const 5724) "\1c") + (data $129.1 (i32.const 5736) "(\00\00\00\08\00\00\00[") + (data $130 (i32.const 5756) "\1c") + (data $130.1 (i32.const 5768) ")\00\00\00\08\00\00\00\\") + (data $131 (i32.const 5788) "\1c") + (data $131.1 (i32.const 5800) ")\00\00\00\08\00\00\00]") + (data $132 (i32.const 5820) "\1c") + (data $132.1 (i32.const 5832) "*\00\00\00\08\00\00\00^") + (data $133 (i32.const 5852) "\1c") + (data $133.1 (i32.const 5864) "*\00\00\00\08\00\00\00_") + (data $134 (i32.const 5884) "\1c") + (data $134.1 (i32.const 5896) "+\00\00\00\08\00\00\00`") + (data $135 (i32.const 5916) "\1c") + (data $135.1 (i32.const 5928) "+\00\00\00\08\00\00\00a") + (data $136 (i32.const 5948) "\1c") + (data $136.1 (i32.const 5960) ",\00\00\00\08\00\00\00b") + (data $137 (i32.const 5980) "\1c") + (data $137.1 (i32.const 5992) ",\00\00\00\08\00\00\00c") + (data $138 (i32.const 6012) "\1c") + (data $138.1 (i32.const 6024) "-\00\00\00\08\00\00\00d") + (data $139 (i32.const 6044) "\1c") + (data $139.1 (i32.const 6056) "-\00\00\00\08\00\00\00e") + (data $140 (i32.const 6076) "\1c") + (data $140.1 (i32.const 6088) ".\00\00\00\08\00\00\00f") + (data $141 (i32.const 6108) "\1c") + (data $141.1 (i32.const 6120) ".\00\00\00\08\00\00\00g") + (data $142 (i32.const 6140) "\1c") + (data $142.1 (i32.const 6152) "/\00\00\00\08\00\00\00h") + (data $143 (i32.const 6172) "\1c") + (data $143.1 (i32.const 6184) "/\00\00\00\08\00\00\00i") + (data $144 (i32.const 6204) "\1c") + (data $144.1 (i32.const 6216) "0\00\00\00\08\00\00\00j") + (data $145 (i32.const 6236) "\1c") + (data $145.1 (i32.const 6248) "0\00\00\00\08\00\00\00k") + (data $146 (i32.const 6268) "\1c") + (data $146.1 (i32.const 6280) "1\00\00\00\08\00\00\00l") + (data $147 (i32.const 6300) "\1c") + (data $147.1 (i32.const 6312) "1\00\00\00\08\00\00\00m") + (data $148 (i32.const 6332) "\1c") + (data $148.1 (i32.const 6344) "2\00\00\00\08\00\00\00n") + (data $149 (i32.const 6364) "\1c") + (data $149.1 (i32.const 6376) "2\00\00\00\08\00\00\00o") + (data $150 (i32.const 6396) "\1c") + (data $150.1 (i32.const 6408) "(\00\00\00\08\00\00\00p") + (data $151 (i32.const 6428) "\1c") + (data $151.1 (i32.const 6440) "(\00\00\00\08\00\00\00q") + (data $152 (i32.const 6460) "\1c") + (data $152.1 (i32.const 6472) ")\00\00\00\08\00\00\00r") + (data $153 (i32.const 6492) "\1c") + (data $153.1 (i32.const 6504) ")\00\00\00\08\00\00\00s") + (data $154 (i32.const 6524) "\1c") + (data $154.1 (i32.const 6536) "*\00\00\00\08\00\00\00t") + (data $155 (i32.const 6556) "\1c") + (data $155.1 (i32.const 6568) "*\00\00\00\08\00\00\00u") + (data $156 (i32.const 6588) "\1c") + (data $156.1 (i32.const 6600) "+\00\00\00\08\00\00\00v") + (data $157 (i32.const 6620) "\1c") + (data $157.1 (i32.const 6632) "+\00\00\00\08\00\00\00w") + (data $158 (i32.const 6652) "\1c") + (data $158.1 (i32.const 6664) ",\00\00\00\08\00\00\00x") + (data $159 (i32.const 6684) "\1c") + (data $159.1 (i32.const 6696) ",\00\00\00\08\00\00\00y") + (data $160 (i32.const 6716) "\1c") + (data $160.1 (i32.const 6728) "-\00\00\00\08\00\00\00z") + (data $161 (i32.const 6748) "\1c") + (data $161.1 (i32.const 6760) "-\00\00\00\08\00\00\00{") + (data $162 (i32.const 6780) "\1c") + (data $162.1 (i32.const 6792) ".\00\00\00\08\00\00\00|") + (data $163 (i32.const 6812) "\1c") + (data $163.1 (i32.const 6824) ".\00\00\00\08\00\00\00}") + (data $164 (i32.const 6844) "\1c") + (data $164.1 (i32.const 6856) "/\00\00\00\08\00\00\00~") + (data $165 (i32.const 6876) "\1c") + (data $165.1 (i32.const 6888) "/\00\00\00\08\00\00\00\7f") + (data $166 (i32.const 6908) "\1c") + (data $166.1 (i32.const 6920) "0\00\00\00\08\00\00\00\80") + (data $167 (i32.const 6940) "\1c") + (data $167.1 (i32.const 6952) "0\00\00\00\08\00\00\00\81") + (data $168 (i32.const 6972) "\1c") + (data $168.1 (i32.const 6984) "1\00\00\00\08\00\00\00\82") + (data $169 (i32.const 7004) "\1c") + (data $169.1 (i32.const 7016) "1\00\00\00\08\00\00\00\83") + (data $170 (i32.const 7036) "\1c") + (data $170.1 (i32.const 7048) "2\00\00\00\08\00\00\00\84") + (data $171 (i32.const 7068) "\1c") + (data $171.1 (i32.const 7080) "2\00\00\00\08\00\00\00\85") + (data $172 (i32.const 7100) "\1c") + (data $172.1 (i32.const 7112) "\01\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e") + (data $173 (i32.const 7132) ",") + (data $173.1 (i32.const 7144) "\11\00\00\00\10\00\00\00\d0\1b\00\00\d0\1b\00\00\0c\00\00\00\03") + (data $174 (i32.const 7180) "\1c") + (data $174.1 (i32.const 7192) "3\00\00\00\08\00\00\00\86") + (data $175 (i32.const 7212) "\1c") + (data $175.1 (i32.const 7224) "4\00\00\00\08\00\00\00\87") + (data $176 (i32.const 7244) "\1c") + (data $176.1 (i32.const 7256) "5\00\00\00\08\00\00\00\88") + (data $177 (i32.const 7276) "\1c") + (data $177.1 (i32.const 7288) "6\00\00\00\08\00\00\00\89") + (data $178 (i32.const 7308) "\1c") + (data $178.1 (i32.const 7320) "7\00\00\00\08\00\00\00\8a") + (data $179 (i32.const 7340) "\1c") + (data $179.1 (i32.const 7352) "8\00\00\00\08\00\00\00\8b") + (data $180 (i32.const 7372) "\1c") + (data $180.1 (i32.const 7384) "9\00\00\00\08\00\00\00\8c") + (data $181 (i32.const 7404) "\1c") + (data $181.1 (i32.const 7416) ":\00\00\00\08\00\00\00\8d") + (data $182 (i32.const 7436) "\1c") + (data $182.1 (i32.const 7448) ";\00\00\00\08\00\00\00\8e") + (data $183 (i32.const 7468) "\1c") + (data $183.1 (i32.const 7480) "<\00\00\00\08\00\00\00\8f") + (data $184 (i32.const 7500) "\1c") + (data $184.1 (i32.const 7512) "=\00\00\00\08\00\00\00\90") + (data $185 (i32.const 7532) "<") + (data $185.1 (i32.const 7544) "\01\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data $186 (i32.const 7596) ",") + (data $186.1 (i32.const 7608) "\11\00\00\00\10\00\00\00\80\1d\00\00\80\1d\00\00$\00\00\00\t") + (data $187 (i32.const 7644) "<") + (data $187.1 (i32.const 7656) "\01\00\00\00,\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\n") + (data $188 (i32.const 7708) ",") + (data $188.1 (i32.const 7720) "\11\00\00\00\10\00\00\00\f0\1d\00\00\f0\1d\00\00,\00\00\00\0b") + (data $189 (i32.const 7756) "\1c") + (data $189.1 (i32.const 7768) "\02") + (data $190 (i32.const 7788) "|") + (data $190.1 (i32.const 7800) "\02\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 $191 (i32.const 7916) "<") + (data $191.1 (i32.const 7928) "\02\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 $192 (i32.const 7980) "\1c") + (data $192.1 (i32.const 7992) "\02\00\00\00\02\00\00\000") + (data $193 (i32.const 8012) "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 $194 (i32.const 8412) "\1c\04") + (data $194.1 (i32.const 8424) "\02\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 $195 (i32.const 9468) "\\") + (data $195.1 (i32.const 9480) "\02\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 $196 (i32.const 9564) "\1c") + (data $196.1 (i32.const 9576) "\02\00\00\00\02\00\00\00,") + (data $197 (i32.const 9596) ",") + (data $197.1 (i32.const 9608) "\02\00\00\00\12\00\00\001\00,\002\00,\003\00,\004\00,\005") + (data $198 (i32.const 9644) "\1c") + (data $198.1 (i32.const 9656) "\02\00\00\00\06\00\00\000\00.\000") + (data $199 (i32.const 9676) "\1c") + (data $199.1 (i32.const 9688) "\02\00\00\00\06\00\00\00N\00a\00N") + (data $200 (i32.const 9708) ",") + (data $200.1 (i32.const 9720) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") (data $201 (i32.const 9756) ",") - (data $201.1 (i32.const 9768) "\02\00\00\00\12\00\00\001\00,\002\00,\003\00,\004\00,\005") - (data $202 (i32.const 9804) "\1c") - (data $202.1 (i32.const 9816) "\02\00\00\00\06\00\00\000\00.\000") - (data $203 (i32.const 9836) "\1c") - (data $203.1 (i32.const 9848) "\02\00\00\00\06\00\00\00N\00a\00N") - (data $204 (i32.const 9868) ",") - (data $204.1 (i32.const 9880) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data $205 (i32.const 9916) ",") - (data $205.1 (i32.const 9928) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data $207 (i32.const 10024) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\10\00\00\00\d0+\00\00\d0+\00\00\0c\00\00\00\03") - (data $217 (i32.const 11276) ",") - (data $217.1 (i32.const 11288) "\01\00\00\00\18") - (data $217.2 (i32.const 11302) "\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff") + (data $212.1 (i32.const 11080) ">\00\00\00\10\00\00\000+\00\000+\00\00\0c\00\00\00\03") + (data $213 (i32.const 11116) ",") + (data $213.1 (i32.const 11128) "\01\00\00\00\18") + (data $213.2 (i32.const 11142) "\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff") + (data $214 (i32.const 11164) ",") + (data $214.1 (i32.const 11176) "?\00\00\00\10\00\00\00\80+\00\00\80+\00\00\18\00\00\00\03") + (data $215 (i32.const 11212) "\1c") + (data $215.1 (i32.const 11224) "\01\00\00\00\03\00\00\00\92\91\90") + (data $216 (i32.const 11244) ",") + (data $216.1 (i32.const 11256) "\10\00\00\00\10\00\00\00\e0+\00\00\e0+\00\00\03\00\00\00\03") + (data $217 (i32.const 11292) "\1c") + (data $217.1 (i32.const 11304) "\01\00\00\00\n\00\00\00\01\02\03") (data $218 (i32.const 11324) ",") - (data $218.1 (i32.const 11336) "?\00\00\00\10\00\00\00 ,\00\00 ,\00\00\18\00\00\00\03") + (data $218.1 (i32.const 11336) "\02\00\00\00\12\00\00\00I\00n\00t\008\00A\00r\00r\00a\00y") (data $219 (i32.const 11372) "\1c") - (data $219.1 (i32.const 11384) "\01\00\00\00\03\00\00\00\92\91\90") - (data $220 (i32.const 11404) ",") - (data $220.1 (i32.const 11416) "\10\00\00\00\10\00\00\00\80,\00\00\80,\00\00\03\00\00\00\03") - (data $221 (i32.const 11452) "\1c") - (data $221.1 (i32.const 11464) "\01\00\00\00\n\00\00\00\01\02\03") - (data $222 (i32.const 11484) ",") - (data $222.1 (i32.const 11496) "\02\00\00\00\12\00\00\00I\00n\00t\008\00A\00r\00r\00a\00y") - (data $223 (i32.const 11532) "\1c") - (data $223.1 (i32.const 11544) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06") - (data $224 (i32.const 11564) "\1c") - (data $224.1 (i32.const 11576) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t") - (data $225 (i32.const 11596) "\1c") - (data $225.1 (i32.const 11608) "\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t") - (data $226 (i32.const 11628) "\1c") - (data $226.1 (i32.const 11640) "\01\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90") - (data $227 (i32.const 11660) "\1c") - (data $227.1 (i32.const 11672) "\01\00\00\00\n\00\00\00\01\02\03") - (data $228 (i32.const 11692) ",") - (data $228.1 (i32.const 11704) "\02\00\00\00\14\00\00\00U\00i\00n\00t\008\00A\00r\00r\00a\00y") - (data $229 (i32.const 11740) "\1c") - (data $229.1 (i32.const 11752) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06") - (data $230 (i32.const 11772) "\1c") - (data $230.1 (i32.const 11784) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t") + (data $219.1 (i32.const 11384) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06") + (data $220 (i32.const 11404) "\1c") + (data $220.1 (i32.const 11416) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t") + (data $221 (i32.const 11436) "\1c") + (data $221.1 (i32.const 11448) "\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t") + (data $222 (i32.const 11468) "\1c") + (data $222.1 (i32.const 11480) "\01\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90") + (data $223 (i32.const 11500) "\1c") + (data $223.1 (i32.const 11512) "\01\00\00\00\n\00\00\00\01\02\03") + (data $224 (i32.const 11532) ",") + (data $224.1 (i32.const 11544) "\02\00\00\00\14\00\00\00U\00i\00n\00t\008\00A\00r\00r\00a\00y") + (data $225 (i32.const 11580) "\1c") + (data $225.1 (i32.const 11592) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06") + (data $226 (i32.const 11612) "\1c") + (data $226.1 (i32.const 11624) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t") + (data $227 (i32.const 11644) "\1c") + (data $227.1 (i32.const 11656) "\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t") + (data $228 (i32.const 11676) "\1c") + (data $228.1 (i32.const 11688) "\01\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90") + (data $229 (i32.const 11708) "\1c") + (data $229.1 (i32.const 11720) "\01\00\00\00\n\00\00\00\01\02\03") + (data $230 (i32.const 11740) "<") + (data $230.1 (i32.const 11752) "\02\00\00\00\"\00\00\00U\00i\00n\00t\008\00C\00l\00a\00m\00p\00e\00d\00A\00r\00r\00a\00y") (data $231 (i32.const 11804) "\1c") - (data $231.1 (i32.const 11816) "\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t") + (data $231.1 (i32.const 11816) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06") (data $232 (i32.const 11836) "\1c") - (data $232.1 (i32.const 11848) "\01\00\00\00\n\00\00\00defg\e8\e9\ea\92\91\90") + (data $232.1 (i32.const 11848) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t") (data $233 (i32.const 11868) "\1c") - (data $233.1 (i32.const 11880) "\01\00\00\00\n\00\00\00\01\02\03") - (data $234 (i32.const 11900) "<") - (data $234.1 (i32.const 11912) "\02\00\00\00\"\00\00\00U\00i\00n\00t\008\00C\00l\00a\00m\00p\00e\00d\00A\00r\00r\00a\00y") - (data $235 (i32.const 11964) "\1c") - (data $235.1 (i32.const 11976) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06") - (data $236 (i32.const 11996) "\1c") - (data $236.1 (i32.const 12008) "\01\00\00\00\n\00\00\00\01\02\03\04\05\06\07\08\t") - (data $237 (i32.const 12028) "\1c") - (data $237.1 (i32.const 12040) "\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t") - (data $238 (i32.const 12060) "\1c") - (data $238.1 (i32.const 12072) "\01\00\00\00\n\00\00\00defg\ff\ff\ff") - (data $239 (i32.const 12092) ",") - (data $239.1 (i32.const 12104) "\01\00\00\00\14\00\00\00\01\00\02\00\03") - (data $240 (i32.const 12140) ",") - (data $240.1 (i32.const 12152) "\02\00\00\00\14\00\00\00I\00n\00t\001\006\00A\00r\00r\00a\00y") - (data $241 (i32.const 12188) ",") - (data $241.1 (i32.const 12200) "\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06") - (data $242 (i32.const 12236) ",") - (data $242.1 (i32.const 12248) "\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t") - (data $243 (i32.const 12284) ",") - (data $243.1 (i32.const 12296) "\01\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t") - (data $244 (i32.const 12332) ",") - (data $244.1 (i32.const 12344) "\01\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff") - (data $245 (i32.const 12380) ",") - (data $245.1 (i32.const 12392) "\01\00\00\00\14\00\00\00\01\00\02\00\03") - (data $246 (i32.const 12428) ",") - (data $246.1 (i32.const 12440) "\02\00\00\00\16\00\00\00U\00i\00n\00t\001\006\00A\00r\00r\00a\00y") - (data $247 (i32.const 12476) ",") - (data $247.1 (i32.const 12488) "\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06") - (data $248 (i32.const 12524) ",") - (data $248.1 (i32.const 12536) "\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t") - (data $249 (i32.const 12572) ",") - (data $249.1 (i32.const 12584) "\01\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t") - (data $250 (i32.const 12620) ",") - (data $250.1 (i32.const 12632) "\01\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff") - (data $251 (i32.const 12668) "<") - (data $251.1 (i32.const 12680) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03") - (data $252 (i32.const 12732) ",") - (data $252.1 (i32.const 12744) "\02\00\00\00\14\00\00\00I\00n\00t\003\002\00A\00r\00r\00a\00y") - (data $253 (i32.const 12780) "<") - (data $253.1 (i32.const 12792) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06") - (data $254 (i32.const 12844) "<") - (data $254.1 (i32.const 12856) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") - (data $255 (i32.const 12908) "<") - (data $255.1 (i32.const 12920) "\01\00\00\00(\00\00\00\01\00\00\00\02") - (data $255.2 (i32.const 12948) "\06\00\00\00\07\00\00\00\08\00\00\00\t") - (data $256 (i32.const 12972) "<") - (data $256.1 (i32.const 12984) "\01\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff") - (data $257 (i32.const 13036) "<") - (data $257.1 (i32.const 13048) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03") - (data $258 (i32.const 13100) ",") - (data $258.1 (i32.const 13112) "\02\00\00\00\16\00\00\00U\00i\00n\00t\003\002\00A\00r\00r\00a\00y") - (data $259 (i32.const 13148) "<") - (data $259.1 (i32.const 13160) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06") - (data $260 (i32.const 13212) "<") - (data $260.1 (i32.const 13224) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") - (data $261 (i32.const 13276) "<") - (data $261.1 (i32.const 13288) "\01\00\00\00(\00\00\00\01\00\00\00\02") - (data $261.2 (i32.const 13316) "\06\00\00\00\07\00\00\00\08\00\00\00\t") - (data $262 (i32.const 13340) "<") - (data $262.1 (i32.const 13352) "\01\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff") - (data $263 (i32.const 13404) "l") - (data $263.1 (i32.const 13416) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03") - (data $264 (i32.const 13516) ",") - (data $264.1 (i32.const 13528) "\02\00\00\00\14\00\00\00I\00n\00t\006\004\00A\00r\00r\00a\00y") - (data $265 (i32.const 13564) "l") - (data $265.1 (i32.const 13576) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06") - (data $266 (i32.const 13676) "l") - (data $266.1 (i32.const 13688) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") - (data $267 (i32.const 13788) "l") - (data $267.1 (i32.const 13800) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02") - (data $267.2 (i32.const 13848) "\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") - (data $268 (i32.const 13900) "l") - (data $268.1 (i32.const 13912) "\01\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff") - (data $269 (i32.const 14012) "l") - (data $269.1 (i32.const 14024) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03") - (data $270 (i32.const 14124) ",") - (data $270.1 (i32.const 14136) "\02\00\00\00\16\00\00\00U\00i\00n\00t\006\004\00A\00r\00r\00a\00y") - (data $271 (i32.const 14172) "l") - (data $271.1 (i32.const 14184) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06") - (data $272 (i32.const 14284) "l") - (data $272.1 (i32.const 14296) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") - (data $273 (i32.const 14396) "l") - (data $273.1 (i32.const 14408) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02") - (data $273.2 (i32.const 14456) "\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") - (data $274 (i32.const 14508) "l") - (data $274.1 (i32.const 14520) "\01\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff") - (data $275 (i32.const 14620) "<") - (data $275.1 (i32.const 14632) "\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@") - (data $276 (i32.const 14684) ",") - (data $276.1 (i32.const 14696) "\02\00\00\00\18\00\00\00F\00l\00o\00a\00t\003\002\00A\00r\00r\00a\00y") - (data $277 (i32.const 14732) "<") - (data $277.1 (i32.const 14744) "\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@") - (data $278 (i32.const 14796) "<") - (data $278.1 (i32.const 14808) "\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@\00\00\e0@\00\00\00A\00\00\10A") - (data $279 (i32.const 14860) "<") - (data $279.1 (i32.const 14872) "\01\00\00\00(\00\00\00\00\00\c8B\00\00\caB\00\00\ccB\00\00\ceB\00\00zD\00@zD\00\80zD\00\00\dc\c2\00\00\de\c2\00\00\e0\c2") - (data $280 (i32.const 14924) "l") - (data $280.1 (i32.const 14936) "\01\00\00\00P") - (data $280.2 (i32.const 14950) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@") - (data $281 (i32.const 15036) ",") - (data $281.1 (i32.const 15048) "\02\00\00\00\18\00\00\00F\00l\00o\00a\00t\006\004\00A\00r\00r\00a\00y") - (data $282 (i32.const 15084) "l") - (data $282.1 (i32.const 15096) "\01\00\00\00P") - (data $282.2 (i32.const 15110) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@") - (data $283 (i32.const 15196) "l") - (data $283.1 (i32.const 15208) "\01\00\00\00P") - (data $283.2 (i32.const 15222) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\1c@\00\00\00\00\00\00 @\00\00\00\00\00\00\"@") - (data $284 (i32.const 15308) "l") - (data $284.1 (i32.const 15320) "\01\00\00\00P") - (data $284.2 (i32.const 15334) "Y@\00\00\00\00\00@Y@\00\00\00\00\00\80Y@\00\00\00\00\00\c0Y@\00\00\00\00\00@\8f@\00\00\00\00\00H\8f@\00\00\00\00\00P\8f@\00\00\00\00\00\80[\c0\00\00\00\00\00\c0[\c0\00\00\00\00\00\00\\\c0") - (data $285 (i32.const 15420) "\1c") - (data $285.1 (i32.const 15432) "\01\00\00\00\n\00\00\00\00\ff\00\00\00d\n\ff\ff") - (data $286 (i32.const 15452) "\1c") - (data $286.1 (i32.const 15464) "\01\00\00\00\n\00\00\00\01\ffd\ff\00\00d\n\ff") - (data $287 (i32.const 15484) "\1c") - (data $287.1 (i32.const 15496) "F\00\00\00\08\00\00\00\91") - (data $288 (i32.const 15516) "\1c") - (data $288.1 (i32.const 15528) "F\00\00\00\08\00\00\00\92") - (data $289 (i32.const 15548) "\1c") - (data $289.1 (i32.const 15560) "G\00\00\00\08\00\00\00\93") - (data $290 (i32.const 15580) "\1c") - (data $290.1 (i32.const 15592) "G\00\00\00\08\00\00\00\94") - (data $291 (i32.const 15612) "\1c") - (data $291.1 (i32.const 15624) "G\00\00\00\08\00\00\00\95") - (data $292 (i32.const 15644) "\1c") - (data $292.1 (i32.const 15656) "G\00\00\00\08\00\00\00\96") - (data $293 (i32.const 15676) "\1c") - (data $293.1 (i32.const 15688) "H\00\00\00\08\00\00\00\97") - (data $294 (i32.const 15708) "\1c") - (data $294.1 (i32.const 15720) "H\00\00\00\08\00\00\00\98") - (data $295 (i32.const 15740) "\1c") - (data $295.1 (i32.const 15752) "I\00\00\00\08\00\00\00\99") - (data $296 (i32.const 15772) "\1c") - (data $296.1 (i32.const 15784) "I\00\00\00\08\00\00\00\9a") - (data $297 (i32.const 15804) "\1c") - (data $297.1 (i32.const 15816) "J\00\00\00\08\00\00\00\9b") - (data $298 (i32.const 15836) "\1c") - (data $298.1 (i32.const 15848) "J\00\00\00\08\00\00\00\9c") - (data $299 (i32.const 15868) "\1c") - (data $299.1 (i32.const 15880) "K\00\00\00\08\00\00\00\9d") - (data $300 (i32.const 15900) "\1c") - (data $300.1 (i32.const 15912) "K\00\00\00\08\00\00\00\9e") - (data $301 (i32.const 15932) "\1c") - (data $301.1 (i32.const 15944) "L\00\00\00\08\00\00\00\9f") - (data $302 (i32.const 15964) "\1c") - (data $302.1 (i32.const 15976) "L\00\00\00\08\00\00\00\a0") - (data $303 (i32.const 15996) "\1c") - (data $303.1 (i32.const 16008) "M\00\00\00\08\00\00\00\a1") - (data $304 (i32.const 16028) "\1c") - (data $304.1 (i32.const 16040) "M\00\00\00\08\00\00\00\a2") - (data $305 (i32.const 16060) "\1c") - (data $305.1 (i32.const 16072) "N\00\00\00\08\00\00\00\a3") - (data $306 (i32.const 16092) "\1c") - (data $306.1 (i32.const 16104) "N\00\00\00\08\00\00\00\a4") - (data $307 (i32.const 16124) "\1c") - (data $307.1 (i32.const 16136) "\0f\00\00\00\08\00\00\00\a5") - (data $308 (i32.const 16160) "O\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00\00\00\00\00B\08\00\00\02\t") - (data $308.1 (i32.const 16412) "\02\19\00\00\02\1a\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\01\00\00\02\n\00\00\02\02") + (data $233.1 (i32.const 11880) "\01\00\00\00\n\00\00\00\01\02\00\00\00\06\07\08\t") + (data $234 (i32.const 11900) "\1c") + (data $234.1 (i32.const 11912) "\01\00\00\00\n\00\00\00defg\ff\ff\ff") + (data $235 (i32.const 11932) ",") + (data $235.1 (i32.const 11944) "\01\00\00\00\14\00\00\00\01\00\02\00\03") + (data $236 (i32.const 11980) ",") + (data $236.1 (i32.const 11992) "\02\00\00\00\14\00\00\00I\00n\00t\001\006\00A\00r\00r\00a\00y") + (data $237 (i32.const 12028) ",") + (data $237.1 (i32.const 12040) "\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06") + (data $238 (i32.const 12076) ",") + (data $238.1 (i32.const 12088) "\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t") + (data $239 (i32.const 12124) ",") + (data $239.1 (i32.const 12136) "\01\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t") + (data $240 (i32.const 12172) ",") + (data $240.1 (i32.const 12184) "\01\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff") + (data $241 (i32.const 12220) ",") + (data $241.1 (i32.const 12232) "\01\00\00\00\14\00\00\00\01\00\02\00\03") + (data $242 (i32.const 12268) ",") + (data $242.1 (i32.const 12280) "\02\00\00\00\16\00\00\00U\00i\00n\00t\001\006\00A\00r\00r\00a\00y") + (data $243 (i32.const 12316) ",") + (data $243.1 (i32.const 12328) "\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06") + (data $244 (i32.const 12364) ",") + (data $244.1 (i32.const 12376) "\01\00\00\00\14\00\00\00\01\00\02\00\03\00\04\00\05\00\06\00\07\00\08\00\t") + (data $245 (i32.const 12412) ",") + (data $245.1 (i32.const 12424) "\01\00\00\00\14\00\00\00\01\00\02\00\00\00\00\00\00\00\06\00\07\00\08\00\t") + (data $246 (i32.const 12460) ",") + (data $246.1 (i32.const 12472) "\01\00\00\00\14\00\00\00d\00e\00f\00g\00\e8\03\e9\03\ea\03\92\ff\91\ff\90\ff") + (data $247 (i32.const 12508) "<") + (data $247.1 (i32.const 12520) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03") + (data $248 (i32.const 12572) ",") + (data $248.1 (i32.const 12584) "\02\00\00\00\14\00\00\00I\00n\00t\003\002\00A\00r\00r\00a\00y") + (data $249 (i32.const 12620) "<") + (data $249.1 (i32.const 12632) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06") + (data $250 (i32.const 12684) "<") + (data $250.1 (i32.const 12696) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data $251 (i32.const 12748) "<") + (data $251.1 (i32.const 12760) "\01\00\00\00(\00\00\00\01\00\00\00\02") + (data $251.2 (i32.const 12788) "\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data $252 (i32.const 12812) "<") + (data $252.1 (i32.const 12824) "\01\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff") + (data $253 (i32.const 12876) "<") + (data $253.1 (i32.const 12888) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03") + (data $254 (i32.const 12940) ",") + (data $254.1 (i32.const 12952) "\02\00\00\00\16\00\00\00U\00i\00n\00t\003\002\00A\00r\00r\00a\00y") + (data $255 (i32.const 12988) "<") + (data $255.1 (i32.const 13000) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06") + (data $256 (i32.const 13052) "<") + (data $256.1 (i32.const 13064) "\01\00\00\00(\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data $257 (i32.const 13116) "<") + (data $257.1 (i32.const 13128) "\01\00\00\00(\00\00\00\01\00\00\00\02") + (data $257.2 (i32.const 13156) "\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data $258 (i32.const 13180) "<") + (data $258.1 (i32.const 13192) "\01\00\00\00(\00\00\00d\00\00\00e\00\00\00f\00\00\00g\00\00\00\e8\03\00\00\e9\03\00\00\ea\03\00\00\92\ff\ff\ff\91\ff\ff\ff\90\ff\ff\ff") + (data $259 (i32.const 13244) "l") + (data $259.1 (i32.const 13256) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03") + (data $260 (i32.const 13356) ",") + (data $260.1 (i32.const 13368) "\02\00\00\00\14\00\00\00I\00n\00t\006\004\00A\00r\00r\00a\00y") + (data $261 (i32.const 13404) "l") + (data $261.1 (i32.const 13416) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06") + (data $262 (i32.const 13516) "l") + (data $262.1 (i32.const 13528) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") + (data $263 (i32.const 13628) "l") + (data $263.1 (i32.const 13640) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02") + (data $263.2 (i32.const 13688) "\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") + (data $264 (i32.const 13740) "l") + (data $264.1 (i32.const 13752) "\01\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff") + (data $265 (i32.const 13852) "l") + (data $265.1 (i32.const 13864) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03") + (data $266 (i32.const 13964) ",") + (data $266.1 (i32.const 13976) "\02\00\00\00\16\00\00\00U\00i\00n\00t\006\004\00A\00r\00r\00a\00y") + (data $267 (i32.const 14012) "l") + (data $267.1 (i32.const 14024) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06") + (data $268 (i32.const 14124) "l") + (data $268.1 (i32.const 14136) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") + (data $269 (i32.const 14236) "l") + (data $269.1 (i32.const 14248) "\01\00\00\00P\00\00\00\01\00\00\00\00\00\00\00\02") + (data $269.2 (i32.const 14296) "\06\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\t") + (data $270 (i32.const 14348) "l") + (data $270.1 (i32.const 14360) "\01\00\00\00P\00\00\00d\00\00\00\00\00\00\00e\00\00\00\00\00\00\00f\00\00\00\00\00\00\00g\00\00\00\00\00\00\00\e8\03\00\00\00\00\00\00\e9\03\00\00\00\00\00\00\ea\03\00\00\00\00\00\00\92\ff\ff\ff\ff\ff\ff\ff\91\ff\ff\ff\ff\ff\ff\ff\90\ff\ff\ff\ff\ff\ff\ff") + (data $271 (i32.const 14460) "<") + (data $271.1 (i32.const 14472) "\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@") + (data $272 (i32.const 14524) ",") + (data $272.1 (i32.const 14536) "\02\00\00\00\18\00\00\00F\00l\00o\00a\00t\003\002\00A\00r\00r\00a\00y") + (data $273 (i32.const 14572) "<") + (data $273.1 (i32.const 14584) "\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@") + (data $274 (i32.const 14636) "<") + (data $274.1 (i32.const 14648) "\01\00\00\00(\00\00\00\00\00\80?\00\00\00@\00\00@@\00\00\80@\00\00\a0@\00\00\c0@\00\00\e0@\00\00\00A\00\00\10A") + (data $275 (i32.const 14700) "<") + (data $275.1 (i32.const 14712) "\01\00\00\00(\00\00\00\00\00\c8B\00\00\caB\00\00\ccB\00\00\ceB\00\00zD\00@zD\00\80zD\00\00\dc\c2\00\00\de\c2\00\00\e0\c2") + (data $276 (i32.const 14764) "l") + (data $276.1 (i32.const 14776) "\01\00\00\00P") + (data $276.2 (i32.const 14790) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@") + (data $277 (i32.const 14876) ",") + (data $277.1 (i32.const 14888) "\02\00\00\00\18\00\00\00F\00l\00o\00a\00t\006\004\00A\00r\00r\00a\00y") + (data $278 (i32.const 14924) "l") + (data $278.1 (i32.const 14936) "\01\00\00\00P") + (data $278.2 (i32.const 14950) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@") + (data $279 (i32.const 15036) "l") + (data $279.1 (i32.const 15048) "\01\00\00\00P") + (data $279.2 (i32.const 15062) "\f0?\00\00\00\00\00\00\00@\00\00\00\00\00\00\08@\00\00\00\00\00\00\10@\00\00\00\00\00\00\14@\00\00\00\00\00\00\18@\00\00\00\00\00\00\1c@\00\00\00\00\00\00 @\00\00\00\00\00\00\"@") + (data $280 (i32.const 15148) "l") + (data $280.1 (i32.const 15160) "\01\00\00\00P") + (data $280.2 (i32.const 15174) "Y@\00\00\00\00\00@Y@\00\00\00\00\00\80Y@\00\00\00\00\00\c0Y@\00\00\00\00\00@\8f@\00\00\00\00\00H\8f@\00\00\00\00\00P\8f@\00\00\00\00\00\80[\c0\00\00\00\00\00\c0[\c0\00\00\00\00\00\00\\\c0") + (data $281 (i32.const 15260) "\1c") + (data $281.1 (i32.const 15272) "\01\00\00\00\n\00\00\00\00\ff\00\00\00d\n\ff\ff") + (data $282 (i32.const 15292) "\1c") + (data $282.1 (i32.const 15304) "\01\00\00\00\n\00\00\00\01\ffd\ff\00\00d\n\ff") + (data $283 (i32.const 15324) "\1c") + (data $283.1 (i32.const 15336) "F\00\00\00\08\00\00\00\91") + (data $284 (i32.const 15356) "\1c") + (data $284.1 (i32.const 15368) "F\00\00\00\08\00\00\00\92") + (data $285 (i32.const 15388) "\1c") + (data $285.1 (i32.const 15400) "G\00\00\00\08\00\00\00\93") + (data $286 (i32.const 15420) "\1c") + (data $286.1 (i32.const 15432) "G\00\00\00\08\00\00\00\94") + (data $287 (i32.const 15452) "\1c") + (data $287.1 (i32.const 15464) "G\00\00\00\08\00\00\00\95") + (data $288 (i32.const 15484) "\1c") + (data $288.1 (i32.const 15496) "G\00\00\00\08\00\00\00\96") + (data $289 (i32.const 15516) "\1c") + (data $289.1 (i32.const 15528) "H\00\00\00\08\00\00\00\97") + (data $290 (i32.const 15548) "\1c") + (data $290.1 (i32.const 15560) "H\00\00\00\08\00\00\00\98") + (data $291 (i32.const 15580) "\1c") + (data $291.1 (i32.const 15592) "I\00\00\00\08\00\00\00\99") + (data $292 (i32.const 15612) "\1c") + (data $292.1 (i32.const 15624) "I\00\00\00\08\00\00\00\9a") + (data $293 (i32.const 15644) "\1c") + (data $293.1 (i32.const 15656) "J\00\00\00\08\00\00\00\9b") + (data $294 (i32.const 15676) "\1c") + (data $294.1 (i32.const 15688) "J\00\00\00\08\00\00\00\9c") + (data $295 (i32.const 15708) "\1c") + (data $295.1 (i32.const 15720) "K\00\00\00\08\00\00\00\9d") + (data $296 (i32.const 15740) "\1c") + (data $296.1 (i32.const 15752) "K\00\00\00\08\00\00\00\9e") + (data $297 (i32.const 15772) "\1c") + (data $297.1 (i32.const 15784) "L\00\00\00\08\00\00\00\9f") + (data $298 (i32.const 15804) "\1c") + (data $298.1 (i32.const 15816) "L\00\00\00\08\00\00\00\a0") + (data $299 (i32.const 15836) "\1c") + (data $299.1 (i32.const 15848) "M\00\00\00\08\00\00\00\a1") + (data $300 (i32.const 15868) "\1c") + (data $300.1 (i32.const 15880) "M\00\00\00\08\00\00\00\a2") + (data $301 (i32.const 15900) "\1c") + (data $301.1 (i32.const 15912) "N\00\00\00\08\00\00\00\a3") + (data $302 (i32.const 15932) "\1c") + (data $302.1 (i32.const 15944) "N\00\00\00\08\00\00\00\a4") + (data $303 (i32.const 15964) "\1c") + (data $303.1 (i32.const 15976) "\0f\00\00\00\08\00\00\00\a5") + (data $304 (i32.const 16000) "O\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00\00\00\00\00B\08\00\00\02\t") + (data $304.1 (i32.const 16252) "\02\19\00\00\02\1a\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\01\00\00\02\n\00\00\02\02") (table $0 166 166 funcref) (elem $0 (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0" $~lib/util/sort/COMPARATOR~anonymous|0 $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0") (export "memory" (memory $0)) @@ -686,31 +679,31 @@ (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 9120 + i32.const 7152 call $~lib/rt/itcms/__visit - i32.const 9584 + i32.const 7616 call $~lib/rt/itcms/__visit - i32.const 9696 + i32.const 7728 call $~lib/rt/itcms/__visit - i32.const 11088 + i32.const 10928 call $~lib/rt/itcms/__visit - i32.const 11168 + i32.const 11008 call $~lib/rt/itcms/__visit - i32.const 11248 + i32.const 11088 call $~lib/rt/itcms/__visit - i32.const 11344 + i32.const 11184 call $~lib/rt/itcms/__visit - i32.const 11424 + i32.const 11264 call $~lib/rt/itcms/__visit - i32.const 1344 + i32.const 1360 call $~lib/rt/itcms/__visit - i32.const 3424 + i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 1152 + i32.const 1168 call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 8432 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 9488 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -731,7 +724,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -764,7 +757,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -773,7 +766,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1410 + block $__inlined_func$~lib/rt/itcms/Object#unlink$1404 local.get $0 i32.load offset=4 i32.const -4 @@ -785,19 +778,19 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 49248 + i32.const 49088 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1410 + br $__inlined_func$~lib/rt/itcms/Object#unlink$1404 end local.get $0 i32.load offset=8 @@ -805,7 +798,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -834,13 +827,13 @@ i32.const 1 else local.get $1 - i32.const 16160 + i32.const 16000 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1360 + i32.const 1424 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -848,7 +841,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 16164 + i32.const 16004 i32.add i32.load i32.const 32 @@ -919,7 +912,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -933,7 +926,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -979,7 +972,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1062,7 +1055,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1076,7 +1069,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1137,7 +1130,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1170,7 +1163,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1185,7 +1178,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1236,7 +1229,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1308,7 +1301,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1333,7 +1326,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1360,7 +1353,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1432,10 +1425,10 @@ if unreachable end - i32.const 49248 + i32.const 49088 i32.const 0 i32.store - i32.const 50816 + i32.const 50656 i32.const 0 i32.store loop $for-loop|0 @@ -1446,7 +1439,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 49248 + i32.const 49088 i32.add i32.const 0 i32.store offset=4 @@ -1464,7 +1457,7 @@ i32.add i32.const 2 i32.shl - i32.const 49248 + i32.const 49088 i32.add i32.const 0 i32.store offset=96 @@ -1482,21 +1475,21 @@ br $for-loop|0 end end - i32.const 49248 - i32.const 50820 + i32.const 49088 + i32.const 50660 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 49248 + i32.const 49088 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 49248 + i32.const 49088 i32.lt_u if return @@ -1527,7 +1520,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1624,7 +1617,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 49248 + i32.const 49088 i32.lt_u if local.get $0 @@ -1713,14 +1706,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 49248 + i32.const 49088 i32.lt_u if local.get $0 @@ -1812,7 +1805,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1864,7 +1857,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1894,8 +1887,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1168 + i32.const 1504 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1997,7 +1990,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2012,7 +2005,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2031,7 +2024,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1504 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2098,8 +2091,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1168 + i32.const 1232 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2109,7 +2102,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$69 + block $__inlined_func$~lib/rt/itcms/interrupt$68 i32.const 2048 local.set $2 loop $do-loop|0 @@ -2126,7 +2119,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + br $__inlined_func$~lib/rt/itcms/interrupt$68 end local.get $2 i32.const 0 @@ -2202,110 +2195,6 @@ memory.fill local.get $1 ) - (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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 i32.eqz @@ -2316,7 +2205,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1232 i32.const 295 i32.const 14 call $~lib/builtins/abort @@ -3373,6 +3262,110 @@ f64.const 0 f64.eq ) + (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 8012 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 8012 + 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 8012 + 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 8012 + 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 $3 i32) @@ -3863,7 +3856,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 1788 + i32.const 8012 i32.add i64.load32_u local.get $4 @@ -3871,7 +3864,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 1788 + i32.const 8012 i32.add i64.load32_u i64.const 32 @@ -3894,7 +3887,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 1788 + i32.const 8012 i32.add i64.load32_u local.get $3 @@ -3902,7 +3895,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 1788 + i32.const 8012 i32.add i64.load32_u i64.const 32 @@ -4446,7 +4439,7 @@ local.get $7 i32.const 2 i32.shl - i32.const 10896 + i32.const 10736 i32.add i64.load32_u local.get $2 @@ -4569,7 +4562,7 @@ i32.sub i32.const 2 i32.shl - i32.const 10896 + i32.const 10736 i32.add i64.load32_u i64.mul @@ -5111,14 +5104,14 @@ i32.sub global.set $~lib/util/number/_K local.get $5 - i32.const 10024 + i32.const 9864 i32.add i64.load global.set $~lib/util/number/_frc_pow local.get $2 i32.const 1 i32.shl - i32.const 10720 + i32.const 10560 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow @@ -9335,205 +9328,40 @@ (func $~start call $start:std/typedarray ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 16480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 16480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$1415 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$1415 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49280 - i32.const 49328 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/util/number/utoa32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/util/number/utoa32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -9541,11 +9369,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9594,8 +9422,8 @@ i32.shr_u i32.gt_u if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 19 i32.const 57 call $~lib/builtins/abort @@ -9647,11 +9475,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9689,11 +9517,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9724,11 +9552,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9754,11 +9582,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9796,11 +9624,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9838,11 +9666,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9879,11 +9707,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9911,11 +9739,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9953,11 +9781,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9994,11 +9822,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10026,11 +9854,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10068,11 +9896,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10109,11 +9937,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10141,11 +9969,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10183,11 +10011,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10225,11 +10053,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10267,11 +10095,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10293,7 +10121,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -10308,7 +10136,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -10323,7 +10151,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 34 i32.const 3 call $~lib/builtins/abort @@ -10341,7 +10169,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -10356,7 +10184,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 38 i32.const 3 call $~lib/builtins/abort @@ -10371,7 +10199,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 39 i32.const 3 call $~lib/builtins/abort @@ -10389,7 +10217,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 42 i32.const 3 call $~lib/builtins/abort @@ -10404,7 +10232,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 43 i32.const 3 call $~lib/builtins/abort @@ -10419,7 +10247,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 44 i32.const 3 call $~lib/builtins/abort @@ -10437,7 +10265,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 47 i32.const 3 call $~lib/builtins/abort @@ -10454,7 +10282,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 48 i32.const 3 call $~lib/builtins/abort @@ -10469,7 +10297,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 49 i32.const 3 call $~lib/builtins/abort @@ -10487,7 +10315,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -10504,7 +10332,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 53 i32.const 3 call $~lib/builtins/abort @@ -10519,7 +10347,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 54 i32.const 3 call $~lib/builtins/abort @@ -10537,7 +10365,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 57 i32.const 3 call $~lib/builtins/abort @@ -10554,7 +10382,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 58 i32.const 3 call $~lib/builtins/abort @@ -10569,7 +10397,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 59 i32.const 3 call $~lib/builtins/abort @@ -10587,7 +10415,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 62 i32.const 3 call $~lib/builtins/abort @@ -10604,7 +10432,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 63 i32.const 3 call $~lib/builtins/abort @@ -10619,7 +10447,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 64 i32.const 3 call $~lib/builtins/abort @@ -10637,7 +10465,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 67 i32.const 3 call $~lib/builtins/abort @@ -10654,7 +10482,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 68 i32.const 3 call $~lib/builtins/abort @@ -10669,7 +10497,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 69 i32.const 3 call $~lib/builtins/abort @@ -10687,7 +10515,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 72 i32.const 3 call $~lib/builtins/abort @@ -10704,7 +10532,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 73 i32.const 3 call $~lib/builtins/abort @@ -10719,7 +10547,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 74 i32.const 3 call $~lib/builtins/abort @@ -10737,7 +10565,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 77 i32.const 3 call $~lib/builtins/abort @@ -10754,7 +10582,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 78 i32.const 3 call $~lib/builtins/abort @@ -10769,7 +10597,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 79 i32.const 3 call $~lib/builtins/abort @@ -10787,7 +10615,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 82 i32.const 3 call $~lib/builtins/abort @@ -10804,7 +10632,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 83 i32.const 3 call $~lib/builtins/abort @@ -10819,7 +10647,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 84 i32.const 3 call $~lib/builtins/abort @@ -10836,11 +10664,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10859,9 +10687,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 747 + i32.const 1360 + i32.const 1632 + i32.const 748 i32.const 64 call $~lib/builtins/abort unreachable @@ -10888,11 +10716,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10911,9 +10739,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 736 + i32.const 1360 + i32.const 1632 + i32.const 737 i32.const 64 call $~lib/builtins/abort unreachable @@ -10942,11 +10770,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11061,11 +10889,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11084,9 +10912,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1457 + i32.const 1360 + i32.const 1632 + i32.const 1458 i32.const 64 call $~lib/builtins/abort unreachable @@ -11116,11 +10944,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11251,11 +11079,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11673,11 +11501,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11714,11 +11542,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11738,10 +11566,10 @@ end unreachable end - i32.const 3664 + i32.const 1696 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 3664 + i32.const 1696 i32.store end global.get $~lib/memory/__stack_pointer @@ -11765,11 +11593,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11788,9 +11616,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1446 + i32.const 1360 + i32.const 1632 + i32.const 1447 i32.const 64 call $~lib/builtins/abort unreachable @@ -11816,11 +11644,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11837,9 +11665,9 @@ i32.load offset=8 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 320 + i32.const 1360 + i32.const 1632 + i32.const 321 i32.const 45 call $~lib/builtins/abort unreachable @@ -11876,11 +11704,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11897,9 +11725,9 @@ i32.load offset=8 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 309 + i32.const 1360 + i32.const 1632 + i32.const 310 i32.const 45 call $~lib/builtins/abort unreachable @@ -11923,11 +11751,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11944,9 +11772,9 @@ i32.load offset=8 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 36 + i32.const 1360 + i32.const 1632 + i32.const 37 i32.const 45 call $~lib/builtins/abort unreachable @@ -11972,11 +11800,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12046,11 +11874,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12075,11 +11903,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12096,9 +11924,9 @@ i32.load offset=8 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 25 + i32.const 1360 + i32.const 1632 + i32.const 26 i32.const 45 call $~lib/builtins/abort unreachable @@ -12128,7 +11956,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12174,7 +12002,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12188,9 +12016,9 @@ i32.load offset=12 i32.ge_u if - i32.const 1344 - i32.const 3728 - i32.const 114 + i32.const 1360 + i32.const 1760 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -12224,8 +12052,8 @@ i32.const 1 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12244,11 +12072,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12296,11 +12124,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12412,11 +12240,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12464,7 +12292,7 @@ i32.lt_s select local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$191 + block $__inlined_func$~lib/util/bytes/FILL$187 local.get $1 i32.eqz local.get $1 @@ -12489,7 +12317,7 @@ i32.shl memory.fill end - br $__inlined_func$~lib/util/bytes/FILL$191 + br $__inlined_func$~lib/util/bytes/FILL$187 end loop $for-loop|0 local.get $0 @@ -12522,11 +12350,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12543,9 +12371,9 @@ i32.load offset=12 i32.ge_u if - i32.const 1344 - i32.const 3728 - i32.const 114 + i32.const 1360 + i32.const 1760 + i32.const 116 i32.const 42 call $~lib/builtins/abort unreachable @@ -12574,11 +12402,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12656,11 +12484,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12707,11 +12535,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12819,11 +12647,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12863,11 +12691,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12997,11 +12825,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13042,11 +12870,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13063,9 +12891,9 @@ i32.load offset=8 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 178 + i32.const 1360 + i32.const 1632 + i32.const 179 i32.const 45 call $~lib/builtins/abort unreachable @@ -13095,11 +12923,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13171,11 +12999,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13194,9 +13022,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 463 + i32.const 1360 + i32.const 1632 + i32.const 464 i32.const 64 call $~lib/builtins/abort unreachable @@ -13223,11 +13051,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13246,9 +13074,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 605 + i32.const 1360 + i32.const 1632 + i32.const 606 i32.const 64 call $~lib/builtins/abort unreachable @@ -13275,11 +13103,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13298,9 +13126,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 889 + i32.const 1360 + i32.const 1632 + i32.const 890 i32.const 64 call $~lib/builtins/abort unreachable @@ -13327,11 +13155,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13350,9 +13178,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1031 + i32.const 1360 + i32.const 1632 + i32.const 1032 i32.const 64 call $~lib/builtins/abort unreachable @@ -13379,11 +13207,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13402,9 +13230,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1173 + i32.const 1360 + i32.const 1632 + i32.const 1174 i32.const 64 call $~lib/builtins/abort unreachable @@ -13431,11 +13259,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13454,9 +13282,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1315 + i32.const 1360 + i32.const 1632 + i32.const 1316 i32.const 64 call $~lib/builtins/abort unreachable @@ -13484,11 +13312,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13514,9 +13342,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 48 + i32.const 1360 + i32.const 1632 + i32.const 49 i32.const 33 call $~lib/builtins/abort unreachable @@ -13541,11 +13369,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13571,9 +13399,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 190 + i32.const 1360 + i32.const 1632 + i32.const 191 i32.const 33 call $~lib/builtins/abort unreachable @@ -13598,11 +13426,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13628,9 +13456,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 332 + i32.const 1360 + i32.const 1632 + i32.const 333 i32.const 33 call $~lib/builtins/abort unreachable @@ -13655,11 +13483,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13687,9 +13515,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 475 + i32.const 1360 + i32.const 1632 + i32.const 476 i32.const 33 call $~lib/builtins/abort unreachable @@ -13716,11 +13544,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13748,9 +13576,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 617 + i32.const 1360 + i32.const 1632 + i32.const 618 i32.const 33 call $~lib/builtins/abort unreachable @@ -13777,11 +13605,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13809,9 +13637,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 759 + i32.const 1360 + i32.const 1632 + i32.const 760 i32.const 33 call $~lib/builtins/abort unreachable @@ -13838,11 +13666,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13870,9 +13698,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 901 + i32.const 1360 + i32.const 1632 + i32.const 902 i32.const 33 call $~lib/builtins/abort unreachable @@ -13900,11 +13728,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13932,9 +13760,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1043 + i32.const 1360 + i32.const 1632 + i32.const 1044 i32.const 33 call $~lib/builtins/abort unreachable @@ -13962,11 +13790,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -13994,9 +13822,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1185 + i32.const 1360 + i32.const 1632 + i32.const 1186 i32.const 33 call $~lib/builtins/abort unreachable @@ -14024,11 +13852,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14056,9 +13884,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1327 + i32.const 1360 + i32.const 1632 + i32.const 1328 i32.const 33 call $~lib/builtins/abort unreachable @@ -14086,11 +13914,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14118,9 +13946,9 @@ local.get $2 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1469 + i32.const 1360 + i32.const 1632 + i32.const 1470 i32.const 33 call $~lib/builtins/abort unreachable @@ -14150,11 +13978,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14237,7 +14065,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14277,14 +14105,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5568 + i32.const 3600 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14295,7 +14123,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5568 + i32.const 3600 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14342,7 +14170,7 @@ local.get $7 local.get $2 local.get $0 - i32.const 5568 + i32.const 3600 i32.load call_indirect (type $1) i32.store8 @@ -14381,7 +14209,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -14397,7 +14225,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -14413,7 +14241,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -14425,8 +14253,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14438,11 +14266,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14459,9 +14287,9 @@ i32.load offset=8 i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 167 + i32.const 1360 + i32.const 1632 + i32.const 168 i32.const 45 call $~lib/builtins/abort unreachable @@ -14494,7 +14322,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14534,14 +14362,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5600 + i32.const 3632 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14552,7 +14380,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5600 + i32.const 3632 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14599,7 +14427,7 @@ local.get $7 local.get $2 local.get $0 - i32.const 5600 + i32.const 3632 i32.load call_indirect (type $1) i32.store8 @@ -14638,7 +14466,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -14654,7 +14482,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -14670,7 +14498,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -14682,8 +14510,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14704,7 +14532,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14744,14 +14572,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5632 + i32.const 3664 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -14762,7 +14590,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5632 + i32.const 3664 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14809,7 +14637,7 @@ local.get $7 local.get $2 local.get $0 - i32.const 5632 + i32.const 3664 i32.load call_indirect (type $1) i32.store8 @@ -14848,7 +14676,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -14864,7 +14692,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -14880,7 +14708,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -14892,8 +14720,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14905,11 +14733,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -14928,9 +14756,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 452 + i32.const 1360 + i32.const 1632 + i32.const 453 i32.const 64 call $~lib/builtins/abort unreachable @@ -14967,7 +14795,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15007,14 +14835,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5664 + i32.const 3696 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15025,7 +14853,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5664 + i32.const 3696 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15078,7 +14906,7 @@ local.get $9 local.get $3 local.get $0 - i32.const 5664 + i32.const 3696 i32.load call_indirect (type $1) i32.store16 @@ -15117,7 +14945,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -15133,7 +14961,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -15149,7 +14977,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -15161,8 +14989,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15174,11 +15002,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15197,9 +15025,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 594 + i32.const 1360 + i32.const 1632 + i32.const 595 i32.const 64 call $~lib/builtins/abort unreachable @@ -15236,7 +15064,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15276,14 +15104,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 3728 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15294,7 +15122,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 3728 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15347,7 +15175,7 @@ local.get $9 local.get $3 local.get $0 - i32.const 5696 + i32.const 3728 i32.load call_indirect (type $1) i32.store16 @@ -15386,7 +15214,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -15402,7 +15230,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -15418,7 +15246,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -15430,8 +15258,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15454,7 +15282,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15494,14 +15322,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5728 + i32.const 3760 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15512,7 +15340,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5728 + i32.const 3760 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15565,7 +15393,7 @@ local.get $9 local.get $3 local.get $0 - i32.const 5728 + i32.const 3760 i32.load call_indirect (type $1) i32.store @@ -15604,7 +15432,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -15620,7 +15448,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -15636,7 +15464,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -15648,8 +15476,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15661,11 +15489,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15684,9 +15512,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 878 + i32.const 1360 + i32.const 1632 + i32.const 879 i32.const 64 call $~lib/builtins/abort unreachable @@ -15723,7 +15551,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15763,14 +15591,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5760 + i32.const 3792 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -15781,7 +15609,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5760 + i32.const 3792 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15834,7 +15662,7 @@ local.get $9 local.get $3 local.get $0 - i32.const 5760 + i32.const 3792 i32.load call_indirect (type $1) i32.store @@ -15873,7 +15701,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -15889,7 +15717,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -15905,7 +15733,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -15917,8 +15745,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15931,11 +15759,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -15954,9 +15782,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1020 + i32.const 1360 + i32.const 1632 + i32.const 1021 i32.const 64 call $~lib/builtins/abort unreachable @@ -15993,7 +15821,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16033,14 +15861,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5792 + i32.const 3824 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16051,7 +15879,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5792 + i32.const 3824 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16104,9 +15932,9 @@ local.get $9 local.get $3 local.get $0 - i32.const 5792 + i32.const 3824 i32.load - call_indirect (type $23) + call_indirect (type $24) i64.store local.get $3 i32.const 1 @@ -16143,7 +15971,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -16159,7 +15987,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -16175,7 +16003,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -16187,8 +16015,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16201,11 +16029,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16224,9 +16052,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1162 + i32.const 1360 + i32.const 1632 + i32.const 1163 i32.const 64 call $~lib/builtins/abort unreachable @@ -16263,7 +16091,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16303,14 +16131,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5824 + i32.const 3856 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16321,7 +16149,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5824 + i32.const 3856 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16374,9 +16202,9 @@ local.get $9 local.get $3 local.get $0 - i32.const 5824 + i32.const 3856 i32.load - call_indirect (type $23) + call_indirect (type $24) i64.store local.get $3 i32.const 1 @@ -16413,7 +16241,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -16429,7 +16257,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -16445,7 +16273,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -16457,8 +16285,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16471,11 +16299,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16494,9 +16322,9 @@ i32.shr_u i32.ge_u if - i32.const 1344 - i32.const 3600 - i32.const 1304 + i32.const 1360 + i32.const 1632 + i32.const 1305 i32.const 64 call $~lib/builtins/abort unreachable @@ -16533,7 +16361,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16573,14 +16401,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5856 + i32.const 3888 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16591,7 +16419,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5856 + i32.const 3888 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16644,7 +16472,7 @@ local.get $9 local.get $3 local.get $0 - i32.const 5856 + i32.const 3888 i32.load call_indirect (type $29) f32.store @@ -16683,7 +16511,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -16699,7 +16527,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -16715,7 +16543,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -16727,8 +16555,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16751,7 +16579,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16791,14 +16619,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5888 + i32.const 3920 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -16809,7 +16637,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5888 + i32.const 3920 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16862,7 +16690,7 @@ local.get $9 local.get $3 local.get $0 - i32.const 5888 + i32.const 3920 i32.load call_indirect (type $30) f64.store @@ -16901,7 +16729,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 388 i32.const 3 call $~lib/builtins/abort @@ -16917,7 +16745,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 389 i32.const 3 call $~lib/builtins/abort @@ -16933,7 +16761,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 390 i32.const 3 call $~lib/builtins/abort @@ -16945,8 +16773,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -16968,7 +16796,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -17022,14 +16850,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5920 + i32.const 3952 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -17040,7 +16868,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5920 + i32.const 3952 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -17084,7 +16912,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 5920 + i32.const 3952 i32.load call_indirect (type $1) if @@ -17133,7 +16961,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -17148,7 +16976,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -17164,7 +16992,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -17180,7 +17008,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -17196,7 +17024,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -17208,8 +17036,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17231,7 +17059,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -17285,14 +17113,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5952 + i32.const 3984 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -17303,7 +17131,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5952 + i32.const 3984 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -17347,7 +17175,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 5952 + i32.const 3984 i32.load call_indirect (type $1) if @@ -17396,7 +17224,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -17411,7 +17239,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -17427,7 +17255,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -17443,7 +17271,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -17459,7 +17287,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -17471,8 +17299,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17494,7 +17322,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -17548,14 +17376,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5984 + i32.const 4016 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -17566,7 +17394,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5984 + i32.const 4016 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -17610,7 +17438,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 5984 + i32.const 4016 i32.load call_indirect (type $1) if @@ -17659,7 +17487,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -17674,7 +17502,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -17690,7 +17518,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -17706,7 +17534,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -17722,7 +17550,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -17734,8 +17562,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17757,7 +17585,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -17811,14 +17639,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6016 + i32.const 4048 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -17829,7 +17657,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6016 + i32.const 4048 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -17877,7 +17705,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 6016 + i32.const 4048 i32.load call_indirect (type $1) if @@ -17931,7 +17759,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -17946,7 +17774,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -17962,7 +17790,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -17978,7 +17806,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -17994,7 +17822,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -18006,8 +17834,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18029,7 +17857,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18083,14 +17911,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6048 + i32.const 4080 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18101,7 +17929,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6048 + i32.const 4080 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -18149,7 +17977,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 6048 + i32.const 4080 i32.load call_indirect (type $1) if @@ -18203,7 +18031,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -18218,7 +18046,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -18234,7 +18062,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -18250,7 +18078,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -18266,7 +18094,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -18278,8 +18106,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18301,7 +18129,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18355,14 +18183,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6080 + i32.const 4112 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18373,7 +18201,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6080 + i32.const 4112 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -18421,7 +18249,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 6080 + i32.const 4112 i32.load call_indirect (type $1) if @@ -18475,7 +18303,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -18490,7 +18318,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -18506,7 +18334,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -18522,7 +18350,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -18538,7 +18366,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -18550,8 +18378,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18573,7 +18401,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18627,14 +18455,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6112 + i32.const 4144 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18645,7 +18473,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6112 + i32.const 4144 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -18693,7 +18521,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 6112 + i32.const 4144 i32.load call_indirect (type $1) if @@ -18747,7 +18575,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -18762,7 +18590,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -18778,7 +18606,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -18794,7 +18622,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -18810,7 +18638,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -18822,8 +18650,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -18845,7 +18673,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18899,14 +18727,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6144 + i32.const 4176 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -18917,7 +18745,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6144 + i32.const 4176 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -18965,7 +18793,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 6144 + i32.const 4176 i32.load call_indirect (type $8) if @@ -19019,7 +18847,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -19034,7 +18862,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -19050,7 +18878,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -19066,7 +18894,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -19082,7 +18910,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -19094,8 +18922,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19117,7 +18945,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -19171,14 +18999,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6176 + i32.const 4208 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -19189,7 +19017,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6176 + i32.const 4208 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -19237,7 +19065,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 6176 + i32.const 4208 i32.load call_indirect (type $8) if @@ -19291,7 +19119,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -19306,7 +19134,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -19322,7 +19150,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -19338,7 +19166,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -19354,7 +19182,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -19366,8 +19194,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19389,7 +19217,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -19443,14 +19271,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6208 + i32.const 4240 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -19461,7 +19289,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6208 + i32.const 4240 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -19509,7 +19337,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 6208 + i32.const 4240 i32.load call_indirect (type $14) if @@ -19563,7 +19391,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -19578,7 +19406,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -19594,7 +19422,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -19610,7 +19438,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -19626,7 +19454,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -19638,8 +19466,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19661,7 +19489,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -19715,14 +19543,14 @@ local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6240 + i32.const 4272 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -19733,7 +19561,7 @@ local.get $8 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6240 + i32.const 4272 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -19781,7 +19609,7 @@ local.get $5 local.get $2 local.get $8 - i32.const 6240 + i32.const 4272 i32.load call_indirect (type $15) if @@ -19835,7 +19663,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 413 i32.const 3 call $~lib/builtins/abort @@ -19850,7 +19678,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 414 i32.const 3 call $~lib/builtins/abort @@ -19866,7 +19694,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 415 i32.const 3 call $~lib/builtins/abort @@ -19882,7 +19710,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 416 i32.const 3 call $~lib/builtins/abort @@ -19898,7 +19726,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 417 i32.const 3 call $~lib/builtins/abort @@ -19910,8 +19738,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -19927,11 +19755,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20010,11 +19838,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20093,11 +19921,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20178,11 +20006,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20263,11 +20091,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20348,11 +20176,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20433,11 +20261,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20518,11 +20346,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20603,11 +20431,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20688,11 +20516,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20773,11 +20601,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20854,11 +20682,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20935,11 +20763,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21018,11 +20846,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21101,11 +20929,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21184,11 +21012,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21267,11 +21095,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21350,11 +21178,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21433,11 +21261,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21516,11 +21344,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21598,11 +21426,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21680,11 +21508,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21762,11 +21590,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21846,11 +21674,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -21930,11 +21758,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22014,11 +21842,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22098,11 +21926,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22182,11 +22010,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22266,11 +22094,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22350,11 +22178,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22435,11 +22263,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22519,11 +22347,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22603,11 +22431,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22689,11 +22517,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22775,11 +22603,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22861,11 +22689,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -22947,11 +22775,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23033,11 +22861,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23119,11 +22947,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23205,11 +23033,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23287,11 +23115,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23301,12 +23129,12 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store local.get $0 i32.const 255 i32.and - i32.const 9120 + i32.const 7152 local.get $1 call $~lib/array/Array#__get i32.const 255 @@ -23314,7 +23142,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -23325,7 +23153,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -23336,7 +23164,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -23361,11 +23189,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23432,11 +23260,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23446,12 +23274,12 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store local.get $0 i32.const 65535 i32.and - i32.const 9120 + i32.const 7152 local.get $1 call $~lib/array/Array#__get i32.const 65535 @@ -23459,7 +23287,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -23470,7 +23298,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -23481,7 +23309,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -23502,11 +23330,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23516,16 +23344,16 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store - i32.const 9120 + i32.const 7152 local.get $1 call $~lib/array/Array#__get local.get $0 i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -23536,7 +23364,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -23547,7 +23375,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -23568,11 +23396,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23582,9 +23410,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store - i32.const 9120 + i32.const 7152 local.get $1 call $~lib/array/Array#__get i64.extend_i32_s @@ -23592,7 +23420,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -23603,7 +23431,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -23614,7 +23442,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -23635,11 +23463,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23649,9 +23477,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store - i32.const 9120 + i32.const 7152 local.get $1 call $~lib/array/Array#__get f32.convert_i32_s @@ -23659,7 +23487,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -23670,7 +23498,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -23681,7 +23509,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -23702,11 +23530,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23716,9 +23544,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store - i32.const 9120 + i32.const 7152 local.get $1 call $~lib/array/Array#__get f64.convert_i32_s @@ -23726,7 +23554,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 536 i32.const 5 call $~lib/builtins/abort @@ -23737,7 +23565,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 537 i32.const 5 call $~lib/builtins/abort @@ -23748,7 +23576,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 538 i32.const 5 call $~lib/builtins/abort @@ -23777,11 +23605,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23944,11 +23772,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23959,12 +23787,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -23986,11 +23814,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.extend8_s @@ -23999,11 +23827,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.extend8_s @@ -24035,9 +23863,9 @@ local.get $0 call $~lib/typedarray/Int8Array#__get global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -24048,7 +23876,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -24087,7 +23915,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -24103,7 +23931,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -24119,7 +23947,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -24135,7 +23963,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -24155,11 +23983,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24260,11 +24088,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24275,12 +24103,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -24302,11 +24130,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.const 255 @@ -24316,11 +24144,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.const 255 @@ -24353,9 +24181,9 @@ local.get $0 call $~lib/typedarray/Uint8Array#__get global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -24367,7 +24195,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -24405,7 +24233,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -24421,7 +24249,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -24437,7 +24265,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -24453,7 +24281,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -24473,11 +24301,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24578,11 +24406,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24593,12 +24421,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -24620,11 +24448,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.const 255 @@ -24634,11 +24462,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.const 255 @@ -24671,9 +24499,9 @@ local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -24685,7 +24513,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -24723,7 +24551,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -24739,7 +24567,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -24755,7 +24583,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -24771,7 +24599,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -24795,11 +24623,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24925,11 +24753,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25034,11 +24862,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25049,12 +24877,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -25076,11 +24904,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.extend16_s @@ -25089,11 +24917,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.extend16_s @@ -25125,9 +24953,9 @@ local.get $0 call $~lib/typedarray/Int16Array#__get global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -25138,7 +24966,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -25176,7 +25004,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -25192,7 +25020,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -25208,7 +25036,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -25224,7 +25052,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -25244,11 +25072,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25353,11 +25181,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25368,12 +25196,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -25395,11 +25223,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.const 65535 @@ -25409,11 +25237,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i32.const 65535 @@ -25446,9 +25274,9 @@ local.get $0 call $~lib/typedarray/Uint16Array#__get global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -25460,7 +25288,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -25498,7 +25326,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -25514,7 +25342,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -25530,7 +25358,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -25546,7 +25374,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -25569,11 +25397,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25657,11 +25485,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25672,12 +25500,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -25699,11 +25527,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set @@ -25711,11 +25539,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set @@ -25747,9 +25575,9 @@ call $~lib/typedarray/Int32Array#__get local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -25760,7 +25588,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -25799,7 +25627,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -25815,7 +25643,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -25831,7 +25659,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -25847,7 +25675,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -25867,11 +25695,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25976,11 +25804,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25991,12 +25819,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -26018,11 +25846,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set @@ -26030,11 +25858,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set @@ -26066,9 +25894,9 @@ call $~lib/typedarray/Uint32Array#__get local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -26079,7 +25907,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -26117,7 +25945,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -26133,7 +25961,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -26149,7 +25977,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -26165,7 +25993,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -26188,11 +26016,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26274,11 +26102,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26383,11 +26211,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26398,12 +26226,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -26425,11 +26253,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s @@ -26438,11 +26266,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s @@ -26474,9 +26302,9 @@ local.get $0 call $~lib/typedarray/Int64Array#__get global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -26487,7 +26315,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -26525,7 +26353,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -26541,7 +26369,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -26557,7 +26385,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -26573,7 +26401,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -26593,11 +26421,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26702,11 +26530,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26717,12 +26545,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -26744,11 +26572,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s @@ -26757,11 +26585,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s @@ -26793,9 +26621,9 @@ local.get $0 call $~lib/typedarray/Uint64Array#__get global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -26806,7 +26634,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -26844,7 +26672,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -26860,7 +26688,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -26876,7 +26704,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -26892,7 +26720,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -26915,11 +26743,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27001,11 +26829,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27110,11 +26938,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27125,12 +26953,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -27152,11 +26980,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get f32.convert_i32_s @@ -27165,11 +26993,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get f32.convert_i32_s @@ -27201,9 +27029,9 @@ local.get $0 call $~lib/typedarray/Float32Array#__get global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -27214,7 +27042,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -27252,7 +27080,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -27268,7 +27096,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -27284,7 +27112,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -27300,7 +27128,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -27323,11 +27151,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27411,11 +27239,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27426,12 +27254,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -27453,11 +27281,11 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $3 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get f64.convert_i32_s @@ -27466,11 +27294,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=16 local.get $1 local.get $0 - i32.const 9584 + i32.const 7616 local.get $0 call $~lib/array/Array#__get f64.convert_i32_s @@ -27502,9 +27330,9 @@ local.get $0 call $~lib/typedarray/Float64Array#__get global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 7616 i32.store offset=4 - i32.const 9584 + i32.const 7616 local.get $4 i32.const 1 i32.sub @@ -27515,7 +27343,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 570 i32.const 5 call $~lib/builtins/abort @@ -27554,7 +27382,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 575 i32.const 3 call $~lib/builtins/abort @@ -27570,7 +27398,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 576 i32.const 3 call $~lib/builtins/abort @@ -27586,7 +27414,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 577 i32.const 3 call $~lib/builtins/abort @@ -27602,7 +27430,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 578 i32.const 3 call $~lib/builtins/abort @@ -27620,11 +27448,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27709,11 +27537,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27795,11 +27623,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27846,11 +27674,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27861,12 +27689,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -27883,11 +27711,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get i32.extend8_s @@ -27908,7 +27736,7 @@ call $~lib/typedarray/Int8Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -27925,7 +27753,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -27942,7 +27770,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -27959,7 +27787,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -27976,7 +27804,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -27993,7 +27821,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -28010,7 +27838,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -28027,7 +27855,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -28044,7 +27872,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -28060,7 +27888,7 @@ call $~lib/typedarray/Int8Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -28078,7 +27906,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -28096,7 +27924,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -28114,7 +27942,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -28131,7 +27959,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -28148,7 +27976,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -28165,7 +27993,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -28182,7 +28010,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -28199,7 +28027,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -28216,7 +28044,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -28243,7 +28071,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -28258,7 +28086,7 @@ call $~lib/typedarray/Int8Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -28275,7 +28103,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -28292,7 +28120,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -28309,7 +28137,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -28326,7 +28154,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -28343,7 +28171,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -28360,7 +28188,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -28380,11 +28208,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28395,12 +28223,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -28417,11 +28245,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get i32.const 255 @@ -28443,7 +28271,7 @@ call $~lib/typedarray/Int8Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -28460,7 +28288,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -28477,7 +28305,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -28494,7 +28322,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -28511,7 +28339,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -28528,7 +28356,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -28545,7 +28373,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -28562,7 +28390,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -28579,7 +28407,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -28595,7 +28423,7 @@ call $~lib/typedarray/Int8Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -28613,7 +28441,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -28631,7 +28459,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -28649,7 +28477,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -28666,7 +28494,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -28683,7 +28511,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -28700,7 +28528,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -28717,7 +28545,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -28734,7 +28562,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -28751,7 +28579,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -28777,7 +28605,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -28792,7 +28620,7 @@ call $~lib/typedarray/Int8Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -28809,7 +28637,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -28826,7 +28654,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -28843,7 +28671,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -28860,7 +28688,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -28877,7 +28705,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -28894,7 +28722,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -28914,11 +28742,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28929,12 +28757,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -28951,11 +28779,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get i32.const 255 @@ -28977,7 +28805,7 @@ call $~lib/typedarray/Int8Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -28994,7 +28822,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -29011,7 +28839,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -29028,7 +28856,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -29045,7 +28873,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -29062,7 +28890,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -29079,7 +28907,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -29096,7 +28924,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -29113,7 +28941,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -29129,7 +28957,7 @@ call $~lib/typedarray/Int8Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -29147,7 +28975,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -29165,7 +28993,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -29183,7 +29011,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -29200,7 +29028,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -29217,7 +29045,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -29234,7 +29062,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -29251,7 +29079,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -29268,7 +29096,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -29285,7 +29113,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -29311,7 +29139,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -29326,7 +29154,7 @@ call $~lib/typedarray/Int8Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -29343,7 +29171,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -29360,7 +29188,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -29377,7 +29205,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -29394,7 +29222,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -29411,7 +29239,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -29428,7 +29256,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -29446,11 +29274,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29537,11 +29365,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29625,11 +29453,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29676,11 +29504,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29691,12 +29519,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -29713,11 +29541,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get i32.extend16_s @@ -29738,7 +29566,7 @@ call $~lib/typedarray/Int16Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -29755,7 +29583,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -29772,7 +29600,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -29789,7 +29617,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -29806,7 +29634,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -29823,7 +29651,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -29840,7 +29668,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -29857,7 +29685,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -29874,7 +29702,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -29890,7 +29718,7 @@ call $~lib/typedarray/Int16Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -29908,7 +29736,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -29926,7 +29754,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -29944,7 +29772,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -29961,7 +29789,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -29978,7 +29806,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -29995,7 +29823,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -30012,7 +29840,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -30029,7 +29857,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -30046,7 +29874,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -30072,7 +29900,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -30087,7 +29915,7 @@ call $~lib/typedarray/Int16Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -30104,7 +29932,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -30121,7 +29949,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -30138,7 +29966,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -30155,7 +29983,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -30172,7 +30000,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -30189,7 +30017,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -30209,11 +30037,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30224,12 +30052,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -30246,11 +30074,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get i32.const 65535 @@ -30272,7 +30100,7 @@ call $~lib/typedarray/Int16Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -30289,7 +30117,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -30306,7 +30134,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -30323,7 +30151,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -30340,7 +30168,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -30357,7 +30185,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -30374,7 +30202,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -30391,7 +30219,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -30408,7 +30236,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -30424,7 +30252,7 @@ call $~lib/typedarray/Int16Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -30442,7 +30270,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -30460,7 +30288,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -30478,7 +30306,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -30495,7 +30323,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -30512,7 +30340,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -30529,7 +30357,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -30546,7 +30374,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -30563,7 +30391,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -30580,7 +30408,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -30606,7 +30434,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -30621,7 +30449,7 @@ call $~lib/typedarray/Int16Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -30638,7 +30466,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -30655,7 +30483,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -30672,7 +30500,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -30689,7 +30517,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -30706,7 +30534,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -30723,7 +30551,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -30741,11 +30569,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30830,11 +30658,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30916,11 +30744,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30967,11 +30795,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30982,12 +30810,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -31004,11 +30832,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set @@ -31028,7 +30856,7 @@ call $~lib/typedarray/Int32Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -31045,7 +30873,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -31062,7 +30890,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -31079,7 +30907,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -31096,7 +30924,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -31113,7 +30941,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -31130,7 +30958,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -31147,7 +30975,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -31164,7 +30992,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -31180,7 +31008,7 @@ call $~lib/typedarray/Int32Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -31198,7 +31026,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -31216,7 +31044,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -31234,7 +31062,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -31251,7 +31079,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -31268,7 +31096,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -31285,7 +31113,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -31302,7 +31130,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -31319,7 +31147,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -31336,7 +31164,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -31363,7 +31191,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -31378,7 +31206,7 @@ call $~lib/typedarray/Int32Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -31395,7 +31223,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -31412,7 +31240,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -31429,7 +31257,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -31446,7 +31274,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -31463,7 +31291,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -31480,7 +31308,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -31498,11 +31326,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31587,11 +31415,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31673,11 +31501,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31724,11 +31552,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31739,12 +31567,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -31761,11 +31589,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set @@ -31785,7 +31613,7 @@ call $~lib/typedarray/Uint32Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -31802,7 +31630,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -31819,7 +31647,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -31836,7 +31664,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -31853,7 +31681,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -31870,7 +31698,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -31887,7 +31715,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -31904,7 +31732,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -31921,7 +31749,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -31937,7 +31765,7 @@ call $~lib/typedarray/Uint32Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -31955,7 +31783,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -31973,7 +31801,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -31991,7 +31819,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -32008,7 +31836,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -32025,7 +31853,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -32042,7 +31870,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -32059,7 +31887,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -32076,7 +31904,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -32093,7 +31921,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -32119,7 +31947,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -32134,7 +31962,7 @@ call $~lib/typedarray/Uint32Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -32151,7 +31979,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -32168,7 +31996,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -32185,7 +32013,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -32202,7 +32030,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -32219,7 +32047,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -32236,7 +32064,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -32254,11 +32082,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -32343,11 +32171,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -32429,11 +32257,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -32480,11 +32308,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -32495,12 +32323,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -32517,11 +32345,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s @@ -32542,7 +32370,7 @@ call $~lib/typedarray/Int64Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -32559,7 +32387,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -32576,7 +32404,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -32593,7 +32421,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -32610,7 +32438,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -32627,7 +32455,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -32644,7 +32472,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -32661,7 +32489,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -32678,7 +32506,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -32694,7 +32522,7 @@ call $~lib/typedarray/Int64Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -32712,7 +32540,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -32730,7 +32558,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -32748,7 +32576,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -32765,7 +32593,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -32782,7 +32610,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -32799,7 +32627,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -32816,7 +32644,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -32833,7 +32661,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -32850,7 +32678,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -32876,7 +32704,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -32891,7 +32719,7 @@ call $~lib/typedarray/Int64Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -32908,7 +32736,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -32925,7 +32753,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -32942,7 +32770,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -32959,7 +32787,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -32976,7 +32804,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -32993,7 +32821,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -33011,11 +32839,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -33100,11 +32928,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -33186,11 +33014,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -33237,11 +33065,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -33252,12 +33080,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -33274,11 +33102,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s @@ -33299,7 +33127,7 @@ call $~lib/typedarray/Uint64Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -33316,7 +33144,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -33333,7 +33161,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -33350,7 +33178,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -33367,7 +33195,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -33384,7 +33212,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -33401,7 +33229,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -33418,7 +33246,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -33435,7 +33263,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -33451,7 +33279,7 @@ call $~lib/typedarray/Uint64Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -33469,7 +33297,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -33487,7 +33315,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -33505,7 +33333,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -33522,7 +33350,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -33539,7 +33367,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -33556,7 +33384,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -33573,7 +33401,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -33590,7 +33418,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -33607,7 +33435,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -33633,7 +33461,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -33648,7 +33476,7 @@ call $~lib/typedarray/Uint64Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -33665,7 +33493,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -33682,7 +33510,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -33699,7 +33527,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -33716,7 +33544,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -33733,7 +33561,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -33750,7 +33578,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -33768,11 +33596,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -33857,11 +33685,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -33943,11 +33771,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -33994,11 +33822,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -34009,12 +33837,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -34031,11 +33859,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get f32.convert_i32_s @@ -34056,7 +33884,7 @@ call $~lib/typedarray/Float32Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -34073,7 +33901,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -34090,7 +33918,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -34107,7 +33935,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -34124,7 +33952,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -34141,7 +33969,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -34158,7 +33986,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -34175,7 +34003,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -34192,7 +34020,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -34208,7 +34036,7 @@ call $~lib/typedarray/Float32Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -34226,7 +34054,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -34244,7 +34072,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -34262,7 +34090,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -34279,7 +34107,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -34296,7 +34124,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -34313,7 +34141,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -34330,7 +34158,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -34347,7 +34175,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -34364,7 +34192,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -34390,7 +34218,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -34405,7 +34233,7 @@ call $~lib/typedarray/Float32Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -34422,7 +34250,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -34439,7 +34267,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -34456,7 +34284,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -34473,7 +34301,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -34490,7 +34318,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -34507,7 +34335,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -34525,11 +34353,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -34614,11 +34442,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -34700,11 +34528,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -34751,11 +34579,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -34766,12 +34594,12 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=4 - i32.const 9696 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -34788,11 +34616,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9696 + i32.const 7728 i32.store offset=12 local.get $2 local.get $0 - i32.const 9696 + i32.const 7728 local.get $0 call $~lib/array/Array#__get f64.convert_i32_s @@ -34813,7 +34641,7 @@ call $~lib/typedarray/Float64Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 603 i32.const 3 call $~lib/builtins/abort @@ -34830,7 +34658,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 604 i32.const 3 call $~lib/builtins/abort @@ -34847,7 +34675,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 605 i32.const 3 call $~lib/builtins/abort @@ -34864,7 +34692,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 606 i32.const 3 call $~lib/builtins/abort @@ -34881,7 +34709,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 607 i32.const 3 call $~lib/builtins/abort @@ -34898,7 +34726,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 608 i32.const 3 call $~lib/builtins/abort @@ -34915,7 +34743,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 609 i32.const 3 call $~lib/builtins/abort @@ -34932,7 +34760,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 610 i32.const 3 call $~lib/builtins/abort @@ -34949,7 +34777,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 611 i32.const 3 call $~lib/builtins/abort @@ -34965,7 +34793,7 @@ call $~lib/typedarray/Float64Array#lastIndexOf@varargs if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 613 i32.const 3 call $~lib/builtins/abort @@ -34983,7 +34811,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 614 i32.const 3 call $~lib/builtins/abort @@ -35001,7 +34829,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 615 i32.const 3 call $~lib/builtins/abort @@ -35019,7 +34847,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 616 i32.const 3 call $~lib/builtins/abort @@ -35036,7 +34864,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 617 i32.const 3 call $~lib/builtins/abort @@ -35053,7 +34881,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 618 i32.const 3 call $~lib/builtins/abort @@ -35070,7 +34898,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 619 i32.const 3 call $~lib/builtins/abort @@ -35087,7 +34915,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 620 i32.const 3 call $~lib/builtins/abort @@ -35104,7 +34932,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 621 i32.const 3 call $~lib/builtins/abort @@ -35121,7 +34949,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 622 i32.const 3 call $~lib/builtins/abort @@ -35148,7 +34976,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 626 i32.const 3 call $~lib/builtins/abort @@ -35163,7 +34991,7 @@ call $~lib/typedarray/Float64Array#indexOf if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 627 i32.const 3 call $~lib/builtins/abort @@ -35180,7 +35008,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 628 i32.const 3 call $~lib/builtins/abort @@ -35197,7 +35025,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 629 i32.const 3 call $~lib/builtins/abort @@ -35214,7 +35042,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 630 i32.const 3 call $~lib/builtins/abort @@ -35231,7 +35059,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 631 i32.const 3 call $~lib/builtins/abort @@ -35248,7 +35076,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 632 i32.const 3 call $~lib/builtins/abort @@ -35265,7 +35093,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 633 i32.const 3 call $~lib/builtins/abort @@ -35285,11 +35113,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -35346,7 +35174,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 return end local.get $3 @@ -35396,7 +35224,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -35415,20 +35243,20 @@ call $~lib/typedarray/Int8Array#get:length local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1416 + block $__inlined_func$~lib/util/string/joinIntegerArray$1409 local.get $0 i32.const 1 i32.sub @@ -35440,9 +35268,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1416 + br $__inlined_func$~lib/util/string/joinIntegerArray$1409 end local.get $6 i32.eqz @@ -35455,13 +35283,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1416 + br $__inlined_func$~lib/util/string/joinIntegerArray$1409 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -35504,7 +35332,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $4 i32.const 1 i32.shl @@ -35548,7 +35376,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1416 + br $__inlined_func$~lib/util/string/joinIntegerArray$1409 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -35562,8 +35390,8 @@ local.get $0 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -35579,11 +35407,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -35682,7 +35510,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$703 + block $__inlined_func$~lib/util/string/compareImpl$699 loop $while-continue|1 local.get $0 local.tee $3 @@ -35702,7 +35530,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$703 + br_if $__inlined_func$~lib/util/string/compareImpl$699 local.get $2 i32.const 2 i32.add @@ -35744,7 +35572,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -35763,20 +35591,20 @@ call $~lib/typedarray/Int8Array#get:length local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1417 + block $__inlined_func$~lib/util/string/joinIntegerArray$1410 local.get $0 i32.const 1 i32.sub @@ -35788,9 +35616,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1417 + br $__inlined_func$~lib/util/string/joinIntegerArray$1410 end local.get $6 i32.eqz @@ -35803,13 +35631,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1417 + br $__inlined_func$~lib/util/string/joinIntegerArray$1410 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -35852,7 +35680,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $4 i32.const 1 i32.shl @@ -35896,7 +35724,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1417 + br $__inlined_func$~lib/util/string/joinIntegerArray$1410 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -35910,8 +35738,8 @@ local.get $0 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -35923,11 +35751,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -35959,7 +35787,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -35978,20 +35806,20 @@ call $~lib/typedarray/Int16Array#get:length local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1418 + block $__inlined_func$~lib/util/string/joinIntegerArray$1411 local.get $0 i32.const 1 i32.sub @@ -36003,9 +35831,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1418 + br $__inlined_func$~lib/util/string/joinIntegerArray$1411 end local.get $6 i32.eqz @@ -36018,13 +35846,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1418 + br $__inlined_func$~lib/util/string/joinIntegerArray$1411 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -36069,7 +35897,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $4 i32.const 1 i32.shl @@ -36115,7 +35943,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1418 + br $__inlined_func$~lib/util/string/joinIntegerArray$1411 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36129,8 +35957,8 @@ local.get $0 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -36149,7 +35977,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -36168,20 +35996,20 @@ call $~lib/typedarray/Int16Array#get:length local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1419 + block $__inlined_func$~lib/util/string/joinIntegerArray$1412 local.get $0 i32.const 1 i32.sub @@ -36193,9 +36021,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1419 + br $__inlined_func$~lib/util/string/joinIntegerArray$1412 end local.get $6 i32.eqz @@ -36208,13 +36036,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1419 + br $__inlined_func$~lib/util/string/joinIntegerArray$1412 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -36259,7 +36087,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $4 i32.const 1 i32.shl @@ -36305,7 +36133,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1419 + br $__inlined_func$~lib/util/string/joinIntegerArray$1412 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36319,8 +36147,8 @@ local.get $0 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -36339,7 +36167,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -36358,20 +36186,20 @@ call $~lib/typedarray/Int32Array#get:length local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1420 + block $__inlined_func$~lib/util/string/joinIntegerArray$1413 local.get $0 i32.const 1 i32.sub @@ -36383,9 +36211,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1420 + br $__inlined_func$~lib/util/string/joinIntegerArray$1413 end local.get $6 i32.eqz @@ -36398,13 +36226,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1420 + br $__inlined_func$~lib/util/string/joinIntegerArray$1413 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -36449,7 +36277,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $4 i32.const 1 i32.shl @@ -36495,7 +36323,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1420 + br $__inlined_func$~lib/util/string/joinIntegerArray$1413 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36509,8 +36337,8 @@ local.get $0 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -36529,7 +36357,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -36548,20 +36376,20 @@ call $~lib/typedarray/Int32Array#get:length local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1421 + block $__inlined_func$~lib/util/string/joinIntegerArray$1414 local.get $0 i32.const 1 i32.sub @@ -36573,9 +36401,9 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1421 + br $__inlined_func$~lib/util/string/joinIntegerArray$1414 end local.get $6 i32.eqz @@ -36588,13 +36416,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1421 + br $__inlined_func$~lib/util/string/joinIntegerArray$1414 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -36639,7 +36467,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $4 i32.const 1 i32.shl @@ -36685,7 +36513,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1421 + br $__inlined_func$~lib/util/string/joinIntegerArray$1414 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36699,8 +36527,8 @@ local.get $0 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -36720,7 +36548,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -36739,14 +36567,14 @@ call $~lib/typedarray/Int64Array#get:length local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -36764,7 +36592,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray$3 end @@ -36782,7 +36610,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -36795,7 +36623,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1776 + i32.const 8000 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -36962,10 +36790,10 @@ br $folding-inner0 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -37010,7 +36838,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $7 i32.const 1 i32.shl @@ -37072,8 +36900,8 @@ local.get $0 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -37093,7 +36921,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -37110,7 +36938,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 return end local.get $7 @@ -37124,13 +36952,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/utoa64$738 + block $__inlined_func$~lib/util/number/utoa64$734 local.get $3 i64.eqz if @@ -37138,9 +36966,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1776 + i32.const 8000 local.set $1 - br $__inlined_func$~lib/util/number/utoa64$738 + br $__inlined_func$~lib/util/number/utoa64$734 end local.get $3 i64.const 4294967295 @@ -37278,10 +37106,10 @@ br $folding-inner1 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -37326,7 +37154,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $1 i32.const 1 i32.shl @@ -37377,8 +37205,8 @@ local.get $6 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -37397,11 +37225,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -37421,7 +37249,7 @@ local.get $0 call $~lib/typedarray/Int64Array#get:length global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store call $~lib/util/string/joinIntegerArray global.get $~lib/memory/__stack_pointer @@ -37444,7 +37272,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -37461,7 +37289,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 return end local.get $8 @@ -37475,13 +37303,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 9824 + i32.const 9664 local.set $0 block $~lib/util/number/dtoa_impl|inlined.0 local.get $5 @@ -37496,14 +37324,14 @@ f64.const 0 f64.ne if - i32.const 9856 + i32.const 9696 local.set $0 local.get $3 local.get $3 f64.ne br_if $~lib/util/number/dtoa_impl|inlined.0 - i32.const 9888 - i32.const 9936 + i32.const 9728 + i32.const 9776 local.get $3 f64.const 0 f64.lt @@ -37511,7 +37339,7 @@ local.set $0 br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 9968 + i32.const 9808 local.get $3 i32.const 1 call $~lib/util/number/dtoa_core @@ -37525,7 +37353,7 @@ local.tee $0 i32.store local.get $0 - i32.const 9968 + i32.const 9808 local.get $1 memory.copy end @@ -37536,10 +37364,10 @@ br $folding-inner1 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -37584,7 +37412,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $1 i32.const 1 i32.shl @@ -37635,8 +37463,8 @@ local.get $7 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -37655,11 +37483,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -37679,7 +37507,7 @@ local.get $0 call $~lib/typedarray/Int32Array#get:length global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store call $~lib/util/string/joinFloatArray global.get $~lib/memory/__stack_pointer @@ -37701,7 +37529,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -37718,7 +37546,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1120 + i32.const 7776 return end local.get $7 @@ -37732,13 +37560,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 9824 + i32.const 9664 local.set $0 block $~lib/util/number/dtoa_impl|inlined.1 local.get $3 @@ -37751,14 +37579,14 @@ f64.const 0 f64.ne if - i32.const 9856 + i32.const 9696 local.set $0 local.get $3 local.get $3 f64.ne br_if $~lib/util/number/dtoa_impl|inlined.1 - i32.const 9888 - i32.const 9936 + i32.const 9728 + i32.const 9776 local.get $3 f64.const 0 f64.lt @@ -37766,7 +37594,7 @@ local.set $0 br $~lib/util/number/dtoa_impl|inlined.1 end - i32.const 9968 + i32.const 9808 local.get $3 i32.const 0 call $~lib/util/number/dtoa_core @@ -37780,7 +37608,7 @@ local.tee $0 i32.store local.get $0 - i32.const 9968 + i32.const 9808 local.get $1 memory.copy end @@ -37791,10 +37619,10 @@ br $folding-inner1 end global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9740 + i32.const 9580 i32.load i32.const 1 i32.shr_u @@ -37839,7 +37667,7 @@ i32.const 1 i32.shl i32.add - i32.const 9744 + i32.const 9584 local.get $1 i32.const 1 i32.shl @@ -37890,8 +37718,8 @@ local.get $6 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -37910,11 +37738,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -37934,7 +37762,7 @@ local.get $0 call $~lib/typedarray/Int64Array#get:length global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9584 i32.store call $~lib/util/string/joinFloatArray global.get $~lib/memory/__stack_pointer @@ -37951,7 +37779,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -37982,7 +37810,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38005,9 +37833,9 @@ local.get $1 i32.lt_u if - i32.const 1344 - i32.const 3600 - i32.const 1860 + i32.const 1360 + i32.const 1632 + i32.const 1867 i32.const 5 call $~lib/builtins/abort unreachable @@ -38024,9 +37852,9 @@ local.get $1 i32.sub else - i32.const 3424 - i32.const 3600 - i32.const 1869 + i32.const 1056 + i32.const 1632 + i32.const 1876 i32.const 7 call $~lib/builtins/abort unreachable @@ -38039,9 +37867,9 @@ local.get $3 i32.gt_s if - i32.const 3424 - i32.const 3600 - i32.const 1874 + i32.const 1056 + i32.const 1632 + i32.const 1881 i32.const 7 call $~lib/builtins/abort unreachable @@ -38078,8 +37906,8 @@ local.get $3 return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -38092,11 +37920,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -38195,7 +38023,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38203,12 +38031,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -38225,11 +38053,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $2 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get i32.extend8_s @@ -38285,7 +38113,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38299,7 +38127,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38371,7 +38199,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -38390,8 +38218,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -38410,7 +38238,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38418,12 +38246,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -38440,11 +38268,11 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $2 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get i32.const 255 @@ -38501,7 +38329,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38515,7 +38343,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38587,7 +38415,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -38606,8 +38434,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -38626,7 +38454,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38634,12 +38462,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -38656,11 +38484,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $1 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get i32.extend16_s @@ -38716,7 +38544,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38730,7 +38558,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38753,9 +38581,9 @@ i32.const 1 i32.and if - i32.const 3424 - i32.const 3600 - i32.const 1865 + i32.const 1056 + i32.const 1632 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -38812,7 +38640,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -38831,8 +38659,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -38851,7 +38679,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38859,12 +38687,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -38881,11 +38709,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $1 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get i32.const 65535 @@ -38942,7 +38770,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38956,7 +38784,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -38979,9 +38807,9 @@ i32.const 1 i32.and if - i32.const 3424 - i32.const 3600 - i32.const 1865 + i32.const 1056 + i32.const 1632 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -39038,7 +38866,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -39057,8 +38885,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -39077,7 +38905,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39085,12 +38913,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -39107,11 +38935,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $1 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set @@ -39166,7 +38994,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39180,7 +39008,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39203,9 +39031,9 @@ i32.const 3 i32.and if - i32.const 3424 - i32.const 3600 - i32.const 1865 + i32.const 1056 + i32.const 1632 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -39262,7 +39090,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -39281,8 +39109,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -39301,7 +39129,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39309,12 +39137,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -39331,11 +39159,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $1 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set @@ -39390,7 +39218,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39404,7 +39232,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39427,9 +39255,9 @@ i32.const 3 i32.and if - i32.const 3424 - i32.const 3600 - i32.const 1865 + i32.const 1056 + i32.const 1632 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -39486,7 +39314,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -39505,8 +39333,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -39526,7 +39354,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39534,12 +39362,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -39556,11 +39384,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $1 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s @@ -39616,7 +39444,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39630,7 +39458,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39653,9 +39481,9 @@ i32.const 7 i32.and if - i32.const 3424 - i32.const 3600 - i32.const 1865 + i32.const 1056 + i32.const 1632 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -39712,7 +39540,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -39731,8 +39559,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -39752,7 +39580,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39760,12 +39588,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -39782,11 +39610,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $1 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s @@ -39842,7 +39670,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39856,7 +39684,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39879,9 +39707,9 @@ i32.const 7 i32.and if - i32.const 3424 - i32.const 3600 - i32.const 1865 + i32.const 1056 + i32.const 1632 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -39938,7 +39766,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -39957,8 +39785,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -39978,7 +39806,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -39986,12 +39814,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -40008,11 +39836,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $1 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get f32.convert_i32_s @@ -40068,7 +39896,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -40082,7 +39910,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -40105,9 +39933,9 @@ i32.const 3 i32.and if - i32.const 3424 - i32.const 3600 - i32.const 1865 + i32.const 1056 + i32.const 1632 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -40164,7 +39992,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -40183,8 +40011,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -40204,7 +40032,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -40212,12 +40040,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -40234,11 +40062,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $1 local.get $0 - i32.const 11088 + i32.const 10928 local.get $0 call $~lib/array/Array#__get f64.convert_i32_s @@ -40294,7 +40122,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -40308,7 +40136,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -40331,9 +40159,9 @@ i32.const 7 i32.and if - i32.const 3424 - i32.const 3600 - i32.const 1865 + i32.const 1056 + i32.const 1632 + i32.const 1872 i32.const 9 call $~lib/builtins/abort unreachable @@ -40390,7 +40218,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -40409,8 +40237,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -40425,11 +40253,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -40445,12 +40273,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11168 + i32.const 11008 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -40461,9 +40289,9 @@ local.get $1 i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -40475,9 +40303,9 @@ i32.load offset=4 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11172 + i32.const 11012 i32.load local.set $3 i32.const 0 @@ -40520,7 +40348,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -40541,7 +40369,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -40560,7 +40388,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -40587,7 +40415,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -40610,7 +40438,7 @@ local.get $5 i32.ne if - i32.const 11504 + i32.const 11344 i32.const 3 local.get $2 f64.convert_i32_s @@ -40622,7 +40450,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -40641,8 +40469,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -40656,11 +40484,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -40694,9 +40522,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -40751,11 +40579,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -40787,9 +40615,9 @@ local.get $2 i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -40819,11 +40647,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -40857,9 +40685,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -40914,11 +40742,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -40934,12 +40762,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11424 + i32.const 11264 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -40952,9 +40780,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -40967,9 +40795,9 @@ i32.const 7 i32.add global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11428 + i32.const 11268 i32.load local.get $1 memory.copy @@ -40996,7 +40824,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -41097,7 +40925,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> @@ -41107,7 +40935,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 11472 + i32.const 11312 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer @@ -41120,14 +40948,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -41140,12 +40968,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer @@ -41167,9 +40995,9 @@ i32.add local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $9 loop $for-loop|0 @@ -41213,7 +41041,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 11552 + i32.const 11392 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -41237,7 +41065,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 11584 + i32.const 11424 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -41250,14 +41078,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -41270,12 +41098,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11344 + i32.const 11184 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -41297,9 +41125,9 @@ i32.add local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11348 + i32.const 11188 i32.load local.set $8 i32.const 0 @@ -41345,7 +41173,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 11616 + i32.const 11456 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -41376,7 +41204,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> @@ -41386,7 +41214,7 @@ i32.const 10 i32.const 0 i32.const 16 - i32.const 11648 + i32.const 11488 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -41401,16 +41229,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -41421,11 +41249,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -41457,11 +41285,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -41485,7 +41313,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -41513,7 +41341,7 @@ local.get $4 i32.ne if - i32.const 11712 + i32.const 11552 i32.const 3 local.get $2 f64.convert_i32_s @@ -41525,7 +41353,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -41561,7 +41389,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -41662,7 +41490,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> @@ -41672,7 +41500,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 11680 + i32.const 11520 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer @@ -41685,14 +41513,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -41705,12 +41533,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer @@ -41732,9 +41560,9 @@ i32.add local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $9 loop $for-loop|0 @@ -41778,7 +41606,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 11760 + i32.const 11600 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -41802,7 +41630,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 11792 + i32.const 11632 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -41815,14 +41643,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -41835,12 +41663,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11344 + i32.const 11184 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -41862,9 +41690,9 @@ i32.add local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11348 + i32.const 11188 i32.load local.set $8 i32.const 0 @@ -41910,7 +41738,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 11824 + i32.const 11664 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -41941,7 +41769,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> @@ -41951,7 +41779,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 11856 + i32.const 11696 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -41966,16 +41794,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -41990,11 +41818,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -42018,7 +41846,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -42046,7 +41874,7 @@ local.get $4 i32.ne if - i32.const 11920 + i32.const 11760 i32.const 3 local.get $2 f64.convert_i32_s @@ -42058,7 +41886,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -42085,11 +41913,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -42130,9 +41958,9 @@ i32.lt_s end if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -42205,11 +42033,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -42250,9 +42078,9 @@ i32.lt_s end if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -42332,7 +42160,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -42433,14 +42261,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -42453,12 +42281,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11168 + i32.const 11008 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer @@ -42476,9 +42304,9 @@ i32.load offset=4 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11172 + i32.const 11012 i32.load local.set $10 loop $for-loop|0 @@ -42526,7 +42354,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 11888 + i32.const 11728 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -42539,14 +42367,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -42559,12 +42387,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -42586,9 +42414,9 @@ i32.add local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $9 i32.const 0 @@ -42640,7 +42468,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 11984 + i32.const 11824 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -42665,7 +42493,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 12016 + i32.const 11856 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -42678,14 +42506,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -42698,12 +42526,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11344 + i32.const 11184 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -42725,9 +42553,9 @@ i32.add local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11348 + i32.const 11188 i32.load local.set $8 i32.const 0 @@ -42779,7 +42607,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 12048 + i32.const 11888 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -42811,14 +42639,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -42831,12 +42659,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11424 + i32.const 11264 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -42858,9 +42686,9 @@ i32.add local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11428 + i32.const 11268 i32.load local.set $6 i32.const 0 @@ -42908,7 +42736,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 12080 + i32.const 11920 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -42923,16 +42751,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -42946,11 +42774,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -42966,12 +42794,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11168 + i32.const 11008 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -42982,9 +42810,9 @@ local.get $1 i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -42996,9 +42824,9 @@ i32.load offset=4 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11172 + i32.const 11012 i32.load local.set $3 i32.const 0 @@ -43038,11 +42866,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -43076,11 +42904,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -43104,7 +42932,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -43132,7 +42960,7 @@ local.get $4 i32.ne if - i32.const 12160 + i32.const 12000 i32.const 3 local.get $2 f64.convert_i32_s @@ -43144,7 +42972,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -43170,11 +42998,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -43208,9 +43036,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -43268,11 +43096,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -43304,9 +43132,9 @@ local.get $2 i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -43359,11 +43187,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -43397,9 +43225,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -43434,11 +43262,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -43454,12 +43282,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11424 + i32.const 11264 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -43472,9 +43300,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -43488,9 +43316,9 @@ i32.add local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11428 + i32.const 11268 i32.load local.set $3 i32.const 0 @@ -43540,7 +43368,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -43641,7 +43469,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> @@ -43651,7 +43479,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 12112 + i32.const 11952 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer @@ -43664,14 +43492,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -43684,12 +43512,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer @@ -43711,9 +43539,9 @@ i32.add local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $9 loop $for-loop|0 @@ -43759,7 +43587,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 12208 + i32.const 12048 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -43783,7 +43611,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 12256 + i32.const 12096 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -43796,14 +43624,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -43816,12 +43644,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11344 + i32.const 11184 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -43843,9 +43671,9 @@ i32.add local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11348 + i32.const 11188 i32.load local.set $8 i32.const 0 @@ -43893,7 +43721,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 12304 + i32.const 12144 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -43924,7 +43752,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> @@ -43934,7 +43762,7 @@ i32.const 10 i32.const 1 i32.const 65 - i32.const 12352 + i32.const 12192 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -43949,16 +43777,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -43969,11 +43797,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -44007,11 +43835,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -44035,7 +43863,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -44063,7 +43891,7 @@ local.get $4 i32.ne if - i32.const 12448 + i32.const 12288 i32.const 3 local.get $2 f64.convert_i32_s @@ -44075,7 +43903,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -44111,7 +43939,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -44212,7 +44040,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> @@ -44222,7 +44050,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 12400 + i32.const 12240 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer @@ -44235,14 +44063,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -44255,12 +44083,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer @@ -44282,9 +44110,9 @@ i32.add local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $9 loop $for-loop|0 @@ -44330,7 +44158,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 12496 + i32.const 12336 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -44354,7 +44182,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 12544 + i32.const 12384 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -44367,14 +44195,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -44387,12 +44215,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11344 + i32.const 11184 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -44414,9 +44242,9 @@ i32.add local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11348 + i32.const 11188 i32.load local.set $8 i32.const 0 @@ -44464,7 +44292,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 12592 + i32.const 12432 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -44495,7 +44323,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> @@ -44505,7 +44333,7 @@ i32.const 10 i32.const 1 i32.const 66 - i32.const 12640 + i32.const 12480 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -44520,16 +44348,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -44541,11 +44369,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -44586,9 +44414,9 @@ i32.lt_s end if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -44622,11 +44450,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -44660,11 +44488,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -44688,7 +44516,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -44716,7 +44544,7 @@ local.get $4 i32.ne if - i32.const 12752 + i32.const 12592 i32.const 3 local.get $2 f64.convert_i32_s @@ -44728,7 +44556,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -44754,11 +44582,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -44792,9 +44620,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -44852,11 +44680,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -44888,9 +44716,9 @@ local.get $2 i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -44944,11 +44772,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -44982,9 +44810,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -45043,11 +44871,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -45063,12 +44891,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11424 + i32.const 11264 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -45081,9 +44909,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -45097,9 +44925,9 @@ i32.add local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11428 + i32.const 11268 i32.load local.set $3 i32.const 0 @@ -45150,7 +44978,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -45251,10 +45079,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 local.get $0 - i32.const 11168 + i32.const 11008 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -45263,7 +45091,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 12688 + i32.const 12528 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer @@ -45276,14 +45104,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -45296,12 +45124,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -45323,9 +45151,9 @@ i32.add local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $10 loop $for-loop|0 @@ -45371,7 +45199,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 12800 + i32.const 12640 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -45395,7 +45223,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 12864 + i32.const 12704 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -45408,14 +45236,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -45428,12 +45256,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11344 + i32.const 11184 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -45455,9 +45283,9 @@ i32.add local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11348 + i32.const 11188 i32.load local.set $8 i32.const 0 @@ -45505,7 +45333,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 12928 + i32.const 12768 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -45536,7 +45364,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 local.get $0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -45546,7 +45374,7 @@ i32.const 10 i32.const 2 i32.const 17 - i32.const 12992 + i32.const 12832 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -45561,16 +45389,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -45581,11 +45409,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -45619,11 +45447,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -45647,7 +45475,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -45675,7 +45503,7 @@ local.get $4 i32.ne if - i32.const 13120 + i32.const 12960 i32.const 3 local.get $2 f64.convert_i32_s @@ -45687,7 +45515,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -45724,7 +45552,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -45825,10 +45653,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 local.get $0 - i32.const 11168 + i32.const 11008 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -45837,7 +45665,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 13056 + i32.const 12896 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer @@ -45850,14 +45678,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -45870,12 +45698,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -45897,9 +45725,9 @@ i32.add local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $10 loop $for-loop|0 @@ -45945,7 +45773,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 13168 + i32.const 13008 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -45969,7 +45797,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 13232 + i32.const 13072 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -45982,14 +45810,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -46002,12 +45830,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11344 + i32.const 11184 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -46029,9 +45857,9 @@ i32.add local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11348 + i32.const 11188 i32.load local.set $8 i32.const 0 @@ -46079,7 +45907,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 13296 + i32.const 13136 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -46110,7 +45938,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 local.get $0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -46120,7 +45948,7 @@ i32.const 10 i32.const 2 i32.const 67 - i32.const 13360 + i32.const 13200 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -46135,16 +45963,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -46158,11 +45986,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -46178,12 +46006,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11168 + i32.const 11008 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -46194,9 +46022,9 @@ local.get $1 i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -46208,9 +46036,9 @@ i32.load offset=4 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11172 + i32.const 11012 i32.load local.set $3 i32.const 0 @@ -46251,11 +46079,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -46289,11 +46117,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -46317,7 +46145,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -46345,7 +46173,7 @@ local.get $4 i64.ne if - i32.const 13536 + i32.const 13376 i32.const 3 local.get $2 f64.convert_i32_s @@ -46357,7 +46185,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -46382,11 +46210,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -46420,9 +46248,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -46456,11 +46284,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -46492,9 +46320,9 @@ local.get $2 i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -46548,11 +46376,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -46586,9 +46414,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -46647,11 +46475,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -46667,12 +46495,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11424 + i32.const 11264 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer @@ -46685,9 +46513,9 @@ i32.add i32.lt_s if - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -46701,9 +46529,9 @@ i32.add local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11428 + i32.const 11268 i32.load local.set $3 i32.const 0 @@ -46753,7 +46581,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -46854,7 +46682,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> @@ -46864,7 +46692,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 13424 + i32.const 13264 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -46877,14 +46705,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -46897,12 +46725,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $7 global.get $~lib/memory/__stack_pointer @@ -46924,9 +46752,9 @@ i32.add local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $9 loop $for-loop|0 @@ -46972,7 +46800,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 13584 + i32.const 13424 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -46996,7 +46824,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 13696 + i32.const 13536 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -47009,14 +46837,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -47029,12 +46857,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11344 + i32.const 11184 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -47056,9 +46884,9 @@ i32.add local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11348 + i32.const 11188 i32.load local.set $8 i32.const 0 @@ -47106,7 +46934,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 13808 + i32.const 13648 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -47137,7 +46965,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> @@ -47147,7 +46975,7 @@ i32.const 10 i32.const 3 i32.const 68 - i32.const 13920 + i32.const 13760 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -47162,16 +46990,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -47183,11 +47011,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -47221,11 +47049,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -47249,7 +47077,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -47277,7 +47105,7 @@ local.get $4 i64.ne if - i32.const 14144 + i32.const 13984 i32.const 3 local.get $2 f64.convert_i32_s @@ -47289,7 +47117,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -47325,7 +47153,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -47426,7 +47254,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> @@ -47436,7 +47264,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 14032 + i32.const 13872 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -47449,14 +47277,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -47469,12 +47297,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $7 global.get $~lib/memory/__stack_pointer @@ -47496,9 +47324,9 @@ i32.add local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $9 loop $for-loop|0 @@ -47544,7 +47372,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 14192 + i32.const 14032 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -47568,7 +47396,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 14304 + i32.const 14144 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -47581,14 +47409,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -47601,12 +47429,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11344 + i32.const 11184 call $~lib/array/Array#get:length local.set $6 global.get $~lib/memory/__stack_pointer @@ -47628,9 +47456,9 @@ i32.add local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11184 i32.store offset=8 - i32.const 11348 + i32.const 11188 i32.load local.set $8 i32.const 0 @@ -47678,7 +47506,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 14416 + i32.const 14256 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -47709,7 +47537,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> @@ -47719,7 +47547,7 @@ i32.const 10 i32.const 3 i32.const 69 - i32.const 14528 + i32.const 14368 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -47734,16 +47562,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -47755,11 +47583,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -47793,11 +47621,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -47821,7 +47649,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -47849,7 +47677,7 @@ local.get $4 f32.ne if - i32.const 14704 + i32.const 14544 i32.const 3 local.get $2 f64.convert_i32_s @@ -47861,7 +47689,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -47896,7 +47724,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -47997,14 +47825,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -48017,12 +47845,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11168 + i32.const 11008 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer @@ -48040,9 +47868,9 @@ i32.load offset=4 local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11172 + i32.const 11012 i32.load local.set $8 loop $for-loop|0 @@ -48079,7 +47907,7 @@ i32.const 10 i32.const 2 i32.const 62 - i32.const 14640 + i32.const 14480 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -48092,10 +47920,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 local.get $0 - i32.const 11248 + i32.const 11088 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -48104,7 +47932,7 @@ i32.const 10 i32.const 2 i32.const 62 - i32.const 14752 + i32.const 14592 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -48124,7 +47952,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -48206,7 +48034,7 @@ i32.const 10 i32.const 2 i32.const 62 - i32.const 14816 + i32.const 14656 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -48226,7 +48054,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -48307,7 +48135,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -48387,14 +48215,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -48407,12 +48235,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11424 + i32.const 11264 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -48434,9 +48262,9 @@ i32.add local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11428 + i32.const 11268 i32.load local.set $4 i32.const 0 @@ -48474,7 +48302,7 @@ i32.const 10 i32.const 2 i32.const 62 - i32.const 14880 + i32.const 14720 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -48489,16 +48317,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -48510,11 +48338,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -48548,11 +48376,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -48576,7 +48404,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 758 i32.const 3 call $~lib/builtins/abort @@ -48604,7 +48432,7 @@ local.get $4 f64.ne if - i32.const 15056 + i32.const 14896 i32.const 3 local.get $2 f64.convert_i32_s @@ -48614,7 +48442,7 @@ f64.const 0 call $~lib/builtins/trace i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 764 i32.const 7 call $~lib/builtins/abort @@ -48648,7 +48476,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -48749,14 +48577,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -48769,12 +48597,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11168 + i32.const 11008 call $~lib/array/Array#get:length local.set $5 global.get $~lib/memory/__stack_pointer @@ -48792,9 +48620,9 @@ i32.load offset=4 local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 11168 + i32.const 11008 i32.store offset=8 - i32.const 11172 + i32.const 11012 i32.load local.set $7 loop $for-loop|0 @@ -48832,7 +48660,7 @@ i32.const 10 i32.const 3 i32.const 63 - i32.const 14944 + i32.const 14784 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -48845,14 +48673,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -48865,12 +48693,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11248 + i32.const 11088 call $~lib/array/Array#get:length local.set $5 global.get $~lib/memory/__stack_pointer @@ -48892,9 +48720,9 @@ i32.add local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11088 i32.store offset=8 - i32.const 11252 + i32.const 11092 i32.load local.set $7 i32.const 0 @@ -48934,7 +48762,7 @@ i32.const 10 i32.const 3 i32.const 63 - i32.const 15104 + i32.const 14944 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -48954,7 +48782,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -49035,7 +48863,7 @@ i32.const 10 i32.const 3 i32.const 63 - i32.const 15216 + i32.const 15056 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -49055,7 +48883,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -49136,7 +48964,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -49216,14 +49044,14 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=20 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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -49236,12 +49064,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11424 + i32.const 11264 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer @@ -49263,9 +49091,9 @@ i32.add local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 11424 + i32.const 11264 i32.store offset=8 - i32.const 11428 + i32.const 11268 i32.load local.set $4 i32.const 0 @@ -49303,7 +49131,7 @@ i32.const 10 i32.const 3 i32.const 63 - i32.const 15328 + i32.const 15168 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -49318,16 +49146,16 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable @@ -49351,11 +49179,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -49771,11 +49599,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -49824,11 +49652,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -50244,11 +50072,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -50297,11 +50125,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -50719,11 +50547,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -50772,11 +50600,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -51194,11 +51022,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -51247,11 +51075,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -51669,11 +51497,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -51722,11 +51550,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -52144,11 +51972,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -52199,11 +52027,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -52621,11 +52449,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -52676,11 +52504,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -53098,11 +52926,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -53154,11 +52982,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -53576,11 +53404,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -53649,7 +53477,7 @@ block $folding-inner3 block $folding-inner2 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -53659,34 +53487,34 @@ memory.size i32.const 16 i32.shl - i32.const 49248 + i32.const 49088 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 + i32.const 1284 + i32.const 1280 i32.store - i32.const 1272 - i32.const 1264 + i32.const 1288 + i32.const 1280 i32.store - i32.const 1264 + i32.const 1280 global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 + i32.const 1316 + i32.const 1312 i32.store - i32.const 1304 - i32.const 1296 + i32.const 1320 + i32.const 1312 i32.store - i32.const 1296 + i32.const 1312 global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 + i32.const 1460 + i32.const 1456 i32.store - i32.const 1448 - i32.const 1440 + i32.const 1464 + i32.const 1456 i32.store - i32.const 1440 + i32.const 1456 global.set $~lib/rt/itcms/fromSpace i32.const 0 call $std/typedarray/testInstantiate @@ -53727,7 +53555,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 95 i32.const 3 call $~lib/builtins/abort @@ -53740,7 +53568,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 96 i32.const 3 call $~lib/builtins/abort @@ -53755,7 +53583,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 97 i32.const 3 call $~lib/builtins/abort @@ -53771,7 +53599,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 98 i32.const 3 call $~lib/builtins/abort @@ -53787,7 +53615,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 99 i32.const 3 call $~lib/builtins/abort @@ -53803,7 +53631,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 100 i32.const 3 call $~lib/builtins/abort @@ -53828,7 +53656,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 103 i32.const 3 call $~lib/builtins/abort @@ -53843,7 +53671,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 104 i32.const 3 call $~lib/builtins/abort @@ -53858,7 +53686,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 105 i32.const 3 call $~lib/builtins/abort @@ -53874,7 +53702,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 106 i32.const 3 call $~lib/builtins/abort @@ -53960,7 +53788,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 122 i32.const 3 call $~lib/builtins/abort @@ -53975,7 +53803,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 123 i32.const 3 call $~lib/builtins/abort @@ -53990,7 +53818,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 124 i32.const 3 call $~lib/builtins/abort @@ -54051,7 +53879,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 126 i32.const 3 call $~lib/builtins/abort @@ -54091,7 +53919,7 @@ call $~lib/typedarray/Uint8ClampedArray#__get if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -54107,7 +53935,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 136 i32.const 3 call $~lib/builtins/abort @@ -54123,7 +53951,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 137 i32.const 3 call $~lib/builtins/abort @@ -54183,7 +54011,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 3696 + i32.const 1728 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54195,7 +54023,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 149 i32.const 3 call $~lib/builtins/abort @@ -54216,7 +54044,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 3776 + i32.const 1808 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54228,7 +54056,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 152 i32.const 3 call $~lib/builtins/abort @@ -54248,7 +54076,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 3808 + i32.const 1840 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54260,7 +54088,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 155 i32.const 3 call $~lib/builtins/abort @@ -54281,7 +54109,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 3840 + i32.const 1872 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54293,7 +54121,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 158 i32.const 3 call $~lib/builtins/abort @@ -54313,7 +54141,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 3872 + i32.const 1904 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54325,7 +54153,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 161 i32.const 3 call $~lib/builtins/abort @@ -54359,7 +54187,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 165 i32.const 3 call $~lib/builtins/abort @@ -54374,7 +54202,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 166 i32.const 3 call $~lib/builtins/abort @@ -54389,7 +54217,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 167 i32.const 3 call $~lib/builtins/abort @@ -54401,7 +54229,7 @@ i32.const 3 i32.const 0 i32.const 16 - i32.const 3904 + i32.const 1936 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -54413,7 +54241,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 168 i32.const 3 call $~lib/builtins/abort @@ -54425,7 +54253,7 @@ i32.const 5 i32.const 0 i32.const 16 - i32.const 3936 + i32.const 1968 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54437,7 +54265,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 169 i32.const 3 call $~lib/builtins/abort @@ -54497,7 +54325,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 3968 + i32.const 2000 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54509,7 +54337,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 181 i32.const 3 call $~lib/builtins/abort @@ -54530,7 +54358,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4016 + i32.const 2048 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54542,7 +54370,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 184 i32.const 3 call $~lib/builtins/abort @@ -54562,7 +54390,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4064 + i32.const 2096 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54574,7 +54402,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 187 i32.const 3 call $~lib/builtins/abort @@ -54595,7 +54423,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4112 + i32.const 2144 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54607,7 +54435,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 190 i32.const 3 call $~lib/builtins/abort @@ -54627,7 +54455,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4160 + i32.const 2192 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54639,7 +54467,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 193 i32.const 3 call $~lib/builtins/abort @@ -54673,7 +54501,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 197 i32.const 3 call $~lib/builtins/abort @@ -54688,7 +54516,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 198 i32.const 3 call $~lib/builtins/abort @@ -54703,7 +54531,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 199 i32.const 3 call $~lib/builtins/abort @@ -54715,7 +54543,7 @@ i32.const 3 i32.const 2 i32.const 17 - i32.const 4208 + i32.const 2240 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -54727,7 +54555,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 200 i32.const 3 call $~lib/builtins/abort @@ -54739,7 +54567,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4240 + i32.const 2272 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -54751,7 +54579,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 201 i32.const 3 call $~lib/builtins/abort @@ -54824,7 +54652,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 222 i32.const 3 call $~lib/builtins/abort @@ -54839,7 +54667,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 223 i32.const 3 call $~lib/builtins/abort @@ -54854,7 +54682,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 224 i32.const 3 call $~lib/builtins/abort @@ -54869,7 +54697,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 225 i32.const 3 call $~lib/builtins/abort @@ -54895,7 +54723,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 228 i32.const 3 call $~lib/builtins/abort @@ -54910,7 +54738,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 229 i32.const 3 call $~lib/builtins/abort @@ -54925,7 +54753,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 230 i32.const 3 call $~lib/builtins/abort @@ -54940,7 +54768,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 231 i32.const 3 call $~lib/builtins/abort @@ -54966,7 +54794,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 234 i32.const 3 call $~lib/builtins/abort @@ -54981,7 +54809,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 235 i32.const 3 call $~lib/builtins/abort @@ -54996,7 +54824,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 236 i32.const 3 call $~lib/builtins/abort @@ -55011,7 +54839,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 237 i32.const 3 call $~lib/builtins/abort @@ -55083,7 +54911,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4288 + i32.const 2320 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55095,7 +54923,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 248 i32.const 3 call $~lib/builtins/abort @@ -55127,7 +54955,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4336 + i32.const 2368 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55139,7 +54967,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 250 i32.const 3 call $~lib/builtins/abort @@ -55171,7 +54999,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4384 + i32.const 2416 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55183,7 +55011,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 252 i32.const 3 call $~lib/builtins/abort @@ -55215,7 +55043,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4432 + i32.const 2464 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55227,7 +55055,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 254 i32.const 3 call $~lib/builtins/abort @@ -55258,7 +55086,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4480 + i32.const 2512 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55270,7 +55098,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 256 i32.const 3 call $~lib/builtins/abort @@ -55301,7 +55129,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4528 + i32.const 2560 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55313,7 +55141,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 258 i32.const 3 call $~lib/builtins/abort @@ -55344,7 +55172,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4576 + i32.const 2608 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55356,7 +55184,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 260 i32.const 3 call $~lib/builtins/abort @@ -55388,7 +55216,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4624 + i32.const 2656 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55400,7 +55228,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 262 i32.const 3 call $~lib/builtins/abort @@ -55431,7 +55259,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4672 + i32.const 2704 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55443,7 +55271,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 264 i32.const 3 call $~lib/builtins/abort @@ -55474,7 +55302,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4720 + i32.const 2752 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55486,7 +55314,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 266 i32.const 3 call $~lib/builtins/abort @@ -55517,7 +55345,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4768 + i32.const 2800 call $~lib/rt/__newArray local.set $8 global.get $~lib/memory/__stack_pointer @@ -55529,7 +55357,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 268 i32.const 3 call $~lib/builtins/abort @@ -55561,7 +55389,7 @@ i32.const 5 i32.const 2 i32.const 17 - i32.const 4816 + i32.const 2848 call $~lib/rt/__newArray local.set $7 global.get $~lib/memory/__stack_pointer @@ -55573,7 +55401,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 270 i32.const 3 call $~lib/builtins/abort @@ -55638,7 +55466,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 282 i32.const 3 call $~lib/builtins/abort @@ -55653,7 +55481,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 283 i32.const 3 call $~lib/builtins/abort @@ -55668,7 +55496,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 284 i32.const 3 call $~lib/builtins/abort @@ -55694,7 +55522,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 287 i32.const 3 call $~lib/builtins/abort @@ -55710,7 +55538,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 288 i32.const 3 call $~lib/builtins/abort @@ -55725,7 +55553,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 289 i32.const 3 call $~lib/builtins/abort @@ -55738,7 +55566,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 290 i32.const 3 call $~lib/builtins/abort @@ -55753,7 +55581,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 291 i32.const 3 call $~lib/builtins/abort @@ -55779,7 +55607,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 294 i32.const 3 call $~lib/builtins/abort @@ -55794,7 +55622,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 295 i32.const 3 call $~lib/builtins/abort @@ -55807,7 +55635,7 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 296 i32.const 3 call $~lib/builtins/abort @@ -55822,7 +55650,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 297 i32.const 3 call $~lib/builtins/abort @@ -55843,7 +55671,7 @@ i32.eq if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 300 i32.const 3 call $~lib/builtins/abort @@ -55864,7 +55692,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 301 i32.const 3 call $~lib/builtins/abort @@ -55885,7 +55713,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 302 i32.const 3 call $~lib/builtins/abort @@ -55904,7 +55732,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 303 i32.const 3 call $~lib/builtins/abort @@ -55915,7 +55743,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -55954,14 +55782,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4864 + i32.const 2896 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -55974,7 +55802,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4864 + i32.const 2896 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $6 @@ -56007,7 +55835,7 @@ local.get $9 local.get $0 local.get $6 - i32.const 4864 + i32.const 2896 i32.load call_indirect (type $6) local.set $1 @@ -56037,7 +55865,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56076,10 +55904,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4896 + i32.const 2928 i32.store offset=8 local.get $0 - i32.const 4896 + i32.const 2928 call $~lib/typedarray/Uint8Array#reduce i32.const 255 i32.and @@ -56095,7 +55923,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56134,10 +55962,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4928 + i32.const 2960 i32.store offset=8 local.get $0 - i32.const 4928 + i32.const 2960 call $~lib/typedarray/Uint8Array#reduce i32.const 255 i32.and @@ -56155,7 +55983,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56194,14 +56022,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4960 + i32.const 2992 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56214,7 +56042,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4960 + i32.const 2992 i32.store offset=4 i32.const 0 local.set $1 @@ -56251,7 +56079,7 @@ local.get $9 local.get $0 local.get $6 - i32.const 4960 + i32.const 2992 i32.load call_indirect (type $6) local.set $1 @@ -56283,7 +56111,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56322,14 +56150,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4992 + i32.const 3024 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56342,7 +56170,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4992 + i32.const 3024 i32.store offset=4 i32.const 0 local.set $1 @@ -56379,7 +56207,7 @@ local.get $9 local.get $0 local.get $6 - i32.const 4992 + i32.const 3024 i32.load call_indirect (type $6) local.set $1 @@ -56411,7 +56239,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56450,14 +56278,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5024 + i32.const 3056 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56470,7 +56298,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5024 + i32.const 3056 i32.store offset=4 i32.const 0 local.set $1 @@ -56507,7 +56335,7 @@ local.get $9 local.get $0 local.get $6 - i32.const 5024 + i32.const 3056 i32.load call_indirect (type $6) local.set $1 @@ -56537,7 +56365,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56576,14 +56404,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5056 + i32.const 3088 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56596,7 +56424,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5056 + i32.const 3088 i32.store offset=4 i32.const 0 local.set $1 @@ -56633,7 +56461,7 @@ local.get $9 local.get $0 local.get $6 - i32.const 5056 + i32.const 3088 i32.load call_indirect (type $6) local.set $1 @@ -56663,7 +56491,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56702,14 +56530,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5088 + i32.const 3120 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56722,7 +56550,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5088 + i32.const 3120 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -56757,7 +56585,7 @@ local.get $10 local.get $0 local.get $1 - i32.const 5088 + i32.const 3120 i32.load call_indirect (type $17) local.set $3 @@ -56789,7 +56617,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56828,14 +56656,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5120 + i32.const 3152 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56848,7 +56676,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5120 + i32.const 3152 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -56883,7 +56711,7 @@ local.get $10 local.get $0 local.get $1 - i32.const 5120 + i32.const 3152 i32.load call_indirect (type $17) local.set $3 @@ -56913,7 +56741,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56952,14 +56780,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5152 + i32.const 3184 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -56972,7 +56800,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5152 + i32.const 3184 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -57007,9 +56835,9 @@ local.get $11 local.get $0 local.get $1 - i32.const 5152 + i32.const 3184 i32.load - call_indirect (type $21) + call_indirect (type $22) local.set $4 local.get $0 i32.const 1 @@ -57037,7 +56865,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57076,14 +56904,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5184 + i32.const 3216 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57096,7 +56924,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5184 + i32.const 3216 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -57131,9 +56959,9 @@ local.get $12 local.get $0 local.get $1 - i32.const 5184 + i32.const 3216 i32.load - call_indirect (type $22) + call_indirect (type $23) local.set $5 local.get $0 i32.const 1 @@ -57159,7 +56987,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57227,7 +57055,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57295,7 +57123,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57363,7 +57191,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57431,7 +57259,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57499,7 +57327,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57567,7 +57395,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57635,7 +57463,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57703,7 +57531,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57771,7 +57599,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57839,7 +57667,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57907,7 +57735,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57946,14 +57774,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5216 + i32.const 3248 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -57966,7 +57794,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5216 + i32.const 3248 i32.store offset=4 i32.const 0 local.set $1 @@ -58003,7 +57831,7 @@ local.get $8 local.get $0 local.get $6 - i32.const 5216 + i32.const 3248 i32.load call_indirect (type $6) local.set $1 @@ -58033,7 +57861,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58072,10 +57900,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5248 + i32.const 3280 i32.store offset=8 local.get $0 - i32.const 5248 + i32.const 3280 call $~lib/typedarray/Uint8Array#reduceRight i32.const 255 i32.and @@ -58091,7 +57919,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58130,10 +57958,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 3312 i32.store offset=8 local.get $0 - i32.const 5280 + i32.const 3312 call $~lib/typedarray/Uint8Array#reduceRight i32.const 255 i32.and @@ -58149,7 +57977,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58188,14 +58016,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5312 + i32.const 3344 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58208,7 +58036,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5312 + i32.const 3344 i32.store offset=4 i32.const 0 local.set $1 @@ -58247,7 +58075,7 @@ local.get $8 local.get $0 local.get $6 - i32.const 5312 + i32.const 3344 i32.load call_indirect (type $6) local.set $1 @@ -58277,7 +58105,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58316,14 +58144,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5344 + i32.const 3376 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58336,7 +58164,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5344 + i32.const 3376 i32.store offset=4 i32.const 0 local.set $1 @@ -58375,7 +58203,7 @@ local.get $8 local.get $0 local.get $6 - i32.const 5344 + i32.const 3376 i32.load call_indirect (type $6) local.set $1 @@ -58405,7 +58233,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58444,14 +58272,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5376 + i32.const 3408 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58464,7 +58292,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5376 + i32.const 3408 i32.store offset=4 i32.const 0 local.set $1 @@ -58503,7 +58331,7 @@ local.get $8 local.get $0 local.get $6 - i32.const 5376 + i32.const 3408 i32.load call_indirect (type $6) local.set $1 @@ -58531,7 +58359,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58570,14 +58398,14 @@ local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5408 + i32.const 3440 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58590,7 +58418,7 @@ local.get $6 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5408 + i32.const 3440 i32.store offset=4 i32.const 0 local.set $1 @@ -58629,7 +58457,7 @@ local.get $8 local.get $0 local.get $6 - i32.const 5408 + i32.const 3440 i32.load call_indirect (type $6) local.set $1 @@ -58659,7 +58487,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58698,14 +58526,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5440 + i32.const 3472 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58718,7 +58546,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5440 + i32.const 3472 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -58755,7 +58583,7 @@ local.get $10 local.get $0 local.get $1 - i32.const 5440 + i32.const 3472 i32.load call_indirect (type $17) local.set $3 @@ -58785,7 +58613,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58824,14 +58652,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5472 + i32.const 3504 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58844,7 +58672,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5472 + i32.const 3504 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -58881,7 +58709,7 @@ local.get $10 local.get $0 local.get $1 - i32.const 5472 + i32.const 3504 i32.load call_indirect (type $17) local.set $3 @@ -58911,7 +58739,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58950,14 +58778,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5504 + i32.const 3536 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -58970,7 +58798,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5504 + i32.const 3536 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -59007,9 +58835,9 @@ local.get $11 local.get $0 local.get $1 - i32.const 5504 + i32.const 3536 i32.load - call_indirect (type $21) + call_indirect (type $22) local.set $4 local.get $0 i32.const 1 @@ -59037,7 +58865,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59076,14 +58904,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5536 + i32.const 3568 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59096,7 +58924,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5536 + i32.const 3568 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -59133,9 +58961,9 @@ local.get $12 local.get $0 local.get $1 - i32.const 5536 + i32.const 3568 i32.load - call_indirect (type $22) + call_indirect (type $23) local.set $5 local.get $0 i32.const 1 @@ -59183,7 +59011,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59222,10 +59050,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6272 + i32.const 4304 i32.store offset=8 local.get $0 - i32.const 6272 + i32.const 4304 call $~lib/typedarray/Int8Array#some i32.eqz br_if $folding-inner6 @@ -59233,10 +59061,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6304 + i32.const 4336 i32.store offset=8 local.get $0 - i32.const 6304 + i32.const 4336 call $~lib/typedarray/Int8Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59248,7 +59076,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59287,10 +59115,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6336 + i32.const 4368 i32.store offset=8 local.get $0 - i32.const 6336 + i32.const 4368 call $~lib/typedarray/Uint8Array#some i32.eqz br_if $folding-inner6 @@ -59298,10 +59126,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6368 + i32.const 4400 i32.store offset=8 local.get $0 - i32.const 6368 + i32.const 4400 call $~lib/typedarray/Uint8Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59313,7 +59141,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59352,10 +59180,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6400 + i32.const 4432 i32.store offset=8 local.get $0 - i32.const 6400 + i32.const 4432 call $~lib/typedarray/Uint8Array#some i32.eqz br_if $folding-inner6 @@ -59363,10 +59191,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6432 + i32.const 4464 i32.store offset=8 local.get $0 - i32.const 6432 + i32.const 4464 call $~lib/typedarray/Uint8Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59378,7 +59206,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59417,10 +59245,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6464 + i32.const 4496 i32.store offset=8 local.get $0 - i32.const 6464 + i32.const 4496 call $~lib/typedarray/Int16Array#some i32.eqz br_if $folding-inner6 @@ -59428,10 +59256,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6496 + i32.const 4528 i32.store offset=8 local.get $0 - i32.const 6496 + i32.const 4528 call $~lib/typedarray/Int16Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59443,7 +59271,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59482,10 +59310,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6528 + i32.const 4560 i32.store offset=8 local.get $0 - i32.const 6528 + i32.const 4560 call $~lib/typedarray/Uint16Array#some i32.eqz br_if $folding-inner6 @@ -59493,10 +59321,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6560 + i32.const 4592 i32.store offset=8 local.get $0 - i32.const 6560 + i32.const 4592 call $~lib/typedarray/Uint16Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59508,7 +59336,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59547,10 +59375,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6592 + i32.const 4624 i32.store offset=8 local.get $0 - i32.const 6592 + i32.const 4624 call $~lib/typedarray/Int32Array#some i32.eqz br_if $folding-inner6 @@ -59558,10 +59386,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6624 + i32.const 4656 i32.store offset=8 local.get $0 - i32.const 6624 + i32.const 4656 call $~lib/typedarray/Int32Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59573,7 +59401,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59612,10 +59440,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6656 + i32.const 4688 i32.store offset=8 local.get $0 - i32.const 6656 + i32.const 4688 call $~lib/typedarray/Uint32Array#some i32.eqz br_if $folding-inner6 @@ -59623,10 +59451,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6688 + i32.const 4720 i32.store offset=8 local.get $0 - i32.const 6688 + i32.const 4720 call $~lib/typedarray/Uint32Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59638,7 +59466,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59677,10 +59505,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6720 + i32.const 4752 i32.store offset=8 local.get $0 - i32.const 6720 + i32.const 4752 call $~lib/typedarray/Int64Array#some i32.eqz br_if $folding-inner6 @@ -59688,10 +59516,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6752 + i32.const 4784 i32.store offset=8 local.get $0 - i32.const 6752 + i32.const 4784 call $~lib/typedarray/Int64Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59703,7 +59531,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59742,10 +59570,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6784 + i32.const 4816 i32.store offset=8 local.get $0 - i32.const 6784 + i32.const 4816 call $~lib/typedarray/Uint64Array#some i32.eqz br_if $folding-inner6 @@ -59753,10 +59581,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6816 + i32.const 4848 i32.store offset=8 local.get $0 - i32.const 6816 + i32.const 4848 call $~lib/typedarray/Uint64Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59768,7 +59596,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59807,10 +59635,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6848 + i32.const 4880 i32.store offset=8 local.get $0 - i32.const 6848 + i32.const 4880 call $~lib/typedarray/Float32Array#some i32.eqz br_if $folding-inner6 @@ -59818,10 +59646,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6880 + i32.const 4912 i32.store offset=8 local.get $0 - i32.const 6880 + i32.const 4912 call $~lib/typedarray/Float32Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59833,7 +59661,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59872,10 +59700,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6912 + i32.const 4944 i32.store offset=8 local.get $0 - i32.const 6912 + i32.const 4944 call $~lib/typedarray/Float64Array#some i32.eqz br_if $folding-inner6 @@ -59883,10 +59711,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6944 + i32.const 4976 i32.store offset=8 local.get $0 - i32.const 6944 + i32.const 4976 call $~lib/typedarray/Float64Array#some br_if $folding-inner7 global.get $~lib/memory/__stack_pointer @@ -59898,7 +59726,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -59937,10 +59765,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6976 + i32.const 5008 i32.store offset=8 local.get $0 - i32.const 6976 + i32.const 5008 call $~lib/typedarray/Int8Array#findIndex i32.const 1 i32.ne @@ -59949,10 +59777,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7008 + i32.const 5040 i32.store offset=8 local.get $0 - i32.const 7008 + i32.const 5040 call $~lib/typedarray/Int8Array#findIndex i32.const -1 i32.ne @@ -59966,7 +59794,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60005,10 +59833,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7040 + i32.const 5072 i32.store offset=8 local.get $0 - i32.const 7040 + i32.const 5072 call $~lib/typedarray/Uint8Array#findIndex i32.const 1 i32.ne @@ -60017,10 +59845,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7072 + i32.const 5104 i32.store offset=8 local.get $0 - i32.const 7072 + i32.const 5104 call $~lib/typedarray/Uint8Array#findIndex i32.const -1 i32.ne @@ -60034,7 +59862,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60073,10 +59901,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7104 + i32.const 5136 i32.store offset=8 local.get $0 - i32.const 7104 + i32.const 5136 call $~lib/typedarray/Uint8Array#findIndex i32.const 1 i32.ne @@ -60085,10 +59913,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7136 + i32.const 5168 i32.store offset=8 local.get $0 - i32.const 7136 + i32.const 5168 call $~lib/typedarray/Uint8Array#findIndex i32.const -1 i32.ne @@ -60102,7 +59930,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60141,10 +59969,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7168 + i32.const 5200 i32.store offset=8 local.get $0 - i32.const 7168 + i32.const 5200 call $~lib/typedarray/Int16Array#findIndex i32.const 1 i32.ne @@ -60153,10 +59981,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7200 + i32.const 5232 i32.store offset=8 local.get $0 - i32.const 7200 + i32.const 5232 call $~lib/typedarray/Int16Array#findIndex i32.const -1 i32.ne @@ -60170,7 +59998,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60209,10 +60037,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7232 + i32.const 5264 i32.store offset=8 local.get $0 - i32.const 7232 + i32.const 5264 call $~lib/typedarray/Uint16Array#findIndex i32.const 1 i32.ne @@ -60221,10 +60049,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7264 + i32.const 5296 i32.store offset=8 local.get $0 - i32.const 7264 + i32.const 5296 call $~lib/typedarray/Uint16Array#findIndex i32.const -1 i32.ne @@ -60238,7 +60066,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60277,10 +60105,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7296 + i32.const 5328 i32.store offset=8 local.get $0 - i32.const 7296 + i32.const 5328 call $~lib/typedarray/Int32Array#findIndex i32.const 1 i32.ne @@ -60289,10 +60117,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7328 + i32.const 5360 i32.store offset=8 local.get $0 - i32.const 7328 + i32.const 5360 call $~lib/typedarray/Int32Array#findIndex i32.const -1 i32.ne @@ -60306,7 +60134,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60345,10 +60173,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7360 + i32.const 5392 i32.store offset=8 local.get $0 - i32.const 7360 + i32.const 5392 call $~lib/typedarray/Uint32Array#findIndex i32.const 1 i32.ne @@ -60357,10 +60185,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7392 + i32.const 5424 i32.store offset=8 local.get $0 - i32.const 7392 + i32.const 5424 call $~lib/typedarray/Uint32Array#findIndex i32.const -1 i32.ne @@ -60374,7 +60202,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60413,10 +60241,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7424 + i32.const 5456 i32.store offset=8 local.get $0 - i32.const 7424 + i32.const 5456 call $~lib/typedarray/Int64Array#findIndex i32.const 1 i32.ne @@ -60425,10 +60253,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7456 + i32.const 5488 i32.store offset=8 local.get $0 - i32.const 7456 + i32.const 5488 call $~lib/typedarray/Int64Array#findIndex i32.const -1 i32.ne @@ -60442,7 +60270,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60481,10 +60309,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7488 + i32.const 5520 i32.store offset=8 local.get $0 - i32.const 7488 + i32.const 5520 call $~lib/typedarray/Uint64Array#findIndex i32.const 1 i32.ne @@ -60493,10 +60321,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7520 + i32.const 5552 i32.store offset=8 local.get $0 - i32.const 7520 + i32.const 5552 call $~lib/typedarray/Uint64Array#findIndex i32.const -1 i32.ne @@ -60510,7 +60338,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60549,10 +60377,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7552 + i32.const 5584 i32.store offset=8 local.get $0 - i32.const 7552 + i32.const 5584 call $~lib/typedarray/Float32Array#findIndex i32.const 1 i32.ne @@ -60561,10 +60389,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7584 + i32.const 5616 i32.store offset=8 local.get $0 - i32.const 7584 + i32.const 5616 call $~lib/typedarray/Float32Array#findIndex i32.const -1 i32.ne @@ -60578,7 +60406,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60617,10 +60445,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7616 + i32.const 5648 i32.store offset=8 local.get $0 - i32.const 7616 + i32.const 5648 call $~lib/typedarray/Float64Array#findIndex i32.const 1 i32.ne @@ -60629,10 +60457,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7648 + i32.const 5680 i32.store offset=8 local.get $0 - i32.const 7648 + i32.const 5680 call $~lib/typedarray/Float64Array#findIndex i32.const -1 i32.ne @@ -60646,7 +60474,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60685,10 +60513,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7680 + i32.const 5712 i32.store offset=8 local.get $0 - i32.const 7680 + i32.const 5712 call $~lib/typedarray/Int8Array#findLastIndex i32.const 1 i32.ne @@ -60697,10 +60525,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7712 + i32.const 5744 i32.store offset=8 local.get $0 - i32.const 7712 + i32.const 5744 call $~lib/typedarray/Int8Array#findLastIndex i32.const -1 i32.ne @@ -60714,7 +60542,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60753,10 +60581,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7744 + i32.const 5776 i32.store offset=8 local.get $0 - i32.const 7744 + i32.const 5776 call $~lib/typedarray/Uint8Array#findLastIndex i32.const 1 i32.ne @@ -60765,10 +60593,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7776 + i32.const 5808 i32.store offset=8 local.get $0 - i32.const 7776 + i32.const 5808 call $~lib/typedarray/Uint8Array#findLastIndex i32.const -1 i32.ne @@ -60782,7 +60610,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60821,10 +60649,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7808 + i32.const 5840 i32.store offset=8 local.get $0 - i32.const 7808 + i32.const 5840 call $~lib/typedarray/Uint8Array#findLastIndex i32.const 1 i32.ne @@ -60833,10 +60661,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7840 + i32.const 5872 i32.store offset=8 local.get $0 - i32.const 7840 + i32.const 5872 call $~lib/typedarray/Uint8Array#findLastIndex i32.const -1 i32.ne @@ -60850,7 +60678,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60889,10 +60717,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7872 + i32.const 5904 i32.store offset=8 local.get $0 - i32.const 7872 + i32.const 5904 call $~lib/typedarray/Int16Array#findLastIndex i32.const 1 i32.ne @@ -60901,10 +60729,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7904 + i32.const 5936 i32.store offset=8 local.get $0 - i32.const 7904 + i32.const 5936 call $~lib/typedarray/Int16Array#findLastIndex i32.const -1 i32.ne @@ -60918,7 +60746,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -60957,10 +60785,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7936 + i32.const 5968 i32.store offset=8 local.get $0 - i32.const 7936 + i32.const 5968 call $~lib/typedarray/Uint16Array#findLastIndex i32.const 1 i32.ne @@ -60969,10 +60797,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7968 + i32.const 6000 i32.store offset=8 local.get $0 - i32.const 7968 + i32.const 6000 call $~lib/typedarray/Uint16Array#findLastIndex i32.const -1 i32.ne @@ -60986,7 +60814,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61025,10 +60853,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8000 + i32.const 6032 i32.store offset=8 local.get $0 - i32.const 8000 + i32.const 6032 call $~lib/typedarray/Int32Array#findLastIndex i32.const 1 i32.ne @@ -61037,10 +60865,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8032 + i32.const 6064 i32.store offset=8 local.get $0 - i32.const 8032 + i32.const 6064 call $~lib/typedarray/Int32Array#findLastIndex i32.const -1 i32.ne @@ -61054,7 +60882,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61093,10 +60921,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8064 + i32.const 6096 i32.store offset=8 local.get $0 - i32.const 8064 + i32.const 6096 call $~lib/typedarray/Uint32Array#findLastIndex i32.const 1 i32.ne @@ -61105,10 +60933,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8096 + i32.const 6128 i32.store offset=8 local.get $0 - i32.const 8096 + i32.const 6128 call $~lib/typedarray/Uint32Array#findLastIndex i32.const -1 i32.ne @@ -61122,7 +60950,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61161,10 +60989,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8128 + i32.const 6160 i32.store offset=8 local.get $0 - i32.const 8128 + i32.const 6160 call $~lib/typedarray/Int64Array#findLastIndex i32.const 1 i32.ne @@ -61173,10 +61001,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8160 + i32.const 6192 i32.store offset=8 local.get $0 - i32.const 8160 + i32.const 6192 call $~lib/typedarray/Int64Array#findLastIndex i32.const -1 i32.ne @@ -61190,7 +61018,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61229,10 +61057,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8192 + i32.const 6224 i32.store offset=8 local.get $0 - i32.const 8192 + i32.const 6224 call $~lib/typedarray/Uint64Array#findLastIndex i32.const 1 i32.ne @@ -61241,10 +61069,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8224 + i32.const 6256 i32.store offset=8 local.get $0 - i32.const 8224 + i32.const 6256 call $~lib/typedarray/Uint64Array#findLastIndex i32.const -1 i32.ne @@ -61258,7 +61086,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61297,10 +61125,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8256 + i32.const 6288 i32.store offset=8 local.get $0 - i32.const 8256 + i32.const 6288 call $~lib/typedarray/Float32Array#findLastIndex i32.const 1 i32.ne @@ -61309,10 +61137,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8288 + i32.const 6320 i32.store offset=8 local.get $0 - i32.const 8288 + i32.const 6320 call $~lib/typedarray/Float32Array#findLastIndex i32.const -1 i32.ne @@ -61326,7 +61154,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61365,10 +61193,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8320 + i32.const 6352 i32.store offset=8 local.get $0 - i32.const 8320 + i32.const 6352 call $~lib/typedarray/Float64Array#findLastIndex i32.const 1 i32.ne @@ -61377,10 +61205,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8352 + i32.const 6384 i32.store offset=8 local.get $0 - i32.const 8352 + i32.const 6384 call $~lib/typedarray/Float64Array#findLastIndex i32.const -1 i32.ne @@ -61394,7 +61222,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61433,10 +61261,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8384 + i32.const 6416 i32.store offset=8 local.get $0 - i32.const 8384 + i32.const 6416 call $~lib/typedarray/Int8Array#every i32.eqz br_if $folding-inner12 @@ -61444,10 +61272,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8416 + i32.const 6448 i32.store offset=8 local.get $0 - i32.const 8416 + i32.const 6448 call $~lib/typedarray/Int8Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -61459,7 +61287,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61498,10 +61326,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8448 + i32.const 6480 i32.store offset=8 local.get $0 - i32.const 8448 + i32.const 6480 call $~lib/typedarray/Uint8Array#every i32.eqz br_if $folding-inner12 @@ -61509,10 +61337,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8480 + i32.const 6512 i32.store offset=8 local.get $0 - i32.const 8480 + i32.const 6512 call $~lib/typedarray/Uint8Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -61524,7 +61352,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61563,10 +61391,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8512 + i32.const 6544 i32.store offset=8 local.get $0 - i32.const 8512 + i32.const 6544 call $~lib/typedarray/Uint8Array#every i32.eqz br_if $folding-inner12 @@ -61574,10 +61402,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8544 + i32.const 6576 i32.store offset=8 local.get $0 - i32.const 8544 + i32.const 6576 call $~lib/typedarray/Uint8Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -61589,7 +61417,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61628,10 +61456,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8576 + i32.const 6608 i32.store offset=8 local.get $0 - i32.const 8576 + i32.const 6608 call $~lib/typedarray/Int16Array#every i32.eqz br_if $folding-inner12 @@ -61639,10 +61467,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8608 + i32.const 6640 i32.store offset=8 local.get $0 - i32.const 8608 + i32.const 6640 call $~lib/typedarray/Int16Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -61654,7 +61482,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61693,10 +61521,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8640 + i32.const 6672 i32.store offset=8 local.get $0 - i32.const 8640 + i32.const 6672 call $~lib/typedarray/Uint16Array#every i32.eqz br_if $folding-inner12 @@ -61704,10 +61532,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8672 + i32.const 6704 i32.store offset=8 local.get $0 - i32.const 8672 + i32.const 6704 call $~lib/typedarray/Uint16Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -61719,7 +61547,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61758,10 +61586,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8704 + i32.const 6736 i32.store offset=8 local.get $0 - i32.const 8704 + i32.const 6736 call $~lib/typedarray/Int32Array#every i32.eqz br_if $folding-inner12 @@ -61769,10 +61597,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8736 + i32.const 6768 i32.store offset=8 local.get $0 - i32.const 8736 + i32.const 6768 call $~lib/typedarray/Int32Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -61784,7 +61612,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61823,10 +61651,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 6800 i32.store offset=8 local.get $0 - i32.const 8768 + i32.const 6800 call $~lib/typedarray/Uint32Array#every i32.eqz br_if $folding-inner12 @@ -61834,10 +61662,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8800 + i32.const 6832 i32.store offset=8 local.get $0 - i32.const 8800 + i32.const 6832 call $~lib/typedarray/Uint32Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -61849,7 +61677,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61888,10 +61716,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8832 + i32.const 6864 i32.store offset=8 local.get $0 - i32.const 8832 + i32.const 6864 call $~lib/typedarray/Int64Array#every i32.eqz br_if $folding-inner12 @@ -61899,10 +61727,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8864 + i32.const 6896 i32.store offset=8 local.get $0 - i32.const 8864 + i32.const 6896 call $~lib/typedarray/Int64Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -61914,7 +61742,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -61953,10 +61781,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8896 + i32.const 6928 i32.store offset=8 local.get $0 - i32.const 8896 + i32.const 6928 call $~lib/typedarray/Uint64Array#every i32.eqz br_if $folding-inner12 @@ -61964,10 +61792,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8928 + i32.const 6960 i32.store offset=8 local.get $0 - i32.const 8928 + i32.const 6960 call $~lib/typedarray/Uint64Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -61979,7 +61807,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62018,10 +61846,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8960 + i32.const 6992 i32.store offset=8 local.get $0 - i32.const 8960 + i32.const 6992 call $~lib/typedarray/Float32Array#every i32.eqz br_if $folding-inner12 @@ -62029,10 +61857,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8992 + i32.const 7024 i32.store offset=8 local.get $0 - i32.const 8992 + i32.const 7024 call $~lib/typedarray/Float32Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -62044,7 +61872,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62083,10 +61911,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9024 + i32.const 7056 i32.store offset=8 local.get $0 - i32.const 9024 + i32.const 7056 call $~lib/typedarray/Float64Array#every i32.eqz br_if $folding-inner12 @@ -62094,10 +61922,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9056 + i32.const 7088 i32.store offset=8 local.get $0 - i32.const 9056 + i32.const 7088 call $~lib/typedarray/Float64Array#every br_if $folding-inner13 global.get $~lib/memory/__stack_pointer @@ -62111,7 +61939,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62133,11 +61961,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get i32.extend8_s @@ -62146,11 +61974,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get i32.extend8_s @@ -62159,11 +61987,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get i32.extend8_s @@ -62172,14 +62000,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9168 + i32.const 7200 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62192,7 +62020,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9168 + i32.const 7200 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -62222,7 +62050,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - i32.const 9168 + i32.const 7200 i32.load call_indirect (type $4) local.get $0 @@ -62249,7 +62077,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62271,11 +62099,11 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $0 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get i32.const 255 @@ -62285,11 +62113,11 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $0 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get i32.const 255 @@ -62299,11 +62127,11 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $0 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get i32.const 255 @@ -62313,10 +62141,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9200 + i32.const 7232 i32.store offset=8 local.get $0 - i32.const 9200 + i32.const 7232 call $~lib/typedarray/Uint8Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 @@ -62331,7 +62159,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62353,11 +62181,11 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $0 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get i32.const 255 @@ -62367,11 +62195,11 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $0 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get i32.const 255 @@ -62381,11 +62209,11 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $0 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get i32.const 255 @@ -62395,10 +62223,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9232 + i32.const 7264 i32.store offset=8 local.get $0 - i32.const 9232 + i32.const 7264 call $~lib/typedarray/Uint8Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 @@ -62415,7 +62243,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62437,11 +62265,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get i32.extend16_s @@ -62450,11 +62278,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get i32.extend16_s @@ -62463,11 +62291,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get i32.extend16_s @@ -62476,14 +62304,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9264 + i32.const 7296 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62496,7 +62324,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9264 + i32.const 7296 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -62528,7 +62356,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - i32.const 9264 + i32.const 7296 i32.load call_indirect (type $4) local.get $0 @@ -62557,7 +62385,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62579,11 +62407,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get i32.const 65535 @@ -62593,11 +62421,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get i32.const 65535 @@ -62607,11 +62435,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get i32.const 65535 @@ -62621,14 +62449,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9296 + i32.const 7328 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62641,7 +62469,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9296 + i32.const 7328 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -62673,7 +62501,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - i32.const 9296 + i32.const 7328 i32.load call_indirect (type $4) local.get $0 @@ -62702,7 +62530,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62724,11 +62552,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set @@ -62736,11 +62564,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set @@ -62748,11 +62576,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set @@ -62760,14 +62588,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9328 + i32.const 7360 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62780,7 +62608,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9328 + i32.const 7360 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -62812,7 +62640,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - i32.const 9328 + i32.const 7360 i32.load call_indirect (type $4) local.get $0 @@ -62841,7 +62669,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62863,11 +62691,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set @@ -62875,11 +62703,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set @@ -62887,11 +62715,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set @@ -62899,14 +62727,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9360 + i32.const 7392 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -62919,7 +62747,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9360 + i32.const 7392 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -62951,7 +62779,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - i32.const 9360 + i32.const 7392 i32.load call_indirect (type $4) local.get $0 @@ -62980,7 +62808,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63002,11 +62830,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get i64.extend_i32_s @@ -63015,11 +62843,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get i64.extend_i32_s @@ -63028,11 +62856,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get i64.extend_i32_s @@ -63041,14 +62869,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9392 + i32.const 7424 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63061,7 +62889,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9392 + i32.const 7424 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -63093,7 +62921,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - i32.const 9392 + i32.const 7424 i32.load call_indirect (type $28) local.get $0 @@ -63122,7 +62950,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63144,11 +62972,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get i64.extend_i32_s @@ -63157,11 +62985,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get i64.extend_i32_s @@ -63170,11 +62998,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get i64.extend_i32_s @@ -63183,14 +63011,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9424 + i32.const 7456 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63203,7 +63031,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9424 + i32.const 7456 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -63235,7 +63063,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - i32.const 9424 + i32.const 7456 i32.load call_indirect (type $28) local.get $0 @@ -63264,7 +63092,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63286,11 +63114,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s @@ -63299,11 +63127,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get f32.convert_i32_s @@ -63312,11 +63140,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get f32.convert_i32_s @@ -63325,14 +63153,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9456 + i32.const 7488 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63345,7 +63173,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9456 + i32.const 7488 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -63377,7 +63205,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - i32.const 9456 + i32.const 7488 i32.load call_indirect (type $33) local.get $0 @@ -63406,7 +63234,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63428,11 +63256,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 0 - i32.const 9120 + i32.const 7152 i32.const 0 call $~lib/array/Array#__get f64.convert_i32_s @@ -63441,11 +63269,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 1 - i32.const 9120 + i32.const 7152 i32.const 1 call $~lib/array/Array#__get f64.convert_i32_s @@ -63454,11 +63282,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9120 + i32.const 7152 i32.store offset=8 local.get $1 i32.const 2 - i32.const 9120 + i32.const 7152 i32.const 2 call $~lib/array/Array#__get f64.convert_i32_s @@ -63467,14 +63295,14 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9488 + i32.const 7520 i32.store offset=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 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63487,7 +63315,7 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9488 + i32.const 7520 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 @@ -63519,7 +63347,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - i32.const 9488 + i32.const 7520 i32.load call_indirect (type $34) local.get $0 @@ -63586,7 +63414,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 653 i32.const 3 call $~lib/builtins/abort @@ -63602,7 +63430,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63665,7 +63493,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 654 i32.const 3 call $~lib/builtins/abort @@ -63694,7 +63522,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 659 i32.const 3 call $~lib/builtins/abort @@ -63710,7 +63538,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63773,7 +63601,7 @@ i32.eqz if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 660 i32.const 3 call $~lib/builtins/abort @@ -63784,7 +63612,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63843,7 +63671,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 @@ -63855,7 +63683,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63875,7 +63703,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner16 @@ -63888,7 +63716,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -63947,7 +63775,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 @@ -63961,7 +63789,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner16 @@ -63974,7 +63802,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64033,7 +63861,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 @@ -64047,7 +63875,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner16 @@ -64060,7 +63888,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64119,7 +63947,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 @@ -64131,7 +63959,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64151,7 +63979,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner16 @@ -64164,7 +63992,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64223,7 +64051,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 @@ -64235,7 +64063,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64255,7 +64083,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner16 @@ -64268,7 +64096,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64327,7 +64155,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 @@ -64339,7 +64167,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64359,7 +64187,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner16 @@ -64372,7 +64200,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64431,7 +64259,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 @@ -64443,7 +64271,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64463,7 +64291,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner16 @@ -64476,7 +64304,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64535,7 +64363,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 @@ -64547,7 +64375,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64567,7 +64395,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner16 @@ -64580,7 +64408,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64639,7 +64467,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 @@ -64651,7 +64479,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64671,7 +64499,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 9776 + i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner16 @@ -64684,7 +64512,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64743,7 +64571,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 10960 + i32.const 10800 call $~lib/string/String.__eq i32.eqz br_if $folding-inner17 @@ -64755,7 +64583,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64775,7 +64603,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 10960 + i32.const 10800 call $~lib/string/String.__eq i32.eqz br_if $folding-inner18 @@ -64788,7 +64616,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64847,7 +64675,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 10960 + i32.const 10800 call $~lib/string/String.__eq i32.eqz br_if $folding-inner17 @@ -64859,7 +64687,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64879,7 +64707,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 10960 + i32.const 10800 call $~lib/string/String.__eq i32.eqz br_if $folding-inner18 @@ -64910,7 +64738,7 @@ call $~lib/typedarray/Int8Array#get:length if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 737 i32.const 3 call $~lib/builtins/abort @@ -64939,7 +64767,7 @@ call $~lib/typedarray/Int8Array#get:length if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 741 i32.const 3 call $~lib/builtins/abort @@ -64951,7 +64779,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -64959,12 +64787,12 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=4 - i32.const 11088 + i32.const 10928 call $~lib/array/Array#get:length local.set $0 global.get $~lib/memory/__stack_pointer @@ -64981,11 +64809,11 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 10928 i32.store offset=12 local.get $1 local.get $2 - i32.const 11088 + i32.const 10928 local.get $2 call $~lib/array/Array#__get i32.const 255 @@ -65066,7 +64894,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 730 i32.const 5 call $~lib/builtins/abort @@ -65197,7 +65025,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -65306,7 +65134,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -65398,7 +65226,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 15440 + i32.const 15280 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -65484,7 +65312,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -65575,7 +65403,7 @@ i32.const 10 i32.const 0 i32.const 64 - i32.const 15472 + i32.const 15312 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -65591,7 +65419,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" block $folding-inner02 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner02 global.get $~lib/memory/__stack_pointer @@ -65637,7 +65465,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner02 global.get $~lib/memory/__stack_pointer @@ -65647,16 +65475,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15504 + i32.const 15344 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15504 + i32.const 15344 i32.store offset=8 local.get $1 - i32.const 15504 + i32.const 15344 call $~lib/typedarray/Int8Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -65675,7 +65503,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -65691,7 +65519,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -65707,7 +65535,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -65717,10 +65545,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15536 + i32.const 15376 i32.store offset=12 local.get $1 - i32.const 15536 + i32.const 15376 call $~lib/typedarray/Int8Array#sort drop global.get $~lib/memory/__stack_pointer @@ -65733,7 +65561,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -65749,7 +65577,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -65765,7 +65593,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -65777,8 +65605,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -65791,7 +65619,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" block $folding-inner04 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner04 global.get $~lib/memory/__stack_pointer @@ -65837,7 +65665,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner04 global.get $~lib/memory/__stack_pointer @@ -65847,16 +65675,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15568 + i32.const 15408 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15568 + i32.const 15408 i32.store offset=8 local.get $1 - i32.const 15568 + i32.const 15408 call $~lib/typedarray/Uint8Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -65875,7 +65703,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -65891,7 +65719,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -65907,7 +65735,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -65917,10 +65745,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15600 + i32.const 15440 i32.store offset=12 local.get $1 - i32.const 15600 + i32.const 15440 call $~lib/typedarray/Uint8Array#sort drop global.get $~lib/memory/__stack_pointer @@ -65933,7 +65761,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -65949,7 +65777,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -65965,7 +65793,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -65977,8 +65805,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -65991,7 +65819,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" block $folding-inner06 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner06 global.get $~lib/memory/__stack_pointer @@ -66037,7 +65865,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner06 global.get $~lib/memory/__stack_pointer @@ -66047,16 +65875,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15632 + i32.const 15472 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15632 + i32.const 15472 i32.store offset=8 local.get $1 - i32.const 15632 + i32.const 15472 call $~lib/typedarray/Uint8Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -66075,7 +65903,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -66091,7 +65919,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -66107,7 +65935,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -66117,10 +65945,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15664 + i32.const 15504 i32.store offset=12 local.get $1 - i32.const 15664 + i32.const 15504 call $~lib/typedarray/Uint8Array#sort drop global.get $~lib/memory/__stack_pointer @@ -66133,7 +65961,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -66149,7 +65977,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -66165,7 +65993,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -66177,8 +66005,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -66191,7 +66019,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" block $folding-inner08 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner08 global.get $~lib/memory/__stack_pointer @@ -66237,7 +66065,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner08 global.get $~lib/memory/__stack_pointer @@ -66247,16 +66075,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15696 + i32.const 15536 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15696 + i32.const 15536 i32.store offset=8 local.get $1 - i32.const 15696 + i32.const 15536 call $~lib/typedarray/Int16Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -66275,7 +66103,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -66291,7 +66119,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -66307,7 +66135,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -66317,10 +66145,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15728 + i32.const 15568 i32.store offset=12 local.get $1 - i32.const 15728 + i32.const 15568 call $~lib/typedarray/Int16Array#sort drop global.get $~lib/memory/__stack_pointer @@ -66333,7 +66161,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -66349,7 +66177,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -66365,7 +66193,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -66377,8 +66205,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -66391,7 +66219,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" block $folding-inner010 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner010 global.get $~lib/memory/__stack_pointer @@ -66437,7 +66265,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner010 global.get $~lib/memory/__stack_pointer @@ -66447,16 +66275,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15760 + i32.const 15600 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15760 + i32.const 15600 i32.store offset=8 local.get $1 - i32.const 15760 + i32.const 15600 call $~lib/typedarray/Uint16Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -66475,7 +66303,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -66491,7 +66319,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -66507,7 +66335,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -66517,10 +66345,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15792 + i32.const 15632 i32.store offset=12 local.get $1 - i32.const 15792 + i32.const 15632 call $~lib/typedarray/Uint16Array#sort drop global.get $~lib/memory/__stack_pointer @@ -66533,7 +66361,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -66549,7 +66377,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -66565,7 +66393,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -66577,8 +66405,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -66591,7 +66419,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" block $folding-inner012 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner012 global.get $~lib/memory/__stack_pointer @@ -66637,7 +66465,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner012 global.get $~lib/memory/__stack_pointer @@ -66647,16 +66475,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15824 + i32.const 15664 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15824 + i32.const 15664 i32.store offset=8 local.get $1 - i32.const 15824 + i32.const 15664 call $~lib/typedarray/Int32Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -66675,7 +66503,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -66691,7 +66519,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -66707,7 +66535,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -66717,10 +66545,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15856 + i32.const 15696 i32.store offset=12 local.get $1 - i32.const 15856 + i32.const 15696 call $~lib/typedarray/Int32Array#sort drop global.get $~lib/memory/__stack_pointer @@ -66733,7 +66561,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -66749,7 +66577,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -66765,7 +66593,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -66777,8 +66605,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -66791,7 +66619,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" block $folding-inner014 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner014 global.get $~lib/memory/__stack_pointer @@ -66837,7 +66665,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner014 global.get $~lib/memory/__stack_pointer @@ -66847,16 +66675,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15888 + i32.const 15728 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15888 + i32.const 15728 i32.store offset=8 local.get $1 - i32.const 15888 + i32.const 15728 call $~lib/typedarray/Uint32Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -66875,7 +66703,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -66891,7 +66719,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -66907,7 +66735,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -66917,10 +66745,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15920 + i32.const 15760 i32.store offset=12 local.get $1 - i32.const 15920 + i32.const 15760 call $~lib/typedarray/Uint32Array#sort drop global.get $~lib/memory/__stack_pointer @@ -66933,7 +66761,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -66949,7 +66777,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -66965,7 +66793,7 @@ i32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -66977,8 +66805,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -66991,7 +66819,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" block $folding-inner016 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner016 global.get $~lib/memory/__stack_pointer @@ -67037,7 +66865,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner016 global.get $~lib/memory/__stack_pointer @@ -67047,16 +66875,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15952 + i32.const 15792 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15952 + i32.const 15792 i32.store offset=8 local.get $1 - i32.const 15952 + i32.const 15792 call $~lib/typedarray/Int64Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -67075,7 +66903,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -67091,7 +66919,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -67107,7 +66935,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -67117,10 +66945,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15984 + i32.const 15824 i32.store offset=12 local.get $1 - i32.const 15984 + i32.const 15824 call $~lib/typedarray/Int64Array#sort drop global.get $~lib/memory/__stack_pointer @@ -67133,7 +66961,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -67149,7 +66977,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -67165,7 +66993,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -67177,8 +67005,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -67191,7 +67019,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" block $folding-inner018 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner018 global.get $~lib/memory/__stack_pointer @@ -67237,7 +67065,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner018 global.get $~lib/memory/__stack_pointer @@ -67247,16 +67075,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 16016 + i32.const 15856 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16016 + i32.const 15856 i32.store offset=8 local.get $1 - i32.const 16016 + i32.const 15856 call $~lib/typedarray/Uint64Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -67275,7 +67103,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -67291,7 +67119,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -67307,7 +67135,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -67317,10 +67145,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16048 + i32.const 15888 i32.store offset=12 local.get $1 - i32.const 16048 + i32.const 15888 call $~lib/typedarray/Uint64Array#sort drop global.get $~lib/memory/__stack_pointer @@ -67333,7 +67161,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -67349,7 +67177,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -67365,7 +67193,7 @@ i64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -67377,8 +67205,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -67391,7 +67219,7 @@ block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" block $folding-inner020 global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner020 global.get $~lib/memory/__stack_pointer @@ -67437,7 +67265,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner020 global.get $~lib/memory/__stack_pointer @@ -67447,16 +67275,16 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 16080 + i32.const 15920 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16080 + i32.const 15920 i32.store offset=8 local.get $1 - i32.const 16080 + i32.const 15920 call $~lib/typedarray/Float32Array#sort local.set $1 global.get $~lib/memory/__stack_pointer @@ -67475,7 +67303,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -67491,7 +67319,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -67507,7 +67335,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -67517,10 +67345,10 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16112 + i32.const 15952 i32.store offset=12 local.get $1 - i32.const 16112 + i32.const 15952 call $~lib/typedarray/Float32Array#sort drop global.get $~lib/memory/__stack_pointer @@ -67533,7 +67361,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -67549,7 +67377,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -67565,7 +67393,7 @@ f32.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -67577,8 +67405,8 @@ global.set $~lib/memory/__stack_pointer br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -67589,7 +67417,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner21 global.get $~lib/memory/__stack_pointer @@ -67644,7 +67472,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 885 i32.const 3 call $~lib/builtins/abort @@ -67660,7 +67488,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 886 i32.const 3 call $~lib/builtins/abort @@ -67676,7 +67504,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 887 i32.const 3 call $~lib/builtins/abort @@ -67686,10 +67514,10 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16144 + i32.const 15984 i32.store offset=12 local.get $0 - i32.const 16144 + i32.const 15984 call $~lib/typedarray/Float64Array#sort drop global.get $~lib/memory/__stack_pointer @@ -67702,7 +67530,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 889 i32.const 3 call $~lib/builtins/abort @@ -67718,7 +67546,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 890 i32.const 3 call $~lib/builtins/abort @@ -67734,7 +67562,7 @@ f64.ne if i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 891 i32.const 3 call $~lib/builtins/abort @@ -67744,7 +67572,7 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const 49248 + i32.const 49088 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -67786,240 +67614,145 @@ return end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 344 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 346 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 438 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 440 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 461 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 463 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 484 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 486 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 507 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 509 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 675 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 676 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 672 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 673 i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1344 - i32.const 3600 - i32.const 1902 + i32.const 1360 + i32.const 1632 + i32.const 1911 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 367 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - i32.const 3536 + i32.const 1568 i32.const 541 i32.const 3 call $~lib/builtins/abort unreachable ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 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 16480 - i32.lt_s - if - i32.const 49280 - i32.const 49328 - i32.const 1 - i32.const 1 - call $~lib/builtins/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 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - return - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - 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 $1 - ) (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) @@ -68028,11 +67761,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -68091,11 +67824,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -68111,7 +67844,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1776 + i32.const 8000 return end global.get $~lib/memory/__stack_pointer @@ -68199,17 +67932,112 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/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 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + return + end + global.get $~lib/memory/__stack_pointer + local.get $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 $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + 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 $1 + ) (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 16480 + i32.const 16320 i32.lt_s if - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -68222,8 +68050,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3424 - i32.const 3472 + i32.const 1056 + i32.const 1104 i32.const 52 i32.const 43 call $~lib/builtins/abort @@ -68269,7 +68097,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -68292,7 +68120,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16480 + i32.const 16320 i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer @@ -68315,8 +68143,8 @@ call $~lib/rt/itcms/__visit return end - i32.const 49280 - i32.const 49328 + i32.const 49120 + i32.const 49168 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index 25f5ac1c04..1bca02f554 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -1,23 +1,22 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i64 i32))) - (type $8 (func (param i64 i32) (result i32))) - (type $9 (func (param i32 i64 i32 i32))) - (type $10 (func (param i32 i32 i64) (result i32))) - (type $11 (func (result i32))) - (type $12 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $13 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/util/uri/URL_UNSAFE i32 (i32.const 44)) - (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -29,90 +28,81 @@ (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/util/uri/URI_UNSAFE i32 (i32.const 4300)) - (global $~lib/util/uri/URI_RESERVED i32 (i32.const 4508)) - (global $~lib/rt/__rtti_base i32 (i32.const 5248)) - (global $~lib/memory/__data_end i32 (i32.const 5268)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 38036)) - (global $~lib/memory/__heap_base i32 (i32.const 38036)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/util/uri/URI_UNSAFE i32 (i32.const 2364)) + (global $~lib/util/uri/URI_RESERVED i32 (i32.const 2572)) + (global $~lib/rt/__rtti_base i32 (i32.const 3312)) + (global $~lib/memory/__data_end i32 (i32.const 3332)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36100)) + (global $~lib/memory/__heap_base i32 (i32.const 36100)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $1 (i32.const 44) "\00\01\01\01\01\01\00\00\00\00\01\01\00\00\01\00\00\00\00\00\00\00\00\00\00\01\01\01\01\01\01\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\00") - (data $2 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $3 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $4 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 236) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 460) "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 $9 (i32.const 860) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 2012) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 2076) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 2208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 2268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2384) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2412) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2476) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00U\00R\00I\00 \00m\00a\00l\00f\00o\00r\00m\00e\00d\00\00\00") - (data $21 (i32.const 2524) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00u\00r\00i\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2588) "0123456789ABCDEF") - (data $23 (i32.const 2604) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00u\00r\00i\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\001\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00_\00\00\00\00\00\00\00") - (data $27 (i32.const 2748) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00A\00B\00C\00D\00X\00Y\00Z\00a\00f\00g\00k\00l\00m\00n\00w\00y\00z\000\001\002\003\004\005\006\007\008\009\00-\00_\00.\00!\00~\00*\00\'\00(\00)\00\00\00\00\00") - (data $28 (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\000\000\00\00\00\00\00\00\00") - (data $30 (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\002\00B\00\00\00\00\00\00\00") - (data $32 (i32.const 2972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00#\000\00=\00\00\00\00\00\00\00") - (data $33 (i32.const 3004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00%\002\003\000\00%\003\00D\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $34 (i32.const 3052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \001\002\003\00 \00\00\00") - (data $35 (i32.const 3084) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00%\002\000\001\002\003\00%\002\000\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00?\00+\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00%\003\00F\00%\002\00B\00") - (data $38 (i32.const 3196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00-\00?\001\00.\00-\00\00\00") - (data $39 (i32.const 3228) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\00%\003\00F\001\00.\00-\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $40 (i32.const 3276) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00<\d8\ed\dd<\d8\fa\dd<\d8N\df") - (data $41 (i32.const 3308) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00%\00F\000\00%\009\00F\00%\008\007\00%\00A\00D\00%\00F\000\00%\009\00F\00%\008\007\00%\00B\00A\00%\00F\000\00%\009\00F\00%\008\00D\00%\008\00E\00\00\00\00\00") - (data $42 (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00H\c5U\b1X\d58\c1\94\c6\00\00") - (data $43 (i32.const 3436) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00Z\00\00\00%\00E\00C\00%\009\005\00%\008\008\00%\00E\00B\00%\008\005\00%\009\005\00%\00E\00D\00%\009\005\00%\009\008\00%\00E\00C\00%\008\004\00%\00B\008\00%\00E\00C\00%\009\00A\00%\009\004\00\00\00") - (data $44 (i32.const 3548) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00~\00\7f\00\80\00\00\00\00\00\00\00") - (data $45 (i32.const 3580) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00%\007\00F\00%\00C\002\00%\008\000\00\00\00\00\00\00\00\00\00") - (data $46 (i32.const 3628) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\00\d8\ff\df\00\00\00\00\00\00\00\00") - (data $47 (i32.const 3660) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00%\00F\000\00%\009\000\00%\008\00F\00%\00B\00F\00\00\00\00\00") - (data $48 (i32.const 3708) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00{\da\01\dc-\00P\da\02\dc\00\00") - (data $49 (i32.const 3740) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00%\00F\002\00%\00A\00E\00%\00B\000\00%\008\001\00-\00%\00F\002\00%\00A\004\00%\008\000\00%\008\002\00\00\00\00\00\00\00\00\00\00\00") - (data $50 (i32.const 3820) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\n\00\t\00\0b\00\0c\00\r\00\00\00") - (data $51 (i32.const 3852) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00%\000\00A\00%\000\009\00%\000\00B\00%\000\00C\00%\000\00D\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $52 (i32.const 3916) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00;\00/\00?\00:\00@\00&\00=\00+\00$\00,\00\00\00\00\00\00\00\00\00") - (data $53 (i32.const 3964) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\002\006\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C\00") - (data $54 (i32.const 4044) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\\\00\00\00h\00t\00t\00p\00:\00/\00/\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00#\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n\00") - (data $55 (i32.const 4156) "\8c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00t\00\00\00h\00t\00t\00p\00%\003\00A\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00%\002\00F\00w\00i\00k\00i\00%\002\00F\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00") - (data $56 (i32.const 4300) "\00\01\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\00") - (data $57 (i32.const 4396) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00;\00,\00/\00?\00:\00@\00&\00=\00+\00$\00#\00\00\00\00\00\00\00") - (data $58 (i32.const 4444) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $59 (i32.const 4476) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\002\000\00\00\00\00\00\00\00") - (data $60 (i32.const 4508) "\01\01\00\01\00\00\00\00\01\01\00\00\01\00\00\00\00\00\00\00\00\00\00\01\01\00\01\00\01\01") - (data $61 (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\002\006\00\00\00\00\00\00\00") - (data $62 (i32.const 4572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") - (data $63 (i32.const 4604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\005\00E\00\00\00\00\00\00\00") - (data $64 (i32.const 4636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00^\00\00\00\00\00\00\00\00\00\00\00") - (data $65 (i32.const 4668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\d8\00\00\00\00\00\00\00\00\00\00") - (data $66 (i32.const 4700) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00<\00\00\00%\003\00b\00%\002\00f\00%\003\00f\00%\003\00a\00%\004\000\00%\003\00d\00%\002\00b\00%\002\004\00%\002\00c\00%\002\003\00") - (data $67 (i32.const 4780) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00;\00/\00?\00:\00@\00=\00+\00$\00,\00#\00\00\00\00\00\00\00\00\00") - (data $68 (i32.const 4828) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C\00%\002\003\00") - (data $69 (i32.const 4908) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00h\00\00\00h\00t\00t\00p\00:\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n\00\00\00\00\00") - (data $70 (i32.const 5036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00%\00D\00F\00%\008\000\00") - (data $71 (i32.const 5068) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\c0\07\00\00\00\00\00\00\00\00\00\00") - (data $72 (i32.const 5100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00%\00C\002\00%\00B\00F\00") - (data $73 (i32.const 5132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\bf\00\00\00\00\00\00\00\00\00\00\00") - (data $74 (i32.const 5164) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00\f7\00\b8\00W\00\ef\00\0f\00\f4\00V\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $75 (i32.const 5212) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\f4\00\b8\00\ef\00\00\00\00\00\00\00") - (data $76 (i32.const 5248) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $2 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00U\00R\00I\00 \00m\00a\00l\00f\00o\00r\00m\00e\00d\00\00\00") + (data $11 (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00u\00r\00i\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 652) "0123456789ABCDEF") + (data $13 (i32.const 668) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00s\00t\00d\00/\00u\00r\00i\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\001\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00a\00b\00_\00\00\00\00\00\00\00") + (data $17 (i32.const 812) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00A\00B\00C\00D\00X\00Y\00Z\00a\00f\00g\00k\00l\00m\00n\00w\00y\00z\000\001\002\003\004\005\006\007\008\009\00-\00_\00.\00!\00~\00*\00\'\00(\00)\00\00\00\00\00") + (data $18 (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\000\000\00\00\00\00\00\00\00") + (data $20 (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\002\00B\00\00\00\00\00\00\00") + (data $22 (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00#\000\00=\00\00\00\00\00\00\00") + (data $23 (i32.const 1068) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00%\002\003\000\00%\003\00D\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00 \001\002\003\00 \00\00\00") + (data $25 (i32.const 1148) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00%\002\000\001\002\003\00%\002\000\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00?\00+\00\00\00\00\00\00\00\00\00") + (data $27 (i32.const 1228) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00%\003\00F\00%\002\00B\00") + (data $28 (i32.const 1260) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00-\00?\001\00.\00-\00\00\00") + (data $29 (i32.const 1292) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\00%\003\00F\001\00.\00-\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $30 (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00<\d8\ed\dd<\d8\fa\dd<\d8N\df") + (data $31 (i32.const 1372) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\00%\00F\000\00%\009\00F\00%\008\007\00%\00A\00D\00%\00F\000\00%\009\00F\00%\008\007\00%\00B\00A\00%\00F\000\00%\009\00F\00%\008\00D\00%\008\00E\00\00\00\00\00") + (data $32 (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00H\c5U\b1X\d58\c1\94\c6\00\00") + (data $33 (i32.const 1500) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00Z\00\00\00%\00E\00C\00%\009\005\00%\008\008\00%\00E\00B\00%\008\005\00%\009\005\00%\00E\00D\00%\009\005\00%\009\008\00%\00E\00C\00%\008\004\00%\00B\008\00%\00E\00C\00%\009\00A\00%\009\004\00\00\00") + (data $34 (i32.const 1612) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00~\00\7f\00\80\00\00\00\00\00\00\00") + (data $35 (i32.const 1644) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00%\007\00F\00%\00C\002\00%\008\000\00\00\00\00\00\00\00\00\00") + (data $36 (i32.const 1692) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\00\d8\ff\df\00\00\00\00\00\00\00\00") + (data $37 (i32.const 1724) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00%\00F\000\00%\009\000\00%\008\00F\00%\00B\00F\00\00\00\00\00") + (data $38 (i32.const 1772) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00{\da\01\dc-\00P\da\02\dc\00\00") + (data $39 (i32.const 1804) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00%\00F\002\00%\00A\00E\00%\00B\000\00%\008\001\00-\00%\00F\002\00%\00A\004\00%\008\000\00%\008\002\00\00\00\00\00\00\00\00\00\00\00") + (data $40 (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00\n\00\t\00\0b\00\0c\00\r\00\00\00") + (data $41 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00%\000\00A\00%\000\009\00%\000\00B\00%\000\00C\00%\000\00D\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $42 (i32.const 1980) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00;\00/\00?\00:\00@\00&\00=\00+\00$\00,\00\00\00\00\00\00\00\00\00") + (data $43 (i32.const 2028) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\002\006\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C\00") + (data $44 (i32.const 2108) "l\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\\\00\00\00h\00t\00t\00p\00:\00/\00/\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00#\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n\00") + (data $45 (i32.const 2220) "\8c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00t\00\00\00h\00t\00t\00p\00%\003\00A\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00%\002\00F\00w\00i\00k\00i\00%\002\00F\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00") + (data $46 (i32.const 2364) "\00\01\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\01\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\01\01\00") + (data $47 (i32.const 2460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00;\00,\00/\00?\00:\00@\00&\00=\00+\00$\00#\00\00\00\00\00\00\00") + (data $48 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $49 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\002\000\00\00\00\00\00\00\00") + (data $50 (i32.const 2572) "\01\01\00\01\00\00\00\00\01\01\00\00\01\00\00\00\00\00\00\00\00\00\00\01\01\00\01\00\01\01") + (data $51 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\002\006\00\00\00\00\00\00\00") + (data $52 (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") + (data $53 (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00%\005\00E\00\00\00\00\00\00\00") + (data $54 (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00^\00\00\00\00\00\00\00\00\00\00\00") + (data $55 (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\00\d8\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 2764) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00<\00\00\00%\003\00b\00%\002\00f\00%\003\00f\00%\003\00a\00%\004\000\00%\003\00d\00%\002\00b\00%\002\004\00%\002\00c\00%\002\003\00") + (data $57 (i32.const 2844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00;\00/\00?\00:\00@\00=\00+\00$\00,\00#\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 2892) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C\00%\002\003\00") + (data $59 (i32.const 2972) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00h\00\00\00h\00t\00t\00p\00:\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n\00\00\00\00\00") + (data $60 (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00%\00D\00F\00%\008\000\00") + (data $61 (i32.const 3132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\c0\07\00\00\00\00\00\00\00\00\00\00") + (data $62 (i32.const 3164) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00%\00C\002\00%\00B\00F\00") + (data $63 (i32.const 3196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\bf\00\00\00\00\00\00\00\00\00\00\00") + (data $64 (i32.const 3228) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00\f7\00\b8\00W\00\ef\00\0f\00\f4\00V\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $65 (i32.const 3276) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\f4\00\b8\00\ef\00\00\00\00\00\00\00") + (data $66 (i32.const 3312) "\04\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 "memory" (memory $0)) @@ -130,422 +120,6 @@ i32.shr_u return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 460 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 460 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 460 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 460 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 880 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 880 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1936 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1936 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -610,7 +184,7 @@ i32.eqz if i32.const 0 - i32.const 2160 + i32.const 224 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -680,7 +254,7 @@ i32.eqz if i32.const 0 - i32.const 2160 + i32.const 224 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -697,7 +271,7 @@ i32.eqz if i32.const 0 - i32.const 2160 + i32.const 224 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -727,9 +301,9 @@ i32.load i32.gt_u if - i32.const 2288 - i32.const 2352 - i32.const 21 + i32.const 352 + i32.const 416 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -796,7 +370,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2160 + i32.const 224 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -948,7 +522,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -968,7 +542,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -1031,7 +605,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1184,7 +758,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1201,7 +775,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1290,7 +864,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1333,7 +907,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1351,7 +925,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1419,7 +993,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1536,7 +1110,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1582,7 +1156,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1614,7 +1188,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1858,7 +1432,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2078,7 +1652,7 @@ i32.eqz if i32.const 0 - i32.const 2160 + i32.const 224 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2189,8 +1763,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2096 - i32.const 2432 + i32.const 160 + i32.const 496 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2292,7 +1866,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2363,7 +1937,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2520,7 +2094,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2635,7 +2209,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2655,7 +2229,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 496 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2703,8 +2277,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2096 - i32.const 2160 + i32.const 160 + i32.const 224 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2808,7 +2382,7 @@ local.get $dst local.get $offset i32.add - i32.const 2588 + i32.const 652 local.get $ch i32.const 4 i32.shr_u @@ -2816,7 +2390,7 @@ i32.and i32.add i32.load8_u - i32.const 2588 + i32.const 652 local.get $ch i32.const 15 i32.and @@ -2960,8 +2534,8 @@ i32.const 0 end if - i32.const 2496 - i32.const 2544 + i32.const 560 + i32.const 608 i32.const 81 i32.const 9 call $~lib/builtins/abort @@ -2975,8 +2549,8 @@ local.get $len i32.ge_u if - i32.const 2496 - i32.const 2544 + i32.const 560 + i32.const 608 i32.const 85 i32.const 11 call $~lib/builtins/abort @@ -3003,8 +2577,8 @@ i32.gt_u end if - i32.const 2496 - i32.const 2544 + i32.const 560 + i32.const 608 i32.const 89 i32.const 11 call $~lib/builtins/abort @@ -3504,8 +3078,8 @@ i32.eq end if - i32.const 2496 - i32.const 2544 + i32.const 560 + i32.const 608 i32.const 164 i32.const 7 call $~lib/builtins/abort @@ -3639,8 +3213,8 @@ i32.eq end if - i32.const 2496 - i32.const 2544 + i32.const 560 + i32.const 608 i32.const 187 i32.const 11 call $~lib/builtins/abort @@ -3704,8 +3278,8 @@ end end if - i32.const 2496 - i32.const 2544 + i32.const 560 + i32.const 608 i32.const 199 i32.const 9 call $~lib/builtins/abort @@ -3768,7 +3342,7 @@ i32.eqz if i32.const 0 - i32.const 2544 + i32.const 608 i32.const 216 i32.const 3 call $~lib/builtins/abort @@ -3842,20 +3416,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 38064 - i32.const 38112 + i32.const 36128 + i32.const 36176 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3864,196 +3434,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 32 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 160 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 192 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 224 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 224 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2032 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/uri/encodeURIComponent (param $str i32) (result i32) (local $1 i32) @@ -4281,13 +3682,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2208 + i32.const 272 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2240 + i32.const 304 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2384 + i32.const 448 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 32 @@ -4302,331 +3703,331 @@ i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 4 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2672 + i32.const 736 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2672 + i32.const 736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 5 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2704 + i32.const 768 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2704 + i32.const 768 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 6 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2736 + i32.const 800 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2736 + i32.const 800 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 7 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2768 + i32.const 832 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2768 + i32.const 832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 8 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2864 + i32.const 928 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2896 + i32.const 960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 12 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2928 + i32.const 992 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2960 + i32.const 1024 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 13 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2992 + i32.const 1056 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3024 + i32.const 1088 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3072 + i32.const 1136 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3104 + i32.const 1168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 15 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3152 + i32.const 1216 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3184 + i32.const 1248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3216 + i32.const 1280 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3248 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3296 + i32.const 1360 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3328 + i32.const 1392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 18 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3424 + i32.const 1488 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3456 + i32.const 1520 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 19 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3568 + i32.const 1632 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3600 + i32.const 1664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 20 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3648 + i32.const 1712 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3680 + i32.const 1744 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3728 + i32.const 1792 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3760 + i32.const 1824 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3840 + i32.const 1904 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3872 + i32.const 1936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 24 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3936 + i32.const 2000 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3984 + i32.const 2048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 26 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4064 + i32.const 2128 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4176 + i32.const 2240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -4644,151 +4045,151 @@ i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 39 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2672 + i32.const 736 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2672 + i32.const 736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 40 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4416 + i32.const 2480 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4416 + i32.const 2480 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 41 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2768 + i32.const 832 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2768 + i32.const 832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 42 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4464 + i32.const 2528 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4496 + i32.const 2560 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 46 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3568 + i32.const 1632 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3600 + i32.const 1664 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 47 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3648 + i32.const 1712 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3680 + i32.const 1744 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 48 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3840 + i32.const 1904 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3872 + i32.const 1936 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 50 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4064 + i32.const 2128 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4064 + i32.const 2128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -4806,169 +4207,169 @@ i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 62 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2672 + i32.const 736 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2672 + i32.const 736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 63 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4560 + i32.const 2624 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4592 + i32.const 2656 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 64 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4624 + i32.const 2688 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4656 + i32.const 2720 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 65 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4688 + i32.const 2752 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4688 + i32.const 2752 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 66 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3648 + i32.const 1712 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3648 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 67 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4720 + i32.const 2784 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4800 + i32.const 2864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 68 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4848 + i32.const 2912 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4800 + i32.const 2864 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 69 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4928 + i32.const 2992 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4064 + i32.const 2128 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 70 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3328 + i32.const 1392 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3296 + i32.const 1360 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 75 i32.const 1 call $~lib/builtins/abort @@ -4986,205 +4387,205 @@ i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 85 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2672 + i32.const 736 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2672 + i32.const 736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4560 + i32.const 2624 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4560 + i32.const 2624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 87 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5056 + i32.const 3120 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5088 + i32.const 3152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 88 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5120 + i32.const 3184 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5152 + i32.const 3216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 89 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4688 + i32.const 2752 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4688 + i32.const 2752 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 90 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3648 + i32.const 1712 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3648 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 91 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4720 + i32.const 2784 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4720 + i32.const 2784 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 92 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3328 + i32.const 1392 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3296 + i32.const 1360 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 93 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5184 + i32.const 3248 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5184 + i32.const 3248 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5232 + i32.const 3296 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5232 + i32.const 3296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 95 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4928 + i32.const 2992 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4928 + i32.const 2992 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2624 + i32.const 688 i32.const 96 i32.const 1 call $~lib/builtins/abort @@ -5198,168 +4599,15 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 256 - i32.const 384 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 448 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 2288 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2096 + i32.const 352 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2496 + i32.const 160 local.get $0 call $~lib/rt/itcms/__visit - i32.const 880 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1936 + i32.const 560 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index da00a033cf..404ff1e18b 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -1,13 +1,14 @@ (module - (type $0 (func (param i32) (result i32))) + (type $0 (func)) (type $1 (func (param i32 i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32))) + (type $5 (func (param i32 i32))) + (type $6 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,7 +19,7 @@ (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/memory/__stack_pointer (mut i32) (i32.const 39060)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37124)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02") @@ -26,361 +27,140 @@ (data $1.1 (i32.const 1093) "\01\01\01\01\01\01\01") (data $1.2 (i32.const 1126) "\01\01\01\01\00\01") (data $1.3 (i32.const 1158) "\01\01\01") - (data $2 (i32.const 1164) "\1c") - (data $2.1 (i32.const 1176) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $3 (i32.const 1196) "\1c") - (data $3.1 (i32.const 1208) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $4 (i32.const 1228) "\1c") - (data $4.1 (i32.const 1240) "\02\00\00\00\02\00\00\00:") - (data $5 (i32.const 1260) "|") - (data $5.1 (i32.const 1272) "\02\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 $6 (i32.const 1388) "<") - (data $6.1 (i32.const 1400) "\02\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 $7 (i32.const 1452) "\1c") - (data $7.1 (i32.const 1464) "\02\00\00\00\02\00\00\000") - (data $8 (i32.const 1484) "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 $9 (i32.const 1884) "\1c\04") - (data $9.1 (i32.const 1896) "\02\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 $10 (i32.const 2940) "\\") - (data $10.1 (i32.const 2952) "\02\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 $11 (i32.const 3036) "<") - (data $11.1 (i32.const 3048) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $12 (i32.const 3100) "<") - (data $12.1 (i32.const 3112) "\02\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 $13 (i32.const 3164) "<") - (data $13.1 (i32.const 3176) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $16 (i32.const 3292) "<") - (data $16.1 (i32.const 3304) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $17 (i32.const 3356) ",") - (data $17.1 (i32.const 3368) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $19 (i32.const 3436) "<") - (data $19.1 (i32.const 3448) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $20 (i32.const 3500) ",") - (data $20.1 (i32.const 3512) "\02\00\00\00\1a\00\00\00U\00R\00I\00 \00m\00a\00l\00f\00o\00r\00m\00e\00d") - (data $21 (i32.const 3548) "<") - (data $21.1 (i32.const 3560) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00u\00r\00i\00.\00t\00s") - (data $22 (i32.const 3612) "0123456789ABCDEF") - (data $23 (i32.const 3628) ",") - (data $23.1 (i32.const 3640) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00u\00r\00i\00.\00t\00s") - (data $24 (i32.const 3676) "\1c") - (data $24.1 (i32.const 3688) "\02\00\00\00\02\00\00\00a") - (data $25 (i32.const 3708) "\1c") - (data $25.1 (i32.const 3720) "\02\00\00\00\04\00\00\00a\001") - (data $26 (i32.const 3740) "\1c") - (data $26.1 (i32.const 3752) "\02\00\00\00\06\00\00\00a\00b\00_") - (data $27 (i32.const 3772) "\\") - (data $27.1 (i32.const 3784) "\02\00\00\00H\00\00\00A\00B\00C\00D\00X\00Y\00Z\00a\00f\00g\00k\00l\00m\00n\00w\00y\00z\000\001\002\003\004\005\006\007\008\009\00-\00_\00.\00!\00~\00*\00\'\00(\00)") - (data $28 (i32.const 3868) "\1c") - (data $28.1 (i32.const 3880) "\02\00\00\00\02") - (data $29 (i32.const 3900) "\1c") - (data $29.1 (i32.const 3912) "\02\00\00\00\06\00\00\00%\000\000") - (data $30 (i32.const 3932) "\1c") - (data $30.1 (i32.const 3944) "\02\00\00\00\02\00\00\00+") - (data $31 (i32.const 3964) "\1c") - (data $31.1 (i32.const 3976) "\02\00\00\00\06\00\00\00%\002\00B") - (data $32 (i32.const 3996) "\1c") - (data $32.1 (i32.const 4008) "\02\00\00\00\06\00\00\00#\000\00=") - (data $33 (i32.const 4028) ",") - (data $33.1 (i32.const 4040) "\02\00\00\00\0e\00\00\00%\002\003\000\00%\003\00D") - (data $34 (i32.const 4076) "\1c") - (data $34.1 (i32.const 4088) "\02\00\00\00\n\00\00\00 \001\002\003\00 ") - (data $35 (i32.const 4108) ",") - (data $35.1 (i32.const 4120) "\02\00\00\00\12\00\00\00%\002\000\001\002\003\00%\002\000") - (data $36 (i32.const 4156) "\1c") - (data $36.1 (i32.const 4168) "\02\00\00\00\04\00\00\00?\00+") - (data $37 (i32.const 4188) "\1c") - (data $37.1 (i32.const 4200) "\02\00\00\00\0c\00\00\00%\003\00F\00%\002\00B") - (data $38 (i32.const 4220) "\1c") - (data $38.1 (i32.const 4232) "\02\00\00\00\n\00\00\00-\00?\001\00.\00-") - (data $39 (i32.const 4252) ",") - (data $39.1 (i32.const 4264) "\02\00\00\00\0e\00\00\00-\00%\003\00F\001\00.\00-") - (data $40 (i32.const 4300) "\1c") - (data $40.1 (i32.const 4312) "\02\00\00\00\0c\00\00\00<\d8\ed\dd<\d8\fa\dd<\d8N\df") - (data $41 (i32.const 4332) "\\") - (data $41.1 (i32.const 4344) "\02\00\00\00H\00\00\00%\00F\000\00%\009\00F\00%\008\007\00%\00A\00D\00%\00F\000\00%\009\00F\00%\008\007\00%\00B\00A\00%\00F\000\00%\009\00F\00%\008\00D\00%\008\00E") - (data $42 (i32.const 4428) "\1c") - (data $42.1 (i32.const 4440) "\02\00\00\00\n\00\00\00H\c5U\b1X\d58\c1\94\c6") - (data $43 (i32.const 4460) "l") - (data $43.1 (i32.const 4472) "\02\00\00\00Z\00\00\00%\00E\00C\00%\009\005\00%\008\008\00%\00E\00B\00%\008\005\00%\009\005\00%\00E\00D\00%\009\005\00%\009\008\00%\00E\00C\00%\008\004\00%\00B\008\00%\00E\00C\00%\009\00A\00%\009\004") - (data $44 (i32.const 4572) "\1c") - (data $44.1 (i32.const 4584) "\02\00\00\00\06\00\00\00~\00\7f\00\80") - (data $45 (i32.const 4604) ",") - (data $45.1 (i32.const 4616) "\02\00\00\00\14\00\00\00~\00%\007\00F\00%\00C\002\00%\008\000") - (data $46 (i32.const 4652) "\1c") - (data $46.1 (i32.const 4664) "\02\00\00\00\04\00\00\00\00\d8\ff\df") - (data $47 (i32.const 4684) ",") - (data $47.1 (i32.const 4696) "\02\00\00\00\18\00\00\00%\00F\000\00%\009\000\00%\008\00F\00%\00B\00F") - (data $48 (i32.const 4732) "\1c") - (data $48.1 (i32.const 4744) "\02\00\00\00\n\00\00\00{\da\01\dc-\00P\da\02\dc") - (data $49 (i32.const 4764) "L") - (data $49.1 (i32.const 4776) "\02\00\00\002\00\00\00%\00F\002\00%\00A\00E\00%\00B\000\00%\008\001\00-\00%\00F\002\00%\00A\004\00%\008\000\00%\008\002") - (data $50 (i32.const 4844) "\1c") - (data $50.1 (i32.const 4856) "\02\00\00\00\n\00\00\00\n\00\t\00\0b\00\0c\00\r") - (data $51 (i32.const 4876) "<") - (data $51.1 (i32.const 4888) "\02\00\00\00\1e\00\00\00%\000\00A\00%\000\009\00%\000\00B\00%\000\00C\00%\000\00D") - (data $52 (i32.const 4940) ",") - (data $52.1 (i32.const 4952) "\02\00\00\00\14\00\00\00;\00/\00?\00:\00@\00&\00=\00+\00$\00,") - (data $53 (i32.const 4988) "L") - (data $53.1 (i32.const 5000) "\02\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\002\006\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C") - (data $54 (i32.const 5068) "l") - (data $54.1 (i32.const 5080) "\02\00\00\00\\\00\00\00h\00t\00t\00p\00:\00/\00/\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00#\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n") - (data $55 (i32.const 5180) "\8c") - (data $55.1 (i32.const 5192) "\02\00\00\00t\00\00\00h\00t\00t\00p\00%\003\00A\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00%\002\00F\00w\00i\00k\00i\00%\002\00F\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n") - (data $56 (i32.const 5325) "\01\00\00\01") - (data $56.1 (i32.const 5351) "\01\00\01") - (data $56.2 (i32.const 5382) "\01\01\01\01\00\01") - (data $56.3 (i32.const 5414) "\01\01\01") - (data $57 (i32.const 5420) ",") - (data $57.1 (i32.const 5432) "\02\00\00\00\16\00\00\00;\00,\00/\00?\00:\00@\00&\00=\00+\00$\00#") - (data $58 (i32.const 5468) "\1c") - (data $58.1 (i32.const 5480) "\02\00\00\00\02\00\00\00 ") - (data $59 (i32.const 5500) "\1c") - (data $59.1 (i32.const 5512) "\02\00\00\00\06\00\00\00%\002\000") - (data $60 (i32.const 5532) "\01\01\00\01\00\00\00\00\01\01\00\00\01") - (data $60.1 (i32.const 5555) "\01\01\00\01\00\01\01") - (data $61 (i32.const 5564) "\1c") - (data $61.1 (i32.const 5576) "\02\00\00\00\06\00\00\00%\002\006") - (data $62 (i32.const 5596) "\1c") - (data $62.1 (i32.const 5608) "\02\00\00\00\02\00\00\00&") - (data $63 (i32.const 5628) "\1c") - (data $63.1 (i32.const 5640) "\02\00\00\00\06\00\00\00%\005\00E") - (data $64 (i32.const 5660) "\1c") - (data $64.1 (i32.const 5672) "\02\00\00\00\02\00\00\00^") - (data $65 (i32.const 5692) "\1c") - (data $65.1 (i32.const 5704) "\02\00\00\00\02\00\00\00\00\d8") - (data $66 (i32.const 5724) "L") - (data $66.1 (i32.const 5736) "\02\00\00\00<\00\00\00%\003\00b\00%\002\00f\00%\003\00f\00%\003\00a\00%\004\000\00%\003\00d\00%\002\00b\00%\002\004\00%\002\00c\00%\002\003") - (data $67 (i32.const 5804) ",") - (data $67.1 (i32.const 5816) "\02\00\00\00\14\00\00\00;\00/\00?\00:\00@\00=\00+\00$\00,\00#") - (data $68 (i32.const 5852) "L") - (data $68.1 (i32.const 5864) "\02\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C\00%\002\003") - (data $69 (i32.const 5932) "|") - (data $69.1 (i32.const 5944) "\02\00\00\00h\00\00\00h\00t\00t\00p\00:\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n") - (data $70 (i32.const 6060) "\1c") - (data $70.1 (i32.const 6072) "\02\00\00\00\0c\00\00\00%\00D\00F\00%\008\000") - (data $71 (i32.const 6092) "\1c") - (data $71.1 (i32.const 6104) "\02\00\00\00\02\00\00\00\c0\07") - (data $72 (i32.const 6124) "\1c") - (data $72.1 (i32.const 6136) "\02\00\00\00\0c\00\00\00%\00C\002\00%\00B\00F") - (data $73 (i32.const 6156) "\1c") - (data $73.1 (i32.const 6168) "\02\00\00\00\02\00\00\00\bf") - (data $74 (i32.const 6188) ",") - (data $74.1 (i32.const 6200) "\02\00\00\00\0e\00\00\00\f7\00\b8\00W\00\ef\00\0f\00\f4\00V") - (data $75 (i32.const 6236) "\1c") - (data $75.1 (i32.const 6248) "\02\00\00\00\06\00\00\00\f4\00\b8\00\ef") - (data $76 (i32.const 6272) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $2 (i32.const 1164) "<") + (data $2.1 (i32.const 1176) "\02\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 $3 (i32.const 1228) "<") + (data $3.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1356) "<") + (data $6.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1420) ",") + (data $7.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1500) "<") + (data $9.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1564) ",") + (data $10.1 (i32.const 1576) "\02\00\00\00\1a\00\00\00U\00R\00I\00 \00m\00a\00l\00f\00o\00r\00m\00e\00d") + (data $11 (i32.const 1612) "<") + (data $11.1 (i32.const 1624) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00u\00r\00i\00.\00t\00s") + (data $12 (i32.const 1676) "0123456789ABCDEF") + (data $13 (i32.const 1692) ",") + (data $13.1 (i32.const 1704) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00u\00r\00i\00.\00t\00s") + (data $14 (i32.const 1740) "\1c") + (data $14.1 (i32.const 1752) "\02\00\00\00\02\00\00\00a") + (data $15 (i32.const 1772) "\1c") + (data $15.1 (i32.const 1784) "\02\00\00\00\04\00\00\00a\001") + (data $16 (i32.const 1804) "\1c") + (data $16.1 (i32.const 1816) "\02\00\00\00\06\00\00\00a\00b\00_") + (data $17 (i32.const 1836) "\\") + (data $17.1 (i32.const 1848) "\02\00\00\00H\00\00\00A\00B\00C\00D\00X\00Y\00Z\00a\00f\00g\00k\00l\00m\00n\00w\00y\00z\000\001\002\003\004\005\006\007\008\009\00-\00_\00.\00!\00~\00*\00\'\00(\00)") + (data $18 (i32.const 1932) "\1c") + (data $18.1 (i32.const 1944) "\02\00\00\00\02") + (data $19 (i32.const 1964) "\1c") + (data $19.1 (i32.const 1976) "\02\00\00\00\06\00\00\00%\000\000") + (data $20 (i32.const 1996) "\1c") + (data $20.1 (i32.const 2008) "\02\00\00\00\02\00\00\00+") + (data $21 (i32.const 2028) "\1c") + (data $21.1 (i32.const 2040) "\02\00\00\00\06\00\00\00%\002\00B") + (data $22 (i32.const 2060) "\1c") + (data $22.1 (i32.const 2072) "\02\00\00\00\06\00\00\00#\000\00=") + (data $23 (i32.const 2092) ",") + (data $23.1 (i32.const 2104) "\02\00\00\00\0e\00\00\00%\002\003\000\00%\003\00D") + (data $24 (i32.const 2140) "\1c") + (data $24.1 (i32.const 2152) "\02\00\00\00\n\00\00\00 \001\002\003\00 ") + (data $25 (i32.const 2172) ",") + (data $25.1 (i32.const 2184) "\02\00\00\00\12\00\00\00%\002\000\001\002\003\00%\002\000") + (data $26 (i32.const 2220) "\1c") + (data $26.1 (i32.const 2232) "\02\00\00\00\04\00\00\00?\00+") + (data $27 (i32.const 2252) "\1c") + (data $27.1 (i32.const 2264) "\02\00\00\00\0c\00\00\00%\003\00F\00%\002\00B") + (data $28 (i32.const 2284) "\1c") + (data $28.1 (i32.const 2296) "\02\00\00\00\n\00\00\00-\00?\001\00.\00-") + (data $29 (i32.const 2316) ",") + (data $29.1 (i32.const 2328) "\02\00\00\00\0e\00\00\00-\00%\003\00F\001\00.\00-") + (data $30 (i32.const 2364) "\1c") + (data $30.1 (i32.const 2376) "\02\00\00\00\0c\00\00\00<\d8\ed\dd<\d8\fa\dd<\d8N\df") + (data $31 (i32.const 2396) "\\") + (data $31.1 (i32.const 2408) "\02\00\00\00H\00\00\00%\00F\000\00%\009\00F\00%\008\007\00%\00A\00D\00%\00F\000\00%\009\00F\00%\008\007\00%\00B\00A\00%\00F\000\00%\009\00F\00%\008\00D\00%\008\00E") + (data $32 (i32.const 2492) "\1c") + (data $32.1 (i32.const 2504) "\02\00\00\00\n\00\00\00H\c5U\b1X\d58\c1\94\c6") + (data $33 (i32.const 2524) "l") + (data $33.1 (i32.const 2536) "\02\00\00\00Z\00\00\00%\00E\00C\00%\009\005\00%\008\008\00%\00E\00B\00%\008\005\00%\009\005\00%\00E\00D\00%\009\005\00%\009\008\00%\00E\00C\00%\008\004\00%\00B\008\00%\00E\00C\00%\009\00A\00%\009\004") + (data $34 (i32.const 2636) "\1c") + (data $34.1 (i32.const 2648) "\02\00\00\00\06\00\00\00~\00\7f\00\80") + (data $35 (i32.const 2668) ",") + (data $35.1 (i32.const 2680) "\02\00\00\00\14\00\00\00~\00%\007\00F\00%\00C\002\00%\008\000") + (data $36 (i32.const 2716) "\1c") + (data $36.1 (i32.const 2728) "\02\00\00\00\04\00\00\00\00\d8\ff\df") + (data $37 (i32.const 2748) ",") + (data $37.1 (i32.const 2760) "\02\00\00\00\18\00\00\00%\00F\000\00%\009\000\00%\008\00F\00%\00B\00F") + (data $38 (i32.const 2796) "\1c") + (data $38.1 (i32.const 2808) "\02\00\00\00\n\00\00\00{\da\01\dc-\00P\da\02\dc") + (data $39 (i32.const 2828) "L") + (data $39.1 (i32.const 2840) "\02\00\00\002\00\00\00%\00F\002\00%\00A\00E\00%\00B\000\00%\008\001\00-\00%\00F\002\00%\00A\004\00%\008\000\00%\008\002") + (data $40 (i32.const 2908) "\1c") + (data $40.1 (i32.const 2920) "\02\00\00\00\n\00\00\00\n\00\t\00\0b\00\0c\00\r") + (data $41 (i32.const 2940) "<") + (data $41.1 (i32.const 2952) "\02\00\00\00\1e\00\00\00%\000\00A\00%\000\009\00%\000\00B\00%\000\00C\00%\000\00D") + (data $42 (i32.const 3004) ",") + (data $42.1 (i32.const 3016) "\02\00\00\00\14\00\00\00;\00/\00?\00:\00@\00&\00=\00+\00$\00,") + (data $43 (i32.const 3052) "L") + (data $43.1 (i32.const 3064) "\02\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\002\006\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C") + (data $44 (i32.const 3132) "l") + (data $44.1 (i32.const 3144) "\02\00\00\00\\\00\00\00h\00t\00t\00p\00:\00/\00/\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00#\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n") + (data $45 (i32.const 3244) "\8c") + (data $45.1 (i32.const 3256) "\02\00\00\00t\00\00\00h\00t\00t\00p\00%\003\00A\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00%\002\00F\00w\00i\00k\00i\00%\002\00F\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n") + (data $46 (i32.const 3389) "\01\00\00\01") + (data $46.1 (i32.const 3415) "\01\00\01") + (data $46.2 (i32.const 3446) "\01\01\01\01\00\01") + (data $46.3 (i32.const 3478) "\01\01\01") + (data $47 (i32.const 3484) ",") + (data $47.1 (i32.const 3496) "\02\00\00\00\16\00\00\00;\00,\00/\00?\00:\00@\00&\00=\00+\00$\00#") + (data $48 (i32.const 3532) "\1c") + (data $48.1 (i32.const 3544) "\02\00\00\00\02\00\00\00 ") + (data $49 (i32.const 3564) "\1c") + (data $49.1 (i32.const 3576) "\02\00\00\00\06\00\00\00%\002\000") + (data $50 (i32.const 3596) "\01\01\00\01\00\00\00\00\01\01\00\00\01") + (data $50.1 (i32.const 3619) "\01\01\00\01\00\01\01") + (data $51 (i32.const 3628) "\1c") + (data $51.1 (i32.const 3640) "\02\00\00\00\06\00\00\00%\002\006") + (data $52 (i32.const 3660) "\1c") + (data $52.1 (i32.const 3672) "\02\00\00\00\02\00\00\00&") + (data $53 (i32.const 3692) "\1c") + (data $53.1 (i32.const 3704) "\02\00\00\00\06\00\00\00%\005\00E") + (data $54 (i32.const 3724) "\1c") + (data $54.1 (i32.const 3736) "\02\00\00\00\02\00\00\00^") + (data $55 (i32.const 3756) "\1c") + (data $55.1 (i32.const 3768) "\02\00\00\00\02\00\00\00\00\d8") + (data $56 (i32.const 3788) "L") + (data $56.1 (i32.const 3800) "\02\00\00\00<\00\00\00%\003\00b\00%\002\00f\00%\003\00f\00%\003\00a\00%\004\000\00%\003\00d\00%\002\00b\00%\002\004\00%\002\00c\00%\002\003") + (data $57 (i32.const 3868) ",") + (data $57.1 (i32.const 3880) "\02\00\00\00\14\00\00\00;\00/\00?\00:\00@\00=\00+\00$\00,\00#") + (data $58 (i32.const 3916) "L") + (data $58.1 (i32.const 3928) "\02\00\00\00<\00\00\00%\003\00B\00%\002\00F\00%\003\00F\00%\003\00A\00%\004\000\00%\003\00D\00%\002\00B\00%\002\004\00%\002\00C\00%\002\003") + (data $59 (i32.const 3996) "|") + (data $59.1 (i32.const 4008) "\02\00\00\00h\00\00\00h\00t\00t\00p\00:\00%\002\00F\00%\002\00F\00e\00n\00.\00w\00i\00k\00i\00p\00e\00d\00i\00a\00.\00o\00r\00g\00/\00w\00i\00k\00i\00/\00U\00T\00F\00-\008\00%\002\003\00D\00e\00s\00c\00r\00i\00p\00t\00i\00o\00n") + (data $60 (i32.const 4124) "\1c") + (data $60.1 (i32.const 4136) "\02\00\00\00\0c\00\00\00%\00D\00F\00%\008\000") + (data $61 (i32.const 4156) "\1c") + (data $61.1 (i32.const 4168) "\02\00\00\00\02\00\00\00\c0\07") + (data $62 (i32.const 4188) "\1c") + (data $62.1 (i32.const 4200) "\02\00\00\00\0c\00\00\00%\00C\002\00%\00B\00F") + (data $63 (i32.const 4220) "\1c") + (data $63.1 (i32.const 4232) "\02\00\00\00\02\00\00\00\bf") + (data $64 (i32.const 4252) ",") + (data $64.1 (i32.const 4264) "\02\00\00\00\0e\00\00\00\f7\00\b8\00W\00\ef\00\0f\00\f4\00V") + (data $65 (i32.const 4300) "\1c") + (data $65.1 (i32.const 4312) "\02\00\00\00\06\00\00\00\f4\00\b8\00\ef") + (data $66 (i32.const 4336) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 6292 - i32.lt_s - if - i32.const 39088 - i32.const 39136 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1472 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1484 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1484 - 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 1484 - 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 1484 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3312 + i32.const 1376 call $~lib/rt/itcms/__visit - i32.const 3120 - call $~lib/rt/itcms/__visit - i32.const 3520 + i32.const 1184 call $~lib/rt/itcms/__visit - i32.const 1904 - call $~lib/rt/itcms/__visit - i32.const 2960 + i32.const 1584 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -401,7 +181,7 @@ i32.ne if i32.const 0 - i32.const 3184 + i32.const 1248 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -449,7 +229,7 @@ i32.eqz if i32.const 0 - i32.const 3184 + i32.const 1248 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -458,7 +238,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$144 + block $__inlined_func$~lib/rt/itcms/Object#unlink$133 local.get $1 i32.load offset=4 i32.const -4 @@ -470,19 +250,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 39060 + i32.const 37124 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3184 + i32.const 1248 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$144 + br $__inlined_func$~lib/rt/itcms/Object#unlink$133 end local.get $1 i32.load offset=8 @@ -490,7 +270,7 @@ i32.eqz if i32.const 0 - i32.const 3184 + i32.const 1248 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -519,13 +299,13 @@ i32.const 1 else local.get $0 - i32.const 6272 + i32.const 4336 i32.load i32.gt_u if - i32.const 3312 - i32.const 3376 - i32.const 21 + i32.const 1376 + i32.const 1440 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -533,7 +313,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 6276 + i32.const 4340 i32.add i32.load i32.const 32 @@ -585,7 +365,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -599,7 +379,7 @@ i32.lt_u if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -645,7 +425,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -728,7 +508,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -742,7 +522,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -803,7 +583,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -836,7 +616,7 @@ i32.lt_u if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -851,7 +631,7 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -902,7 +682,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -974,7 +754,7 @@ i64.lt_u if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -999,7 +779,7 @@ i32.gt_u if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1026,7 +806,7 @@ i32.gt_u if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1098,10 +878,10 @@ if unreachable end - i32.const 39072 + i32.const 37136 i32.const 0 i32.store - i32.const 40640 + i32.const 38704 i32.const 0 i32.store loop $for-loop|0 @@ -1112,7 +892,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 39072 + i32.const 37136 i32.add i32.const 0 i32.store offset=4 @@ -1130,7 +910,7 @@ i32.add i32.const 2 i32.shl - i32.const 39072 + i32.const 37136 i32.add i32.const 0 i32.store offset=96 @@ -1148,14 +928,14 @@ br $for-loop|0 end end - i32.const 39072 - i32.const 40644 + i32.const 37136 + i32.const 38708 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 39072 + i32.const 37136 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1240,7 +1020,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 39060 + i32.const 37124 i32.lt_u if local.get $0 @@ -1329,14 +1109,14 @@ i32.ne if i32.const 0 - i32.const 3184 + i32.const 1248 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 39060 + i32.const 37124 i32.lt_u if local.get $0 @@ -1359,7 +1139,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 39060 + i32.const 37124 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1388,7 +1168,7 @@ end if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1472,7 +1252,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1524,7 +1304,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1556,8 +1336,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 3120 - i32.const 3184 + i32.const 1184 + i32.const 1248 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1567,7 +1347,7 @@ global.get $~lib/rt/itcms/threshold i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$71 + block $__inlined_func$~lib/rt/itcms/interrupt$70 i32.const 2048 local.set $2 loop $do-loop|0 @@ -1584,7 +1364,7 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$70 end local.get $2 i32.const 0 @@ -1617,8 +1397,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3120 - i32.const 3456 + i32.const 1184 + i32.const 1520 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1720,7 +1500,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1735,7 +1515,7 @@ i32.gt_u if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1754,7 +1534,7 @@ i32.and if i32.const 0 - i32.const 3456 + i32.const 1520 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2009,8 +1789,8 @@ i32.ge_u i32.and if - i32.const 3520 - i32.const 3568 + i32.const 1584 + i32.const 1632 i32.const 81 i32.const 9 call $~lib/builtins/abort @@ -2024,8 +1804,8 @@ local.get $4 i32.le_u if - i32.const 3520 - i32.const 3568 + i32.const 1584 + i32.const 1632 i32.const 85 i32.const 11 call $~lib/builtins/abort @@ -2048,8 +1828,8 @@ i32.gt_u i32.or if - i32.const 3520 - i32.const 3568 + i32.const 1584 + i32.const 1632 i32.const 89 i32.const 11 call $~lib/builtins/abort @@ -2110,13 +1890,13 @@ i32.shr_u i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u local.get $7 i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u i32.const 16 @@ -2145,13 +1925,13 @@ i32.shr_u i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u local.get $6 i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u i32.const 16 @@ -2180,13 +1960,13 @@ i32.shr_u i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u local.get $6 i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u i32.const 16 @@ -2209,13 +1989,13 @@ local.tee $6 i32.const 4 i32.shr_u - i32.const 3612 + i32.const 1676 i32.add i32.load8_u local.get $6 i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u i32.const 16 @@ -2242,13 +2022,13 @@ local.tee $6 i32.const 4 i32.shr_u - i32.const 3612 + i32.const 1676 i32.add i32.load8_u local.get $6 i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u i32.const 16 @@ -2276,13 +2056,13 @@ local.tee $6 i32.const 4 i32.shr_u - i32.const 3612 + i32.const 1676 i32.add i32.load8_u local.get $6 i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u i32.const 16 @@ -2308,13 +2088,13 @@ local.tee $6 i32.const 4 i32.shr_u - i32.const 3612 + i32.const 1676 i32.add i32.load8_u local.get $6 i32.const 15 i32.and - i32.const 3612 + i32.const 1676 i32.add i32.load8_u i32.const 16 @@ -2513,8 +2293,8 @@ i32.eq end if - i32.const 3520 - i32.const 3568 + i32.const 1584 + i32.const 1632 i32.const 164 i32.const 7 call $~lib/builtins/abort @@ -2539,7 +2319,7 @@ i32.lt_u if (result i32) local.get $5 - i32.const 5497 + i32.const 3561 i32.add i32.load8_u else @@ -2692,8 +2472,8 @@ i32.eq end if - i32.const 3520 - i32.const 3568 + i32.const 1584 + i32.const 1632 i32.const 187 i32.const 11 call $~lib/builtins/abort @@ -2748,8 +2528,8 @@ i32.and end if - i32.const 3520 - i32.const 3568 + i32.const 1584 + i32.const 1632 i32.const 199 i32.const 9 call $~lib/builtins/abort @@ -2806,7 +2586,7 @@ i32.lt_u if i32.const 0 - i32.const 3568 + i32.const 1632 i32.const 216 i32.const 3 call $~lib/builtins/abort @@ -2828,205 +2608,40 @@ (func $~start call $start:std/uri ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 6292 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 6292 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$149 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#concat$149 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 39088 - i32.const 39136 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6292 + i32.const 4356 i32.lt_s if - i32.const 39088 - i32.const 39136 + i32.const 37152 + i32.const 37200 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1184 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1216 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1248 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1248 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3056 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/uri/encodeURIComponent (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3034,11 +2649,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6292 + i32.const 4356 i32.lt_s if - i32.const 39088 - i32.const 39136 + i32.const 37152 + i32.const 37200 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3074,11 +2689,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6292 + i32.const 4356 i32.lt_s if - i32.const 39088 - i32.const 39136 + i32.const 37152 + i32.const 37200 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3177,7 +2792,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$91 + block $__inlined_func$~lib/util/string/compareImpl$88 loop $while-continue|1 local.get $0 local.tee $3 @@ -3197,7 +2812,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$91 + br_if $__inlined_func$~lib/util/string/compareImpl$88 local.get $2 i32.const 2 i32.add @@ -3232,11 +2847,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6292 + i32.const 4356 i32.lt_s if - i32.const 39088 - i32.const 39136 + i32.const 37152 + i32.const 37200 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3255,7 +2870,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - i32.const 5324 + i32.const 3388 call $~lib/util/uri/encode global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3268,11 +2883,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6292 + i32.const 4356 i32.lt_s if - i32.const 39088 - i32.const 39136 + i32.const 37152 + i32.const 37200 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3304,11 +2919,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6292 + i32.const 4356 i32.lt_s if - i32.const 39088 - i32.const 39136 + i32.const 37152 + i32.const 37200 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3341,11 +2956,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6292 + i32.const 4356 i32.lt_s if - i32.const 39088 - i32.const 39136 + i32.const 37152 + i32.const 37200 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3357,34 +2972,34 @@ memory.size i32.const 16 i32.shl - i32.const 39060 + i32.const 37124 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3236 - i32.const 3232 + i32.const 1300 + i32.const 1296 i32.store - i32.const 3240 - i32.const 3232 + i32.const 1304 + i32.const 1296 i32.store - i32.const 3232 + i32.const 1296 global.set $~lib/rt/itcms/pinSpace - i32.const 3268 - i32.const 3264 + i32.const 1332 + i32.const 1328 i32.store - i32.const 3272 - i32.const 3264 + i32.const 1336 + i32.const 1328 i32.store - i32.const 3264 + i32.const 1328 global.set $~lib/rt/itcms/toSpace - i32.const 3412 - i32.const 3408 + i32.const 1476 + i32.const 1472 i32.store - i32.const 3416 - i32.const 3408 + i32.const 1480 + i32.const 1472 i32.store - i32.const 3408 + i32.const 1472 global.set $~lib/rt/itcms/fromSpace i32.const 1056 call $~lib/uri/encodeURIComponent @@ -3398,331 +3013,331 @@ i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 4 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3696 + i32.const 1760 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3696 + i32.const 1760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 5 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3728 + i32.const 1792 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3728 + i32.const 1792 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 6 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3760 + i32.const 1824 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3760 + i32.const 1824 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 7 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3792 + i32.const 1856 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3792 + i32.const 1856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 8 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3888 + i32.const 1952 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3920 + i32.const 1984 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 12 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3952 + i32.const 2016 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3984 + i32.const 2048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 13 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4016 + i32.const 2080 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4048 + i32.const 2112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4096 + i32.const 2160 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4128 + i32.const 2192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 15 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4176 + i32.const 2240 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4208 + i32.const 2272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4240 + i32.const 2304 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4272 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4320 + i32.const 2384 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4352 + i32.const 2416 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 18 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4448 + i32.const 2512 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4480 + i32.const 2544 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 19 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 + i32.const 2656 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4624 + i32.const 2688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 20 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4672 + i32.const 2736 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4704 + i32.const 2768 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4752 + i32.const 2816 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4784 + i32.const 2848 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4864 + i32.const 2928 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4896 + i32.const 2960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 24 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4960 + i32.const 3024 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5008 + i32.const 3072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 26 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5088 + i32.const 3152 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5200 + i32.const 3264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -3740,151 +3355,151 @@ i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 39 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3696 + i32.const 1760 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3696 + i32.const 1760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 40 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5440 + i32.const 3504 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5440 + i32.const 3504 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 41 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3792 + i32.const 1856 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3792 + i32.const 1856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 42 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5488 + i32.const 3552 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5520 + i32.const 3584 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 46 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 + i32.const 2656 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4624 + i32.const 2688 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 47 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4672 + i32.const 2736 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4704 + i32.const 2768 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 48 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4864 + i32.const 2928 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4896 + i32.const 2960 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 50 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5088 + i32.const 3152 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5088 + i32.const 3152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -3902,169 +3517,169 @@ i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 62 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3696 + i32.const 1760 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3696 + i32.const 1760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 63 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5584 + i32.const 3648 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5616 + i32.const 3680 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 64 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5648 + i32.const 3712 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5680 + i32.const 3744 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 65 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5712 + i32.const 3776 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5712 + i32.const 3776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 66 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4672 + i32.const 2736 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4672 + i32.const 2736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 67 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5744 + i32.const 3808 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5824 + i32.const 3888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 68 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5872 + i32.const 3936 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5824 + i32.const 3888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 69 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5952 + i32.const 4016 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5088 + i32.const 3152 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 70 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4352 + i32.const 2416 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4320 + i32.const 2384 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 75 i32.const 1 call $~lib/builtins/abort @@ -4082,211 +3697,211 @@ i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 85 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3696 + i32.const 1760 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3696 + i32.const 1760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5584 + i32.const 3648 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5584 + i32.const 3648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 87 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6080 + i32.const 4144 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6112 + i32.const 4176 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 88 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6144 + i32.const 4208 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6176 + i32.const 4240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 89 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5712 + i32.const 3776 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5712 + i32.const 3776 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 90 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4672 + i32.const 2736 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4672 + i32.const 2736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 91 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5744 + i32.const 3808 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5744 + i32.const 3808 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 92 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4352 + i32.const 2416 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4320 + i32.const 2384 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 93 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6208 + i32.const 4272 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6208 + i32.const 4272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6256 + i32.const 4320 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 6256 + i32.const 4320 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 95 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5952 + i32.const 4016 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5952 + i32.const 4016 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3648 + i32.const 1712 i32.const 96 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 39060 + i32.const 37124 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index bd504f5c3b..4249369e9d 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -1,20 +1,15 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i64 i32))) - (type $7 (func (param i64 i32) (result i32))) - (type $8 (func (param i32 i64 i32 i32))) - (type $9 (func (param i32 i32 i64) (result i32))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i32 i32 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)) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,469 +18,33 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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 $super-inline/foo (mut i32) (i32.const 0)) (global $super-inline/bar (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2384)) - (global $~lib/memory/__data_end i32 (i32.const 2412)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35180)) - (global $~lib/memory/__heap_base i32 (i32.const 35180)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/memory/__data_end i32 (i32.const 444)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33212)) + (global $~lib/memory/__heap_base i32 (i32.const 33212)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 364) "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 $8 (i32.const 764) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 1820) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 1916) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 1980) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 2044) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 2112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 2144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 2172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 2236) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2384) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 416) "\06\00\00\00 \00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 364 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 364 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 364 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 784 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1840 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -550,7 +109,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -620,7 +179,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -637,7 +196,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -667,9 +226,9 @@ i32.load i32.gt_u if - i32.const 2192 - i32.const 2256 - i32.const 21 + i32.const 224 + i32.const 288 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -736,7 +295,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 2064 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -888,7 +447,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -908,7 +467,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -971,7 +530,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -1124,7 +683,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -1141,7 +700,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -1230,7 +789,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -1273,7 +832,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -1291,7 +850,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1359,7 +918,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1476,7 +1035,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1522,7 +1081,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1554,7 +1113,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1798,7 +1357,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -2018,7 +1577,7 @@ i32.eqz if i32.const 0 - i32.const 2064 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -2129,8 +1688,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 2000 - i32.const 2336 + i32.const 32 + i32.const 368 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -2232,7 +1791,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2303,7 +1862,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2460,7 +2019,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2575,7 +2134,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2595,7 +2154,7 @@ i32.eqz if i32.const 0 - i32.const 2336 + i32.const 368 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2643,8 +2202,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 2000 - i32.const 2064 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2723,20 +2282,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35200 - i32.const 35248 + i32.const 33232 + i32.const 33280 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2745,196 +2300,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 128 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 1936 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $super-inline/Foo#constructor (param $this i32) (result i32) (local $1 i32) @@ -3030,13 +2416,13 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 2112 + i32.const 144 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 2144 + i32.const 176 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 2288 + i32.const 320 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 @@ -3066,153 +2452,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 160 - i32.const 288 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 352 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3284,16 +2523,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 2192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2000 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 784 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index f901ca93e8..8e2dfacc3b 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) (type $1 (func (param i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32) (result i32))) + (type $2 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i64))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -19,240 +19,21 @@ (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $super-inline/foo (mut i32) (i32.const 0)) (global $super-inline/bar (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36204)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34236)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\02\00\00\00:") - (data $4 (i32.const 1164) "|") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1292) "<") - (data $5.1 (i32.const 1304) "\02\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 $6 (i32.const 1356) "\1c") - (data $6.1 (i32.const 1368) "\02\00\00\00\02\00\00\000") - (data $7 (i32.const 1388) "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 $8 (i32.const 1788) "\1c\04") - (data $8.1 (i32.const 1800) "\02\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 $9 (i32.const 2844) "\\") - (data $9.1 (i32.const 2856) "\02\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 $10 (i32.const 2940) "<") - (data $10.1 (i32.const 2952) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $11 (i32.const 3004) "<") - (data $11.1 (i32.const 3016) "\02\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 $12 (i32.const 3068) "<") - (data $12.1 (i32.const 3080) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $15 (i32.const 3196) "<") - (data $15.1 (i32.const 3208) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $16 (i32.const 3260) ",") - (data $16.1 (i32.const 3272) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $19 (i32.const 3408) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1440) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3436 - i32.lt_s - if - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$1 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1388 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1388 - 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 1388 - 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 1388 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -268,13 +49,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3216 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 3024 - call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 2864 + i32.const 1056 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -295,7 +72,7 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -343,7 +120,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -352,7 +129,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$129 + block $__inlined_func$~lib/rt/itcms/Object#unlink$117 local.get $1 i32.load offset=4 i32.const -4 @@ -364,19 +141,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36204 + i32.const 34236 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$129 + br $__inlined_func$~lib/rt/itcms/Object#unlink$117 end local.get $1 i32.load offset=8 @@ -384,7 +161,7 @@ i32.eqz if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -413,13 +190,13 @@ i32.const 1 else local.get $0 - i32.const 3408 + i32.const 1440 i32.load i32.gt_u if - i32.const 3216 - i32.const 3280 - i32.const 21 + i32.const 1248 + i32.const 1312 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -427,7 +204,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3412 + i32.const 1444 i32.add i32.load i32.const 32 @@ -479,7 +256,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -493,7 +270,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -539,7 +316,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -622,7 +399,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -636,7 +413,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -697,7 +474,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -730,7 +507,7 @@ i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -745,7 +522,7 @@ i32.ne if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -796,7 +573,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -868,7 +645,7 @@ i64.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -893,7 +670,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -920,7 +697,7 @@ i32.gt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -992,10 +769,10 @@ if unreachable end - i32.const 36208 + i32.const 34240 i32.const 0 i32.store - i32.const 37776 + i32.const 35808 i32.const 0 i32.store loop $for-loop|0 @@ -1006,7 +783,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=4 @@ -1024,7 +801,7 @@ i32.add i32.const 2 i32.shl - i32.const 36208 + i32.const 34240 i32.add i32.const 0 i32.store offset=96 @@ -1042,14 +819,14 @@ br $for-loop|0 end end - i32.const 36208 - i32.const 37780 + i32.const 34240 + i32.const 35812 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36208 + i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1134,7 +911,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36204 + i32.const 34236 i32.lt_u if local.get $0 @@ -1223,14 +1000,14 @@ i32.ne if i32.const 0 - i32.const 3088 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36204 + i32.const 34236 i32.lt_u if local.get $0 @@ -1253,7 +1030,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36204 + i32.const 34236 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1282,7 +1059,7 @@ end if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1312,85 +1089,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 3360 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1398,11 +1108,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1418,7 +1124,7 @@ i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1440,35 +1146,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 3024 - i32.const 3088 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$71 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1478,9 +1172,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1503,86 +1197,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 3024 - i32.const 3360 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1598,8 +1237,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1607,136 +1246,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 3360 + i32.const 1392 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 3360 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1744,14 +1366,14 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) (func $~start (local $0 i32) @@ -1761,7 +1383,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1770,34 +1392,34 @@ memory.size i32.const 16 i32.shl - i32.const 36204 + i32.const 34236 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3140 - i32.const 3136 + i32.const 1172 + i32.const 1168 i32.store - i32.const 3144 - i32.const 3136 + i32.const 1176 + i32.const 1168 i32.store - i32.const 3136 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 3172 - i32.const 3168 + i32.const 1204 + i32.const 1200 i32.store - i32.const 3176 - i32.const 3168 + i32.const 1208 + i32.const 1200 i32.store - i32.const 3168 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 3316 - i32.const 3312 + i32.const 1348 + i32.const 1344 i32.store - i32.const 3320 - i32.const 3312 + i32.const 1352 + i32.const 1344 i32.store - i32.const 3312 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace i32.const 0 call $super-inline/Foo#constructor @@ -1821,14 +1443,13 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -1859,212 +1480,47 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36224 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3436 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3436 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$134 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$134 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1152 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 2960 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $super-inline/Foo#constructor (param $0 i32) (result i32) (local $1 i32) @@ -2074,7 +1530,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2084,7 +1540,6 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2099,7 +1554,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2110,7 +1565,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2128,8 +1582,8 @@ local.get $0 return end - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2141,11 +1595,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3436 + i32.const 1468 i32.lt_s if - i32.const 36224 - i32.const 36272 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index 9e669c5775..bb8b8bedc1 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -4,19 +4,20 @@ (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32))) (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i64) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $13 (func (param f32) (result i32))) - (type $14 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i64) (result i32))) + (type $8 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (type $11 (func (param f32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_SHRINK_LEVEL 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)) @@ -28,52 +29,41 @@ (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_SHRINK_LEVEL i32 (i32.const 0)) (global $switch/Foo.A i32 (i32.const 1)) (global $switch/Foo.B i32 (i32.const 2)) (global $switch/Foo.C i32 (i32.const 3)) (global $switch/Foo.D i32 (i32.const 4)) (global $switch/foo1 (mut i32) (i32.const 0)) (global $switch/foo2 (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2848)) - (global $~lib/memory/__data_end i32 (i32.const 2876)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35644)) - (global $~lib/memory/__heap_base i32 (i32.const 35644)) + (global $~lib/rt/__rtti_base i32 (i32.const 912)) + (global $~lib/memory/__data_end i32 (i32.const 940)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33708)) + (global $~lib/memory/__heap_base i32 (i32.const 33708)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00s\00w\00i\00t\00c\00h\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") - (data $21 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") - (data $22 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") - (data $23 (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") - (data $24 (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00o\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00n\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00e\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00t\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00w\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00r\00\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00f\00\00\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00u\00\00\00\00\00\00\00\00\00\00\00") - (data $33 (i32.const 2848) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00s\00w\00i\00t\00c\00h\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") + (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") + (data $3 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") + (data $4 (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") + (data $5 (i32.const 188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00o\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 220) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00n\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 284) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 540) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 592) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 620) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00e\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00t\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00w\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00r\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00f\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00u\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 912) "\06\00\00\00 \00\00\00 \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 "memory" (memory $0)) @@ -116,6 +106,154 @@ i32.const 23 return ) + (func $switch/doSwitchDefaultFirst (param $n i32) (result i32) + (local $1 i32) + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + 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 + br $case0|0 + end + i32.const 0 + return + end + i32.const 1 + return + end + end + i32.const 23 + return + ) + (func $switch/doSwitchDefaultOmitted (param $n i32) (result i32) + (local $1 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 3 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + return + end + end + i32.const 23 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchBreakCase (param $n i32) (result i32) + (local $1 i32) + block $break|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case0|0 + br $case1|0 + end + br $break|0 + end + i32.const 2 + return + end + i32.const 1 + return + ) + (func $switch/doSwitchBreakDefault (param $n i32) (result i32) + (local $1 i32) + block $break|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case0|0 + br $case1|0 + end + i32.const 1 + return + end + br $break|0 + end + i32.const 2 + return + ) + (func $switch/doSwitchFallThroughCase (param $n i32) (result i32) + (local $1 i32) + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + br $case0|0 + end + i32.const 2 + return + end + i32.const 1 + return + ) + (func $switch/doSwitchFallThroughDefault (param $n i32) (result i32) + (local $1 i32) + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case0|0 + br $case1|0 + end + i32.const 1 + return + end + i32.const 2 + return + ) + (func $switch/doSwitchEmpty (param $n i32) (result i32) + local.get $n + drop + i32.const 2 + return + ) (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) local.get $this i32.load offset=16 @@ -129,6 +267,110 @@ i32.shr_u return ) + (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) + (local $ptr1 i32) + (local $ptr2 i32) + (local $7 i32) + (local $a i32) + (local $b i32) + local.get $str1 + local.get $index1 + i32.const 1 + i32.shl + i32.add + local.set $ptr1 + local.get $str2 + local.get $index2 + i32.const 1 + i32.shl + i32.add + local.set $ptr2 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $len + i32.const 4 + i32.ge_u + if (result i32) + local.get $ptr1 + i32.const 7 + i32.and + local.get $ptr2 + 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 $ptr1 + i64.load + local.get $ptr2 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $ptr1 + i32.const 8 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 8 + i32.add + local.set $ptr2 + local.get $len + i32.const 4 + i32.sub + local.set $len + local.get $len + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 + end + end + i32.const 0 + return + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -193,7 +435,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 368 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -263,7 +505,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 368 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -280,7 +522,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 368 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -310,9 +552,9 @@ i32.load i32.gt_u if - i32.const 320 - i32.const 384 - i32.const 21 + i32.const 496 + i32.const 560 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -379,7 +621,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 192 + i32.const 368 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -531,7 +773,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -551,7 +793,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -614,7 +856,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -767,7 +1009,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -784,7 +1026,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -873,7 +1115,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -916,7 +1158,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -934,7 +1176,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1002,7 +1244,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1119,7 +1361,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1165,7 +1407,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1197,7 +1439,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1441,7 +1683,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1661,7 +1903,7 @@ i32.eqz if i32.const 0 - i32.const 192 + i32.const 368 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1772,8 +2014,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 128 - i32.const 464 + i32.const 304 + i32.const 640 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1875,7 +2117,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1946,7 +2188,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2103,7 +2345,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2218,7 +2460,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2238,7 +2480,7 @@ i32.eqz if i32.const 0 - i32.const 464 + i32.const 640 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2286,718 +2528,50 @@ i32.const 1073741804 i32.ge_u if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $switch/doSwitchDefaultFirst (param $n i32) (result i32) - (local $1 i32) - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - 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 - br $case0|0 - end - i32.const 0 - return - end - i32.const 1 - return - end - end - i32.const 23 - return - ) - (func $switch/doSwitchDefaultOmitted (param $n i32) (result i32) - (local $1 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - local.get $1 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 3 - i32.eq - br_if $case2|0 - br $break|0 - end - i32.const 1 - return - end - end - i32.const 23 - return - end - i32.const 0 - return - ) - (func $switch/doSwitchBreakCase (param $n i32) (result i32) - (local $1 i32) - block $break|0 - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - local.get $1 - i32.const 1 - i32.eq - br_if $case0|0 - br $case1|0 - end - br $break|0 - end - i32.const 2 - return - end - i32.const 1 - return - ) - (func $switch/doSwitchBreakDefault (param $n i32) (result i32) - (local $1 i32) - block $break|0 - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - local.get $1 - i32.const 1 - i32.eq - br_if $case0|0 - br $case1|0 - end - i32.const 1 - return - end - br $break|0 - end - i32.const 2 - return - ) - (func $switch/doSwitchFallThroughCase (param $n i32) (result i32) - (local $1 i32) - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - br $case0|0 - end - i32.const 2 - return - end - i32.const 1 - return - ) - (func $switch/doSwitchFallThroughDefault (param $n i32) (result i32) - (local $1 i32) - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - local.get $1 - i32.const 1 - i32.eq - br_if $case0|0 - br $case1|0 - end - i32.const 1 - return - end - i32.const 2 - return - ) - (func $switch/doSwitchEmpty (param $n i32) (result i32) - local.get $n - drop - i32.const 2 - return - ) - (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) - (local $ptr1 i32) - (local $ptr2 i32) - (local $7 i32) - (local $a i32) - (local $b i32) - local.get $str1 - local.get $index1 - i32.const 1 - i32.shl - i32.add - local.set $ptr1 - local.get $str2 - local.get $index2 - i32.const 1 - i32.shl - i32.add - local.set $ptr2 - i32.const 0 - i32.const 2 - i32.lt_s - drop - local.get $len - i32.const 4 - i32.ge_u - if (result i32) - local.get $ptr1 - i32.const 7 - i32.and - local.get $ptr2 - 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 $ptr1 - i64.load - local.get $ptr2 - i64.load - i64.ne - if - br $do-break|0 - end - local.get $ptr1 - i32.const 8 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 8 - i32.add - local.set $ptr2 - local.get $len - i32.const 4 - i32.sub - local.set $len - local.get $len - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end + i32.const 304 + i32.const 368 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 - 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 $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr i32.const 0 + local.get $size + memory.fill + local.get $ptr return ) (func $switch/doSwitchBoolean (param $b i32) (result i32) @@ -3242,20 +2816,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35664 - i32.const 35712 + i32.const 33728 + i32.const 33776 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3264,196 +2834,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -3576,7 +2977,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 2448 + i32.const 80 call $~lib/string/String.__eq br_if $case0|0 local.get $1 @@ -3585,7 +2986,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 2480 + i32.const 112 call $~lib/string/String.__eq br_if $case1|0 local.get $1 @@ -3594,7 +2995,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 2512 + i32.const 144 call $~lib/string/String.__eq br_if $case2|0 br $case3|0 @@ -3623,10 +3024,117 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $2 + return + end + i32.const 4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize + i32.add + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 272 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 return end - i32.const 4 + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String#concat local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3670,7 +3178,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 2448 + i32.const 80 call $~lib/string/String.__eq br_if $case1|0 local.get $1 @@ -3679,7 +3187,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 2480 + i32.const 112 call $~lib/string/String.__eq br_if $case2|0 local.get $1 @@ -3688,7 +3196,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 2512 + i32.const 144 call $~lib/string/String.__eq br_if $case3|0 br $case4|0 @@ -4063,23 +3571,6 @@ 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 0 call $switch/doSwitch i32.const 0 @@ -4087,7 +3578,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 10 i32.const 1 call $~lib/builtins/abort @@ -4100,7 +3591,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 11 i32.const 1 call $~lib/builtins/abort @@ -4113,7 +3604,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 12 i32.const 1 call $~lib/builtins/abort @@ -4126,7 +3617,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 13 i32.const 1 call $~lib/builtins/abort @@ -4139,7 +3630,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 14 i32.const 1 call $~lib/builtins/abort @@ -4152,7 +3643,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 24 i32.const 1 call $~lib/builtins/abort @@ -4165,7 +3656,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -4178,7 +3669,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 26 i32.const 1 call $~lib/builtins/abort @@ -4191,7 +3682,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -4204,7 +3695,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 28 i32.const 1 call $~lib/builtins/abort @@ -4217,7 +3708,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 38 i32.const 1 call $~lib/builtins/abort @@ -4230,7 +3721,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 39 i32.const 1 call $~lib/builtins/abort @@ -4243,7 +3734,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 40 i32.const 1 call $~lib/builtins/abort @@ -4256,7 +3747,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 41 i32.const 1 call $~lib/builtins/abort @@ -4269,7 +3760,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 42 i32.const 1 call $~lib/builtins/abort @@ -4282,7 +3773,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -4295,7 +3786,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 52 i32.const 1 call $~lib/builtins/abort @@ -4308,7 +3799,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 53 i32.const 1 call $~lib/builtins/abort @@ -4321,7 +3812,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -4334,7 +3825,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 63 i32.const 1 call $~lib/builtins/abort @@ -4347,7 +3838,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 64 i32.const 1 call $~lib/builtins/abort @@ -4360,7 +3851,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 73 i32.const 1 call $~lib/builtins/abort @@ -4373,7 +3864,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 74 i32.const 1 call $~lib/builtins/abort @@ -4386,7 +3877,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 75 i32.const 1 call $~lib/builtins/abort @@ -4399,7 +3890,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 84 i32.const 1 call $~lib/builtins/abort @@ -4412,7 +3903,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 85 i32.const 1 call $~lib/builtins/abort @@ -4425,7 +3916,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 86 i32.const 1 call $~lib/builtins/abort @@ -4438,7 +3929,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 92 i32.const 1 call $~lib/builtins/abort @@ -4451,7 +3942,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 93 i32.const 1 call $~lib/builtins/abort @@ -4464,73 +3955,90 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2448 + i32.const 80 call $switch/doSwitchString i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 106 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2480 + i32.const 112 call $switch/doSwitchString i32.const 2 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 107 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2512 + i32.const 144 call $switch/doSwitchString i32.const 3 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 108 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2544 + i32.const 176 call $switch/doSwitchString i32.const 4 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 109 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2576 - i32.const 2608 + 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 416 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 448 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 592 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 208 + i32.const 240 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2640 + i32.const 704 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4543,21 +4051,21 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 112 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2672 - i32.const 2704 + i32.const 736 + i32.const 768 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2576 + i32.const 208 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4570,35 +4078,35 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 113 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2672 - i32.const 2736 + i32.const 736 + i32.const 800 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 local.get $0 - i32.const 2768 + i32.const 832 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 2640 + i32.const 704 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2640 + i32.const 704 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4611,28 +4119,28 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 114 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2800 - i32.const 2576 + i32.const 864 + i32.const 208 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 2832 + i32.const 896 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2768 + i32.const 832 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4645,7 +4153,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -4658,73 +4166,73 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 128 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2448 + i32.const 80 call $switch/doSwitchNullableString i32.const 1 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 129 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2480 + i32.const 112 call $switch/doSwitchNullableString i32.const 2 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 130 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2512 + i32.const 144 call $switch/doSwitchNullableString i32.const 3 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 131 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2544 + i32.const 176 call $switch/doSwitchNullableString i32.const 4 i32.eq i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 132 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2576 - i32.const 2608 + i32.const 208 + i32.const 240 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2640 + i32.const 704 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4737,21 +4245,21 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 135 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2672 - i32.const 2704 + i32.const 736 + i32.const 768 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2576 + i32.const 208 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4764,35 +4272,35 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 136 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2672 - i32.const 2736 + i32.const 736 + i32.const 800 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 local.get $0 - i32.const 2768 + i32.const 832 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 2640 + i32.const 704 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2640 + i32.const 704 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4805,28 +4313,28 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 137 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2800 - i32.const 2576 + i32.const 864 + i32.const 208 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 2832 + i32.const 896 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2768 + i32.const 832 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4839,7 +4347,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 138 i32.const 1 call $~lib/builtins/abort @@ -4852,7 +4360,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 148 i32.const 1 call $~lib/builtins/abort @@ -4865,7 +4373,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 149 i32.const 1 call $~lib/builtins/abort @@ -4878,7 +4386,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 159 i32.const 1 call $~lib/builtins/abort @@ -4891,7 +4399,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 160 i32.const 1 call $~lib/builtins/abort @@ -4904,7 +4412,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 161 i32.const 1 call $~lib/builtins/abort @@ -4917,7 +4425,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 162 i32.const 1 call $~lib/builtins/abort @@ -4930,7 +4438,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 163 i32.const 1 call $~lib/builtins/abort @@ -4943,7 +4451,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 180 i32.const 1 call $~lib/builtins/abort @@ -4956,7 +4464,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 181 i32.const 1 call $~lib/builtins/abort @@ -4969,7 +4477,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 182 i32.const 1 call $~lib/builtins/abort @@ -4982,7 +4490,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 183 i32.const 1 call $~lib/builtins/abort @@ -4995,7 +4503,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 193 i32.const 1 call $~lib/builtins/abort @@ -5008,7 +4516,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 194 i32.const 1 call $~lib/builtins/abort @@ -5021,7 +4529,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 195 i32.const 1 call $~lib/builtins/abort @@ -5034,7 +4542,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 196 i32.const 1 call $~lib/builtins/abort @@ -5047,7 +4555,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 197 i32.const 1 call $~lib/builtins/abort @@ -5060,7 +4568,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 206 i32.const 1 call $~lib/builtins/abort @@ -5073,7 +4581,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 207 i32.const 1 call $~lib/builtins/abort @@ -5086,7 +4594,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 208 i32.const 1 call $~lib/builtins/abort @@ -5099,7 +4607,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 217 i32.const 1 call $~lib/builtins/abort @@ -5112,7 +4620,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 218 i32.const 1 call $~lib/builtins/abort @@ -5125,7 +4633,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 219 i32.const 1 call $~lib/builtins/abort @@ -5138,7 +4646,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 230 i32.const 1 call $~lib/builtins/abort @@ -5151,7 +4659,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 231 i32.const 1 call $~lib/builtins/abort @@ -5164,7 +4672,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 232 i32.const 1 call $~lib/builtins/abort @@ -5184,7 +4692,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 251 i32.const 1 call $~lib/builtins/abort @@ -5204,7 +4712,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 252 i32.const 1 call $~lib/builtins/abort @@ -5224,7 +4732,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 253 i32.const 1 call $~lib/builtins/abort @@ -5250,7 +4758,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 266 i32.const 1 call $~lib/builtins/abort @@ -5268,7 +4776,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 267 i32.const 1 call $~lib/builtins/abort @@ -5288,7 +4796,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 268 i32.const 1 call $~lib/builtins/abort @@ -5301,7 +4809,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 293 i32.const 1 call $~lib/builtins/abort @@ -5321,7 +4829,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 294 i32.const 1 call $~lib/builtins/abort @@ -5341,7 +4849,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 295 i32.const 1 call $~lib/builtins/abort @@ -5361,7 +4869,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 296 i32.const 1 call $~lib/builtins/abort @@ -5372,153 +4880,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $switch/doSwitchClassInstance (param $foo i32) (result i32) (local $1 i32) (local $2 i32) @@ -5590,16 +4951,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 496 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 304 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/switch.release.wat b/tests/compiler/switch.release.wat index 97be1a8eae..290a9437ae 100644 --- a/tests/compiler/switch.release.wat +++ b/tests/compiler/switch.release.wat @@ -2,11 +2,12 @@ (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32) (result i32))) (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32))) + (type $5 (func (param i32 i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -19,68 +20,49 @@ (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $switch/foo1 (mut i32) (i32.const 0)) (global $switch/foo2 (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36668)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34732)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\12\00\00\00s\00w\00i\00t\00c\00h\00.\00t\00s") - (data $20 (i32.const 3452) "\1c") - (data $20.1 (i32.const 3464) "\02\00\00\00\06\00\00\00o\00n\00e") - (data $21 (i32.const 3484) "\1c") - (data $21.1 (i32.const 3496) "\02\00\00\00\06\00\00\00t\00w\00o") - (data $22 (i32.const 3516) "\1c") - (data $22.1 (i32.const 3528) "\02\00\00\00\n\00\00\00t\00h\00r\00e\00e") - (data $23 (i32.const 3548) "\1c") - (data $23.1 (i32.const 3560) "\02\00\00\00\08\00\00\00f\00o\00u\00r") - (data $24 (i32.const 3580) "\1c") - (data $24.1 (i32.const 3592) "\02\00\00\00\02\00\00\00o") - (data $25 (i32.const 3612) "\1c") - (data $25.1 (i32.const 3624) "\02\00\00\00\02\00\00\00n") - (data $26 (i32.const 3644) "\1c") - (data $26.1 (i32.const 3656) "\02\00\00\00\02\00\00\00e") - (data $27 (i32.const 3676) "\1c") - (data $27.1 (i32.const 3688) "\02\00\00\00\02\00\00\00t") - (data $28 (i32.const 3708) "\1c") - (data $28.1 (i32.const 3720) "\02\00\00\00\02\00\00\00w") - (data $29 (i32.const 3740) "\1c") - (data $29.1 (i32.const 3752) "\02\00\00\00\02\00\00\00h") - (data $30 (i32.const 3772) "\1c") - (data $30.1 (i32.const 3784) "\02\00\00\00\02\00\00\00r") - (data $31 (i32.const 3804) "\1c") - (data $31.1 (i32.const 3816) "\02\00\00\00\02\00\00\00f") - (data $32 (i32.const 3836) "\1c") - (data $32.1 (i32.const 3848) "\02\00\00\00\02\00\00\00u") - (data $33 (i32.const 3872) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\12\00\00\00s\00w\00i\00t\00c\00h\00.\00t\00s") + (data $1 (i32.const 1084) "\1c") + (data $1.1 (i32.const 1096) "\02\00\00\00\06\00\00\00o\00n\00e") + (data $2 (i32.const 1116) "\1c") + (data $2.1 (i32.const 1128) "\02\00\00\00\06\00\00\00t\00w\00o") + (data $3 (i32.const 1148) "\1c") + (data $3.1 (i32.const 1160) "\02\00\00\00\n\00\00\00t\00h\00r\00e\00e") + (data $4 (i32.const 1180) "\1c") + (data $4.1 (i32.const 1192) "\02\00\00\00\08\00\00\00f\00o\00u\00r") + (data $5 (i32.const 1212) "\1c") + (data $5.1 (i32.const 1224) "\02\00\00\00\02\00\00\00o") + (data $6 (i32.const 1244) "\1c") + (data $6.1 (i32.const 1256) "\02\00\00\00\02\00\00\00n") + (data $7 (i32.const 1276) "\1c") + (data $7.1 (i32.const 1288) "\02") + (data $8 (i32.const 1308) "<") + (data $8.1 (i32.const 1320) "\02\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 $9 (i32.const 1372) "<") + (data $9.1 (i32.const 1384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $12 (i32.const 1500) "<") + (data $12.1 (i32.const 1512) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $13 (i32.const 1564) ",") + (data $13.1 (i32.const 1576) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $15 (i32.const 1644) "<") + (data $15.1 (i32.const 1656) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $16 (i32.const 1708) "\1c") + (data $16.1 (i32.const 1720) "\02\00\00\00\02\00\00\00e") + (data $17 (i32.const 1740) "\1c") + (data $17.1 (i32.const 1752) "\02\00\00\00\02\00\00\00t") + (data $18 (i32.const 1772) "\1c") + (data $18.1 (i32.const 1784) "\02\00\00\00\02\00\00\00w") + (data $19 (i32.const 1804) "\1c") + (data $19.1 (i32.const 1816) "\02\00\00\00\02\00\00\00h") + (data $20 (i32.const 1836) "\1c") + (data $20.1 (i32.const 1848) "\02\00\00\00\02\00\00\00r") + (data $21 (i32.const 1868) "\1c") + (data $21.1 (i32.const 1880) "\02\00\00\00\02\00\00\00f") + (data $22 (i32.const 1900) "\1c") + (data $22.1 (i32.const 1912) "\02\00\00\00\02\00\00\00u") + (data $23 (i32.const 1936) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots @@ -98,13 +80,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1344 + i32.const 1520 call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1328 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -125,7 +103,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1392 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -173,7 +151,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1392 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -182,7 +160,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$194 + block $__inlined_func$~lib/rt/itcms/Object#unlink$187 local.get $1 i32.load offset=4 i32.const -4 @@ -194,19 +172,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36668 + i32.const 34732 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1392 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$194 + br $__inlined_func$~lib/rt/itcms/Object#unlink$187 end local.get $1 i32.load offset=8 @@ -214,7 +192,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1392 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -243,13 +221,13 @@ i32.const 1 else local.get $0 - i32.const 3872 + i32.const 1936 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1520 + i32.const 1584 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -257,7 +235,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3876 + i32.const 1940 i32.add i32.load i32.const 32 @@ -309,7 +287,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -323,7 +301,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -369,7 +347,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -452,7 +430,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -466,7 +444,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -527,7 +505,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -560,7 +538,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -575,7 +553,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -626,7 +604,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -698,7 +676,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -723,7 +701,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -750,7 +728,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -822,10 +800,10 @@ if unreachable end - i32.const 36672 + i32.const 34736 i32.const 0 i32.store - i32.const 38240 + i32.const 36304 i32.const 0 i32.store loop $for-loop|0 @@ -836,7 +814,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36672 + i32.const 34736 i32.add i32.const 0 i32.store offset=4 @@ -854,7 +832,7 @@ i32.add i32.const 2 i32.shl - i32.const 36672 + i32.const 34736 i32.add i32.const 0 i32.store offset=96 @@ -872,14 +850,14 @@ br $for-loop|0 end end - i32.const 36672 - i32.const 38244 + i32.const 34736 + i32.const 36308 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36672 + i32.const 34736 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -964,7 +942,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36668 + i32.const 34732 i32.lt_u if local.get $0 @@ -1053,14 +1031,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1392 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36668 + i32.const 34732 i32.lt_u if local.get $0 @@ -1083,7 +1061,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36668 + i32.const 34732 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1112,7 +1090,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1196,7 +1174,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -1248,7 +1226,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1280,8 +1258,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 1152 - i32.const 1216 + i32.const 1328 + i32.const 1392 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -1341,8 +1319,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 1152 - i32.const 1488 + i32.const 1328 + i32.const 1664 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1444,7 +1422,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -1459,7 +1437,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -1478,7 +1456,7 @@ i32.and if i32.const 0 - i32.const 1488 + i32.const 1664 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -1583,406 +1561,43 @@ memory.fill local.get $1 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3900 - i32.lt_s - if - i32.const 36688 - i32.const 36736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start call $start:switch ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3900 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3900 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$199 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$199 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36688 - i32.const 36736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1994,11 +1609,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2097,7 +1712,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$79 + block $__inlined_func$~lib/util/string/compareImpl$76 loop $while-continue|1 local.get $0 local.tee $3 @@ -2117,7 +1732,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$79 + br_if $__inlined_func$~lib/util/string/compareImpl$76 local.get $2 i32.const 2 i32.add @@ -2152,11 +1767,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2175,7 +1790,7 @@ block $case2|0 block $case1|0 local.get $0 - i32.const 3472 + i32.const 1104 call $~lib/string/String.__eq i32.eqz if @@ -2183,14 +1798,14 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 3504 + i32.const 1136 call $~lib/string/String.__eq br_if $case1|0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3536 + i32.const 1168 call $~lib/string/String.__eq br_if $case2|0 br $case3|0 @@ -2222,17 +1837,120 @@ global.set $~lib/memory/__stack_pointer i32.const 4 ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 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 1964 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 1964 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$192 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1296 + local.set $0 + br $__inlined_func$~lib/string/String#concat$192 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $switch/doSwitchNullableString (param $0 i32) (result 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 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2260,21 +1978,21 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 3472 + i32.const 1104 call $~lib/string/String.__eq br_if $case1|0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3504 + i32.const 1136 call $~lib/string/String.__eq br_if $case2|0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3536 + i32.const 1168 call $~lib/string/String.__eq br_if $case3|0 br $case4|0 @@ -2320,11 +2038,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2363,11 +2081,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2419,11 +2137,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2479,11 +2197,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2523,11 +2241,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2615,11 +2333,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2631,95 +2349,95 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - memory.size - i32.const 16 - i32.shl - i32.const 36668 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - i32.const 3472 + i32.const 1104 call $switch/doSwitchString i32.const 1 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 106 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3504 + i32.const 1136 call $switch/doSwitchString i32.const 2 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 107 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3536 + i32.const 1168 call $switch/doSwitchString i32.const 3 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 108 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3568 + i32.const 1200 call $switch/doSwitchString i32.const 4 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 109 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3600 - i32.const 3632 + memory.size + i32.const 16 + i32.shl + i32.const 34732 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/pinSpace + i32.const 1476 + i32.const 1472 + i32.store + i32.const 1480 + i32.const 1472 + i32.store + i32.const 1472 + global.set $~lib/rt/itcms/toSpace + i32.const 1620 + i32.const 1616 + i32.store + i32.const 1624 + i32.const 1616 + i32.store + i32.const 1616 + global.set $~lib/rt/itcms/fromSpace + i32.const 1232 + i32.const 1264 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3664 + i32.const 1728 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -2731,21 +2449,21 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 112 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3696 - i32.const 3728 + i32.const 1760 + i32.const 1792 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3600 + i32.const 1232 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -2757,35 +2475,35 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 113 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3696 - i32.const 3760 + i32.const 1760 + i32.const 1824 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 local.get $0 - i32.const 3792 + i32.const 1856 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 3664 + i32.const 1728 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3664 + i32.const 1728 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -2797,28 +2515,28 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 114 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3824 - i32.const 3600 + i32.const 1888 + i32.const 1232 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 3856 + i32.const 1920 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3792 + i32.const 1856 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -2830,7 +2548,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -2840,69 +2558,69 @@ call $switch/doSwitchNullableString if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 128 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3472 + i32.const 1104 call $switch/doSwitchNullableString i32.const 1 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 129 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3504 + i32.const 1136 call $switch/doSwitchNullableString i32.const 2 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 130 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3536 + i32.const 1168 call $switch/doSwitchNullableString i32.const 3 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 131 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3568 + i32.const 1200 call $switch/doSwitchNullableString i32.const 4 i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 132 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3600 - i32.const 3632 + i32.const 1232 + i32.const 1264 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3664 + i32.const 1728 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -2914,21 +2632,21 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 135 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3696 - i32.const 3728 + i32.const 1760 + i32.const 1792 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3600 + i32.const 1232 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -2940,35 +2658,35 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 136 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3696 - i32.const 3760 + i32.const 1760 + i32.const 1824 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 local.get $0 - i32.const 3792 + i32.const 1856 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 3664 + i32.const 1728 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3664 + i32.const 1728 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -2980,28 +2698,28 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 137 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3824 - i32.const 3600 + i32.const 1888 + i32.const 1232 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 3856 + i32.const 1920 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 3792 + i32.const 1856 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -3013,7 +2731,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 138 i32.const 1 call $~lib/builtins/abort @@ -3031,7 +2749,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 251 i32.const 1 call $~lib/builtins/abort @@ -3049,7 +2767,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 252 i32.const 1 call $~lib/builtins/abort @@ -3067,7 +2785,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 253 i32.const 1 call $~lib/builtins/abort @@ -3089,7 +2807,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 266 i32.const 1 call $~lib/builtins/abort @@ -3105,7 +2823,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 267 i32.const 1 call $~lib/builtins/abort @@ -3123,7 +2841,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 268 i32.const 1 call $~lib/builtins/abort @@ -3133,7 +2851,7 @@ call $switch/doSwitchClassInstanceWithOverload if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 293 i32.const 1 call $~lib/builtins/abort @@ -3151,7 +2869,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 294 i32.const 1 call $~lib/builtins/abort @@ -3169,7 +2887,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 295 i32.const 1 call $~lib/builtins/abort @@ -3187,7 +2905,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 296 i32.const 1 call $~lib/builtins/abort @@ -3204,11 +2922,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3900 + i32.const 1964 i32.lt_s if - i32.const 36688 - i32.const 36736 + i32.const 34752 + i32.const 34800 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/tablebase.debug.wat b/tests/compiler/tablebase.debug.wat index 2316bec7ed..1c2a118d56 100644 --- a/tests/compiler/tablebase.debug.wat +++ b/tests/compiler/tablebase.debug.wat @@ -1,60 +1,17 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i64) (result i32))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $tablebase/staticFunction i32 (i32.const 32)) (global $~lib/native/ASC_TABLE_BASE i32 (i32.const 32)) - (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/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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2464)) - (global $~lib/memory/__data_end i32 (i32.const 2488)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35256)) - (global $~lib/memory/__heap_base i32 (i32.const 35256)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 92)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32860)) + (global $~lib/memory/__heap_base i32 (i32.const 32860)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00t\00a\00b\00l\00e\00b\00a\00s\00e\00.\00t\00s\00\00\00\00\00") - (data $21 (i32.const 2464) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00t\00a\00b\00l\00e\00b\00a\00s\00e\00.\00t\00s\00\00\00\00\00") (table $0 33 33 funcref) (elem $0 (i32.const 32) $tablebase/foo) (export "memory" (memory $0)) @@ -66,2638 +23,6 @@ i32.load return ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 352 - i32.const 416 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 224 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 224 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 160 - i32.const 496 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 160 - i32.const 224 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~start call $start:tablebase ) @@ -2706,20 +31,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35280 - i32.const 35328 + i32.const 32880 + i32.const 32928 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2728,196 +49,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $start:tablebase (local $0 i32) @@ -2933,23 +85,6 @@ i32.const 32 i32.eq drop - 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 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 448 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace global.get $tablebase/staticFunction local.set $0 global.get $~lib/memory/__stack_pointer @@ -2962,7 +97,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 6 i32.const 1 call $~lib/builtins/abort @@ -2973,245 +108,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 160 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1216 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2272 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28%29=>void>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/function/Function<%28%29=>void> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $invalid - end - return - 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/function/Function<%28%29=>void>~visit - return - end - unreachable - ) - (func $~lib/function/Function<%28%29=>void>#__visit (param $this i32) (param $cookie 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 $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28%29=>void>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/tablebase.release.wat b/tests/compiler/tablebase.release.wat index 19adb7684d..a911214571 100644 --- a/tests/compiler/tablebase.release.wat +++ b/tests/compiler/tablebase.release.wat @@ -1,1759 +1,27 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36280)) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33884)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00 ") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) ",") - (data $20.1 (i32.const 3448) "\02\00\00\00\18\00\00\00t\00a\00b\00l\00e\00b\00a\00s\00e\00.\00t\00s") - (data $21 (i32.const 3488) "\05\00\00\00 \00\00\00 \00\00\00 ") + (data $1 (i32.const 1068) ",") + (data $1.1 (i32.const 1080) "\02\00\00\00\18\00\00\00t\00a\00b\00l\00e\00b\00a\00s\00e\00.\00t\00s") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 2240 - call $~lib/rt/itcms/__visit - i32.const 3296 - call $~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 1248 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$126 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36280 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$126 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3488 - i32.load - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3492 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1520 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1520 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1520 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1520 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1520 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36288 - i32.const 0 - i32.store - i32.const 37856 - 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 36288 - 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 36288 - 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 36288 - i32.const 37860 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36288 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36280 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1248 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36280 - 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 - local.tee $0 - i32.const 36280 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1520 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1520 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1184 - i32.const 1248 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1184 - i32.const 1520 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1520 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3512 - i32.lt_s - if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $~start 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 3512 + i32.const 1116 i32.lt_s if - i32.const 36304 - i32.const 36352 - i32.const 1 + i32.const 33904 + i32.const 33952 i32.const 1 call $~lib/builtins/abort unreachable @@ -1761,38 +29,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - memory.size - i32.const 16 - i32.shl - i32.const 36280 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store @@ -1802,9 +38,8 @@ i32.ne if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 6 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -1813,259 +48,38 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 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 3512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$131 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$131 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3512 + i32.const 1116 i32.lt_s if - i32.const 36304 - i32.const 36352 - i32.const 1 + i32.const 33904 + i32.const 33952 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/function/Function<%28%29=>void> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 3512 - i32.lt_s - if - i32.const 36304 - i32.const 36352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index fe523ff615..1d3229df00 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -6,21 +6,24 @@ (type $4 (func (param i32))) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $8 (func (param i32 i32 i64) (result i32))) - (type $9 (func (result i32))) - (type $10 (func (param i32 i64 i32))) - (type $11 (func (param i64 i32) (result i32))) - (type $12 (func (param i32 i64 i32 i32))) - (type $13 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $14 (func (param i32 f64 i32) (result i32))) - (type $15 (func (param f64 i32) (result i32))) - (type $16 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (type $11 (func (param i32 i64 i32))) + (type $12 (func (param i64 i32) (result i32))) + (type $13 (func (param i32 i64 i32 i32))) + (type $14 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $15 (func (param i32 f64 i32) (result i32))) + (type $16 (func (param f64 i32) (result i32))) (type $17 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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)) @@ -32,84 +35,82 @@ (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 $~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/rt/__rtti_base i32 (i32.const 4976)) - (global $~lib/memory/__data_end i32 (i32.const 5008)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37776)) - (global $~lib/memory/__heap_base i32 (i32.const 37776)) + (global $~lib/rt/__rtti_base i32 (i32.const 4848)) + (global $~lib/memory/__data_end i32 (i32.const 4880)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37648)) + (global $~lib/memory/__heap_base i32 (i32.const 37648)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $4 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 428) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 604) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 732) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 828) "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 $18 (i32.const 1228) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2284) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00t\00e\00m\00p\00l\00a\00t\00e\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00(\00A\00=\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00,\00 \00B\00=\00\00\00\00\00") - (data $25 (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data $26 (i32.const 2636) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00\00\n\00\00\00\00\00\00 \n\00\00\00\00\00\00@\n\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2684) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00(\00A\00=\00a\00,\00 \00B\00=\00b\00)\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $29 (i32.const 2764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") - (data $30 (i32.const 2796) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00\00\n\00\00\00\00\00\00 \n\00\00\00\00\00\00@\n\00\00\00\00\00\00\00\00\00\00") - (data $31 (i32.const 2844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00(\00A\00=\001\00,\00 \00B\00=\002\00)\00\00\00\00\00\00\00\00\00") - (data $32 (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data $33 (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data $34 (i32.const 2956) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data $35 (i32.const 3004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $36 (i32.const 3056) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $37 (i32.const 3112) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\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#__uset (param $this i32) (param $index i32) (param $value i32) + local.get $this + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 1 + drop + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 2 + i32.shr_u + return + ) (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) local.get $value i32.const 100000 @@ -2524,14 +2621,14 @@ i32.const 100 i32.rem_u local.set $d2 - i32.const 828 + i32.const 1020 local.get $d1 i32.const 2 i32.shl i32.add i64.load32_u local.set $digits1 - i32.const 828 + i32.const 1020 local.get $d2 i32.const 2 i32.shl @@ -2574,7 +2671,7 @@ i32.const 2 i32.sub local.set $offset - i32.const 828 + i32.const 1020 local.get $d1|10 i32.const 2 i32.shl @@ -2597,7 +2694,7 @@ i32.const 2 i32.sub local.set $offset - i32.const 828 + i32.const 1020 local.get $num i32.const 2 i32.shl @@ -2644,7 +2741,7 @@ i32.const 1 i32.shl i32.add - i32.const 1248 + i32.const 1440 local.get $num i32.wrap_i64 i32.const 255 @@ -2666,7 +2763,7 @@ i32.and if local.get $buffer - i32.const 1248 + i32.const 1440 local.get $num i32.wrap_i64 i32.const 6 @@ -2789,7 +2886,7 @@ i32.const 1 i32.shl i32.add - i32.const 2304 + i32.const 2496 local.get $num local.get $mask i64.and @@ -2823,7 +2920,7 @@ i32.const 1 i32.shl i32.add - i32.const 2304 + i32.const 2496 local.get $num local.get $q local.get $base @@ -2844,104 +2941,6 @@ end end ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) - (local $child i32) - (local $parent i32) - (local $parentColor i32) - local.get $childPtr - i32.eqz - if - return - end - i32.const 1 - drop - local.get $parentPtr - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $childPtr - i32.const 20 - i32.sub - local.set $child - local.get $child - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $parentPtr - i32.const 20 - i32.sub - local.set $parent - local.get $parent - call $~lib/rt/itcms/Object#get:color - local.set $parentColor - local.get $parentColor - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $expectMultiple - if - local.get $parent - call $~lib/rt/itcms/Object#makeGray - else - local.get $child - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $parentColor - 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 $child - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#__uset (param $this i32) (param $index i32) (param $value i32) - local.get $this - local.get $index - i32.const 2 - i32.shl - i32.add - local.get $value - i32.store - i32.const 1 - drop - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 2 - i32.shr_u - return - ) (func $~lib/number/I32#toString (param $this i32) (param $radix i32) (result i32) local.get $this local.get $radix @@ -3221,7 +3220,7 @@ local.set $delta|21 local.get $tmp local.set $rest - i32.const 3984 + i32.const 3824 local.get $kappa i32.const 2 i32.shl @@ -3358,7 +3357,7 @@ i32.add global.set $~lib/util/number/_K local.get $wp_w_frc - i32.const 3984 + i32.const 3824 i32.const 0 local.get $kappa i32.sub @@ -4037,14 +4036,14 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 3112 + i32.const 2952 local.get $index i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow - i32.const 3808 + i32.const 3648 local.get $index i32.const 1 i32.shl @@ -4398,8 +4397,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 37808 - i32.const 37856 + i32.const 37680 + i32.const 37728 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4502,6 +4501,38 @@ local.get $3 return ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber 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 + i32.const 0 + drop + local.get $message + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) (local $thisSize i32) (local $otherSize i32) @@ -4578,149 +4609,20 @@ local.get $6 return ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinStringArray (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) + (local $lastIndex i32) + (local $4 i32) + (local $estLen i32) + (local $value i32) + (local $i i32) + (local $offset i32) + (local $sepLen i32) + (local $result i32) + (local $i|11 i32) + (local $valueLen i32) + (local $13 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 $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 96 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 128 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 592 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 592 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2400 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/string/joinStringArray (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) - (local $lastIndex i32) - (local $4 i32) - (local $estLen i32) - (local $value i32) - (local $i i32) - (local $offset i32) - (local $sepLen i32) - (local $result i32) - (local $i|11 i32) - (local $valueLen i32) - (local $13 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -5016,7 +4918,7 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 4 i32.const 3 call $~lib/builtins/abort @@ -5040,12 +4942,12 @@ local.get $4 i32.store offset=8 local.get $4 - i32.const 2528 + i32.const 592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 5 i32.const 3 call $~lib/builtins/abort @@ -5059,7 +4961,7 @@ local.get $b local.tee $3 i32.store offset=24 - i32.const 2656 + i32.const 720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5073,7 +4975,7 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2656 + i32.const 720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5087,7 +4989,7 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2656 + i32.const 720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5100,12 +5002,12 @@ local.get $4 i32.store offset=8 local.get $4 - i32.const 2704 + i32.const 768 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -5143,12 +5045,12 @@ local.get $4 i32.store local.get $4 - i32.const 2752 + i32.const 2592 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 13 i32.const 3 call $~lib/builtins/abort @@ -5176,12 +5078,12 @@ local.get $4 i32.store local.get $4 - i32.const 2784 + i32.const 2624 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 14 i32.const 3 call $~lib/builtins/abort @@ -5199,7 +5101,7 @@ call $~lib/number/I32#toString local.tee $3 i32.store offset=16 - i32.const 2816 + i32.const 2656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5213,7 +5115,7 @@ i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2816 + i32.const 2656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5227,7 +5129,7 @@ i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 2816 + i32.const 2656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5240,12 +5142,12 @@ local.get $4 i32.store local.get $4 - i32.const 2864 + i32.const 2704 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 15 i32.const 3 call $~lib/builtins/abort @@ -5283,12 +5185,12 @@ local.get $4 i32.store local.get $4 - i32.const 4048 + i32.const 3888 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -5316,12 +5218,12 @@ local.get $4 i32.store local.get $4 - i32.const 4080 + i32.const 3920 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 23 i32.const 3 call $~lib/builtins/abort @@ -5339,7 +5241,7 @@ call $~lib/number/F64#toString local.tee $3 i32.store offset=16 - i32.const 4112 + i32.const 3952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5353,7 +5255,7 @@ i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4112 + i32.const 3952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5367,7 +5269,7 @@ i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4112 + i32.const 3952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5380,12 +5282,12 @@ local.get $4 i32.store local.get $4 - i32.const 4160 + i32.const 4000 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 24 i32.const 3 call $~lib/builtins/abort @@ -5425,12 +5327,12 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4208 + i32.const 4048 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 31 i32.const 3 call $~lib/builtins/abort @@ -5447,13 +5349,13 @@ i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 32 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4240 + i32.const 4080 local.get $a i32.const 10 call $~lib/number/I32#toString @@ -5468,18 +5370,18 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4272 + i32.const 4112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 33 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4240 + i32.const 4080 local.get $b local.set $2 global.get $~lib/memory/__stack_pointer @@ -5492,12 +5394,12 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4304 + i32.const 4144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 34 i32.const 3 call $~lib/builtins/abort @@ -5511,19 +5413,19 @@ local.get $2 i32.store offset=8 local.get $2 - i32.const 4336 + i32.const 4176 call $~lib/string/String#concat local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - i32.const 4368 + i32.const 4208 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -5535,19 +5437,19 @@ local.get $2 i32.store offset=8 local.get $2 - i32.const 4336 + i32.const 4176 call $~lib/string/String#concat local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - i32.const 4400 + i32.const 4240 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -5573,12 +5475,12 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 4432 + i32.const 4272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -5625,6 +5527,37 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) (func $templateliteral/Ref#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -5635,7 +5568,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - i32.const 4464 + i32.const 4304 local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5698,12 +5631,12 @@ local.get $4 i32.store offset=8 local.get $4 - i32.const 4496 + i32.const 4336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 51 i32.const 3 call $~lib/builtins/abort @@ -5739,12 +5672,12 @@ local.get $4 i32.store offset=8 local.get $4 - i32.const 4528 + i32.const 4368 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -5770,7 +5703,7 @@ call $templateliteral/Ref#toString local.tee $3 i32.store offset=28 - i32.const 4576 + i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5784,7 +5717,7 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4576 + i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5798,7 +5731,7 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4576 + i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -5811,12 +5744,12 @@ local.get $4 i32.store offset=8 local.get $4 - i32.const 4624 + i32.const 4464 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 53 i32.const 3 call $~lib/builtins/abort @@ -5876,11 +5809,11 @@ local.get $5 call $templateliteral/Ref#toString else - i32.const 4800 + i32.const 4640 end local.tee $3 i32.store offset=20 - i32.const 4752 + i32.const 4592 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 @@ -5894,7 +5827,7 @@ i32.store offset=24 local.get $5 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4752 + i32.const 4592 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 @@ -5908,7 +5841,7 @@ i32.store offset=24 local.get $5 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4752 + i32.const 4592 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 @@ -5921,12 +5854,12 @@ local.get $5 i32.store offset=4 local.get $5 - i32.const 4832 + i32.const 4672 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -6056,7 +5989,7 @@ call $templateliteral/RecursiveObject#toString local.tee $3 i32.store offset=12 - i32.const 4928 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -6070,7 +6003,7 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4928 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -6084,7 +6017,7 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4928 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -6116,7 +6049,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 4896 + i32.const 4736 i32.const 0 call $templateliteral/RecursiveObject#constructor local.tee $c @@ -6157,12 +6090,12 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 4960 + i32.const 4832 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2464 + i32.const 96 i32.const 125 i32.const 3 call $~lib/builtins/abort @@ -6173,153 +6106,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 624 - i32.const 752 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 816 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/util/number/itoa32 (param $value i32) (param $radix i32) (result i32) (local $sign i32) (local $out i32) @@ -6353,8 +6139,8 @@ i32.gt_s end if - i32.const 624 - i32.const 752 + i32.const 816 + i32.const 944 i32.const 373 i32.const 5 call $~lib/builtins/abort @@ -6363,7 +6149,7 @@ local.get $value i32.eqz if - i32.const 816 + i32.const 1008 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6525,7 +6311,7 @@ f64.const 0 f64.eq if - i32.const 2912 + i32.const 2752 br $~lib/util/number/dtoa_impl|inlined.0 end local.get $value|1 @@ -6539,18 +6325,18 @@ local.get $value|1 f64.ne if - i32.const 2944 + i32.const 2784 br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2976 - i32.const 3024 + i32.const 2816 + i32.const 2864 local.get $value|1 f64.const 0 f64.lt select br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 3056 + i32.const 2896 local.get $value|1 local.get $isSingle call $~lib/util/number/dtoa_core @@ -6564,7 +6350,7 @@ local.tee $result i32.store local.get $result - i32.const 3056 + i32.const 2896 local.get $size memory.copy local.get $result @@ -6586,10 +6372,10 @@ i32.const 192 local.get $0 call $~lib/rt/itcms/__visit - i32.const 1248 + i32.const 1440 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2304 + i32.const 2496 local.get $0 call $~lib/rt/itcms/__visit ) @@ -6609,6 +6395,10 @@ (local $cur i32) (local $end i32) (local $val i32) + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop i32.const 1 drop local.get $this diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index cff5003dee..b233c956c6 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -3,14 +3,15 @@ (type $1 (func (param i32) (result i32))) (type $2 (func)) (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param f64) (result i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (result i32))) - (type $9 (func (param i64 i64 i32 i64 i32) (result i32))) - (type $10 (func (param i32 i32 i32) (result i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param f64) (result i32))) + (type $8 (func (param i32 i32 i64))) + (type $9 (func (result i32))) + (type $10 (func (param i64 i64 i32 i64 i32) (result i32))) + (type $11 (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -27,122 +28,116 @@ (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 38800)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 38672)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\02\00\00\00a") (data $1 (i32.const 1068) "\1c") (data $1.1 (i32.const 1080) "\02\00\00\00\02\00\00\00b") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $4 (i32.const 1164) "\1c") - (data $4.1 (i32.const 1176) "\02") - (data $5 (i32.const 1196) "<") - (data $5.1 (i32.const 1208) "\02\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 $6 (i32.const 1260) "<") - (data $6.1 (i32.const 1272) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $9 (i32.const 1388) "<") - (data $9.1 (i32.const 1400) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $10 (i32.const 1452) ",") - (data $10.1 (i32.const 1464) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $12 (i32.const 1532) "<") - (data $12.1 (i32.const 1544) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $13 (i32.const 1596) "\1c") - (data $13.1 (i32.const 1608) "\02\00\00\00\02\00\00\00:") - (data $14 (i32.const 1628) "|") - (data $14.1 (i32.const 1640) "\02\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 $15 (i32.const 1756) "<") - (data $15.1 (i32.const 1768) "\02\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 $16 (i32.const 1820) "\1c") - (data $16.1 (i32.const 1832) "\02\00\00\00\02\00\00\000") - (data $17 (i32.const 1852) "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 $18 (i32.const 2252) "\1c\04") - (data $18.1 (i32.const 2264) "\02\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 $19 (i32.const 3308) "\\") - (data $19.1 (i32.const 3320) "\02\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 $20 (i32.const 3404) "<") - (data $20.1 (i32.const 3416) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $21 (i32.const 3468) "<") - (data $21.1 (i32.const 3480) "\02\00\00\00$\00\00\00t\00e\00m\00p\00l\00a\00t\00e\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") - (data $22 (i32.const 3532) "\1c") - (data $22.1 (i32.const 3544) "\02\00\00\00\04\00\00\00a\00b") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\02\00\00\00\06\00\00\00(\00A\00=") + (data $2 (i32.const 1100) "<") + (data $2.1 (i32.const 1112) "\02\00\00\00$\00\00\00t\00e\00m\00p\00l\00a\00t\00e\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") + (data $3 (i32.const 1164) "\1c") + (data $3.1 (i32.const 1176) "\02") + (data $4 (i32.const 1196) "<") + (data $4.1 (i32.const 1208) "\02\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 $5 (i32.const 1260) "<") + (data $5.1 (i32.const 1272) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $8 (i32.const 1388) "<") + (data $8.1 (i32.const 1400) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $9 (i32.const 1452) ",") + (data $9.1 (i32.const 1464) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $11 (i32.const 1532) "<") + (data $11.1 (i32.const 1544) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $12 (i32.const 1596) "\1c") + (data $12.1 (i32.const 1608) "\02\00\00\00\04\00\00\00a\00b") + (data $13 (i32.const 1628) "\1c") + (data $13.1 (i32.const 1640) "\02\00\00\00\06\00\00\00(\00A\00=") + (data $14 (i32.const 1660) "\1c") + (data $14.1 (i32.const 1672) "\02\00\00\00\08\00\00\00,\00 \00B\00=") + (data $15 (i32.const 1692) "\1c") + (data $15.1 (i32.const 1704) "\02\00\00\00\02\00\00\00)") + (data $16 (i32.const 1724) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") + (data $17 (i32.const 1772) ",") + (data $17.1 (i32.const 1784) "\02\00\00\00\14\00\00\00(\00A\00=\00a\00,\00 \00B\00=\00b\00)") + (data $18 (i32.const 1820) "|") + (data $18.1 (i32.const 1832) "\02\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 $19 (i32.const 1948) "<") + (data $19.1 (i32.const 1960) "\02\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 $20 (i32.const 2012) "\1c") + (data $20.1 (i32.const 2024) "\02\00\00\00\02\00\00\000") + (data $21 (i32.const 2044) "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 $22 (i32.const 2444) "\1c\04") + (data $22.1 (i32.const 2456) "\02\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 $23 (i32.const 3500) "\\") + (data $23.1 (i32.const 3512) "\02\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 $24 (i32.const 3596) "\1c") - (data $24.1 (i32.const 3608) "\02\00\00\00\08\00\00\00,\00 \00B\00=") + (data $24.1 (i32.const 3608) "\02\00\00\00\02\00\00\001") (data $25 (i32.const 3628) "\1c") - (data $25.1 (i32.const 3640) "\02\00\00\00\02\00\00\00)") - (data $26 (i32.const 3660) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00\00\0e\00\00\00\00\00\00 \0e\00\00\00\00\00\00@\0e") + (data $25.1 (i32.const 3640) "\02\00\00\00\04\00\00\001\002") + (data $26 (i32.const 3660) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") (data $27 (i32.const 3708) ",") - (data $27.1 (i32.const 3720) "\02\00\00\00\14\00\00\00(\00A\00=\00a\00,\00 \00B\00=\00b\00)") + (data $27.1 (i32.const 3720) "\02\00\00\00\14\00\00\00(\00A\00=\001\00,\00 \00B\00=\002\00)") (data $28 (i32.const 3756) "\1c") - (data $28.1 (i32.const 3768) "\02\00\00\00\02\00\00\001") + (data $28.1 (i32.const 3768) "\02\00\00\00\06\00\00\000\00.\000") (data $29 (i32.const 3788) "\1c") - (data $29.1 (i32.const 3800) "\02\00\00\00\04\00\00\001\002") - (data $30 (i32.const 3820) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00\00\0e\00\00\00\00\00\00 \0e\00\00\00\00\00\00@\0e") + (data $29.1 (i32.const 3800) "\02\00\00\00\06\00\00\00N\00a\00N") + (data $30 (i32.const 3820) ",") + (data $30.1 (i32.const 3832) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") (data $31 (i32.const 3868) ",") - (data $31.1 (i32.const 3880) "\02\00\00\00\14\00\00\00(\00A\00=\001\00,\00 \00B\00=\002\00)") - (data $32 (i32.const 3916) "\1c") - (data $32.1 (i32.const 3928) "\02\00\00\00\06\00\00\000\00.\000") - (data $33 (i32.const 3948) "\1c") - (data $33.1 (i32.const 3960) "\02\00\00\00\06\00\00\00N\00a\00N") - (data $34 (i32.const 3980) ",") - (data $34.1 (i32.const 3992) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data $35 (i32.const 4028) ",") - (data $35.1 (i32.const 4040) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data $37 (i32.const 4136) "\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_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\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#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 3728 + i32.const 1792 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -3276,7 +3173,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3290,12 +3187,12 @@ local.get $0 i32.store local.get $0 - i32.const 3776 + i32.const 3616 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 13 i32.const 3 call $~lib/builtins/abort @@ -3321,12 +3218,12 @@ local.get $0 i32.store local.get $0 - i32.const 3808 + i32.const 3648 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 14 i32.const 3 call $~lib/builtins/abort @@ -3343,47 +3240,47 @@ local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 3840 + i32.const 3680 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 3844 + i32.const 3684 local.get $0 i32.store - i32.const 3840 + i32.const 3680 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 3840 + i32.const 3680 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - i32.const 3852 + i32.const 3692 local.get $1 i32.store - i32.const 3840 + i32.const 3680 local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 3840 + i32.const 3680 i32.store offset=4 - i32.const 3840 + i32.const 3680 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3888 + i32.const 3728 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 15 i32.const 3 call $~lib/builtins/abort @@ -3398,7 +3295,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3412,12 +3309,12 @@ local.get $0 i32.store local.get $0 - i32.const 5072 + i32.const 4912 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 22 i32.const 3 call $~lib/builtins/abort @@ -3443,12 +3340,12 @@ local.get $0 i32.store local.get $0 - i32.const 5104 + i32.const 4944 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 23 i32.const 3 call $~lib/builtins/abort @@ -3465,47 +3362,47 @@ local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 5136 + i32.const 4976 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 5140 + i32.const 4980 local.get $0 i32.store - i32.const 5136 + i32.const 4976 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5136 + i32.const 4976 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - i32.const 5148 + i32.const 4988 local.get $1 i32.store - i32.const 5136 + i32.const 4976 local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5136 + i32.const 4976 i32.store offset=4 - i32.const 5136 + i32.const 4976 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5184 + i32.const 5024 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 24 i32.const 3 call $~lib/builtins/abort @@ -3520,7 +3417,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3539,12 +3436,12 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 5232 + i32.const 5072 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 31 i32.const 3 call $~lib/builtins/abort @@ -3559,7 +3456,7 @@ i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -3571,7 +3468,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 5264 + i32.const 5104 local.get $0 call $~lib/string/String#concat local.set $0 @@ -3579,12 +3476,12 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 5296 + i32.const 5136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -3593,7 +3490,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=8 - i32.const 5264 + i32.const 5104 i32.const 1088 call $~lib/string/String#concat local.set $0 @@ -3601,12 +3498,12 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 5328 + i32.const 5168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 34 i32.const 3 call $~lib/builtins/abort @@ -3619,19 +3516,19 @@ local.get $0 i32.store offset=8 local.get $0 - i32.const 5360 + i32.const 5200 call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 5392 + i32.const 5232 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 35 i32.const 3 call $~lib/builtins/abort @@ -3641,19 +3538,19 @@ i32.const 1088 i32.store offset=8 i32.const 1088 - i32.const 5360 + i32.const 5200 call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 5424 + i32.const 5264 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 36 i32.const 3 call $~lib/builtins/abort @@ -3676,12 +3573,12 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 5456 + i32.const 5296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 37 i32.const 3 call $~lib/builtins/abort @@ -3696,7 +3593,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3723,12 +3620,12 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 5520 + i32.const 5360 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 51 i32.const 3 call $~lib/builtins/abort @@ -3760,12 +3657,12 @@ local.get $1 i32.store offset=8 local.get $1 - i32.const 5552 + i32.const 5392 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 52 i32.const 3 call $~lib/builtins/abort @@ -3788,47 +3685,47 @@ local.tee $0 i32.store offset=28 global.get $~lib/memory/__stack_pointer - i32.const 5600 + i32.const 5440 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 - i32.const 5604 + i32.const 5444 local.get $1 i32.store - i32.const 5600 + i32.const 5440 local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5600 + i32.const 5440 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - i32.const 5612 + i32.const 5452 local.get $0 i32.store - i32.const 5600 + i32.const 5440 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5600 + i32.const 5440 i32.store offset=12 - i32.const 5600 + i32.const 5440 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 5648 + i32.const 5488 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 53 i32.const 3 call $~lib/builtins/abort @@ -3843,7 +3740,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3867,50 +3764,50 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 5824 + i32.const 5664 i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 5776 + i32.const 5616 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=24 - i32.const 5780 + i32.const 5620 local.get $0 i32.store - i32.const 5776 + i32.const 5616 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5776 + i32.const 5616 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 5824 + i32.const 5664 i32.store offset=24 - i32.const 5788 - i32.const 5824 + i32.const 5628 + i32.const 5664 i32.store - i32.const 5776 - i32.const 5824 + i32.const 5616 + i32.const 5664 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5776 + i32.const 5616 i32.store offset=8 - i32.const 5776 + i32.const 5616 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 5856 + i32.const 5696 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 60 i32.const 3 call $~lib/builtins/abort @@ -3925,7 +3822,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3933,7 +3830,7 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 5920 + i32.const 5760 i32.const 0 call $templateliteral/RecursiveObject#constructor local.tee $0 @@ -3966,12 +3863,12 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 5984 + i32.const 5856 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3488 + i32.const 1120 i32.const 125 i32.const 3 call $~lib/builtins/abort @@ -3983,8 +3880,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38832 - i32.const 38880 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4009,11 +3906,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s if - i32.const 38832 - i32.const 38880 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4112,7 +4009,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$88 + block $__inlined_func$~lib/util/string/compareImpl$87 loop $while-continue|1 local.get $0 local.tee $3 @@ -4132,7 +4029,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$88 + br_if $__inlined_func$~lib/util/string/compareImpl$87 local.get $2 i32.const 2 i32.add @@ -4161,6 +4058,41 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 5904 + i32.lt_s + if + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -4170,11 +4102,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s if - i32.const 38832 - i32.const 38880 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4237,136 +4169,6 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result 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 6032 - i32.lt_s - if - i32.const 38832 - i32.const 38880 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/string/String#concat - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6032 - i32.lt_s - if - i32.const 38832 - i32.const 38880 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1120 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1152 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1616 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1616 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3424 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -4378,11 +4180,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s if - i32.const 38832 - i32.const 38880 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4590,11 +4392,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s if - i32.const 38832 - i32.const 38880 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4631,11 +4433,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s if - i32.const 38832 - i32.const 38880 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4667,37 +4469,60 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6032 - i32.lt_s - if - i32.const 38832 - i32.const 38880 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 5904 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 5328 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 5328 + local.get $0 + call $~lib/string/String#concat + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 5488 - local.get $0 - call $~lib/string/String.__concat - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $templateliteral/RecursiveObject#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4706,11 +4531,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s if - i32.const 38832 - i32.const 38880 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4767,11 +4592,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.lt_s if - i32.const 38832 - i32.const 38880 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4820,35 +4645,35 @@ local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 5952 + i32.const 5824 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - i32.const 5952 + i32.const 5824 local.get $0 i32.store - i32.const 5952 + i32.const 5824 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5952 + i32.const 5824 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 - i32.const 5960 + i32.const 5832 local.get $1 i32.store - i32.const 5952 + i32.const 5824 local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5952 + i32.const 5824 i32.store - i32.const 5952 + i32.const 5824 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer i32.const 20 diff --git a/tests/compiler/ternary.debug.wat b/tests/compiler/ternary.debug.wat index 129c2f8b9e..823185fd2f 100644 --- a/tests/compiler/ternary.debug.wat +++ b/tests/compiler/ternary.debug.wat @@ -1,38 +1,16 @@ (module - (type $0 (func (param i32) (result i32))) + (type $0 (func)) (type $1 (func (param i32 i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32) (result i32))) + (type $4 (func (param i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $ternary/a (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/memory/__data_end i32 (i32.const 44)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32812)) (global $~lib/memory/__heap_base i32 (i32.const 32812)) - (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/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/__rtti_base (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_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) @@ -102,13 +80,13 @@ global.set $~argumentsLength local.get $nop i32.load - call_indirect (type $2) + call_indirect (type $0) else i32.const 0 global.set $~argumentsLength local.get $nop i32.load - call_indirect (type $2) + call_indirect (type $0) end local.get $cond if @@ -116,7 +94,7 @@ global.set $~argumentsLength local.get $nop i32.load - call_indirect (type $2) + call_indirect (type $0) else i32.const 1 drop @@ -130,2735 +108,44 @@ global.set $~argumentsLength local.get $nop i32.load - call_indirect (type $2) + call_indirect (type $0) end ) (func $~start call $start:ternary ) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33040 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33040 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 33040 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 33168 - i32.const 33232 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 33040 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 33040 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 32976 - i32.const 33312 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 33312 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 32976 - i32.const 33040 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 33612 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 33612 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33612 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 33612 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 34032 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 34032 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35088 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 35088 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $~stack_check global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end i32.lt_s if i32.const 32832 - i32.const 35248 + i32.const 32880 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $export:ternary/testVoidInclTypeMismatch (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 32944 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 + local.get $0 + local.get $1 + call $ternary/testVoidInclTypeMismatch global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - return ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2867,339 +154,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 32880 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 32912 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 33376 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 33376 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 35184 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $4 i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 33408 - i32.const 33536 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 33600 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $export:ternary/testVoidInclTypeMismatch (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - call $ternary/testVoidInclTypeMismatch + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 33168 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32976 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 34032 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 35088 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - unreachable - ) ) diff --git a/tests/compiler/ternary.release.wat b/tests/compiler/ternary.release.wat index e573684a96..8afb42a457 100644 --- a/tests/compiler/ternary.release.wat +++ b/tests/compiler/ternary.release.wat @@ -1,21 +1,11 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i32) (result i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33836)) - (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/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\02\00\00\00a") @@ -39,10 +29,6 @@ i32.const 1068 i32.lt_s if - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end @@ -57,1926 +43,71 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - i32.const 34192 - call $~lib/rt/itcms/__visit - i32.const 34000 - call $~lib/rt/itcms/__visit - i32.const 35056 - call $~lib/rt/itcms/__visit - i32.const 36112 - call $~lib/rt/itcms/__visit + (func $export:ternary/testVoidInclTypeMismatch (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.load - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 34064 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - 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 - 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 34064 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$118 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 33836 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 34064 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$118 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 34064 - i32.const 132 - i32.const 16 - call $~lib/builtins/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 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.load - i32.gt_u - if - i32.const 34192 - i32.const 34256 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.load offset=4 - i32.const 32 - i32.and - end - local.set $1 - i32.const 8 - i32.load - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $1 - select - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - i32.const 8 - local.get $0 - i32.store - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34336 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 34336 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 34336 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 34336 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 34336 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 34336 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 34336 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1068 + i32.lt_s if - i32.const 0 - i32.const 34336 - i32.const 234 - i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub + global.get $~lib/memory/__stack_pointer 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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 34336 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 34336 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 34336 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 34336 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + call_indirect (type $0) 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 33840 - i32.const 0 - i32.store - i32.const 35408 - 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 33840 - 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 33840 - 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 33840 - i32.const 35412 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 33840 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - i32.const 0 - 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 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 33836 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 - local.get $1 - global.set $~lib/rt/itcms/white - i32.const 4 - i32.load - 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 - 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 34064 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 33836 - 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 - local.tee $0 - i32.const 33836 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 34336 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - i32.const 4 - i32.const 0 - i32.store - i32.const 8 - i32.const 0 - i32.store - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 34336 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 34336 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 34000 - i32.const 34064 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + call_indirect (type $0) end - global.get $~lib/rt/tlsf/ROOT - local.set $3 local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 34000 - i32.const 34336 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 i32.eqz if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 34336 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 34336 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 34336 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 i32.load - i32.const -3 - i32.and - i32.store + call_indirect (type $0) end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - i32.const 8 - i32.load - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.store offset=4 - 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 - i32.const 8 - local.get $1 - i32.store - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1068 - i32.lt_s - if - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 34624 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 34636 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 34636 - 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 34636 - 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 34636 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/builtins/abort 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 1068 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 1068 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$123 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 33968 - local.set $0 - br $__inlined_func$~lib/string/String#concat$123 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1068 i32.lt_s if - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 33904 - local.get $0 - select - local.tee $0 + i32.const 33856 i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 33936 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 34400 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 34400 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 36208 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $export:ternary/testVoidInclTypeMismatch (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 1068 - i32.lt_s - if - i32.const 33856 - i32.const 36272 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load - call_indirect (type $0) - local.get $0 - if - local.get $1 - i32.load - call_indirect (type $0) - end - local.get $0 - i32.eqz - if - local.get $1 - i32.load - call_indirect (type $0) - end + i32.const 33904 + i32.store offset=4 + i32.const 33856 + i32.const 33904 + i32.const 1 + i32.const 1 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) ) diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index 8512250615..3127069b5c 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -1,82 +1,161 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) + (type $0 (func (param i32 i32))) + (type $1 (func (param i32) (result i32))) (type $2 (func (param i32))) (type $3 (func)) - (type $4 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32 i64) (result i32))) (type $7 (func (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 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/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2736)) - (global $~lib/memory/__data_end i32 (i32.const 2756)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35524)) - (global $~lib/memory/__heap_base i32 (i32.const 35524)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 704)) + (global $~lib/memory/__data_end i32 (i32.const 724)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33492)) + (global $~lib/memory/__heap_base i32 (i32.const 33492)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\002\003\004\00\00\00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $4 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $5 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 336) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $9 (i32.const 364) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 428) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $14 (i32.const 604) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 732) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 796) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $17 (i32.const 828) "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 $18 (i32.const 1228) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2284) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $20 (i32.const 2380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2444) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f\00\00\00\00\00\00\00\00\00\00\00") - (data $22 (i32.const 2492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00t\00h\00r\00o\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\003\004\005\00\00\00\00\00\00\00") - (data $24 (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f\00L\00o\00o\00p\00\00\00") - (data $25 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\004\005\006\00\00\00\00\00\00\00") - (data $26 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\005\006\007\00\00\00\00\00\00\00") - (data $27 (i32.const 2684) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00d\00o\00T\00h\00r\00o\00w\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2736) "\04\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00") + (data $2 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00t\00h\00r\00o\00w\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\003\004\005\00\00\00\00\00\00\00") + (data $5 (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f\00L\00o\00o\00p\00\00\00") + (data $6 (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\004\005\006\00\00\00\00\00\00\00") + (data $7 (i32.const 284) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\005\006\007\00\00\00\00\00\00\00") + (data $8 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 508) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 560) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 652) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00d\00o\00T\00h\00r\00o\00w\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 704) "\04\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 "doThrow" (func $throw/doThrow)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 + (func $throw/doThrowIf (param $cond i32) + (local $a i32) + (local $b i32) + (local $c 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/memory/__stack_pointer + i32.const 32 + local.tee $a + i32.store + local.get $cond + if + global.get $~lib/memory/__stack_pointer + i32.const 64 + local.tee $b + i32.store offset=4 + i32.const 96 + i32.const 144 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 192 + local.tee $c + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this + (func $throw/doThrowIfLoop (param $max i32) + (local $a i32) + (local $i i32) + (local $b i32) + (local $c i32) + (local $d i32) + (local $e i32) + global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u - return + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 32 + local.tee $a + i32.store + i32.const 0 + local.set $i + loop $while-continue|0 + local.get $i + i32.const 1 + i32.add + local.tee $i + local.get $max + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 64 + local.tee $b + i32.store offset=4 + local.get $i + local.get $max + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 192 + local.tee $c + i32.store offset=8 + i32.const 224 + i32.const 144 + i32.const 23 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 272 + local.tee $d + i32.store offset=12 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 304 + local.tee $e + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -142,7 +221,7 @@ i32.eqz if i32.const 0 - i32.const 256 + i32.const 368 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -212,7 +291,7 @@ i32.eqz if i32.const 0 - i32.const 256 + i32.const 368 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -229,7 +308,7 @@ i32.eqz if i32.const 0 - i32.const 256 + i32.const 368 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -259,9 +338,9 @@ i32.load i32.gt_u if - i32.const 384 - i32.const 448 - i32.const 21 + i32.const 464 + i32.const 528 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -328,7 +407,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 256 + i32.const 368 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -480,7 +559,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -500,7 +579,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -563,7 +642,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -716,7 +795,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -733,7 +812,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -822,7 +901,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -865,7 +944,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -883,7 +962,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -951,7 +1030,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1068,7 +1147,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1114,7 +1193,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1146,7 +1225,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1390,7 +1469,7 @@ i32.eqz if i32.const 0 - i32.const 528 + i32.const 608 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1610,7 +1689,7 @@ i32.eqz if i32.const 0 - i32.const 256 + i32.const 368 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1634,1360 +1713,115 @@ i32.const 0 return ) - (func $~lib/rt/itcms/interrupt - (local $budget i32) + (func $~lib/rt/itcms/__collect i32.const 0 drop + global.get $~lib/rt/itcms/state i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step drop - i32.const 1024 - i32.const 200 - i32.mul - i32.const 100 - i32.div_u - local.set $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget + loop $while-continue|1 global.get $~lib/rt/itcms/state i32.const 0 - i32.eq + i32.ne if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 + call $~lib/rt/itcms/step drop - return + br $while-continue|1 end - local.get $budget - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - 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 - 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 + i32.const 0 + drop ) - (func $~lib/rt/tlsf/computeSize (param $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return + (func $start:throw + i32.const 0 + call $throw/doThrowIf + i32.const 10 + call $throw/doThrowIfLoop + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 416 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 560 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + 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 + call $~lib/rt/itcms/__collect ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u + (func $throw/doThrow + (local $a i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 32 + local.tee $a + i32.store + i32.const 672 + i32.const 144 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + ) + (func $~start + call $start:throw + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s if - i32.const 192 - i32.const 528 - i32.const 461 - i32.const 29 + i32.const 33520 + i32.const 33568 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $size - call $~lib/rt/tlsf/computeSize - return ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 528 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 528 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 528 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 528 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 528 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 192 - i32.const 256 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 828 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 828 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 828 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 828 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1248 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1248 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2304 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2304 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $throw/doThrowIf (param $cond i32) - (local $a i32) - (local $b i32) - (local $c 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/memory/__stack_pointer - i32.const 32 - local.tee $a - i32.store - local.get $cond - if - global.get $~lib/memory/__stack_pointer - i32.const 64 - local.tee $b - i32.store offset=4 - i32.const 2464 - i32.const 2512 - i32.const 10 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2560 - local.tee $c - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $throw/doThrowIfLoop (param $max i32) - (local $a i32) - (local $i i32) - (local $b i32) - (local $c i32) - (local $d i32) - (local $e i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 32 - local.tee $a - i32.store - i32.const 0 - local.set $i - loop $while-continue|0 - local.get $i - i32.const 1 - i32.add - local.tee $i - local.get $max - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 64 - local.tee $b - i32.store offset=4 - local.get $i - local.get $max - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 2560 - local.tee $c - i32.store offset=8 - i32.const 2592 - i32.const 2512 - i32.const 23 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2640 - local.tee $d - i32.store offset=12 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 2672 - local.tee $e - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/itcms/__collect - i32.const 0 - drop - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - 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 - i32.const 0 - drop - ) - (func $start:throw - 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 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 336 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 480 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $throw/doThrowIf - i32.const 10 - call $throw/doThrowIfLoop - call $~lib/rt/itcms/__collect - ) - (func $throw/doThrow - (local $a i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 32 - local.tee $a - i32.store - i32.const 2704 - i32.const 2512 - i32.const 3 - i32.const 3 - call $~lib/builtins/abort - unreachable - ) - (func $~start - call $start:throw - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 35552 - i32.const 35600 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 160 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2996,284 +1830,31 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 96 - end - local.tee $fullMessage + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + local.get $4 local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 128 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 592 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 592 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2400 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 624 - i32.const 752 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 816 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - return ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 384 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 192 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1248 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2304 + i32.const 464 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index d3c23f6a36..d96db20f44 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -1,14 +1,9 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -16,72 +11,44 @@ (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/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36548)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34516)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\06\00\00\001\002\003") (data $1 (i32.const 1068) "\1c") (data $1.1 (i32.const 1080) "\02\00\00\00\06\00\00\002\003\004") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $4 (i32.const 1164) "\1c") - (data $4.1 (i32.const 1176) "\02") - (data $5 (i32.const 1196) "<") - (data $5.1 (i32.const 1208) "\02\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 $6 (i32.const 1260) "<") - (data $6.1 (i32.const 1272) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $9 (i32.const 1388) "<") - (data $9.1 (i32.const 1400) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $10 (i32.const 1452) ",") - (data $10.1 (i32.const 1464) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $12 (i32.const 1532) "<") - (data $12.1 (i32.const 1544) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $13 (i32.const 1596) "\1c") - (data $13.1 (i32.const 1608) "\02\00\00\00\02\00\00\00:") - (data $14 (i32.const 1628) "|") - (data $14.1 (i32.const 1640) "\02\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 $15 (i32.const 1756) "<") - (data $15.1 (i32.const 1768) "\02\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 $16 (i32.const 1820) "\1c") - (data $16.1 (i32.const 1832) "\02\00\00\00\02\00\00\000") - (data $17 (i32.const 1852) "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 $18 (i32.const 2252) "\1c\04") - (data $18.1 (i32.const 2264) "\02\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 $19 (i32.const 3308) "\\") - (data $19.1 (i32.const 3320) "\02\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 $20 (i32.const 3404) "<") - (data $20.1 (i32.const 3416) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $21 (i32.const 3468) ",") - (data $21.1 (i32.const 3480) "\02\00\00\00\12\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f") - (data $22 (i32.const 3516) ",") - (data $22.1 (i32.const 3528) "\02\00\00\00\10\00\00\00t\00h\00r\00o\00w\00.\00t\00s") - (data $23 (i32.const 3564) "\1c") - (data $23.1 (i32.const 3576) "\02\00\00\00\06\00\00\003\004\005") - (data $24 (i32.const 3596) ",") - (data $24.1 (i32.const 3608) "\02\00\00\00\1a\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f\00L\00o\00o\00p") - (data $25 (i32.const 3644) "\1c") - (data $25.1 (i32.const 3656) "\02\00\00\00\06\00\00\004\005\006") - (data $26 (i32.const 3676) "\1c") - (data $26.1 (i32.const 3688) "\02\00\00\00\06\00\00\005\006\007") - (data $27 (i32.const 3708) ",") - (data $27.1 (i32.const 3720) "\02\00\00\00\0e\00\00\00d\00o\00T\00h\00r\00o\00w") - (data $28 (i32.const 3760) "\04\00\00\00 \00\00\00 \00\00\00 ") + (data $2 (i32.const 1100) ",") + (data $2.1 (i32.const 1112) "\02\00\00\00\12\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f") + (data $3 (i32.const 1148) ",") + (data $3.1 (i32.const 1160) "\02\00\00\00\10\00\00\00t\00h\00r\00o\00w\00.\00t\00s") + (data $4 (i32.const 1196) "\1c") + (data $4.1 (i32.const 1208) "\02\00\00\00\06\00\00\003\004\005") + (data $5 (i32.const 1228) ",") + (data $5.1 (i32.const 1240) "\02\00\00\00\1a\00\00\00d\00o\00T\00h\00r\00o\00w\00I\00f\00L\00o\00o\00p") + (data $6 (i32.const 1276) "\1c") + (data $6.1 (i32.const 1288) "\02\00\00\00\06\00\00\004\005\006") + (data $7 (i32.const 1308) "\1c") + (data $7.1 (i32.const 1320) "\02\00\00\00\06\00\00\005\006\007") + (data $9 (i32.const 1372) "<") + (data $9.1 (i32.const 1384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $11 (i32.const 1468) "<") + (data $11.1 (i32.const 1480) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $12 (i32.const 1532) ",") + (data $12.1 (i32.const 1544) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $14 (i32.const 1612) "<") + (data $14.1 (i32.const 1624) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $15 (i32.const 1676) ",") + (data $15.1 (i32.const 1688) "\02\00\00\00\0e\00\00\00d\00o\00T\00h\00r\00o\00w") + (data $16 (i32.const 1728) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "doThrow" (func $throw/doThrow)) (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1408 - call $~lib/rt/itcms/__visit - i32.const 1216 - call $~lib/rt/itcms/__visit - i32.const 2272 - call $~lib/rt/itcms/__visit - i32.const 3328 + i32.const 1488 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -102,7 +69,7 @@ i32.ne if i32.const 0 - i32.const 1280 + i32.const 1392 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -150,7 +117,7 @@ i32.eqz if i32.const 0 - i32.const 1280 + i32.const 1392 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -159,7 +126,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$125 + block $__inlined_func$~lib/rt/itcms/Object#unlink$93 local.get $1 i32.load offset=4 i32.const -4 @@ -171,19 +138,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36548 + i32.const 34516 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1280 + i32.const 1392 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + br $__inlined_func$~lib/rt/itcms/Object#unlink$93 end local.get $1 i32.load offset=8 @@ -191,7 +158,7 @@ i32.eqz if i32.const 0 - i32.const 1280 + i32.const 1392 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -220,13 +187,13 @@ i32.const 1 else local.get $0 - i32.const 3760 + i32.const 1728 i32.load i32.gt_u if - i32.const 1408 - i32.const 1472 - i32.const 21 + i32.const 1488 + i32.const 1552 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -234,7 +201,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3764 + i32.const 1732 i32.add i32.load i32.const 32 @@ -286,7 +253,7 @@ i32.eqz if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -300,7 +267,7 @@ i32.lt_u if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -346,7 +313,7 @@ i32.eqz if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -429,7 +396,7 @@ i32.eqz if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -443,7 +410,7 @@ i32.eqz if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -504,7 +471,7 @@ i32.eqz if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -537,7 +504,7 @@ i32.lt_u if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -552,7 +519,7 @@ i32.ne if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -603,7 +570,7 @@ i32.eqz if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -665,204 +632,12 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1552 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1552 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1552 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36560 - i32.const 0 - i32.store - i32.const 38128 - 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 36560 - 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 36560 - 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 36560 - i32.const 38132 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36560 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (result i32) + (func $~lib/rt/itcms/step (local $0 i32) (local $1 i32) - (local $2 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) block $break|0 block $case2|0 block $case1|0 @@ -877,7 +652,6 @@ 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 @@ -898,13 +672,13 @@ local.get $1 local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.and i32.ne if local.get $0 - local.get $2 + local.get $3 i32.const -4 i32.and local.get $1 @@ -916,7 +690,6 @@ i32.const 20 i32.add call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount return end local.get $0 @@ -941,7 +714,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36548 + i32.const 34516 i32.lt_u if local.get $0 @@ -967,13 +740,13 @@ local.get $1 local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.and i32.ne if local.get $0 - local.get $2 + local.get $3 i32.const -4 i32.and local.get $1 @@ -1008,7 +781,6 @@ i32.const 2 global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount return end global.get $~lib/rt/itcms/iter @@ -1018,26 +790,26 @@ if local.get $0 i32.load offset=4 - local.tee $1 + local.tee $3 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $1 + local.get $3 i32.const 3 i32.and i32.ne if i32.const 0 - i32.const 1280 + i32.const 1392 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36548 + i32.const 34516 i32.lt_u if local.get $0 @@ -1059,53 +831,212 @@ local.get $0 i32.const 4 i32.add - local.tee $0 - i32.const 36548 + local.tee $3 + i32.const 34516 i32.ge_u if global.get $~lib/rt/tlsf/ROOT i32.eqz if - call $~lib/rt/tlsf/initialize + memory.size + local.tee $0 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $0 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34528 + i32.const 0 + i32.store + i32.const 36096 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $1 + i32.const 23 + i32.lt_u + if + local.get $1 + i32.const 2 + i32.shl + i32.const 34528 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 16 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shl + local.get $0 + i32.add + i32.const 2 + i32.shl + i32.const 34528 + i32.add + i32.const 0 + i32.store offset=96 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + local.tee $2 + i32.wrap_i64 + local.get $2 + i64.const 36100 + i64.lt_u + if + i32.const 0 + i32.const 1632 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 36108 + local.set $1 + i32.const 36096 + i32.load + local.tee $0 + if (result i32) + local.get $0 + i32.const 4 + i32.add + i32.const 36108 + i32.gt_u + if + i32.const 0 + i32.const 1632 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 36092 + i32.eq + if (result i32) + i32.const 36092 + local.set $1 + local.get $0 + i32.load + else + i32.const 0 + end + else + i32.const 0 + end + local.set $0 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $4 + i32.const 20 + i32.ge_u + if + local.get $1 + local.get $0 + i32.const 2 + i32.and + local.get $4 + i32.const 8 + i32.sub + local.tee $0 + 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 $0 + i32.add + local.tee $0 + i32.const 2 + i32.store + i32.const 36096 + local.get $0 + i32.store + i32.const 34528 + local.get $1 + call $~lib/rt/tlsf/insertBlock + end + i32.const 34528 + global.set $~lib/rt/tlsf/ROOT end global.get $~lib/rt/tlsf/ROOT - local.get $0 + local.get $3 i32.const 4 i32.sub - local.set $2 - local.get $0 + local.set $1 + local.get $3 i32.const 15 i32.and i32.const 1 - local.get $0 + local.get $3 select if (result i32) i32.const 1 else - local.get $2 + local.get $1 i32.load i32.const 1 i32.and end if i32.const 0 - i32.const 1552 + i32.const 1632 i32.const 562 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $2 - local.get $2 + 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 end end - i32.const 10 return end global.get $~lib/rt/itcms/toSpace @@ -1117,661 +1048,22 @@ 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.get $1 - i32.const 256 - i32.lt_u + (func $throw/doThrow + 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 1748 + i32.lt_s if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1552 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1552 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1216 - i32.const 1280 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1216 - i32.const 1552 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1552 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1552 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3780 - i32.lt_s - if - i32.const 36576 - i32.const 36624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1840 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1852 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1852 - 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 1852 - 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 1852 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $throw/doThrow - 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 3780 - i32.lt_s - if - i32.const 36576 - i32.const 36624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer i32.const 0 @@ -1779,8 +1071,8 @@ global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - i32.const 3728 - i32.const 3536 + i32.const 1696 + i32.const 1168 i32.const 3 i32.const 3 call $~lib/builtins/abort @@ -1788,46 +1080,14 @@ ) (func $~start (local $0 i32) - block $__inlined_func$start:throw - memory.size - i32.const 16 - i32.shl - i32.const 36548 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/pinSpace - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/toSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 - i32.store - i32.const 1504 - global.set $~lib/rt/itcms/fromSpace + block $__inlined_func$start:throw$1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3780 + i32.const 1748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1840,7 +1100,7 @@ i32.const 1056 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1216 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -1851,7 +1111,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3780 + i32.const 1748 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1877,28 +1137,54 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1216 i32.store offset=8 - i32.const 3616 - i32.const 3536 + i32.const 1248 + i32.const 1168 i32.const 23 i32.const 7 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3664 + i32.const 1296 i32.store offset=12 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - i32.const 3696 + i32.const 1328 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/pinSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/toSpace + i32.const 1588 + i32.const 1584 + i32.store + i32.const 1592 + i32.const 1584 + i32.store + i32.const 1584 + global.set $~lib/rt/itcms/fromSpace + memory.size + drop global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s @@ -1907,239 +1193,62 @@ global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step - drop br $while-continue|05 end end end call $~lib/rt/itcms/step - drop loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step - drop br $while-continue|1 end end - 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$start:throw + br $__inlined_func$start:throw$1 end - i32.const 36576 - i32.const 36624 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3780 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3780 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$130 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1184 - local.set $0 - br $__inlined_func$~lib/string/String#concat$130 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36576 - i32.const 36624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3780 + i32.const 1748 i32.lt_s if - i32.const 36576 - i32.const 36624 + i32.const 34544 + i32.const 34592 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1120 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1152 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1616 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1616 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3424 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/typealias.debug.wat b/tests/compiler/typealias.debug.wat index 78c6912f83..82070acc10 100644 --- a/tests/compiler/typealias.debug.wat +++ b/tests/compiler/typealias.debug.wat @@ -1,62 +1,25 @@ (module - (type $0 (func (param i32) (result i32))) - (type $1 (func (param i32 i32))) - (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $4 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/native/ASC_SHRINK_LEVEL 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_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2528)) - (global $~lib/memory/__data_end i32 (i32.const 2560)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35328)) - (global $~lib/memory/__heap_base i32 (i32.const 35328)) + (global $~lib/memory/__data_end i32 (i32.const 156)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32924)) + (global $~lib/memory/__heap_base i32 (i32.const 32924)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\006\004\00\00\00\00\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00t\00y\00p\00e\00a\00l\00i\00a\00s\00.\00t\00s\00\00\00\00\00") - (data $21 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00f\006\004\00\00\00\00\00\00\00") - (data $22 (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2528) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\02\n\00\00") + (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00t\00y\00p\00e\00a\00l\00i\00a\00s\00.\00t\00s\00\00\00\00\00") + (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00f\006\004\00\00\00\00\00\00\00") + (data $3 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $typealias/outer_function~inner_function) (export "alias" (func $typealias/alias)) @@ -179,2636 +142,17 @@ i32.const 0 return ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return - ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u - if - i32.const 352 - i32.const 416 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 224 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - 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 $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - 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 $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz - if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - 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 $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 - end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - 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 $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - 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 224 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - 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 - return - ) - (func $~lib/rt/itcms/interrupt - (local $budget 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 $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - 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 $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 160 - i32.const 496 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 - end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u - if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size - end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 160 - i32.const 224 - i32.const 261 - i32.const 31 - call $~lib/builtins/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 $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill - local.get $ptr - return - ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) (func $typealias/outer_function~inner_function (local $alias f64) f64.const 1 local.set $alias - i32.const 2480 - i32.const 2480 + i32.const 112 + i32.const 112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -2834,14 +178,14 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 13 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2512 + i32.const 144 local.tee $inner_function i32.store local.get $inner_function @@ -2850,7 +194,7 @@ global.set $~argumentsLength local.get $inner_function i32.load - call_indirect (type $2) + call_indirect (type $0) global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -2869,23 +213,6 @@ drop ) (func $start:typealias - 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 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 448 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $typealias/outer_function call $typealias/generic_type_alias call $typealias/alias_in_type_arguments @@ -2902,8 +229,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35360 - i32.const 35408 + i32.const 32944 + i32.const 32992 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3006,84 +333,8 @@ local.get $3 return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out 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 $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize - i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result i32) - (local $2 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3092,451 +343,25 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $left - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $right - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 - memory.fill - i32.const 1 drop - global.get $~lib/memory/__stack_pointer local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 160 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1216 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2272 - 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 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - ) - (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/function/Function<%28%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/function/Function<%28%29=>void>#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/object/Object~visit - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/array/Array - block $~lib/array/Array - block $~lib/function/Function<%28%29=>void> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $~lib/array/Array $~lib/array/Array $invalid - end - return - 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/function/Function<%28%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - unreachable - ) - (func $~lib/function/Function<%28%29=>void>#__visit (param $this i32) (param $cookie 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 $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/function/Function<%28%29=>void>#get:_env - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie i32) - (local $2 i32) + local.set $4 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 0 - drop - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 + local.get $4 i32.store - i32.const 0 - drop - local.get $this - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:buffer - local.get $cookie - call $~lib/rt/itcms/__visit + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/typealias.release.wat b/tests/compiler/typealias.release.wat index 399b6298de..8c55c895b9 100644 --- a/tests/compiler/typealias.release.wat +++ b/tests/compiler/typealias.release.wat @@ -1,1763 +1,32 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32 i32))) - (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/memory/__stack_pointer (mut i32) (i32.const 36352)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32) (result i32))) + (type $3 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33948)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\06\00\00\00i\006\004") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) ",") - (data $20.1 (i32.const 3448) "\02\00\00\00\18\00\00\00t\00y\00p\00e\00a\00l\00i\00a\00s\00.\00t\00s") - (data $21 (i32.const 3484) "\1c") - (data $21.1 (i32.const 3496) "\02\00\00\00\06\00\00\00f\006\004") - (data $22 (i32.const 3516) "\1c") - (data $22.1 (i32.const 3528) "\04\00\00\00\08\00\00\00\01") - (data $23 (i32.const 3552) "\07\00\00\00 \00\00\00 \00\00\00 ") - (data $23.1 (i32.const 3576) "\02\t\00\00\02\n") + (data $1 (i32.const 1068) ",") + (data $1.1 (i32.const 1080) "\02\00\00\00\18\00\00\00t\00y\00p\00e\00a\00l\00i\00a\00s\00.\00t\00s") + (data $2 (i32.const 1116) "\1c") + (data $2.1 (i32.const 1128) "\02\00\00\00\06\00\00\00f\006\004") + (data $3 (i32.const 1148) "\1c") + (data $3.1 (i32.const 1160) "\04\00\00\00\08\00\00\00\01") (table $0 2 2 funcref) (elem $0 (i32.const 1) $typealias/outer_function~inner_function) (export "alias" (func $typealias/alias)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 2240 - call $~lib/rt/itcms/__visit - i32.const 3296 - call $~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 1248 - i32.const 160 - i32.const 16 - call $~lib/builtins/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/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$135 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36352 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$135 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - 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 $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3552 - i32.load - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3556 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 - local.get $1 - 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 $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (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 $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1520 - i32.const 284 - i32.const 14 - call $~lib/builtins/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 $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - 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 1520 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 203 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 221 - i32.const 16 - call $~lib/builtins/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 1520 - i32.const 233 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 234 - i32.const 14 - call $~lib/builtins/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 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_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 1520 - i32.const 251 - i32.const 14 - call $~lib/builtins/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 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 382 - i32.const 14 - call $~lib/builtins/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 $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1520 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - 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 $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - 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 36352 - i32.const 0 - i32.store - i32.const 37920 - 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 36352 - 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 36352 - 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 36352 - i32.const 37924 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36352 - global.set $~lib/rt/tlsf/ROOT - ) - (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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 36352 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - 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 1248 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36352 - 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 - local.tee $0 - i32.const 36352 - i32.ge_u - if - 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 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1520 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - 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.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1520 - i32.const 334 - i32.const 14 - call $~lib/builtins/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 1520 - i32.const 347 - i32.const 18 - call $~lib/builtins/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/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1184 - i32.const 1248 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1184 - i32.const 1520 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - 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 $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $4 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1520 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $4 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $5 - 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 $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - 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 3584 - i32.lt_s - if - i32.const 36384 - i32.const 36432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) (func $typealias/outer_function~inner_function - i32.const 3504 - i32.const 3504 + i32.const 1136 + i32.const 1136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 17 i32.const 5 call $~lib/builtins/abort @@ -1768,48 +37,16 @@ local.get $0 ) (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 36352 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - 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 3584 + i32.const 1180 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 33968 + i32.const 34016 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1824,16 +61,16 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 13 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 1168 i32.store - i32.const 3536 + i32.const 1168 i32.load call_indirect (type $0) global.get $~lib/memory/__stack_pointer @@ -1851,11 +88,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1180 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 33968 + i32.const 34016 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1954,7 +191,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$79 + block $__inlined_func$~lib/util/string/compareImpl$5 loop $while-continue|1 local.get $0 local.tee $3 @@ -1974,7 +211,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$79 + br_if $__inlined_func$~lib/util/string/compareImpl$5 local.get $2 i32.const 2 i32.add @@ -2003,299 +240,39 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3584 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3584 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$141 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$141 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36384 - i32.const 36432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1180 i32.lt_s if - i32.const 36384 - i32.const 36432 + i32.const 33968 + i32.const 34016 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end - local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array~visit (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 3584 - i32.lt_s - if - i32.const 36384 - i32.const 36432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 i32.store global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/array/Array - block $~lib/array/Array - block $~lib/function/Function<%28%29=>void> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $~lib/array/Array $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 3584 - i32.lt_s - if - i32.const 36384 - i32.const 36432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - unreachable - ) ) diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index 39794d0f2a..afd2ddb981 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -1,21 +1,29 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i64 i32))) - (type $10 (func (param i64 i32) (result i32))) - (type $11 (func (param i32 i64 i32 i32))) - (type $12 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (type $9 (func (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $typeof/SomeNamespace.a i32 (i32.const 1)) + (global $typeof/b (mut i32) (i32.const 1)) + (global $typeof/i (mut i32) (i32.const 1)) + (global $typeof/f (mut f32) (f32.const 1)) + (global $typeof/I (mut i64) (i64.const 1)) + (global $typeof/F (mut f64) (f64.const 1)) + (global $typeof/s (mut i32) (i32.const 240)) + (global $typeof/fn (mut i32) (i32.const 304)) (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)) @@ -27,50 +35,32 @@ (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 $typeof/SomeNamespace.a i32 (i32.const 1)) - (global $typeof/b (mut i32) (i32.const 1)) - (global $typeof/i (mut i32) (i32.const 1)) - (global $typeof/f (mut f32) (f32.const 1)) - (global $typeof/I (mut i64) (i64.const 1)) - (global $typeof/F (mut f64) (f64.const 1)) - (global $typeof/s (mut i32) (i32.const 2608)) - (global $typeof/fn (mut i32) (i32.const 2672)) (global $typeof/c (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2736)) - (global $~lib/memory/__data_end i32 (i32.const 2764)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35532)) - (global $~lib/memory/__heap_base i32 (i32.const 35532)) + (global $~lib/rt/__rtti_base i32 (i32.const 768)) + (global $~lib/memory/__data_end i32 (i32.const 796)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33564)) + (global $~lib/memory/__heap_base i32 (i32.const 33564)) (global $~started (mut i32) (i32.const 0)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00n\00u\00m\00b\00e\00r\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $3 (i32.const 108) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $4 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 304) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $8 (i32.const 332) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 396) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00t\00y\00p\00e\00o\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00o\00b\00j\00e\00c\00t\00") + (data $3 (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 172) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00b\00o\00o\00l\00e\00a\00n\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 220) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00t\00r\00i\00n\00g\00") + (data $7 (i32.const 284) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 380) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $11 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $12 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $13 (i32.const 572) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 700) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $15 (i32.const 764) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $16 (i32.const 796) "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 $17 (i32.const 1196) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2252) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $19 (i32.const 2348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00t\00y\00p\00e\00o\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data $21 (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00o\00b\00j\00e\00c\00t\00") - (data $22 (i32.const 2492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $23 (i32.const 2540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00b\00o\00o\00l\00e\00a\00n\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $24 (i32.const 2588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data $25 (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00t\00r\00i\00n\00g\00") - (data $26 (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data $27 (i32.const 2684) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00u\00n\00d\00e\00f\00i\00n\00e\00d\00\00\00\00\00\00\00\00\00\00\00") - (data $28 (i32.const 2736) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00 \00\00\00") + (data $11 (i32.const 480) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 508) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 624) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 652) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $16 (i32.const 716) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00u\00n\00d\00e\00f\00i\00n\00e\00d\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 768) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00 \00\00\00") (table $0 2 2 funcref) (elem $0 (i32.const 1) $start:typeof~anonymous|0) (export "memory" (memory $0)) @@ -192,6 +182,8 @@ i32.const 0 return ) + (func $start:typeof~anonymous|0 + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -256,7 +248,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 400 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -326,7 +318,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 400 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -343,7 +335,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 400 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -373,9 +365,9 @@ i32.load i32.gt_u if - i32.const 352 - i32.const 416 - i32.const 21 + i32.const 528 + i32.const 592 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -442,7 +434,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 224 + i32.const 400 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -594,7 +586,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -614,7 +606,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -677,7 +669,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -830,7 +822,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -847,7 +839,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -936,7 +928,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -979,7 +971,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -997,7 +989,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -1065,7 +1057,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -1182,7 +1174,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -1228,7 +1220,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -1260,7 +1252,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1504,7 +1496,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1724,7 +1716,7 @@ i32.eqz if i32.const 0 - i32.const 224 + i32.const 400 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1835,8 +1827,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 160 - i32.const 496 + i32.const 336 + i32.const 672 i32.const 461 i32.const 29 call $~lib/builtins/abort @@ -1938,7 +1930,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 334 i32.const 14 call $~lib/builtins/abort @@ -2009,7 +2001,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -2166,7 +2158,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 361 i32.const 14 call $~lib/builtins/abort @@ -2281,7 +2273,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 499 i32.const 16 call $~lib/builtins/abort @@ -2301,7 +2293,7 @@ i32.eqz if i32.const 0 - i32.const 496 + i32.const 672 i32.const 501 i32.const 14 call $~lib/builtins/abort @@ -2349,8 +2341,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 160 - i32.const 224 + i32.const 336 + i32.const 400 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2395,424 +2387,6 @@ local.get $ptr return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 796 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 796 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store - end - local.get $num - i32.const 10 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 796 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1216 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end - end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix - i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2272 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $start:typeof~anonymous|0 - ) (func $~start global.get $~started if @@ -2827,8 +2401,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35552 - i32.const 35600 + i32.const 33584 + i32.const 33632 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2931,12 +2505,8 @@ local.get $3 return ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2945,196 +2515,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 128 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 64 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 96 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 560 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2368 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $typeof/SomeClass#constructor (param $this i32) (result i32) (local $1 i32) @@ -3184,23 +2585,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - 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 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 304 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 448 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 1 drop i32.const 32 @@ -3209,67 +2593,67 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2480 - i32.const 2480 + i32.const 112 + i32.const 112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 11 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2480 - i32.const 2480 + i32.const 112 + i32.const 112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 12 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2480 - i32.const 2480 + i32.const 112 + i32.const 112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 13 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2512 - i32.const 2512 + i32.const 144 + i32.const 144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2512 - i32.const 2512 + i32.const 144 + i32.const 144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 15 i32.const 1 call $~lib/builtins/abort @@ -3277,25 +2661,25 @@ end i32.const 1 drop - i32.const 2560 - i32.const 2560 + i32.const 192 + i32.const 192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2480 - i32.const 2480 + i32.const 112 + i32.const 112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -3309,7 +2693,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -3323,7 +2707,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -3337,21 +2721,21 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2608 + i32.const 240 drop - i32.const 2640 - i32.const 2640 + i32.const 272 + i32.const 272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 22 i32.const 1 call $~lib/builtins/abort @@ -3359,18 +2743,18 @@ end global.get $typeof/b drop - i32.const 2560 + i32.const 192 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2560 + i32.const 192 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -3389,7 +2773,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -3408,7 +2792,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -3427,7 +2811,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -3446,7 +2830,7 @@ i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 33 i32.const 1 call $~lib/builtins/abort @@ -3454,18 +2838,18 @@ end global.get $typeof/s drop - i32.const 2640 + i32.const 272 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2640 + i32.const 272 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 35 i32.const 1 call $~lib/builtins/abort @@ -3473,64 +2857,81 @@ end global.get $typeof/fn drop - i32.const 2512 + i32.const 144 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2512 + i32.const 144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 37 i32.const 1 call $~lib/builtins/abort unreachable end + 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 448 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 480 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 624 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace i32.const 0 call $typeof/SomeClass#constructor global.set $typeof/c global.get $typeof/c drop - i32.const 2480 + i32.const 112 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2480 + i32.const 112 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 39 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2512 - i32.const 2512 + i32.const 144 + i32.const 144 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 40 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2704 - i32.const 2704 + i32.const 736 + i32.const 736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 44 i32.const 1 call $~lib/builtins/abort @@ -3538,18 +2939,18 @@ end global.get $typeof/c drop - i32.const 2704 + i32.const 736 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2704 + i32.const 736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 45 i32.const 1 call $~lib/builtins/abort @@ -3557,18 +2958,18 @@ end global.get $typeof/c drop - i32.const 2704 + i32.const 736 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2704 + i32.const 736 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2432 + i32.const 64 i32.const 46 i32.const 1 call $~lib/builtins/abort @@ -3579,153 +2980,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 592 - i32.const 720 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 784 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3770,16 +3024,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 352 + i32.const 528 local.get $0 call $~lib/rt/itcms/__visit - i32.const 160 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1216 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 2272 + i32.const 336 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3851,6 +3099,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index e4f9550724..eef2083fbc 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1,12 +1,13 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32 i64))) - (type $5 (func (result i32))) - (type $6 (func (param i32) (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32) (result i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (result i32))) + (type $7 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -18,66 +19,45 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $typeof/c (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36556)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34588)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\0c\00\00\00n\00u\00m\00b\00e\00r") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $3 (i32.const 1132) "\1c") - (data $3.1 (i32.const 1144) "\02") - (data $4 (i32.const 1164) "<") - (data $4.1 (i32.const 1176) "\02\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 $5 (i32.const 1228) "<") - (data $5.1 (i32.const 1240) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $8 (i32.const 1356) "<") - (data $8.1 (i32.const 1368) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $9 (i32.const 1420) ",") - (data $9.1 (i32.const 1432) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $11 (i32.const 1500) "<") - (data $11.1 (i32.const 1512) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $12 (i32.const 1564) "\1c") - (data $12.1 (i32.const 1576) "\02\00\00\00\02\00\00\00:") - (data $13 (i32.const 1596) "|") - (data $13.1 (i32.const 1608) "\02\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 $14 (i32.const 1724) "<") - (data $14.1 (i32.const 1736) "\02\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 $15 (i32.const 1788) "\1c") - (data $15.1 (i32.const 1800) "\02\00\00\00\02\00\00\000") - (data $16 (i32.const 1820) "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 $17 (i32.const 2220) "\1c\04") - (data $17.1 (i32.const 2232) "\02\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 $18 (i32.const 3276) "\\") - (data $18.1 (i32.const 3288) "\02\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 $19 (i32.const 3372) "<") - (data $19.1 (i32.const 3384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $20 (i32.const 3436) ",") - (data $20.1 (i32.const 3448) "\02\00\00\00\12\00\00\00t\00y\00p\00e\00o\00f\00.\00t\00s") - (data $21 (i32.const 3484) "\1c") - (data $21.1 (i32.const 3496) "\02\00\00\00\0c\00\00\00o\00b\00j\00e\00c\00t") - (data $22 (i32.const 3516) ",") - (data $22.1 (i32.const 3528) "\02\00\00\00\10\00\00\00f\00u\00n\00c\00t\00i\00o\00n") - (data $23 (i32.const 3564) ",") - (data $23.1 (i32.const 3576) "\02\00\00\00\0e\00\00\00b\00o\00o\00l\00e\00a\00n") - (data $24 (i32.const 3612) "\1c") - (data $24.1 (i32.const 3624) "\02\00\00\00\02\00\00\001") - (data $25 (i32.const 3644) "\1c") - (data $25.1 (i32.const 3656) "\02\00\00\00\0c\00\00\00s\00t\00r\00i\00n\00g") - (data $26 (i32.const 3676) "\1c") - (data $26.1 (i32.const 3688) "\04\00\00\00\08\00\00\00\01") - (data $27 (i32.const 3708) ",") - (data $27.1 (i32.const 3720) "\02\00\00\00\12\00\00\00u\00n\00d\00e\00f\00i\00n\00e\00d") - (data $28 (i32.const 3760) "\06\00\00\00 \00\00\00 \00\00\00 ") - (data $28.1 (i32.const 3784) " ") + (data $1 (i32.const 1068) ",") + (data $1.1 (i32.const 1080) "\02\00\00\00\12\00\00\00t\00y\00p\00e\00o\00f\00.\00t\00s") + (data $2 (i32.const 1116) "\1c") + (data $2.1 (i32.const 1128) "\02\00\00\00\0c\00\00\00o\00b\00j\00e\00c\00t") + (data $3 (i32.const 1148) ",") + (data $3.1 (i32.const 1160) "\02\00\00\00\10\00\00\00f\00u\00n\00c\00t\00i\00o\00n") + (data $4 (i32.const 1196) ",") + (data $4.1 (i32.const 1208) "\02\00\00\00\0e\00\00\00b\00o\00o\00l\00e\00a\00n") + (data $5 (i32.const 1244) "\1c") + (data $5.1 (i32.const 1256) "\02\00\00\00\02\00\00\001") + (data $6 (i32.const 1276) "\1c") + (data $6.1 (i32.const 1288) "\02\00\00\00\0c\00\00\00s\00t\00r\00i\00n\00g") + (data $7 (i32.const 1308) "\1c") + (data $7.1 (i32.const 1320) "\04\00\00\00\08\00\00\00\01") + (data $8 (i32.const 1340) "<") + (data $8.1 (i32.const 1352) "\02\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 $9 (i32.const 1404) "<") + (data $9.1 (i32.const 1416) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $12 (i32.const 1532) "<") + (data $12.1 (i32.const 1544) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $13 (i32.const 1596) ",") + (data $13.1 (i32.const 1608) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $15 (i32.const 1676) "<") + (data $15.1 (i32.const 1688) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $16 (i32.const 1740) ",") + (data $16.1 (i32.const 1752) "\02\00\00\00\12\00\00\00u\00n\00d\00e\00f\00i\00n\00e\00d") + (data $17 (i32.const 1792) "\06\00\00\00 \00\00\00 \00\00\00 ") + (data $17.1 (i32.const 1816) " ") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 3632 + i32.const 1264 call $~lib/rt/itcms/__visit global.get $typeof/c local.tee $0 @@ -85,13 +65,9 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 1376 + i32.const 1552 call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 2240 - call $~lib/rt/itcms/__visit - i32.const 3296 + i32.const 1360 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -112,7 +88,7 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1424 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -160,7 +136,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1424 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -169,7 +145,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$131 + block $__inlined_func$~lib/rt/itcms/Object#unlink$120 local.get $1 i32.load offset=4 i32.const -4 @@ -181,19 +157,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36556 + i32.const 34588 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1424 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$131 + br $__inlined_func$~lib/rt/itcms/Object#unlink$120 end local.get $1 i32.load offset=8 @@ -201,7 +177,7 @@ i32.eqz if i32.const 0 - i32.const 1248 + i32.const 1424 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -230,13 +206,13 @@ i32.const 1 else local.get $0 - i32.const 3760 + i32.const 1792 i32.load i32.gt_u if - i32.const 1376 - i32.const 1440 - i32.const 21 + i32.const 1552 + i32.const 1616 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -244,7 +220,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3764 + i32.const 1796 i32.add i32.load i32.const 32 @@ -296,7 +272,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -310,7 +286,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -356,7 +332,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -439,7 +415,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -453,7 +429,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -514,7 +490,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -547,7 +523,7 @@ i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -562,7 +538,7 @@ i32.ne if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -613,7 +589,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -685,7 +661,7 @@ i64.lt_u if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -710,7 +686,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -737,7 +713,7 @@ i32.gt_u if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -809,10 +785,10 @@ if unreachable end - i32.const 36560 + i32.const 34592 i32.const 0 i32.store - i32.const 38128 + i32.const 36160 i32.const 0 i32.store loop $for-loop|0 @@ -823,7 +799,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36560 + i32.const 34592 i32.add i32.const 0 i32.store offset=4 @@ -841,7 +817,7 @@ i32.add i32.const 2 i32.shl - i32.const 36560 + i32.const 34592 i32.add i32.const 0 i32.store offset=96 @@ -859,14 +835,14 @@ br $for-loop|0 end end - i32.const 36560 - i32.const 38132 + i32.const 34592 + i32.const 36164 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36560 + i32.const 34592 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -951,7 +927,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36556 + i32.const 34588 i32.lt_u if local.get $0 @@ -1040,14 +1016,14 @@ i32.ne if i32.const 0 - i32.const 1248 + i32.const 1424 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36556 + i32.const 34588 i32.lt_u if local.get $0 @@ -1070,7 +1046,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36556 + i32.const 34588 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1099,7 +1075,7 @@ end if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1129,85 +1105,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1520 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1215,11 +1124,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1235,7 +1140,7 @@ i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1257,35 +1162,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 1184 - i32.const 1248 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1297,7 +1190,7 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt$70 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1320,86 +1213,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1184 - i32.const 1520 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1415,8 +1253,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1424,136 +1262,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1520 + i32.const 1696 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1520 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1561,257 +1382,59 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) - (local $1 i32) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:typeof + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - local.set $1 + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3788 + i32.const 1820 i32.lt_s if - i32.const 36576 - i32.const 36624 + i32.const 34608 + i32.const 34656 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1808 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1820 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1820 - 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 1820 - 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 1820 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:typeof - ) - (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) - 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 3788 - i32.lt_s - if - i32.const 36576 - i32.const 36624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 local.get $1 i32.eqz local.get $0 @@ -1890,7 +1513,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$76 + block $__inlined_func$~lib/util/string/compareImpl$75 loop $while-continue|1 local.get $0 local.tee $3 @@ -1910,7 +1533,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$76 + br_if $__inlined_func$~lib/util/string/compareImpl$75 local.get $2 i32.const 2 i32.add @@ -1939,205 +1562,40 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3788 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3788 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$136 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1152 - local.set $0 - br $__inlined_func$~lib/string/String#concat$136 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36576 - i32.const 36624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3788 + i32.const 1820 i32.lt_s if - i32.const 36576 - i32.const 36624 + i32.const 34608 + i32.const 34656 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1088 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1120 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1584 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3392 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $start:typeof (local $0 i32) @@ -2148,135 +1606,103 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3788 + i32.const 1820 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - memory.size - i32.const 16 - i32.shl - i32.const 36556 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/pinSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/toSpace - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/fromSpace i32.const 1056 i32.const 1056 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3504 - i32.const 3504 + i32.const 1136 + i32.const 1136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 11 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3504 - i32.const 3504 + i32.const 1136 + i32.const 1136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 12 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3504 - i32.const 3504 + i32.const 1136 + i32.const 1136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 13 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3536 - i32.const 3536 + i32.const 1168 + i32.const 1168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3536 - i32.const 3536 + i32.const 1168 + i32.const 1168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 15 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3584 - i32.const 3584 + i32.const 1216 + i32.const 1216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3504 - i32.const 3504 + i32.const 1136 + i32.const 1136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -2288,7 +1714,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 19 i32.const 1 call $~lib/builtins/abort @@ -2300,7 +1726,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 20 i32.const 1 call $~lib/builtins/abort @@ -2312,34 +1738,34 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 21 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3664 - i32.const 3664 + i32.const 1296 + i32.const 1296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3584 + i32.const 1216 i32.store - i32.const 3584 - i32.const 3584 + i32.const 1216 + i32.const 1216 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 25 i32.const 1 call $~lib/builtins/abort @@ -2354,7 +1780,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 27 i32.const 1 call $~lib/builtins/abort @@ -2369,7 +1795,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 29 i32.const 1 call $~lib/builtins/abort @@ -2384,7 +1810,7 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 31 i32.const 1 call $~lib/builtins/abort @@ -2399,55 +1825,86 @@ i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 33 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3664 + i32.const 1296 i32.store - i32.const 3664 - i32.const 3664 + i32.const 1296 + i32.const 1296 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 35 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 1168 i32.store - i32.const 3536 - i32.const 3536 + i32.const 1168 + i32.const 1168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 37 i32.const 1 call $~lib/builtins/abort unreachable end + memory.size + i32.const 16 + i32.shl + i32.const 34588 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1476 + i32.const 1472 + i32.store + i32.const 1480 + i32.const 1472 + i32.store + i32.const 1472 + global.set $~lib/rt/itcms/pinSpace + i32.const 1508 + i32.const 1504 + i32.store + i32.const 1512 + i32.const 1504 + i32.store + i32.const 1504 + global.set $~lib/rt/itcms/toSpace + i32.const 1652 + i32.const 1648 + i32.store + i32.const 1656 + i32.const 1648 + i32.store + i32.const 1648 + 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 3788 + i32.const 1820 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -2461,7 +1918,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3788 + i32.const 1820 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2472,7 +1929,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2490,69 +1946,69 @@ local.get $0 global.set $typeof/c global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 1136 i32.store - i32.const 3504 - i32.const 3504 + i32.const 1136 + i32.const 1136 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 39 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3536 - i32.const 3536 + i32.const 1168 + i32.const 1168 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 40 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3728 - i32.const 3728 + i32.const 1760 + i32.const 1760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 44 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3728 + i32.const 1760 i32.store - i32.const 3728 - i32.const 3728 + i32.const 1760 + i32.const 1760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 45 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3728 + i32.const 1760 i32.store - i32.const 3728 - i32.const 3728 + i32.const 1760 + i32.const 1760 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 3456 + i32.const 1088 i32.const 46 i32.const 1 call $~lib/builtins/abort @@ -2564,8 +2020,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 36576 - i32.const 36624 + i32.const 34608 + i32.const 34656 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2601,11 +2057,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3788 + i32.const 1820 i32.lt_s if - i32.const 36576 - i32.const 36624 + i32.const 34608 + i32.const 34656 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index d1bcaef811..d4028ac631 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -3,18 +3,14 @@ (type $1 (func)) (type $2 (func (param i32 i32))) (type $3 (func (param i32))) - (type $4 (func (param i32 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i64) (result i32))) - (type $8 (func (param i32 i64 i32))) - (type $9 (func (param i64 i32) (result i32))) - (type $10 (func (param i32 i64 i32 i32))) - (type $11 (func (param i32 i32 i32 i32))) + (type $4 (func (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (global $while/ran (mut i32) (i32.const 0)) - (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_FEATURE_EXCEPTION_HANDLING 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)) @@ -23,869 +19,881 @@ (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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) (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_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2432)) - (global $~lib/memory/__data_end i32 (i32.const 2456)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35224)) - (global $~lib/memory/__heap_base i32 (i32.const 35224)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 488)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33256)) + (global $~lib/memory/__heap_base i32 (i32.const 33256)) (memory $0 1) - (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00b\00o\00r\00t\00\00\00") - (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00 \00i\00n\00 \00\00\00\00\00") - (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $6 (i32.const 272) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $7 (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $10 (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $11 (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $12 (i32.const 540) "|\00\00\00\00\00\00\00\00\00\00\00\02\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 $13 (i32.const 668) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $14 (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data $15 (i32.const 764) "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 $16 (i32.const 1164) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\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 $17 (i32.const 2220) "\\\00\00\00\00\00\00\00\00\00\00\00\02\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 $18 (i32.const 2316) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $19 (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00w\00h\00i\00l\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $20 (i32.const 2432) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00") + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00w\00h\00i\00l\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $9 (i32.const 464) "\05\00\00\00 \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 "memory" (memory $0)) (start $~start) - (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/string/String#get:length (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize + (func $while/testSimple + (local $i i32) + (local $j i32) + i32.const 10 + local.set $i + i32.const 0 + local.set $j + loop $while-continue|0 + local.get $i + if + local.get $i + i32.const 1 + i32.sub + local.set $i + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $j + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - i32.shr_u - return - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - return - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - return - ) - (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - return + global.set $while/ran ) - (func $~lib/rt/itcms/visitRoots (param $cookie i32) - (local $pn i32) - (local $iter i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter + (func $while/testNested + (local $i i32) + (local $j i32) + (local $k i32) + i32.const 10 + local.set $i + i32.const 0 + local.set $j + i32.const 0 + local.set $k loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne + local.get $i if + local.get $i i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 + i32.sub + local.set $i + local.get $j + i32.const 1 + i32.add + local.set $j + loop $while-continue|1 + local.get $i + if + local.get $i + i32.const 1 + i32.sub + local.set $i + local.get $k + i32.const 1 + i32.add + local.set $k + br $while-continue|1 + end + end + local.get $i + i32.const 0 i32.eq i32.eqz if i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 + i32.const 32 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 30 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter br $while-continue|0 end end - ) - (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next + local.get $i i32.const 0 i32.eq + i32.eqz if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return + i32.const 32 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev + local.get $j i32.const 1 - drop - local.get $prev + i32.eq i32.eqz if i32.const 0 - i32.const 192 - i32.const 132 - i32.const 16 + i32.const 32 + i32.const 33 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/__typeinfo (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load - i32.gt_u + local.get $k + i32.const 9 + i32.eq + i32.eqz if - i32.const 320 - i32.const 384 - i32.const 21 - i32.const 28 + i32.const 0 + i32.const 32 + i32.const 34 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 4 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - return + i32.const 1 + global.set $while/ran ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 2 - i32.le_u - if (result i32) + (func $while/testEmpty + (local $i i32) + (local $j i32) + (local $2 i32) + i32.const 1 + local.set $i + i32.const 0 + local.set $j + loop $while-continue|0 + local.get $i + local.tee $2 i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - return - ) - (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz + i32.sub + local.set $i + local.get $2 if (result i32) - i32.const 0 - i32.const 192 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + local.get $j + i32.const 1 + i32.add + local.tee $j else - local.get $1 + i32.const 0 + end + if + br $while-continue|0 end - global.set $~lib/rt/itcms/iter end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - call $~lib/rt/itcms/Object#get:isPointerfree - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 + local.get $i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable end - call $~lib/rt/itcms/Object#linkTo - ) - (func $~lib/rt/itcms/__visit (param $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr + local.get $j + i32.const 1 + i32.eq i32.eqz if - return + i32.const 0 + i32.const 32 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj + i32.const 1 + global.set $while/ran + ) + (func $while/testAlwaysTrue + (local $i i32) i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white + local.set $i + block $while-break|0 + loop $while-continue|0 + i32.const 1 + if + local.get $i + i32.const 1 + i32.add + local.tee $i + i32.const 10 + i32.eq + if + br $while-break|0 + end + br $while-continue|0 + end + end + end + local.get $i + i32.const 10 i32.eq + i32.eqz if - local.get $obj - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 0 + i32.const 32 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable end + i32.const 1 + global.set $while/ran ) - (func $~lib/rt/itcms/visitStack (param $cookie i32) - (local $ptr i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr + (func $while/testAlwaysTrueNeverBreaks (result i32) + (local $i i32) + i32.const 0 + local.set $i loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u + i32.const 1 if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 + local.get $i + i32.const 1 i32.add - local.set $ptr + local.tee $i + i32.const 10 + i32.eq + if + local.get $i + return + end br $while-continue|0 end end + unreachable ) - (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) - local.get $this - i32.load + (func $while/testAlwaysFalse + (local $i i32) + i32.const 0 + local.set $i + i32.const 0 + drop + local.get $i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $while/ran ) - (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - return - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo + (func $while/testAlwaysBreaks + (local $i i32) + i32.const 0 + local.set $i + block $while-break|0 + loop $while-continue|0 + local.get $i + i32.const 1 + i32.add + local.tee $i + if + br $while-break|0 + end + end + end + local.get $i i32.const 1 - i32.and + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 268 - i32.const 14 + i32.const 32 + i32.const 92 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u + global.set $while/ran + ) + (func $while/testAlwaysReturns + (local $i i32) + i32.const 0 + local.set $i + loop $while-continue|0 + local.get $i + i32.const 1 + i32.add + local.tee $i + if + i32.const 1 + global.set $while/ran + return + end + end + i32.const 0 i32.eqz if i32.const 0 - i32.const 464 - i32.const 270 - i32.const 14 + i32.const 32 + i32.const 105 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $size - i32.const 256 - i32.lt_u + ) + (func $while/testContinue + (local $i i32) + i32.const 10 + local.set $i + loop $while-continue|0 + local.get $i + if + local.get $i + i32.const 1 + i32.sub + local.set $i + br $while-continue|0 + end + end + local.get $i + i32.const 0 + i32.eq + i32.eqz if i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl + i32.const 32 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable end i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 + global.set $while/ran + ) + (func $while/testNestedContinue + (local $i i32) + (local $j i32) + i32.const 10 + local.set $i + i32.const 10 + local.set $j + loop $while-continue|0 + local.get $i + if + loop $while-continue|1 + local.get $j + if + local.get $j + i32.const 1 + i32.sub + local.set $j + br $while-continue|1 + end + end + local.get $i + i32.const 1 + i32.sub + local.set $i + br $while-continue|0 + end end + local.get $i + i32.const 0 + i32.eq i32.eqz if i32.const 0 - i32.const 464 - i32.const 284 - i32.const 14 + i32.const 32 + i32.const 135 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next + local.get $j + i32.const 0 + i32.eq + i32.eqz if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev + i32.const 0 + i32.const 32 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $block - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.0 - end - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $next - i32.eqz + i32.const 1 + global.set $while/ran + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:prev + local.get $space + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.0 - end - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - local.get $slMap + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq i32.eqz if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) - (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev i32.const 1 drop - local.get $block + local.get $prev i32.eqz if i32.const 0 - i32.const 464 - i32.const 201 - i32.const 14 + i32.const 144 + i32.const 132 + i32.const 16 call $~lib/builtins/abort unreachable end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u if - i32.const 0 - i32.const 464 - i32.const 203 - i32.const 14 + i32.const 272 + i32.const 336 + i32.const 22 + i32.const 28 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.0 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.1 - end - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId i32.const 2 - i32.and - if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load - br $~lib/rt/tlsf/GETFREELEFT|inlined.0 - end - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo + i32.le_u + if (result i32) i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 i32.and + i32.const 0 + i32.ne + end + return + ) + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 i32.eqz - if + if (result i32) i32.const 0 - i32.const 464 - i32.const 221 - i32.const 16 + i32.const 144 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable + else + local.get $1 end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo + global.set $~lib/rt/itcms/iter end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + 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 $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr i32.eqz if - i32.const 0 - i32.const 464 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - i32.const 1 + local.get $ptr + i32.const 20 + i32.sub + local.set $obj + i32.const 0 drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white i32.eq - i32.eqz if - i32.const 0 - i32.const 464 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $obj + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - local.get $right + ) + (func $~lib/rt/itcms/visitStack (param $cookie i32) + (local $ptr i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end + end + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) i32.const 4 - i32.sub - local.get $block + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $6 i32) + (local $7 i32) + (local $boundedSize i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) + (local $head i32) + (local $root|18 i32) + (local $fl|19 i32) + (local $slMap i32) + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $size i32.const 256 i32.lt_u @@ -898,11 +906,11 @@ local.set $sl else local.get $size - local.tee $13 + local.tee $6 i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 + local.tee $7 + local.get $6 + local.get $7 i32.lt_u select local.set $boundedSize @@ -943,824 +951,337 @@ i32.eqz if i32.const 0 - i32.const 464 - i32.const 251 + i32.const 416 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) local.get $root - local.set $root|16 + local.set $root|11 local.get $fl - local.set $fl|17 + local.set $fl|12 local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 + local.set $sl|13 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|18 + local.get $sl|13 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.1 + br $~lib/rt/tlsf/GETHEAD|inlined.0 end - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head + i32.eq if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|24 + local.set $root|14 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) - (local $end i32) - (local $root|4 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|10 i32) - (local $tail|11 i32) - local.get $endU64 - i32.wrap_i64 - local.set $end - i32.const 1 - drop - local.get $start - i64.extend_i32_u - local.get $endU64 - i64.le_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $root - local.set $root|4 - local.get $root|4 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.0 - end - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - return - ) - (func $~lib/rt/tlsf/initialize - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $root|7 i32) - (local $fl|8 i32) - (local $slMap i32) - (local $sl i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $head i32) - (local $memStart 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 $rootOffset - memory.size - local.set $pagesBefore - local.get $rootOffset - 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 $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and + local.get $head + i32.store offset=96 + local.get $next i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - return - ) - (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $ptr i32) - local.get $ptr - 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 $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $from 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 $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - 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 $obj - local.get $obj - 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 $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 i32.const 2 - global.set $~lib/rt/itcms/state + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 end - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/iter - local.set $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap i32.const 1 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + local.get $slMap i32.eqz if - i32.const 0 - i32.const 192 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap end - local.get $obj - 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 - return ) - (func $~lib/rt/itcms/interrupt - (local $budget i32) - i32.const 0 - drop - i32.const 0 + (func $~lib/rt/tlsf/insertBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) + (local $left i32) + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) + i32.const 1 drop - i32.const 1024 - i32.const 200 - i32.mul - i32.const 100 - i32.div_u - local.set $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - i32.const 200 - i32.const 100 - i32.rem_u - i32.const 0 - i32.eq - drop - global.get $~lib/rt/itcms/total - i32.const 200 - i32.const 100 - i32.div_u - i32.mul - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget + local.get $block + i32.eqz + if i32.const 0 - i32.gt_s - br_if $do-loop|0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 drop - ) - (func $~lib/rt/tlsf/computeSize (param $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 i32.const 4 i32.add - i32.const 15 + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and i32.add - i32.const 15 + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 i32.const -1 i32.xor i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo + i32.const 1 + drop + local.get $leftInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo i32.const 4 - i32.sub + i32.add + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo end - return - ) - (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop local.get $size - i32.const 1073741820 - i32.gt_u + i32.const 12 + i32.ge_u + i32.eqz if - i32.const 128 - i32.const 464 - i32.const 461 - i32.const 29 + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add local.get $size - call $~lib/rt/tlsf/computeSize - return - ) - (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable end - return - ) - (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) + local.get $right + i32.const 4 + i32.sub + local.get $block + i32.store local.get $size i32.const 256 i32.lt_u @@ -1773,18 +1294,20 @@ local.set $sl else local.get $size - call $~lib/rt/tlsf/roundSize - local.set $requestSize - i32.const 4 - i32.const 8 - i32.mul - i32.const 1 - i32.sub - local.get $requestSize + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize i32.clz i32.sub local.set $fl - local.get $requestSize + local.get $boundedSize local.get $fl i32.const 4 i32.sub @@ -1816,1299 +1339,1335 @@ i32.eqz if i32.const 0 - i32.const 464 - i32.const 334 + i32.const 416 + i32.const 251 i32.const 14 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $root - local.set $root|5 + local.set $root|16 local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.2 + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 end - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.3 - end - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.2 - end - local.set $head - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - br $~lib/rt/tlsf/GETHEAD|inlined.3 - end - local.set $head - end - local.get $head - return - ) - (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) + local.get $block i32.const 0 - drop - local.get $size - i32.const 256 - i32.ge_u + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head if - local.get $size - call $~lib/rt/tlsf/roundSize - local.set $size + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev end - memory.size - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 i32.const 4 - i32.sub - block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) - local.get $root - local.set $root|3 - local.get $root|3 - i32.load offset=1568 - br $~lib/rt/tlsf/GETTAIL|inlined.1 - end - i32.ne i32.shl + local.get $sl|22 i32.add - local.set $size - local.get $size - i32.const 65535 + i32.const 2 + i32.shl i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesBefore - local.tee $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $pagesAfter + local.get $head|23 + i32.store offset=96 local.get $root - local.get $pagesBefore - i32.const 16 + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl i32.shl - local.get $pagesAfter - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - drop + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) - (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end i32.const 1 drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u i32.eqz if i32.const 0 - i32.const 464 - i32.const 361 + i32.const 416 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $blockInfo - i32.const 3 + local.get $start + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 i32.const -1 i32.xor i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo + i32.sub + local.set $start + local.get $end + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $end + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.3 - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - br $~lib/rt/tlsf/GETRIGHT|inlined.2 - end - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 end - ) - (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz + local.set $tail + i32.const 0 + local.set $tailInfo + local.get $tail if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block i32.const 1 drop - local.get $block + local.get $start + local.get $tail + i32.const 4 + i32.add + i32.ge_u i32.eqz if i32.const 0 - i32.const 464 - i32.const 499 + i32.const 416 + i32.const 389 i32.const 16 call $~lib/builtins/abort unreachable end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo + else + end + else + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 464 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - return - ) - (func $~lib/rt/tlsf/__alloc (param $size 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 $end + local.get $start + i32.sub + local.set $size local.get $size - call $~lib/rt/tlsf/allocateBlock i32.const 4 + i32.const 12 i32.add - return - ) - (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 128 - i32.const 192 - i32.const 261 - i32.const 31 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u + i32.const 4 + i32.add + i32.lt_u if - call $~lib/rt/itcms/interrupt + i32.const 0 + return end - i32.const 16 local.get $size - i32.add - call $~lib/rt/tlsf/__alloc + i32.const 2 i32.const 4 + i32.mul i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - 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 $obj - call $~lib/rt/itcms/Object#get:size + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 + local.get $leftSize i32.add - local.set $ptr - local.get $ptr + local.set $tail + local.get $tail i32.const 0 - local.get $size - memory.fill - local.get $ptr + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 return ) - (func $~lib/util/number/decimalCount32 (param $value i32) (result i32) - local.get $value - i32.const 100000 - i32.lt_u - if - local.get $value - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $value - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $value - i32.const 10000 - i32.ge_u - i32.add - local.get $value - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $value - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $value - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $value - i32.const 1000000000 - i32.ge_u - i32.add - local.get $value - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (param $buffer i32) (param $num i32) (param $offset i32) - (local $t i32) - (local $r i32) - (local $d1 i32) - (local $d2 i32) - (local $digits1 i64) - (local $digits2 i64) - (local $t|9 i32) - (local $d1|10 i32) - (local $digits i32) - (local $digits|12 i32) - (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u - local.set $t|9 - local.get $num - i32.const 100 - i32.rem_u - local.set $d1|10 - local.get $t|9 - local.set $num - local.get $offset - i32.const 2 + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart 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 $rootOffset + memory.size + local.set $pagesBefore + local.get $rootOffset + 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 $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) + local.get $pagesNeeded + local.get $pagesBefore i32.sub - local.set $offset - i32.const 764 - local.get $d1|10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits - i32.store + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 end - local.get $num - i32.const 10 - i32.ge_u if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - i32.const 764 - local.get $num - i32.const 2 - i32.shl - i32.add - i32.load - local.set $digits|12 - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits|12 - i32.store - else - local.get $offset - i32.const 1 - i32.sub - local.set $offset - i32.const 48 - local.get $num - i32.add - local.set $digit - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digit - i32.store16 + unreachable end - ) - (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end - end - local.get $offset - i32.const 1 - i32.and - if - local.get $buffer - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $num i64) (param $base i32) (result i32) - (local $value i32) - (local $b64 i64) - (local $b i64) - (local $e i32) - block $~lib/util/number/isPowerOf2|inlined.0 (result i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq - br $~lib/util/number/isPowerOf2|inlined.0 - end - if - i32.const 63 - local.get $num - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $base - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $base - i64.extend_i32_s - local.set $b64 - local.get $b64 - local.set $b - i32.const 1 - local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $sl + i32.const 1 + i32.add + local.set $sl + br $for-loop|1 + end + end + local.get $fl i32.const 1 i32.add - local.set $e - br $while-continue|1 + local.set $fl + br $for-loop|0 end end - local.get $e - i32.const 1 - i32.sub - return - ) - (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) - (local $base i64) - (local $shift i64) - (local $mask i64) - (local $q i64) - local.get $radix + local.get $rootOffset + i32.const 1572 + i32.add + local.set $memStart + i32.const 0 + drop + local.get $root + local.get $memStart + memory.size i64.extend_i32_s - local.set $base - local.get $radix - local.get $radix - i32.const 1 + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr + i32.const 4 i32.sub - i32.and + local.set $block + local.get $ptr i32.const 0 - i32.eq - if - local.get $radix - i32.ctz - i32.const 7 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 i32.and - i64.extend_i32_s - local.set $shift - local.get $base - i64.const 1 - i64.sub - local.set $mask - loop $do-loop|0 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $mask - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $num - local.get $shift - i64.shr_u - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|0 - end + i32.eqz else - loop $do-loop|1 - local.get $offset - i32.const 1 - i32.sub - local.set $offset - local.get $num - local.get $base - i64.div_u - local.set $q - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2240 - local.get $num - local.get $q - local.get $base - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $q - local.set $num - local.get $num - i64.const 0 - i64.ne - br_if $do-loop|1 - end + i32.const 0 end - ) - (func $~lib/number/U32#toString (param $this i32) (param $radix i32) (result i32) - local.get $this - local.get $radix - call $~lib/util/number/utoa32 - return - ) - (func $while/testSimple - (local $i i32) - (local $j i32) - i32.const 10 - local.set $i - i32.const 0 - local.set $j - loop $while-continue|0 - local.get $i - if - local.get $i - i32.const 1 - i32.sub - local.set $i - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + if (result i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 end - local.get $i - i32.const 0 - i32.eq i32.eqz if i32.const 0 - i32.const 2400 - i32.const 10 + i32.const 416 + i32.const 562 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $j - i32.const 10 - i32.eq + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) + i32.const 0 + drop + local.get $block + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + 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 $ptr + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $obj i32.const 0 - i32.const 2400 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free end - i32.const 1 - global.set $while/ran ) - (func $while/testNested - (local $i i32) - (local $j i32) - (local $k i32) - i32.const 10 - local.set $i - i32.const 0 - local.set $j - i32.const 0 - local.set $k - loop $while-continue|0 - local.get $i - if - local.get $i - i32.const 1 - i32.sub - local.set $i - local.get $j - i32.const 1 - i32.add - local.set $j + (func $~lib/rt/itcms/step (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $from 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 $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj loop $while-continue|1 - local.get $i + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne if - local.get $i - i32.const 1 - i32.sub - local.set $i - local.get $k - i32.const 1 - i32.add - local.set $k + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj br $while-continue|1 end end - local.get $i 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 $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace i32.eq - i32.eqz if i32.const 0 - i32.const 2400 - i32.const 29 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - local.get $k - i32.const 9 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $obj + 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 2400 - i32.const 30 - i32.const 5 + i32.const 144 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - br $while-continue|0 + local.get $obj + call $~lib/rt/itcms/free + i32.const 10 + return end - end - local.get $i - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $j - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 2400 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $k - i32.const 9 - i32.eq - i32.eqz - if + 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 - i32.const 2400 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state + br $break|0 end - i32.const 1 - global.set $while/ran + i32.const 0 + return ) - (func $while/testEmpty - (local $i i32) - (local $j i32) - (local $2 i32) - i32.const 1 - local.set $i + (func $~lib/rt/itcms/interrupt + (local $budget i32) i32.const 0 - local.set $j - loop $while-continue|0 - local.get $i - local.tee $2 - i32.const 1 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step i32.sub - local.set $i - local.get $2 - if (result i32) - local.get $j - i32.const 1 + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop + global.get $~lib/rt/itcms/total + i32.const 200 + i32.const 100 + i32.div_u + i32.mul + i32.const 1024 i32.add - local.tee $j - else + global.set $~lib/rt/itcms/threshold i32.const 0 + drop + return end - if - br $while-continue|0 - end - end - local.get $i - i32.const -1 - i32.eq - i32.eqz - if + local.get $budget i32.const 0 - i32.const 2400 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $j - i32.const 1 - i32.eq - i32.eqz + 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 $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $size + 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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u if - i32.const 0 - i32.const 2400 - i32.const 46 - i32.const 3 + i32.const 80 + i32.const 416 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $while/ran + local.get $size + call $~lib/rt/tlsf/computeSize + return ) - (func $while/testAlwaysTrue - (local $i i32) - i32.const 0 - local.set $i - block $while-break|0 - loop $while-continue|0 - i32.const 1 - if - local.get $i - i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq - if - br $while-break|0 - end - br $while-continue|0 - end - end + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size + i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $size + end + return + ) + (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + local.get $requestSize + i32.clz + i32.sub + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 end - local.get $i - i32.const 10 - i32.eq i32.eqz if i32.const 0 - i32.const 2400 - i32.const 58 - i32.const 3 + i32.const 416 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $while/ran - ) - (func $while/testAlwaysTrueNeverBreaks (result i32) - (local $i i32) + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 - local.set $i - loop $while-continue|0 + i32.const -1 + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap + i32.const 0 + local.set $head + local.get $slMap + i32.eqz + if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 0 + i32.const -1 + i32.xor + local.get $fl i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz if - local.get $i + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq + drop + local.get $slMap + i32.eqz if - local.get $i - return + i32.const 0 + i32.const 416 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - br $while-continue|0 + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 end + local.set $head end - unreachable + local.get $head + return ) - (func $while/testAlwaysFalse - (local $i i32) - i32.const 0 - local.set $i + (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) i32.const 0 drop - local.get $i - i32.const 0 - i32.eq - i32.eqz + local.get $size + i32.const 256 + i32.ge_u if - i32.const 0 - i32.const 2400 - i32.const 80 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size end - i32.const 1 - global.set $while/ran - ) - (func $while/testAlwaysBreaks - (local $i i32) + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow i32.const 0 - local.set $i - block $while-break|0 - loop $while-continue|0 - local.get $i - i32.const 1 - i32.add - local.tee $i - if - br $while-break|0 - end + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable end end - local.get $i + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo i32.const 1 - i32.eq + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz i32.eqz if i32.const 0 - i32.const 2400 - i32.const 92 - i32.const 3 + i32.const 416 + i32.const 361 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $while/ran - ) - (func $while/testAlwaysReturns - (local $i i32) - i32.const 0 - local.set $i - loop $while-continue|0 - local.get $i - i32.const 1 + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 i32.add - local.tee $i - if - i32.const 1 - global.set $while/ran - return + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo end - i32.const 0 + ) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block i32.eqz if - i32.const 0 - i32.const 2400 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $while/testContinue - (local $i i32) - i32.const 10 - local.set $i - loop $while-continue|0 - local.get $i + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + i32.const 1 + drop + local.get $block + i32.eqz if - local.get $i - i32.const 1 - i32.sub - local.set $i - br $while-continue|0 + i32.const 0 + i32.const 416 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end end - local.get $i - i32.const 0 - i32.eq + i32.const 1 + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u i32.eqz if i32.const 0 - i32.const 2400 - i32.const 117 - i32.const 3 + i32.const 416 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $while/ran - ) - (func $while/testNestedContinue - (local $i i32) - (local $j i32) - i32.const 10 - local.set $i - i32.const 10 - local.set $j - loop $while-continue|0 - local.get $i - if - loop $while-continue|1 - local.get $j - if - local.get $j - i32.const 1 - i32.sub - local.set $j - br $while-continue|1 - end - end - local.get $i - i32.const 1 - i32.sub - local.set $i - br $while-continue|0 - end - end - local.get $i + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock i32.const 0 - i32.eq + drop + local.get $block + return + ) + (func $~lib/rt/tlsf/__alloc (param $size i32) (result i32) + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 2400 - i32.const 135 - i32.const 3 + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u + if + i32.const 80 + i32.const 144 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $j - i32.const 0 - i32.eq - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 2400 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/interrupt end - i32.const 1 - global.set $while/ran + i32.const 16 + local.get $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill + local.get $ptr + return ) (func $while/testRef (local $i i32) @@ -3156,7 +2715,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 151 i32.const 3 call $~lib/builtins/abort @@ -3167,7 +2726,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 152 i32.const 3 call $~lib/builtins/abort @@ -3228,7 +2787,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 171 i32.const 3 call $~lib/builtins/abort @@ -3239,7 +2798,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 172 i32.const 3 call $~lib/builtins/abort @@ -3327,7 +2886,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 217 i32.const 3 call $~lib/builtins/abort @@ -3385,29 +2944,12 @@ (func $start:while i32.const 0 global.set $while/ran - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace call $while/testSimple global.get $while/ran i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 16 i32.const 1 call $~lib/builtins/abort @@ -3420,7 +2962,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 39 i32.const 1 call $~lib/builtins/abort @@ -3433,7 +2975,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 51 i32.const 1 call $~lib/builtins/abort @@ -3446,7 +2988,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 63 i32.const 1 call $~lib/builtins/abort @@ -3458,7 +3000,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 72 i32.const 1 call $~lib/builtins/abort @@ -3471,7 +3013,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 85 i32.const 1 call $~lib/builtins/abort @@ -3484,7 +3026,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 97 i32.const 1 call $~lib/builtins/abort @@ -3497,7 +3039,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 109 i32.const 1 call $~lib/builtins/abort @@ -3510,7 +3052,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 122 i32.const 1 call $~lib/builtins/abort @@ -3523,7 +3065,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 141 i32.const 1 call $~lib/builtins/abort @@ -3531,12 +3073,29 @@ end i32.const 0 global.set $while/ran + 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 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace call $while/testRef global.get $while/ran i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 157 i32.const 1 call $~lib/builtins/abort @@ -3549,7 +3108,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 177 i32.const 1 call $~lib/builtins/abort @@ -3562,7 +3121,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 193 i32.const 1 call $~lib/builtins/abort @@ -3575,7 +3134,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 209 i32.const 1 call $~lib/builtins/abort @@ -3588,7 +3147,7 @@ i32.eqz if i32.const 0 - i32.const 2400 + i32.const 32 i32.const 222 i32.const 1 call $~lib/builtins/abort @@ -3604,20 +3163,16 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 35248 - i32.const 35296 + i32.const 33280 + i32.const 33328 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) - (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) - (local $thisSize i32) - (local $otherSize i32) - (local $outSize i32) - (local $out i32) - (local $6 i32) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3626,196 +3181,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize - i32.add - local.set $outSize - local.get $outSize i32.const 0 - i32.eq - if - i32.const 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $outSize - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=4 - local.get $out - local.get $this - local.get $thisSize - memory.copy - local.get $out - local.get $thisSize - i32.add - local.get $other - local.get $otherSize - memory.copy - local.get $out - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - ) - (func $~lib/string/String.__concat (param $left i32) (param $right i32) (result 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 - local.get $left - local.set $2 + drop + local.get $message + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $2 - local.get $right - local.set $2 + local.get $4 + local.get $fileName + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/string/String#concat - local.set $2 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber i32) - (local $fullMessage i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $message - if (result i32) - local.get $message - else - i32.const 32 - end - local.tee $fullMessage - i32.store - local.get $fileName - if - global.get $~lib/memory/__stack_pointer - local.get $fullMessage - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 64 - local.get $fileName - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=36 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=32 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=24 - local.get $5 - local.get $lineNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $5 - i32.const 528 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - local.get $columnNumber - i32.const 10 - call $~lib/number/U32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - call $~lib/string/String.__concat - local.tee $fullMessage - i32.store - end - local.get $fullMessage - i32.const 2336 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable ) (func $while/Ref#constructor (param $this i32) (result i32) (local $1 i32) @@ -3855,153 +3241,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) - (local $out i32) - (local $decimals i32) - (local $buffer i32) - (local $num i32) - (local $offset i32) - (local $decimals|7 i32) - (local $buffer|8 i32) - (local $num|9 i32) - (local $offset|10 i32) - (local $decimals|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 $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end - if - i32.const 560 - i32.const 688 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $value - i32.eqz - if - i32.const 752 - 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 $radix - i32.const 10 - i32.eq - if - local.get $value - call $~lib/util/number/decimalCount32 - local.set $decimals - global.get $~lib/memory/__stack_pointer - local.get $decimals - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - else - local.get $radix - i32.const 16 - i32.eq - if - i32.const 31 - local.get $value - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $decimals|7 - global.get $~lib/memory/__stack_pointer - local.get $decimals|7 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - else - local.get $value - i64.extend_i32_u - local.get $radix - call $~lib/util/number/ulog_base - local.set $decimals|11 - global.get $~lib/memory/__stack_pointer - local.get $decimals|11 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store - local.get $out - local.get $value - i64.extend_i32_u - local.get $decimals|11 - local.get $radix - call $~lib/util/number/utoa64_any_core - end - end - local.get $out - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) (func $~lib/object/Object#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4032,16 +3271,10 @@ ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1184 + i32.const 272 local.get $0 call $~lib/rt/itcms/__visit - i32.const 2240 + i32.const 80 local.get $0 call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index 7f3f680800..b00fb6c46c 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (result i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (param i32) (result i32))) - (type $7 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) (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)) @@ -17,54 +17,29 @@ (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/memory/__stack_pointer (mut i32) (i32.const 36248)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34280)) (memory $0 1) - (data $0 (i32.const 1036) "\1c") - (data $0.1 (i32.const 1048) "\02\00\00\00\n\00\00\00a\00b\00o\00r\00t") - (data $1 (i32.const 1068) "\1c") - (data $1.1 (i32.const 1080) "\02\00\00\00\08\00\00\00 \00i\00n\00 ") - (data $2 (i32.const 1100) "\1c") - (data $2.1 (i32.const 1112) "\02") - (data $3 (i32.const 1132) "<") - (data $3.1 (i32.const 1144) "\02\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 $4 (i32.const 1196) "<") - (data $4.1 (i32.const 1208) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data $7 (i32.const 1324) "<") - (data $7.1 (i32.const 1336) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data $8 (i32.const 1388) ",") - (data $8.1 (i32.const 1400) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data $10 (i32.const 1468) "<") - (data $10.1 (i32.const 1480) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data $11 (i32.const 1532) "\1c") - (data $11.1 (i32.const 1544) "\02\00\00\00\02\00\00\00:") - (data $12 (i32.const 1564) "|") - (data $12.1 (i32.const 1576) "\02\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 $13 (i32.const 1692) "<") - (data $13.1 (i32.const 1704) "\02\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 $14 (i32.const 1756) "\1c") - (data $14.1 (i32.const 1768) "\02\00\00\00\02\00\00\000") - (data $15 (i32.const 1788) "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 $16 (i32.const 2188) "\1c\04") - (data $16.1 (i32.const 2200) "\02\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 $17 (i32.const 3244) "\\") - (data $17.1 (i32.const 3256) "\02\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 $18 (i32.const 3340) "<") - (data $18.1 (i32.const 3352) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") - (data $19 (i32.const 3404) ",") - (data $19.1 (i32.const 3416) "\02\00\00\00\10\00\00\00w\00h\00i\00l\00e\00.\00t\00s") - (data $20 (i32.const 3456) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\10\00\00\00w\00h\00i\00l\00e\00.\00t\00s") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\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 $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1276) "<") + (data $5.1 (i32.const 1288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1340) ",") + (data $6.1 (i32.const 1352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1420) "<") + (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1488) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 2208 + i32.const 1296 call $~lib/rt/itcms/__visit - i32.const 3264 + i32.const 1104 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -85,7 +60,7 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -133,7 +108,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -142,7 +117,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$141 + block $__inlined_func$~lib/rt/itcms/Object#unlink$129 local.get $1 i32.load offset=4 i32.const -4 @@ -154,19 +129,19 @@ i32.load offset=8 i32.eqz local.get $1 - i32.const 36248 + i32.const 34280 i32.lt_u i32.and i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$141 + br $__inlined_func$~lib/rt/itcms/Object#unlink$129 end local.get $1 i32.load offset=8 @@ -174,7 +149,7 @@ i32.eqz if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -203,13 +178,13 @@ i32.const 1 else local.get $0 - i32.const 3456 + i32.const 1488 i32.load i32.gt_u if - i32.const 1344 - i32.const 1408 - i32.const 21 + i32.const 1296 + i32.const 1360 + i32.const 22 i32.const 28 call $~lib/builtins/abort unreachable @@ -217,7 +192,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 3460 + i32.const 1492 i32.add i32.load i32.const 32 @@ -269,7 +244,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -283,7 +258,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -329,7 +304,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -412,7 +387,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -426,7 +401,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -487,7 +462,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -520,7 +495,7 @@ i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -535,7 +510,7 @@ i32.ne if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -586,7 +561,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -658,7 +633,7 @@ i64.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -683,7 +658,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -710,7 +685,7 @@ i32.gt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -782,10 +757,10 @@ if unreachable end - i32.const 36256 + i32.const 34288 i32.const 0 i32.store - i32.const 37824 + i32.const 35856 i32.const 0 i32.store loop $for-loop|0 @@ -796,7 +771,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 36256 + i32.const 34288 i32.add i32.const 0 i32.store offset=4 @@ -814,7 +789,7 @@ i32.add i32.const 2 i32.shl - i32.const 36256 + i32.const 34288 i32.add i32.const 0 i32.store offset=96 @@ -832,14 +807,14 @@ br $for-loop|0 end end - i32.const 36256 - i32.const 37828 + i32.const 34288 + i32.const 35860 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 36256 + i32.const 34288 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -924,7 +899,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 36248 + i32.const 34280 i32.lt_u if local.get $0 @@ -1013,14 +988,14 @@ i32.ne if i32.const 0 - i32.const 1216 + i32.const 1168 i32.const 229 i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 36248 + i32.const 34280 i32.lt_u if local.get $0 @@ -1043,7 +1018,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 36248 + i32.const 34280 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1072,7 +1047,7 @@ end if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 562 i32.const 3 call $~lib/builtins/abort @@ -1102,85 +1077,18 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - 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.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/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.const -2 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 @@ -1188,11 +1096,7 @@ else local.get $0 i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.const -2 i32.and local.tee $1 if (result i32) @@ -1208,7 +1112,7 @@ i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 347 i32.const 18 call $~lib/builtins/abort @@ -1230,35 +1134,23 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (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.const 1073741804 - i32.ge_u - if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/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$70 + block $__inlined_func$~lib/rt/itcms/interrupt$69 i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1268,9 +1160,9 @@ i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 @@ -1293,86 +1185,31 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 - i32.add local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end + local.tee $1 i32.const 4 - local.get $4 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.add - i32.const 65535 + i32.const 65563 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $2 + local.get $1 local.get $3 i32.gt_s select @@ -1388,8 +1225,8 @@ unreachable end end - local.get $4 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size @@ -1397,136 +1234,119 @@ i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $5 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 28 + i32.lt_u if i32.const 0 - i32.const 1488 + i32.const 1440 i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1488 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 + local.tee $3 i32.const -4 i32.and - local.get $5 + i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.const 2 i32.and + i32.const 28 i32.or i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 + local.get $1 + i32.const 32 i32.add - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $5 + local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 local.get $1 - i32.store offset=12 - local.get $2 local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 local.get $1 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1534,269 +1354,39 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 + i32.const 0 i32.const 0 - local.get $0 memory.fill - local.get $1 + local.get $0 ) - (func $~lib/number/U32#toString (param $0 i32) (result i32) + (func $start:while + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - local.get $0 - 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 3480 - i32.lt_s - if - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1776 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end - global.get $~lib/memory/__stack_pointer - local.get $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 $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 1788 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - 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 1788 - 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 1788 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $start:while - (local $0 i32) - (local $1 i32) - (local $2 i32) - memory.size - i32.const 16 - i32.shl - i32.const 36248 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - i32.const 10 - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0 - end - end + i32.const 10 + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|0 + end + end local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 10 i32.const 3 call $~lib/builtins/abort @@ -1807,7 +1397,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 11 i32.const 3 call $~lib/builtins/abort @@ -1845,7 +1435,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 29 i32.const 5 call $~lib/builtins/abort @@ -1856,7 +1446,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 30 i32.const 5 call $~lib/builtins/abort @@ -1868,7 +1458,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 32 i32.const 3 call $~lib/builtins/abort @@ -1879,7 +1469,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 33 i32.const 3 call $~lib/builtins/abort @@ -1890,7 +1480,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 34 i32.const 3 call $~lib/builtins/abort @@ -1922,7 +1512,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 45 i32.const 3 call $~lib/builtins/abort @@ -1933,7 +1523,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 46 i32.const 3 call $~lib/builtins/abort @@ -1955,7 +1545,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 58 i32.const 3 call $~lib/builtins/abort @@ -1977,7 +1567,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 72 i32.const 1 call $~lib/builtins/abort @@ -1998,7 +1588,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 117 i32.const 3 call $~lib/builtins/abort @@ -2031,7 +1621,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 135 i32.const 3 call $~lib/builtins/abort @@ -2040,19 +1630,51 @@ local.get $1 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 136 i32.const 3 call $~lib/builtins/abort unreachable end + memory.size + i32.const 16 + i32.shl + i32.const 34280 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace 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 3480 + i32.const 1512 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2090,7 +1712,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 151 i32.const 3 call $~lib/builtins/abort @@ -2099,7 +1721,7 @@ local.get $0 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 152 i32.const 3 call $~lib/builtins/abort @@ -2114,7 +1736,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2150,7 +1772,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 171 i32.const 3 call $~lib/builtins/abort @@ -2159,7 +1781,7 @@ local.get $1 if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 172 i32.const 3 call $~lib/builtins/abort @@ -2207,7 +1829,7 @@ i32.ne if i32.const 0 - i32.const 3424 + i32.const 1056 i32.const 217 i32.const 3 call $~lib/builtins/abort @@ -2248,8 +1870,8 @@ global.set $~lib/rt/itcms/threshold return end - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2258,205 +1880,40 @@ (func $~start call $start:while ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 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 3480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 3480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$146 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1120 - local.set $0 - br $__inlined_func$~lib/string/String#concat$146 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36272 - i32.const 36320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s if - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1056 - local.get $0 - select - local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - i32.const 1088 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $2 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - i32.const 1552 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $3 - call $~lib/number/U32#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store - end + i32.store offset=4 local.get $0 - i32.const 3360 - i32.const 2626 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $while/Ref#constructor (result i32) (local $0 i32) @@ -2467,14 +1924,13 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 @@ -2488,7 +1944,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3480 + i32.const 1512 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2499,7 +1955,6 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2517,8 +1972,8 @@ local.get $0 return end - i32.const 36272 - i32.const 36320 + i32.const 34304 + i32.const 34352 i32.const 1 i32.const 1 call $~lib/builtins/abort From c035ce7c00ba740a716eec1b12cc85b8b27c2791 Mon Sep 17 00:00:00 2001 From: BlobMaster41 <96896824+BlobMaster41@users.noreply.github.com> Date: Sun, 8 Mar 2026 06:01:12 -0400 Subject: [PATCH 3/6] Add std assembly utilities; replace rtrace UMD Add several zero-overhead AssemblyScript utilities and types: Pointer, ByteSlice, Endian, Encoding (Hex/Varint/CompactSize) and BitFlags (new files std/assembly/pointer.ts, byteslice.ts, endian.ts, encoding.ts, bitflags.ts). Update std/assembly/index.d.ts to declare Pointer, ByteSlice, Endian, Encoding and BitFlags APIs. Make a small whitespace/annotation cleanup in std/assembly/rt.ts (__tostack signature). Note: lib/rtrace/umd/index.js was overwritten (the generated UMD runtime was removed and replaced with an installer prompt string); this looks accidental and should be reviewed. --- std/assembly/bitflags.ts | 45 ++++++++++ std/assembly/byteslice.ts | 176 ++++++++++++++++++++++++++++++++++++++ std/assembly/encoding.ts | 149 ++++++++++++++++++++++++++++++++ std/assembly/endian.ts | 45 ++++++++++ std/assembly/index.d.ts | 119 ++++++++++++++++++++++++++ std/assembly/pointer.ts | 80 +++++++++++++++++ std/assembly/rt.ts | 2 +- 7 files changed, 615 insertions(+), 1 deletion(-) create mode 100644 std/assembly/bitflags.ts create mode 100644 std/assembly/byteslice.ts create mode 100644 std/assembly/encoding.ts create mode 100644 std/assembly/endian.ts create mode 100644 std/assembly/pointer.ts diff --git a/std/assembly/bitflags.ts b/std/assembly/bitflags.ts new file mode 100644 index 0000000000..be4709ce84 --- /dev/null +++ b/std/assembly/bitflags.ts @@ -0,0 +1,45 @@ +// Type-safe bit manipulation utilities. +// Pure @inline functions — each compiles to 1-2 wasm instructions. + +export namespace BitFlags { + + /** Check if all bits in `bit` are set in `flags`. */ + @inline export function has(flags: T, bit: T): bool { + return (flags & bit) == bit; + } + + /** Check if any bits in `mask` are set in `flags`. */ + @inline export function hasAny(flags: T, mask: T): bool { + return (flags & mask) != 0; + } + + /** Test whether bit at `index` is set. */ + @inline export function test(flags: T, index: i32): bool { + return (flags & (1 << index)) != 0; + } + + /** Set bits from `bit` in `flags`. */ + @inline export function set(flags: T, bit: T): T { + return flags | bit; + } + + /** Clear bits from `bit` in `flags`. */ + @inline export function clear(flags: T, bit: T): T { + return flags & ~bit; + } + + /** Toggle bits from `bit` in `flags`. */ + @inline export function toggle(flags: T, bit: T): T { + return flags ^ bit; + } + + /** Count number of set bits (population count). */ + @inline export function popcount(flags: T): i32 { + return popcnt(flags); + } + + /** Check if no bits are set. */ + @inline export function isEmpty(flags: T): bool { + return flags == 0; + } +} diff --git a/std/assembly/byteslice.ts b/std/assembly/byteslice.ts new file mode 100644 index 0000000000..5212b98d09 --- /dev/null +++ b/std/assembly/byteslice.ts @@ -0,0 +1,176 @@ +/// + +import { Runtime } from "shared/runtime"; +import { Pointer } from "./pointer"; +import { E_INDEXOUTOFRANGE } from "./util/error"; + +// Zero-alloc memory view: pointer + length with bounds-checked endian-aware reads/writes. +// Unlike DataView, does not own an ArrayBuffer — the viewed memory is unowned/raw. + +@final +export class ByteSlice { + readonly ptr: usize; + readonly length: i32; + + constructor(ptr: usize, length: i32) { + this.ptr = ptr; + this.length = length; + } + + // --- Unsigned reads --- + + @inline getU8(offset: i32): u8 { + if (offset >= this.length) throw new RangeError(E_INDEXOUTOFRANGE); + return load(this.ptr + offset); + } + + @inline getU16(offset: i32, be: bool = true): u16 { + if ((offset >>> 31) | i32(offset + 2 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + let v = load(this.ptr + offset); + return be ? bswap(v) : v; + } + + @inline getU32(offset: i32, be: bool = true): u32 { + if ((offset >>> 31) | i32(offset + 4 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + let v = load(this.ptr + offset); + return be ? bswap(v) : v; + } + + @inline getU64(offset: i32, be: bool = true): u64 { + if ((offset >>> 31) | i32(offset + 8 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + let v = load(this.ptr + offset); + return be ? bswap(v) : v; + } + + // --- Signed reads --- + + @inline getI8(offset: i32): i8 { + if (offset >= this.length) throw new RangeError(E_INDEXOUTOFRANGE); + return load(this.ptr + offset); + } + + @inline getI16(offset: i32, be: bool = true): i16 { + if ((offset >>> 31) | i32(offset + 2 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + let v = load(this.ptr + offset); + return be ? bswap(v) : v; + } + + @inline getI32(offset: i32, be: bool = true): i32 { + if ((offset >>> 31) | i32(offset + 4 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + let v = load(this.ptr + offset); + return be ? bswap(v) : v; + } + + @inline getI64(offset: i32, be: bool = true): i64 { + if ((offset >>> 31) | i32(offset + 8 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + let v = load(this.ptr + offset); + return be ? bswap(v) : v; + } + + // --- Unsigned writes --- + + @inline setU8(offset: i32, value: u8): void { + if (offset >= this.length) throw new RangeError(E_INDEXOUTOFRANGE); + store(this.ptr + offset, value); + } + + @inline setU16(offset: i32, value: u16, be: bool = true): void { + if ((offset >>> 31) | i32(offset + 2 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + store(this.ptr + offset, be ? bswap(value) : value); + } + + @inline setU32(offset: i32, value: u32, be: bool = true): void { + if ((offset >>> 31) | i32(offset + 4 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + store(this.ptr + offset, be ? bswap(value) : value); + } + + @inline setU64(offset: i32, value: u64, be: bool = true): void { + if ((offset >>> 31) | i32(offset + 8 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + store(this.ptr + offset, be ? bswap(value) : value); + } + + // --- Signed writes --- + + @inline setI8(offset: i32, value: i8): void { + if (offset >= this.length) throw new RangeError(E_INDEXOUTOFRANGE); + store(this.ptr + offset, value); + } + + @inline setI16(offset: i32, value: i16, be: bool = true): void { + if ((offset >>> 31) | i32(offset + 2 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + store(this.ptr + offset, be ? bswap(value) : value); + } + + @inline setI32(offset: i32, value: i32, be: bool = true): void { + if ((offset >>> 31) | i32(offset + 4 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + store(this.ptr + offset, be ? bswap(value) : value); + } + + @inline setI64(offset: i32, value: i64, be: bool = true): void { + if ((offset >>> 31) | i32(offset + 8 > this.length)) throw new RangeError(E_INDEXOUTOFRANGE); + store(this.ptr + offset, be ? bswap(value) : value); + } + + // --- Byte indexing operators --- + + @operator("[]") private __get(index: i32): u8 { + if (index >= this.length) throw new RangeError(E_INDEXOUTOFRANGE); + return load(this.ptr + index); + } + + @operator("[]=") private __set(index: i32, value: u8): void { + if (index >= this.length) throw new RangeError(E_INDEXOUTOFRANGE); + store(this.ptr + index, value); + } + + // --- Bulk operations --- + + slice(start: i32, end: i32 = this.length): ByteSlice { + let len = this.length; + if (start < 0) start = max(len + start, 0); + if (end < 0) end = max(len + end, 0); + start = min(start, len); + end = min(end, len); + let newLen = max(end - start, 0); + return new ByteSlice(this.ptr + start, newLen); + } + + copyTo(dst: ByteSlice, dstOff: i32 = 0, srcOff: i32 = 0, count: i32 = this.length - srcOff): void { + if ( + (srcOff >>> 31) | i32(srcOff + count > this.length) | + (dstOff >>> 31) | i32(dstOff + count > dst.length) + ) throw new RangeError(E_INDEXOUTOFRANGE); + memory.copy(dst.ptr + dstOff, this.ptr + srcOff, count); + } + + fill(value: u8, start: i32 = 0, end: i32 = this.length): void { + let len = this.length; + if (start < 0) start = max(len + start, 0); + if (end < 0) end = max(len + end, 0); + start = min(start, len); + end = min(end, len); + if (start < end) { + memory.fill(this.ptr + start, value, (end - start)); + } + } + + equals(other: ByteSlice): bool { + if (this.length != other.length) return false; + if (this.length == 0) return true; + return memory.compare(this.ptr, other.ptr, this.length) == 0; + } + + toPointer(): Pointer { + return new Pointer(this.ptr); + } + + toString(): string { + return "[object ByteSlice]"; + } + + // RT integration — ptr is raw usize, not managed + + @unsafe private __visit(_cookie: u32): void { + // no-op: ptr is raw, not a managed reference + } +} diff --git a/std/assembly/encoding.ts b/std/assembly/encoding.ts new file mode 100644 index 0000000000..5a6a1eb640 --- /dev/null +++ b/std/assembly/encoding.ts @@ -0,0 +1,149 @@ +import { Pointer } from "./pointer"; + +// Hex and varint encoding utilities. +// Inline functions for zero-overhead encoding/decoding. + +export namespace Encoding { + + export namespace Hex { + /** Encode bytes at `src` (length `srcLen`) to hex chars at `dst`. Returns chars written (srcLen * 2). */ + @inline export function encode(src: usize, srcLen: i32, dst: usize): i32 { + for (let i: i32 = 0; i < srcLen; ++i) { + encodeByte(load(src + i), dst + (i << 1)); + } + return srcLen << 1; + } + + /** Decode hex chars at `src` (length `srcLen`, must be even) to bytes at `dst`. Returns bytes written, or -1 on error. */ + @inline export function decode(src: usize, srcLen: i32, dst: usize): i32 { + if (srcLen & 1) return -1; // odd length + let outLen = srcLen >> 1; + for (let i: i32 = 0; i < outLen; ++i) { + let b = decodeByte(src + (i << 1)); + if (b < 0) return -1; + store(dst + i, b); + } + return outLen; + } + + /** Encode a single byte to 2 hex chars at `dst`. */ + @inline export function encodeByte(value: u8, dst: usize): void { + let hi = (value >>> 4) & 0x0F; + let lo = value & 0x0F; + store(dst, hi < 10 ? hi + 48 : hi + 87); // '0'-'9' or 'a'-'f' + store(dst + 1, lo < 10 ? lo + 48 : lo + 87); + } + + /** Decode 2 hex chars at `src` to a byte value. Returns -1 on invalid input. */ + @inline export function decodeByte(src: usize): i32 { + let hi = decodeNibble(load(src)); + let lo = decodeNibble(load(src + 1)); + if ((hi | lo) < 0) return -1; + return (hi << 4) | lo; + } + + // Internal nibble decoder + @inline function decodeNibble(c: u8): i32 { + if (c >= 48 && c <= 57) return (c - 48); // '0'-'9' + if (c >= 97 && c <= 102) return (c - 87); // 'a'-'f' + if (c >= 65 && c <= 70) return (c - 55); // 'A'-'F' + return -1; + } + } + + export namespace Varint { + /** Encode a u32 as unsigned LEB128 at `dst`. Returns bytes written. */ + @inline export function encodeU32(value: u32, dst: usize): i32 { + let i: i32 = 0; + while (value >= 0x80) { + store(dst + i, ((value & 0x7F) | 0x80)); + value >>= 7; + ++i; + } + store(dst + i, value); + return i + 1; + } + + /** Encode a u64 as unsigned LEB128 at `dst`. Returns bytes written. */ + @inline export function encodeU64(value: u64, dst: usize): i32 { + let i: i32 = 0; + while (value >= 0x80) { + store(dst + i, (((value & 0x7F)) | 0x80)); + value >>= 7; + ++i; + } + store(dst + i, value); + return i + 1; + } + + /** Decode an unsigned LEB128-encoded u32 from `src`. Writes bytes consumed to `bytesRead`. */ + @inline export function decodeU32(src: usize, bytesRead: Pointer): u32 { + let result: u32 = 0; + let shift: u32 = 0; + let i: i32 = 0; + let b: u8; + do { + b = load(src + i); + result |= (b & 0x7F) << shift; + shift += 7; + ++i; + } while (b & 0x80); + bytesRead.value = i; + return result; + } + + /** Decode an unsigned LEB128-encoded u64 from `src`. Writes bytes consumed to `bytesRead`. */ + @inline export function decodeU64(src: usize, bytesRead: Pointer): u64 { + let result: u64 = 0; + let shift: u64 = 0; + let i: i32 = 0; + let b: u8; + do { + b = load(src + i); + result |= (b & 0x7F) << shift; + shift += 7; + ++i; + } while (b & 0x80); + bytesRead.value = i; + return result; + } + + /** Encode a u64 as Bitcoin CompactSize at `dst`. Returns bytes written. */ + @inline export function encodeCompact(value: u64, dst: usize): i32 { + if (value < 0xFD) { + store(dst, value); + return 1; + } else if (value <= 0xFFFF) { + store(dst, 0xFD); + store(dst + 1, value); // LE + return 3; + } else if (value <= 0xFFFFFFFF) { + store(dst, 0xFE); + store(dst + 1, value); // LE + return 5; + } else { + store(dst, 0xFF); + store(dst + 1, value); // LE + return 9; + } + } + + /** Decode a Bitcoin CompactSize from `src`. Writes bytes consumed to `bytesRead`. */ + @inline export function decodeCompact(src: usize, bytesRead: Pointer): u64 { + let first = load(src); + if (first < 0xFD) { + bytesRead.value = 1; + return first; + } else if (first == 0xFD) { + bytesRead.value = 3; + return load(src + 1); + } else if (first == 0xFE) { + bytesRead.value = 5; + return load(src + 1); + } else { + bytesRead.value = 9; + return load(src + 1); + } + } + } +} diff --git a/std/assembly/endian.ts b/std/assembly/endian.ts new file mode 100644 index 0000000000..508049a101 --- /dev/null +++ b/std/assembly/endian.ts @@ -0,0 +1,45 @@ +// Zero-overhead endian conversion utilities. +// Wasm is little-endian; protocols (Bitcoin, networking) often need big-endian. + +export namespace Endian { + + /** Load a value from memory in big-endian byte order. */ + @inline export function loadBE(ptr: usize, offset: usize = 0): T { + return bswap(load(ptr + offset)); + } + + /** Store a value to memory in big-endian byte order. */ + @inline export function storeBE(ptr: usize, value: T, offset: usize = 0): void { + store(ptr + offset, bswap(value)); + } + + /** Load a value from memory in little-endian byte order (identity on wasm). */ + @inline export function loadLE(ptr: usize, offset: usize = 0): T { + return load(ptr + offset); + } + + /** Store a value to memory in little-endian byte order (identity on wasm). */ + @inline export function storeLE(ptr: usize, value: T, offset: usize = 0): void { + store(ptr + offset, value); + } + + /** Convert a value to big-endian byte order (bswap on wasm). */ + @inline export function toBE(value: T): T { + return bswap(value); + } + + /** Convert a value from big-endian byte order (bswap on wasm). */ + @inline export function fromBE(value: T): T { + return bswap(value); + } + + /** Convert a value to little-endian byte order (identity on wasm). */ + @inline export function toLE(value: T): T { + return value; + } + + /** Convert a value from little-endian byte order (identity on wasm). */ + @inline export function fromLE(value: T): T { + return value; + } +} diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 81c9d813e0..0a966e217a 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2417,6 +2417,125 @@ declare class Set { toString(): string; } +/** Zero-overhead typed pointer. `@unmanaged` — no allocation, no GC. */ +declare class Pointer { + /** Creates a pointer from a raw byte offset. */ + constructor(offset?: usize); + /** The raw byte offset. */ + readonly offset: usize; + /** Dereferences the pointer (load/store). */ + value: T; + /** Returns true if the pointer is null (offset == 0). */ + isNull(): bool; + /** Returns true if this pointer has the same offset as `other`. */ + equals(other: Pointer): bool; + /** Copies `count` elements from this pointer to `dst`. */ + copyTo(dst: Pointer, count: i32): void; + /** Returns a null pointer. */ + static null(): Pointer; + [key: number]: T; +} + +/** Zero-overhead endian conversion utilities. */ +declare namespace Endian { + /** Load a value from memory in big-endian byte order. */ + function loadBE(ptr: usize, offset?: usize): T; + /** Store a value to memory in big-endian byte order. */ + function storeBE(ptr: usize, value: T, offset?: usize): void; + /** Load a value from memory in little-endian byte order (identity on wasm). */ + function loadLE(ptr: usize, offset?: usize): T; + /** Store a value to memory in little-endian byte order (identity on wasm). */ + function storeLE(ptr: usize, value: T, offset?: usize): void; + /** Convert a value to big-endian byte order (bswap on wasm). */ + function toBE(value: T): T; + /** Convert a value from big-endian byte order (bswap on wasm). */ + function fromBE(value: T): T; + /** Convert a value to little-endian byte order (identity on wasm). */ + function toLE(value: T): T; + /** Convert a value from little-endian byte order (identity on wasm). */ + function fromLE(value: T): T; +} + +/** Zero-alloc memory view with bounds-checked endian-aware reads/writes. */ +declare class ByteSlice { + /** The raw pointer to the viewed memory. */ + readonly ptr: usize; + /** The length of the view in bytes. */ + readonly length: i32; + constructor(ptr: usize, length: i32); + getU8(offset: i32): u8; + getU16(offset: i32, be?: bool): u16; + getU32(offset: i32, be?: bool): u32; + getU64(offset: i32, be?: bool): u64; + getI8(offset: i32): i8; + getI16(offset: i32, be?: bool): i16; + getI32(offset: i32, be?: bool): i32; + getI64(offset: i32, be?: bool): i64; + setU8(offset: i32, value: u8): void; + setU16(offset: i32, value: u16, be?: bool): void; + setU32(offset: i32, value: u32, be?: bool): void; + setU64(offset: i32, value: u64, be?: bool): void; + setI8(offset: i32, value: i8): void; + setI16(offset: i32, value: i16, be?: bool): void; + setI32(offset: i32, value: i32, be?: bool): void; + setI64(offset: i32, value: i64, be?: bool): void; + slice(start: i32, end?: i32): ByteSlice; + copyTo(dst: ByteSlice, dstOff?: i32, srcOff?: i32, count?: i32): void; + fill(value: u8, start?: i32, end?: i32): void; + equals(other: ByteSlice): bool; + toPointer(): Pointer; + toString(): string; + [key: number]: u8; +} + +/** Type-safe bit manipulation utilities. */ +declare namespace BitFlags { + /** Check if all bits in `bit` are set in `flags`. */ + function has(flags: T, bit: T): bool; + /** Check if any bits in `mask` are set in `flags`. */ + function hasAny(flags: T, mask: T): bool; + /** Test whether bit at `index` is set. */ + function test(flags: T, index: i32): bool; + /** Set bits from `bit` in `flags`. */ + function set(flags: T, bit: T): T; + /** Clear bits from `bit` in `flags`. */ + function clear(flags: T, bit: T): T; + /** Toggle bits from `bit` in `flags`. */ + function toggle(flags: T, bit: T): T; + /** Count number of set bits. */ + function popcount(flags: T): i32; + /** Check if no bits are set. */ + function isEmpty(flags: T): bool; +} + +/** Hex and varint encoding utilities. */ +declare namespace Encoding { + namespace Hex { + /** Encode bytes to hex chars. Returns chars written. */ + function encode(src: usize, srcLen: i32, dst: usize): i32; + /** Decode hex chars to bytes. Returns bytes written, -1 on error. */ + function decode(src: usize, srcLen: i32, dst: usize): i32; + /** Encode a single byte to 2 hex chars. */ + function encodeByte(value: u8, dst: usize): void; + /** Decode 2 hex chars to a byte. Returns -1 on error. */ + function decodeByte(src: usize): i32; + } + namespace Varint { + /** Encode u32 as unsigned LEB128. Returns bytes written. */ + function encodeU32(value: u32, dst: usize): i32; + /** Encode u64 as unsigned LEB128. Returns bytes written. */ + function encodeU64(value: u64, dst: usize): i32; + /** Decode unsigned LEB128 u32. */ + function decodeU32(src: usize, bytesRead: Pointer): u32; + /** Decode unsigned LEB128 u64. */ + function decodeU64(src: usize, bytesRead: Pointer): u64; + /** Encode u64 as Bitcoin CompactSize. Returns bytes written. */ + function encodeCompact(value: u64, dst: usize): i32; + /** Decode Bitcoin CompactSize. */ + function decodeCompact(src: usize, bytesRead: Pointer): u64; + } +} + declare class FixedMap { constructor(initialCapacity?: i32); readonly size: i32; diff --git a/std/assembly/pointer.ts b/std/assembly/pointer.ts new file mode 100644 index 0000000000..732a433f22 --- /dev/null +++ b/std/assembly/pointer.ts @@ -0,0 +1,80 @@ +// Zero-overhead typed pointer. @unmanaged + changetype = no allocation, no GC. +// Promoted from tests/compiler/std/pointer.ts experiment. + +@final @unmanaged +export class Pointer { + + @inline constructor(offset: usize = 0) { + return changetype>(offset); + } + + @inline get offset(): usize { + return changetype(this); + } + + @inline get value(): T { + if (isReference()) { + return changetype(changetype(this)); + } else { + return load(changetype(this)); + } + } + + @inline set value(value: T) { + if (isReference()) { + if (isManaged()) ERROR("Unsafe unmanaged set of a managed object"); + if (value == null) { + memory.fill(changetype(this), 0, offsetof()); + } else { + memory.copy(changetype(this), changetype(value), offsetof()); + } + } else { + store(changetype(this), value); + } + } + + @inline @operator("+") add(other: Pointer): Pointer { + return changetype>(changetype(this) + changetype(other)); + } + + @inline @operator("-") sub(other: Pointer): Pointer { + return changetype>(changetype(this) - changetype(other)); + } + + @inline @operator.prefix("++") inc(): Pointer { + const size = isReference() ? offsetof() : sizeof(); + return changetype>(changetype(this) + size); + } + + @inline @operator.prefix("--") dec(): Pointer { + const size = isReference() ? offsetof() : sizeof(); + return changetype>(changetype(this) - size); + } + + @inline @operator("[]") get(index: i32): T { + const size = isReference() ? offsetof() : sizeof(); + return load(changetype(this) + (index * size)); + } + + @inline @operator("[]=") set(index: i32, value: T): void { + const size = isReference() ? offsetof() : sizeof(); + store(changetype(this) + (index * size), value); + } + + @inline isNull(): bool { + return changetype(this) == 0; + } + + @inline equals(other: Pointer): bool { + return changetype(this) == changetype(other); + } + + @inline copyTo(dst: Pointer, count: i32): void { + const size = isReference() ? offsetof() : sizeof(); + memory.copy(changetype(dst), changetype(this), count * size); + } + + @inline static null(): Pointer { + return changetype>(0); + } +} diff --git a/std/assembly/rt.ts b/std/assembly/rt.ts index 7c6d9d9b7e..afa7aa0ab5 100644 --- a/std/assembly/rt.ts +++ b/std/assembly/rt.ts @@ -51,7 +51,7 @@ export function __newArray(length: i32, alignLog2: usize, id: u32, data: usize = // @ts-ignore: decorator @global @unsafe -export function __tostack(ptr: usize): usize { // eslint-disable-line +export function __tostack(ptr: usize): usize { return ptr; } From c2ee55a0b434af6d6fa09aa0370ed4fa52323484 Mon Sep 17 00:00:00 2001 From: BlobMaster41 <96896824+BlobMaster41@users.noreply.github.com> Date: Sun, 8 Mar 2026 06:09:40 -0400 Subject: [PATCH 4/6] Add integer checks & endian defaults in std Constrain bitflag generics to integer types and add runtime checks: BitFlags functions now use T extends number and call isInteger() to validate, emitting ERROR for non-integer usage. ByteSlice: remove unused Runtime import, import E_INVALIDLENGTH, validate constructor length (throws RangeError on negative), and tighten copyTo bounds-check by guarding count sign. Encoding: document and enforce LEB128 byte limits (max 5 bytes for u32, 10 for u64) to avoid infinite loops. index.d.ts: add Pointer operator overloads, annotate ByteSlice methods as big-endian by default and add be param docs/defaults, and update BitFlags declarations to require integer types. Add/modify compiler tests for bitflags, byteslice, encoding, endian, fixedarray, fixedmap, fixedset and adjust pointer tests to reflect changes. --- std/assembly/bitflags.ts | 24 +- std/assembly/byteslice.ts | 5 +- std/assembly/encoding.ts | 6 +- std/assembly/index.d.ts | 64 +- tests/compiler/std/bitflags.debug.wat | 577 + tests/compiler/std/bitflags.json | 4 + tests/compiler/std/bitflags.release.wat | 4 + tests/compiler/std/bitflags.ts | 48 + tests/compiler/std/byteslice.debug.wat | 5144 ++++++ tests/compiler/std/byteslice.json | 4 + tests/compiler/std/byteslice.release.wat | 3199 ++++ tests/compiler/std/byteslice.ts | 112 + tests/compiler/std/encoding.debug.wat | 3472 ++++ tests/compiler/std/encoding.json | 4 + tests/compiler/std/encoding.release.wat | 1812 ++ tests/compiler/std/encoding.ts | 140 + tests/compiler/std/endian.debug.wat | 689 + tests/compiler/std/endian.json | 4 + tests/compiler/std/endian.release.wat | 222 + tests/compiler/std/endian.ts | 45 + tests/compiler/std/fixedarray.debug.wat | 11167 ++++++++++++ tests/compiler/std/fixedarray.json | 4 + tests/compiler/std/fixedarray.release.wat | 7340 ++++++++ tests/compiler/std/fixedarray.ts | 88 + tests/compiler/std/fixedmap.debug.wat | 19158 ++++++++++++++++++++ tests/compiler/std/fixedmap.json | 4 + tests/compiler/std/fixedmap.release.wat | 13684 ++++++++++++++ tests/compiler/std/fixedmap.ts | 99 + tests/compiler/std/fixedset.debug.wat | 16224 +++++++++++++++++ tests/compiler/std/fixedset.json | 4 + tests/compiler/std/fixedset.release.wat | 11242 ++++++++++++ tests/compiler/std/fixedset.ts | 91 + tests/compiler/std/pointer.debug.wat | 457 +- tests/compiler/std/pointer.release.wat | 128 +- tests/compiler/std/pointer.ts | 93 +- 35 files changed, 95140 insertions(+), 222 deletions(-) create mode 100644 tests/compiler/std/bitflags.debug.wat create mode 100644 tests/compiler/std/bitflags.json create mode 100644 tests/compiler/std/bitflags.release.wat create mode 100644 tests/compiler/std/bitflags.ts create mode 100644 tests/compiler/std/byteslice.debug.wat create mode 100644 tests/compiler/std/byteslice.json create mode 100644 tests/compiler/std/byteslice.release.wat create mode 100644 tests/compiler/std/byteslice.ts create mode 100644 tests/compiler/std/encoding.debug.wat create mode 100644 tests/compiler/std/encoding.json create mode 100644 tests/compiler/std/encoding.release.wat create mode 100644 tests/compiler/std/encoding.ts create mode 100644 tests/compiler/std/endian.debug.wat create mode 100644 tests/compiler/std/endian.json create mode 100644 tests/compiler/std/endian.release.wat create mode 100644 tests/compiler/std/endian.ts create mode 100644 tests/compiler/std/fixedarray.debug.wat create mode 100644 tests/compiler/std/fixedarray.json create mode 100644 tests/compiler/std/fixedarray.release.wat create mode 100644 tests/compiler/std/fixedarray.ts create mode 100644 tests/compiler/std/fixedmap.debug.wat create mode 100644 tests/compiler/std/fixedmap.json create mode 100644 tests/compiler/std/fixedmap.release.wat create mode 100644 tests/compiler/std/fixedmap.ts create mode 100644 tests/compiler/std/fixedset.debug.wat create mode 100644 tests/compiler/std/fixedset.json create mode 100644 tests/compiler/std/fixedset.release.wat create mode 100644 tests/compiler/std/fixedset.ts diff --git a/std/assembly/bitflags.ts b/std/assembly/bitflags.ts index be4709ce84..6f07d99dac 100644 --- a/std/assembly/bitflags.ts +++ b/std/assembly/bitflags.ts @@ -4,42 +4,50 @@ export namespace BitFlags { /** Check if all bits in `bit` are set in `flags`. */ - @inline export function has(flags: T, bit: T): bool { + @inline export function has(flags: T, bit: T): bool { + if (!isInteger()) ERROR("BitFlags requires an integer type"); return (flags & bit) == bit; } /** Check if any bits in `mask` are set in `flags`. */ - @inline export function hasAny(flags: T, mask: T): bool { + @inline export function hasAny(flags: T, mask: T): bool { + if (!isInteger()) ERROR("BitFlags requires an integer type"); return (flags & mask) != 0; } /** Test whether bit at `index` is set. */ - @inline export function test(flags: T, index: i32): bool { + @inline export function test(flags: T, index: i32): bool { + if (!isInteger()) ERROR("BitFlags requires an integer type"); return (flags & (1 << index)) != 0; } /** Set bits from `bit` in `flags`. */ - @inline export function set(flags: T, bit: T): T { + @inline export function set(flags: T, bit: T): T { + if (!isInteger()) ERROR("BitFlags requires an integer type"); return flags | bit; } /** Clear bits from `bit` in `flags`. */ - @inline export function clear(flags: T, bit: T): T { + @inline export function clear(flags: T, bit: T): T { + if (!isInteger()) ERROR("BitFlags requires an integer type"); return flags & ~bit; } /** Toggle bits from `bit` in `flags`. */ - @inline export function toggle(flags: T, bit: T): T { + @inline export function toggle(flags: T, bit: T): T { + if (!isInteger()) ERROR("BitFlags requires an integer type"); return flags ^ bit; } /** Count number of set bits (population count). */ - @inline export function popcount(flags: T): i32 { + @inline export function popcount(flags: T): i32 { + if (!isInteger()) ERROR("BitFlags requires an integer type"); return popcnt(flags); } /** Check if no bits are set. */ - @inline export function isEmpty(flags: T): bool { + @inline export function isEmpty(flags: T): bool { + if (!isInteger()) ERROR("BitFlags requires an integer type"); return flags == 0; } } diff --git a/std/assembly/byteslice.ts b/std/assembly/byteslice.ts index 5212b98d09..d5d472db0d 100644 --- a/std/assembly/byteslice.ts +++ b/std/assembly/byteslice.ts @@ -1,8 +1,7 @@ /// -import { Runtime } from "shared/runtime"; import { Pointer } from "./pointer"; -import { E_INDEXOUTOFRANGE } from "./util/error"; +import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH } from "./util/error"; // Zero-alloc memory view: pointer + length with bounds-checked endian-aware reads/writes. // Unlike DataView, does not own an ArrayBuffer — the viewed memory is unowned/raw. @@ -13,6 +12,7 @@ export class ByteSlice { readonly length: i32; constructor(ptr: usize, length: i32) { + if (length < 0) throw new RangeError(E_INVALIDLENGTH); this.ptr = ptr; this.length = length; } @@ -137,6 +137,7 @@ export class ByteSlice { copyTo(dst: ByteSlice, dstOff: i32 = 0, srcOff: i32 = 0, count: i32 = this.length - srcOff): void { if ( + (count >>> 31) | (srcOff >>> 31) | i32(srcOff + count > this.length) | (dstOff >>> 31) | i32(dstOff + count > dst.length) ) throw new RangeError(E_INDEXOUTOFRANGE); diff --git a/std/assembly/encoding.ts b/std/assembly/encoding.ts index 5a6a1eb640..758a8b2002 100644 --- a/std/assembly/encoding.ts +++ b/std/assembly/encoding.ts @@ -76,7 +76,7 @@ export namespace Encoding { return i + 1; } - /** Decode an unsigned LEB128-encoded u32 from `src`. Writes bytes consumed to `bytesRead`. */ + /** Decode an unsigned LEB128-encoded u32 from `src`. Writes bytes consumed to `bytesRead`. Max 5 bytes. */ @inline export function decodeU32(src: usize, bytesRead: Pointer): u32 { let result: u32 = 0; let shift: u32 = 0; @@ -87,12 +87,13 @@ export namespace Encoding { result |= (b & 0x7F) << shift; shift += 7; ++i; + if (i >= 5) break; // u32 needs at most 5 LEB128 bytes } while (b & 0x80); bytesRead.value = i; return result; } - /** Decode an unsigned LEB128-encoded u64 from `src`. Writes bytes consumed to `bytesRead`. */ + /** Decode an unsigned LEB128-encoded u64 from `src`. Writes bytes consumed to `bytesRead`. Max 10 bytes. */ @inline export function decodeU64(src: usize, bytesRead: Pointer): u64 { let result: u64 = 0; let shift: u64 = 0; @@ -103,6 +104,7 @@ export namespace Encoding { result |= (b & 0x7F) << shift; shift += 7; ++i; + if (i >= 10) break; // u64 needs at most 10 LEB128 bytes } while (b & 0x80); bytesRead.value = i; return result; diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 0a966e217a..b980b65c2b 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2425,6 +2425,14 @@ declare class Pointer { readonly offset: usize; /** Dereferences the pointer (load/store). */ value: T; + /** Add raw byte offsets of two pointers. */ + @operator("+") add(other: Pointer): Pointer; + /** Subtract raw byte offsets of two pointers. */ + @operator("-") sub(other: Pointer): Pointer; + /** Increment pointer by sizeof bytes. */ + @operator.prefix("++") inc(): Pointer; + /** Decrement pointer by sizeof bytes. */ + @operator.prefix("--") dec(): Pointer; /** Returns true if the pointer is null (offset == 0). */ isNull(): bool; /** Returns true if this pointer has the same offset as `other`. */ @@ -2456,7 +2464,7 @@ declare namespace Endian { function fromLE(value: T): T; } -/** Zero-alloc memory view with bounds-checked endian-aware reads/writes. */ +/** Zero-alloc memory view with bounds-checked endian-aware reads/writes. Big-endian by default. */ declare class ByteSlice { /** The raw pointer to the viewed memory. */ readonly ptr: usize; @@ -2464,21 +2472,33 @@ declare class ByteSlice { readonly length: i32; constructor(ptr: usize, length: i32); getU8(offset: i32): u8; - getU16(offset: i32, be?: bool): u16; - getU32(offset: i32, be?: bool): u32; - getU64(offset: i32, be?: bool): u64; + /** @param be Big-endian byte order (default: `true`). */ + getU16(offset: i32, be?: bool /* = true */): u16; + /** @param be Big-endian byte order (default: `true`). */ + getU32(offset: i32, be?: bool /* = true */): u32; + /** @param be Big-endian byte order (default: `true`). */ + getU64(offset: i32, be?: bool /* = true */): u64; getI8(offset: i32): i8; - getI16(offset: i32, be?: bool): i16; - getI32(offset: i32, be?: bool): i32; - getI64(offset: i32, be?: bool): i64; + /** @param be Big-endian byte order (default: `true`). */ + getI16(offset: i32, be?: bool /* = true */): i16; + /** @param be Big-endian byte order (default: `true`). */ + getI32(offset: i32, be?: bool /* = true */): i32; + /** @param be Big-endian byte order (default: `true`). */ + getI64(offset: i32, be?: bool /* = true */): i64; setU8(offset: i32, value: u8): void; - setU16(offset: i32, value: u16, be?: bool): void; - setU32(offset: i32, value: u32, be?: bool): void; - setU64(offset: i32, value: u64, be?: bool): void; + /** @param be Big-endian byte order (default: `true`). */ + setU16(offset: i32, value: u16, be?: bool /* = true */): void; + /** @param be Big-endian byte order (default: `true`). */ + setU32(offset: i32, value: u32, be?: bool /* = true */): void; + /** @param be Big-endian byte order (default: `true`). */ + setU64(offset: i32, value: u64, be?: bool /* = true */): void; setI8(offset: i32, value: i8): void; - setI16(offset: i32, value: i16, be?: bool): void; - setI32(offset: i32, value: i32, be?: bool): void; - setI64(offset: i32, value: i64, be?: bool): void; + /** @param be Big-endian byte order (default: `true`). */ + setI16(offset: i32, value: i16, be?: bool /* = true */): void; + /** @param be Big-endian byte order (default: `true`). */ + setI32(offset: i32, value: i32, be?: bool /* = true */): void; + /** @param be Big-endian byte order (default: `true`). */ + setI64(offset: i32, value: i64, be?: bool /* = true */): void; slice(start: i32, end?: i32): ByteSlice; copyTo(dst: ByteSlice, dstOff?: i32, srcOff?: i32, count?: i32): void; fill(value: u8, start?: i32, end?: i32): void; @@ -2488,24 +2508,24 @@ declare class ByteSlice { [key: number]: u8; } -/** Type-safe bit manipulation utilities. */ +/** Type-safe bit manipulation utilities. Integer types only. */ declare namespace BitFlags { /** Check if all bits in `bit` are set in `flags`. */ - function has(flags: T, bit: T): bool; + function has(flags: T, bit: T): bool; /** Check if any bits in `mask` are set in `flags`. */ - function hasAny(flags: T, mask: T): bool; + function hasAny(flags: T, mask: T): bool; /** Test whether bit at `index` is set. */ - function test(flags: T, index: i32): bool; + function test(flags: T, index: i32): bool; /** Set bits from `bit` in `flags`. */ - function set(flags: T, bit: T): T; + function set(flags: T, bit: T): T; /** Clear bits from `bit` in `flags`. */ - function clear(flags: T, bit: T): T; + function clear(flags: T, bit: T): T; /** Toggle bits from `bit` in `flags`. */ - function toggle(flags: T, bit: T): T; + function toggle(flags: T, bit: T): T; /** Count number of set bits. */ - function popcount(flags: T): i32; + function popcount(flags: T): i32; /** Check if no bits are set. */ - function isEmpty(flags: T): bool; + function isEmpty(flags: T): bool; } /** Hex and varint encoding utilities. */ diff --git a/tests/compiler/std/bitflags.debug.wat b/tests/compiler/std/bitflags.debug.wat new file mode 100644 index 0000000000..21f585ea42 --- /dev/null +++ b/tests/compiler/std/bitflags.debug.wat @@ -0,0 +1,577 @@ +(module + (type $0 (func)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32776)) + (global $~lib/memory/__heap_base i32 (i32.const 32776)) + (memory $0 0) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $start:std/bitflags + (local $flags i32) + (local $bit i32) + (local $flags|2 i32) + (local $bit|3 i32) + (local $flags|4 i32) + (local $bit|5 i32) + (local $flags|6 i32) + (local $mask i32) + (local $flags|8 i32) + (local $mask|9 i32) + (local $flags|10 i32) + (local $index i32) + (local $flags|12 i32) + (local $index|13 i32) + (local $flags|14 i32) + (local $index|15 i32) + (local $flags|16 i32) + (local $bit|17 i32) + (local $flags|18 i32) + (local $bit|19 i32) + (local $flags|20 i32) + (local $bit|21 i32) + (local $flags|22 i32) + (local $bit|23 i32) + (local $flags|24 i32) + (local $bit|25 i32) + (local $flags|26 i32) + (local $bit|27 i32) + (local $flags|28 i32) + (local $flags|29 i32) + (local $flags|30 i32) + (local $flags|31 i32) + (local $flags|32 i32) + (local $flags|33 i32) + (local $flags|34 i64) + (local $bit|35 i64) + (local $flags|36 i64) + (local $index|37 i32) + (local $flags|38 i64) + (local $index|39 i32) + (local $flags|40 i64) + (local $flags|41 i64) + (local $bit|42 i64) + (local $flags|43 i64) + (local $bit|44 i64) + (local $flags|45 i64) + (local $bit|46 i64) + (local $flags|47 i64) + (local $flags|48 i64) + block $~lib/bitflags/BitFlags.has|inlined.0 (result i32) + i32.const 15 + local.set $flags + i32.const 5 + local.set $bit + i32.const 1 + i32.eqz + drop + local.get $flags + local.get $bit + i32.and + local.get $bit + i32.eq + br $~lib/bitflags/BitFlags.has|inlined.0 + end + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.has|inlined.1 (result i32) + i32.const 10 + local.set $flags|2 + i32.const 5 + local.set $bit|3 + i32.const 1 + i32.eqz + drop + local.get $flags|2 + local.get $bit|3 + i32.and + local.get $bit|3 + i32.eq + br $~lib/bitflags/BitFlags.has|inlined.1 + end + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + block $~lib/bitflags/BitFlags.has|inlined.2 (result i32) + i32.const 15 + local.set $flags|4 + i32.const 0 + local.set $bit|5 + i32.const 1 + i32.eqz + drop + local.get $flags|4 + local.get $bit|5 + i32.and + local.get $bit|5 + i32.eq + br $~lib/bitflags/BitFlags.has|inlined.2 + end + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.hasAny|inlined.0 (result i32) + i32.const 10 + local.set $flags|6 + i32.const 2 + local.set $mask + i32.const 1 + i32.eqz + drop + local.get $flags|6 + local.get $mask + i32.and + i32.const 0 + i32.ne + br $~lib/bitflags/BitFlags.hasAny|inlined.0 + end + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.hasAny|inlined.1 (result i32) + i32.const 8 + local.set $flags|8 + i32.const 5 + local.set $mask|9 + i32.const 1 + i32.eqz + drop + local.get $flags|8 + local.get $mask|9 + i32.and + i32.const 0 + i32.ne + br $~lib/bitflags/BitFlags.hasAny|inlined.1 + end + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + block $~lib/bitflags/BitFlags.test|inlined.0 (result i32) + i32.const 10 + local.set $flags|10 + i32.const 1 + local.set $index + i32.const 1 + i32.eqz + drop + local.get $flags|10 + i32.const 1 + local.get $index + i32.shl + i32.and + i32.const 0 + i32.ne + br $~lib/bitflags/BitFlags.test|inlined.0 + end + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.test|inlined.1 (result i32) + i32.const 10 + local.set $flags|12 + i32.const 0 + local.set $index|13 + i32.const 1 + i32.eqz + drop + local.get $flags|12 + i32.const 1 + local.get $index|13 + i32.shl + i32.and + i32.const 0 + i32.ne + br $~lib/bitflags/BitFlags.test|inlined.1 + end + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + block $~lib/bitflags/BitFlags.test|inlined.2 (result i32) + i32.const 10 + local.set $flags|14 + i32.const 3 + local.set $index|15 + i32.const 1 + i32.eqz + drop + local.get $flags|14 + i32.const 1 + local.get $index|15 + i32.shl + i32.and + i32.const 0 + i32.ne + br $~lib/bitflags/BitFlags.test|inlined.2 + end + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.set|inlined.0 (result i32) + i32.const 8 + local.set $flags|16 + i32.const 1 + local.set $bit|17 + i32.const 1 + i32.eqz + drop + local.get $flags|16 + local.get $bit|17 + i32.or + br $~lib/bitflags/BitFlags.set|inlined.0 + end + i32.const 9 + i32.eq + drop + block $~lib/bitflags/BitFlags.set|inlined.1 (result i32) + i32.const 10 + local.set $flags|18 + i32.const 4 + local.set $bit|19 + i32.const 1 + i32.eqz + drop + local.get $flags|18 + local.get $bit|19 + i32.or + br $~lib/bitflags/BitFlags.set|inlined.1 + end + i32.const 14 + i32.eq + drop + block $~lib/bitflags/BitFlags.clear|inlined.0 (result i32) + i32.const 15 + local.set $flags|20 + i32.const 5 + local.set $bit|21 + i32.const 1 + i32.eqz + drop + local.get $flags|20 + local.get $bit|21 + i32.const -1 + i32.xor + i32.and + br $~lib/bitflags/BitFlags.clear|inlined.0 + end + i32.const 10 + i32.eq + drop + block $~lib/bitflags/BitFlags.clear|inlined.1 (result i32) + i32.const 10 + local.set $flags|22 + i32.const 2 + local.set $bit|23 + i32.const 1 + i32.eqz + drop + local.get $flags|22 + local.get $bit|23 + i32.const -1 + i32.xor + i32.and + br $~lib/bitflags/BitFlags.clear|inlined.1 + end + i32.const 8 + i32.eq + drop + block $~lib/bitflags/BitFlags.toggle|inlined.0 (result i32) + i32.const 10 + local.set $flags|24 + i32.const 6 + local.set $bit|25 + i32.const 1 + i32.eqz + drop + local.get $flags|24 + local.get $bit|25 + i32.xor + br $~lib/bitflags/BitFlags.toggle|inlined.0 + end + i32.const 12 + i32.eq + drop + block $~lib/bitflags/BitFlags.toggle|inlined.1 (result i32) + i32.const 15 + local.set $flags|26 + i32.const 15 + local.set $bit|27 + i32.const 1 + i32.eqz + drop + local.get $flags|26 + local.get $bit|27 + i32.xor + br $~lib/bitflags/BitFlags.toggle|inlined.1 + end + i32.const 0 + i32.eq + drop + block $~lib/bitflags/BitFlags.popcount|inlined.0 (result i32) + i32.const 0 + local.set $flags|28 + i32.const 1 + i32.eqz + drop + local.get $flags|28 + i32.popcnt + br $~lib/bitflags/BitFlags.popcount|inlined.0 + end + i32.const 0 + i32.eq + drop + block $~lib/bitflags/BitFlags.popcount|inlined.1 (result i32) + i32.const 1 + local.set $flags|29 + i32.const 1 + i32.eqz + drop + local.get $flags|29 + i32.popcnt + br $~lib/bitflags/BitFlags.popcount|inlined.1 + end + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.popcount|inlined.2 (result i32) + i32.const 10 + local.set $flags|30 + i32.const 1 + i32.eqz + drop + local.get $flags|30 + i32.popcnt + br $~lib/bitflags/BitFlags.popcount|inlined.2 + end + i32.const 2 + i32.eq + drop + block $~lib/bitflags/BitFlags.popcount|inlined.3 (result i32) + i32.const -1 + local.set $flags|31 + i32.const 1 + i32.eqz + drop + local.get $flags|31 + i32.popcnt + br $~lib/bitflags/BitFlags.popcount|inlined.3 + end + i32.const 32 + i32.eq + drop + block $~lib/bitflags/BitFlags.isEmpty|inlined.0 (result i32) + i32.const 0 + local.set $flags|32 + i32.const 1 + i32.eqz + drop + local.get $flags|32 + i32.const 0 + i32.eq + br $~lib/bitflags/BitFlags.isEmpty|inlined.0 + end + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.isEmpty|inlined.1 (result i32) + i32.const 1 + local.set $flags|33 + i32.const 1 + i32.eqz + drop + local.get $flags|33 + i32.const 0 + i32.eq + br $~lib/bitflags/BitFlags.isEmpty|inlined.1 + end + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + block $~lib/bitflags/BitFlags.has|inlined.0 (result i32) + i64.const -1 + local.set $flags|34 + i64.const -9223372036854775808 + local.set $bit|35 + i32.const 1 + i32.eqz + drop + local.get $flags|34 + local.get $bit|35 + i64.and + local.get $bit|35 + i64.eq + br $~lib/bitflags/BitFlags.has|inlined.0 + end + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.test|inlined.0 (result i32) + i64.const -9223372036854775808 + local.set $flags|36 + i32.const 63 + local.set $index|37 + i32.const 1 + i32.eqz + drop + local.get $flags|36 + i64.const 1 + local.get $index|37 + i64.extend_i32_s + i64.shl + i64.and + i64.const 0 + i64.ne + br $~lib/bitflags/BitFlags.test|inlined.0 + end + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.test|inlined.1 (result i32) + i64.const -9223372036854775808 + local.set $flags|38 + i32.const 0 + local.set $index|39 + i32.const 1 + i32.eqz + drop + local.get $flags|38 + i64.const 1 + local.get $index|39 + i64.extend_i32_s + i64.shl + i64.and + i64.const 0 + i64.ne + br $~lib/bitflags/BitFlags.test|inlined.1 + end + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + block $~lib/bitflags/BitFlags.popcount|inlined.0 (result i32) + i64.const -1 + local.set $flags|40 + i32.const 1 + i32.eqz + drop + local.get $flags|40 + i64.popcnt + i32.wrap_i64 + br $~lib/bitflags/BitFlags.popcount|inlined.0 + end + i32.const 64 + i32.eq + drop + block $~lib/bitflags/BitFlags.set|inlined.0 (result i64) + i64.const 0 + local.set $flags|41 + i64.const -9223372036854775808 + local.set $bit|42 + i32.const 1 + i32.eqz + drop + local.get $flags|41 + local.get $bit|42 + i64.or + br $~lib/bitflags/BitFlags.set|inlined.0 + end + i64.const -9223372036854775808 + i64.eq + drop + block $~lib/bitflags/BitFlags.clear|inlined.0 (result i64) + i64.const -1 + local.set $flags|43 + i64.const -9223372036854775808 + local.set $bit|44 + i32.const 1 + i32.eqz + drop + local.get $flags|43 + local.get $bit|44 + i64.const -1 + i64.xor + i64.and + br $~lib/bitflags/BitFlags.clear|inlined.0 + end + i64.const 9223372036854775807 + i64.eq + drop + block $~lib/bitflags/BitFlags.toggle|inlined.0 (result i64) + i64.const 0 + local.set $flags|45 + i64.const -6148914691236517206 + local.set $bit|46 + i32.const 1 + i32.eqz + drop + local.get $flags|45 + local.get $bit|46 + i64.xor + br $~lib/bitflags/BitFlags.toggle|inlined.0 + end + i64.const -6148914691236517206 + i64.eq + drop + block $~lib/bitflags/BitFlags.isEmpty|inlined.0 (result i32) + i64.const 0 + local.set $flags|47 + i32.const 1 + i32.eqz + drop + local.get $flags|47 + i64.const 0 + i64.eq + br $~lib/bitflags/BitFlags.isEmpty|inlined.0 + end + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + block $~lib/bitflags/BitFlags.isEmpty|inlined.1 (result i32) + i64.const 1 + local.set $flags|48 + i32.const 1 + i32.eqz + drop + local.get $flags|48 + i64.const 0 + i64.eq + br $~lib/bitflags/BitFlags.isEmpty|inlined.1 + end + i32.const 0 + i32.ne + i32.const 0 + i32.eq + drop + ) + (func $~start + call $start:std/bitflags + ) +) diff --git a/tests/compiler/std/bitflags.json b/tests/compiler/std/bitflags.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/std/bitflags.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/std/bitflags.release.wat b/tests/compiler/std/bitflags.release.wat new file mode 100644 index 0000000000..23da3862e2 --- /dev/null +++ b/tests/compiler/std/bitflags.release.wat @@ -0,0 +1,4 @@ +(module + (memory $0 0) + (export "memory" (memory $0)) +) diff --git a/tests/compiler/std/bitflags.ts b/tests/compiler/std/bitflags.ts new file mode 100644 index 0000000000..0d5c958282 --- /dev/null +++ b/tests/compiler/std/bitflags.ts @@ -0,0 +1,48 @@ +import { BitFlags } from "bitflags"; + +// Test has +assert(BitFlags.has(0b1111, 0b0101) == true); +assert(BitFlags.has(0b1010, 0b0101) == false); +assert(BitFlags.has(0b1111, 0b0000) == true); // 0 is always "has" + +// Test hasAny +assert(BitFlags.hasAny(0b1010, 0b0010) == true); +assert(BitFlags.hasAny(0b1000, 0b0101) == false); + +// Test test (single bit) +assert(BitFlags.test(0b1010, 1) == true); +assert(BitFlags.test(0b1010, 0) == false); +assert(BitFlags.test(0b1010, 3) == true); + +// Test set +assert(BitFlags.set(0b1000, 0b0001) == 0b1001); +assert(BitFlags.set(0b1010, 0b0100) == 0b1110); + +// Test clear +assert(BitFlags.clear(0b1111, 0b0101) == 0b1010); +assert(BitFlags.clear(0b1010, 0b0010) == 0b1000); + +// Test toggle +assert(BitFlags.toggle(0b1010, 0b0110) == 0b1100); +assert(BitFlags.toggle(0b1111, 0b1111) == 0b0000); + +// Test popcount +assert(BitFlags.popcount(0) == 0); +assert(BitFlags.popcount(1) == 1); +assert(BitFlags.popcount(0b1010) == 2); +assert(BitFlags.popcount(0xFFFFFFFF) == 32); + +// Test isEmpty +assert(BitFlags.isEmpty(0) == true); +assert(BitFlags.isEmpty(1) == false); + +// Test with u64 +assert(BitFlags.has(0xFFFFFFFFFFFFFFFF, 0x8000000000000000) == true); +assert(BitFlags.test(0x8000000000000000, 63) == true); +assert(BitFlags.test(0x8000000000000000, 0) == false); +assert(BitFlags.popcount(0xFFFFFFFFFFFFFFFF) == 64); +assert(BitFlags.set(0, 0x8000000000000000) == 0x8000000000000000); +assert(BitFlags.clear(0xFFFFFFFFFFFFFFFF, 0x8000000000000000) == 0x7FFFFFFFFFFFFFFF); +assert(BitFlags.toggle(0, 0xAAAAAAAAAAAAAAAA) == 0xAAAAAAAAAAAAAAAA); +assert(BitFlags.isEmpty(0) == true); +assert(BitFlags.isEmpty(1) == false); diff --git a/tests/compiler/std/byteslice.debug.wat b/tests/compiler/std/byteslice.debug.wat new file mode 100644 index 0000000000..8ff1872434 --- /dev/null +++ b/tests/compiler/std/byteslice.debug.wat @@ -0,0 +1,5144 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (type $11 (func (param i64) (result i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $std/byteslice/BASE i32 (i32.const 8192)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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/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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (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 $std/byteslice/s (mut i32) (i32.const 0)) + (global $std/byteslice/WBASE i32 (i32.const 8448)) + (global $std/byteslice/w (mut i32) (i32.const 0)) + (global $std/byteslice/sub (mut i32) (i32.const 0)) + (global $std/byteslice/FBASE i32 (i32.const 8704)) + (global $std/byteslice/f (mut i32) (i32.const 0)) + (global $std/byteslice/a (mut i32) (i32.const 0)) + (global $std/byteslice/b (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $std/byteslice/CBASE i32 (i32.const 8960)) + (global $std/byteslice/c (mut i32) (i32.const 0)) + (global $std/byteslice/d (mut i32) (i32.const 0)) + (global $std/byteslice/DBASE i32 (i32.const 9216)) + (global $std/byteslice/src (mut i32) (i32.const 0)) + (global $std/byteslice/dst (mut i32) (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $std/byteslice/p (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 592)) + (global $~lib/memory/__data_end i32 (i32.const 616)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33384)) + (global $~lib/memory/__heap_base i32 (i32.const 33384)) + (memory $0 1) + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00~\00l\00i\00b\00/\00b\00y\00t\00e\00s\00l\00i\00c\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00s\00t\00d\00/\00b\00y\00t\00e\00s\00l\00i\00c\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 592) "\05\00\00\00 \00\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 "memory" (memory $0)) + (start $~start) + (func $~lib/byteslice/ByteSlice#set:ptr (param $this i32) (param $ptr i32) + local.get $this + local.get $ptr + i32.store + ) + (func $~lib/byteslice/ByteSlice#set:length (param $this i32) (param $length i32) + local.get $this + local.get $length + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:prev + local.get $space + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev + i32.const 1 + drop + local.get $prev + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u + if + i32.const 336 + i32.const 400 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + return + ) + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 208 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + 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 $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr + i32.eqz + if + return + end + local.get $ptr + i32.const 20 + i32.sub + local.set $obj + i32.const 0 + drop + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $obj + 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 $cookie i32) + (local $ptr i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end + end + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) + i32.const 4 + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $6 i32) + (local $7 i32) + (local $boundedSize i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) + (local $head i32) + (local $root|18 i32) + (local $fl|19 i32) + (local $slMap i32) + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + i32.eq + if + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + local.get $slMap + i32.eqz + if + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + 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 $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) + (local $left i32) + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo + i32.const 1 + drop + local.get $leftInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo + i32.const 4 + i32.add + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $right + i32.const 4 + i32.sub + local.get $block + i32.store + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + local.set $head + local.get $block + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + 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 $start + local.get $end + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $end + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + local.set $tail + i32.const 0 + local.set $tailInfo + local.get $tail + if + i32.const 1 + drop + local.get $start + local.get $tail + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo + else + end + else + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart 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 $rootOffset + memory.size + local.set $pagesBefore + local.get $rootOffset + 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 $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) + local.get $pagesNeeded + local.get $pagesBefore + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $sl + i32.const 1 + i32.add + local.set $sl + br $for-loop|1 + end + end + local.get $fl + i32.const 1 + i32.add + local.set $fl + br $for-loop|0 + end + end + local.get $rootOffset + i32.const 1572 + i32.add + local.set $memStart + i32.const 0 + drop + local.get $root + local.get $memStart + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr + i32.const 4 + i32.sub + local.set $block + local.get $ptr + i32.const 0 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) + i32.const 0 + drop + local.get $block + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + 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 $ptr + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $from 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 $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + 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 $obj + local.get $obj + 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 $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + 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 $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $obj + 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 208 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $obj + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (local $budget 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 $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step + i32.sub + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop + global.get $~lib/rt/itcms/total + i32.const 200 + i32.const 100 + i32.div_u + i32.mul + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $budget + 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 $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $size + 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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 144 + i32.const 480 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size + i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $size + end + return + ) + (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + local.get $requestSize + i32.clz + i32.sub + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + i32.const 0 + i32.const -1 + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap + i32.const 0 + local.set $head + local.get $slMap + i32.eqz + if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 0 + i32.const -1 + i32.xor + local.get $fl + i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz + if + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) + i32.const 0 + drop + local.get $size + i32.const 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block + i32.eqz + if + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $block + return + ) + (func $~lib/rt/tlsf/__alloc (param $size 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 $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u + if + i32.const 144 + i32.const 208 + i32.const 261 + i32.const 31 + call $~lib/builtins/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 $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill + local.get $ptr + return + ) + (func $~lib/byteslice/ByteSlice#get:length (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/byteslice/ByteSlice#get:ptr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/polyfills/bswap (param $value i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $value + i32.const 8 + i32.const 15 + i32.and + i32.shl + local.get $value + i32.const 65535 + i32.and + i32.const 8 + i32.const 15 + i32.and + i32.shr_u + i32.or + return + ) + (func $~lib/polyfills/bswap (param $value i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $value + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $value + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + return + ) + (func $~lib/polyfills/bswap (param $value i64) (result i64) + (local $a i64) + (local $b i64) + (local $v i64) + i32.const 1 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $value + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.set $a + local.get $value + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + local.set $b + local.get $a + local.get $b + i64.or + local.set $v + local.get $v + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.set $a + local.get $v + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + local.set $b + local.get $a + local.get $b + i64.or + i64.const 32 + i64.rotr + return + ) + (func $~start + call $start:std/byteslice + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33408 + i32.const 33456 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber 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 + i32.const 0 + drop + local.get $message + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/byteslice/ByteSlice#constructor (param $this i32) (param $ptr i32) (param $length i32) (result i32) + (local $3 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + call $~lib/byteslice/ByteSlice#set:ptr + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + call $~lib/byteslice/ByteSlice#set:length + local.get $length + i32.const 0 + i32.lt_s + if + i32.const 32 + i32.const 80 + i32.const 15 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $ptr + call $~lib/byteslice/ByteSlice#set:ptr + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $length + call $~lib/byteslice/ByteSlice#set:length + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/byteslice/ByteSlice#__get (param $this i32) (param $index 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 $index + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 117 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $index + i32.add + i32.load8_u + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/byteslice/ByteSlice#__set (param $this i32) (param $index i32) (param $value 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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 122 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $index + i32.add + local.get $value + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/byteslice/ByteSlice#slice (param $this i32) (param $start i32) (param $end i32) (result i32) + (local $len 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 $newLen i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/byteslice/ByteSlice#get:length + local.set $len + local.get $start + i32.const 0 + i32.lt_s + if + local.get $len + local.get $start + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $start + end + local.get $end + i32.const 0 + i32.lt_s + if + local.get $len + local.get $end + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + local.set $end + end + local.get $start + local.tee $8 + local.get $len + local.tee $9 + local.get $8 + local.get $9 + i32.lt_s + select + local.set $start + local.get $end + local.tee $10 + local.get $len + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + local.set $end + local.get $end + local.get $start + i32.sub + local.tee $12 + i32.const 0 + local.tee $13 + local.get $12 + local.get $13 + i32.gt_s + select + local.set $newLen + i32.const 0 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $start + i32.add + local.get $newLen + call $~lib/byteslice/ByteSlice#constructor + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/byteslice/ByteSlice#fill (param $this i32) (param $value i32) (param $start i32) (param $end i32) + (local $len 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/byteslice/ByteSlice#get:length + local.set $len + local.get $start + i32.const 0 + i32.lt_s + if + local.get $len + local.get $start + i32.add + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $start + end + local.get $end + i32.const 0 + i32.lt_s + if + local.get $len + local.get $end + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $end + end + local.get $start + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + local.set $start + local.get $end + local.tee $11 + local.get $len + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + local.set $end + local.get $start + local.get $end + i32.lt_s + if + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $start + i32.add + local.get $value + local.get $end + local.get $start + i32.sub + memory.fill + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/byteslice/ByteSlice#equals (param $this i32) (param $other i32) (result i32) + (local $vl i32) + (local $vr i32) + (local $n i32) + (local $vl|5 i32) + (local $vr|6 i32) + (local $n|7 i32) + (local $a i32) + (local $b i32) + (local $10 i32) + (local $a|11 i32) + (local $b|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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/byteslice/ByteSlice#get:length + local.get $other + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/byteslice/ByteSlice#get:length + i32.ne + if + i32.const 0 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + return + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/byteslice/ByteSlice#get:length + i32.const 0 + i32.eq + if + i32.const 1 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + return + end + block $~lib/memory/memory.compare|inlined.0 (result i32) + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/byteslice/ByteSlice#get:ptr + local.set $vl + local.get $other + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/byteslice/ByteSlice#get:ptr + local.set $vr + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/byteslice/ByteSlice#get:length + local.set $n + block $~lib/util/memory/memcmp|inlined.0 (result i32) + local.get $vl + local.set $vl|5 + local.get $vr + local.set $vr|6 + local.get $n + local.set $n|7 + local.get $vl|5 + local.get $vr|6 + i32.eq + if + i32.const 0 + br $~lib/util/memory/memcmp|inlined.0 + end + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $vl|5 + i32.const 7 + i32.and + local.get $vr|6 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $vl|5 + i32.const 7 + i32.and + if + local.get $n|7 + i32.eqz + if + i32.const 0 + br $~lib/util/memory/memcmp|inlined.0 + end + local.get $vl|5 + i32.load8_u + local.set $a + local.get $vr|6 + i32.load8_u + local.set $b + local.get $a + local.get $b + i32.ne + if + local.get $a + local.get $b + i32.sub + br $~lib/util/memory/memcmp|inlined.0 + end + local.get $n|7 + i32.const 1 + i32.sub + local.set $n|7 + local.get $vl|5 + i32.const 1 + i32.add + local.set $vl|5 + local.get $vr|6 + i32.const 1 + i32.add + local.set $vr|6 + br $while-continue|0 + end + end + block $while-break|1 + loop $while-continue|1 + local.get $n|7 + i32.const 8 + i32.ge_u + if + local.get $vl|5 + i64.load + local.get $vr|6 + i64.load + i64.ne + if + br $while-break|1 + end + local.get $vl|5 + i32.const 8 + i32.add + local.set $vl|5 + local.get $vr|6 + i32.const 8 + i32.add + local.set $vr|6 + local.get $n|7 + i32.const 8 + i32.sub + local.set $n|7 + br $while-continue|1 + end + end + end + end + loop $while-continue|2 + local.get $n|7 + local.tee $10 + i32.const 1 + i32.sub + local.set $n|7 + local.get $10 + if + local.get $vl|5 + i32.load8_u + local.set $a|11 + local.get $vr|6 + i32.load8_u + local.set $b|12 + local.get $a|11 + local.get $b|12 + i32.ne + if + local.get $a|11 + local.get $b|12 + i32.sub + br $~lib/util/memory/memcmp|inlined.0 + end + local.get $vl|5 + i32.const 1 + i32.add + local.set $vl|5 + local.get $vr|6 + i32.const 1 + i32.add + local.set $vr|6 + br $while-continue|2 + end + end + i32.const 0 + br $~lib/util/memory/memcmp|inlined.0 + end + br $~lib/memory/memory.compare|inlined.0 + end + i32.const 0 + i32.eq + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + return + ) + (func $~lib/byteslice/ByteSlice#copyTo (param $this i32) (param $dst i32) (param $dstOff i32) (param $srcOff i32) (param $count i32) + (local $5 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 $count + i32.const 31 + i32.shr_u + local.get $srcOff + i32.const 31 + i32.shr_u + i32.or + local.get $srcOff + local.get $count + i32.add + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + local.get $dstOff + i32.const 31 + i32.shr_u + i32.or + local.get $dstOff + local.get $count + i32.add + local.get $dst + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 143 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $dst + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $dstOff + i32.add + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $srcOff + i32.add + local.get $count + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/byteslice/ByteSlice#copyTo@varargs (param $this i32) (param $dst i32) (param $dstOff i32) (param $srcOff i32) (param $count i32) + (local $5 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 + block $3of3 + block $2of3 + block $1of3 + block $0of3 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of3 $1of3 $2of3 $3of3 $outOfRange + end + unreachable + end + i32.const 0 + local.set $dstOff + end + i32.const 0 + local.set $srcOff + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/byteslice/ByteSlice#get:length + local.get $srcOff + i32.sub + local.set $count + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $dst + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $dstOff + local.get $srcOff + local.get $count + call $~lib/byteslice/ByteSlice#copyTo + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/byteslice/ByteSlice#toPointer (param $this i32) (result i32) + (local $this|1 i32) + (local $offset 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 + block $~lib/pointer/Pointer#constructor|inlined.0 (result i32) + i32.const 0 + local.set $this|1 + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/byteslice/ByteSlice#get:ptr + local.set $offset + local.get $offset + br $~lib/pointer/Pointer#constructor|inlined.0 + end + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $start:std/byteslice + (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) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i64) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i64) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i64) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i64) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + global.get $~lib/memory/__stack_pointer + i32.const 104 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 104 + memory.fill + global.get $std/byteslice/BASE + i32.const 1 + i32.store8 + global.get $std/byteslice/BASE + i32.const 1 + i32.add + i32.const 2 + i32.store8 + global.get $std/byteslice/BASE + i32.const 2 + i32.add + i32.const 3 + i32.store8 + global.get $std/byteslice/BASE + i32.const 3 + i32.add + i32.const 4 + i32.store8 + global.get $std/byteslice/BASE + i32.const 4 + i32.add + i32.const 5 + i32.store8 + global.get $std/byteslice/BASE + i32.const 5 + i32.add + i32.const 6 + i32.store8 + global.get $std/byteslice/BASE + i32.const 6 + i32.add + i32.const 7 + i32.store8 + global.get $std/byteslice/BASE + i32.const 7 + i32.add + i32.const 8 + i32.store8 + 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 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 288 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 432 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + global.get $std/byteslice/BASE + i32.const 16 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/s + block $~lib/byteslice/ByteSlice#getU8|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store + i32.const 0 + local.set $1 + local.get $1 + local.get $0 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $1 + i32.add + i32.load8_u + br $~lib/byteslice/ByteSlice#getU8|inlined.0 + end + i32.const 255 + i32.and + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU8|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $2 + i32.store offset=8 + i32.const 1 + local.set $3 + local.get $3 + local.get $2 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $3 + i32.add + i32.load8_u + br $~lib/byteslice/ByteSlice#getU8|inlined.1 + end + i32.const 255 + i32.and + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/byteslice/s + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + i32.const 0 + call $~lib/byteslice/ByteSlice#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/byteslice/s + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + i32.const 1 + call $~lib/byteslice/ByteSlice#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU16|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $4 + i32.store offset=12 + i32.const 0 + local.set $5 + i32.const 1 + local.set $6 + local.get $5 + i32.const 31 + i32.shr_u + local.get $5 + i32.const 2 + i32.add + local.get $4 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 28 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $5 + i32.add + i32.load16_u + local.set $7 + local.get $6 + if (result i32) + local.get $7 + call $~lib/polyfills/bswap + else + local.get $7 + end + br $~lib/byteslice/ByteSlice#getU16|inlined.0 + end + i32.const 65535 + i32.and + i32.const 258 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU16|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $8 + i32.store offset=16 + i32.const 0 + local.set $9 + i32.const 0 + local.set $10 + local.get $9 + i32.const 31 + i32.shr_u + local.get $9 + i32.const 2 + i32.add + local.get $8 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 28 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $8 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $9 + i32.add + i32.load16_u + local.set $11 + local.get $10 + if (result i32) + local.get $11 + call $~lib/polyfills/bswap + else + local.get $11 + end + br $~lib/byteslice/ByteSlice#getU16|inlined.1 + end + i32.const 65535 + i32.and + i32.const 513 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU32|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $12 + i32.store offset=20 + i32.const 0 + local.set $13 + i32.const 1 + local.set $14 + local.get $13 + i32.const 31 + i32.shr_u + local.get $13 + i32.const 4 + i32.add + local.get $12 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 34 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $12 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $13 + i32.add + i32.load + local.set $15 + local.get $14 + if (result i32) + local.get $15 + call $~lib/polyfills/bswap + else + local.get $15 + end + br $~lib/byteslice/ByteSlice#getU32|inlined.0 + end + i32.const 16909060 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU32|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $16 + i32.store offset=24 + i32.const 0 + local.set $17 + i32.const 0 + local.set $18 + local.get $17 + i32.const 31 + i32.shr_u + local.get $17 + i32.const 4 + i32.add + local.get $16 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 34 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $16 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $17 + i32.add + i32.load + local.set $19 + local.get $18 + if (result i32) + local.get $19 + call $~lib/polyfills/bswap + else + local.get $19 + end + br $~lib/byteslice/ByteSlice#getU32|inlined.1 + end + i32.const 67305985 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU64|inlined.0 (result i64) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $20 + i32.store offset=28 + i32.const 0 + local.set $21 + i32.const 1 + local.set $22 + local.get $21 + i32.const 31 + i32.shr_u + local.get $21 + i32.const 8 + i32.add + local.get $20 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 40 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $20 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $21 + i32.add + i64.load + local.set $23 + local.get $22 + if (result i64) + local.get $23 + call $~lib/polyfills/bswap + else + local.get $23 + end + br $~lib/byteslice/ByteSlice#getU64|inlined.0 + end + i64.const 72623859790382856 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU64|inlined.1 (result i64) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $24 + i32.store offset=32 + i32.const 0 + local.set $25 + i32.const 0 + local.set $26 + local.get $25 + i32.const 31 + i32.shr_u + local.get $25 + i32.const 8 + i32.add + local.get $24 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 40 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $24 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $25 + i32.add + i64.load + local.set $27 + local.get $26 + if (result i64) + local.get $27 + call $~lib/polyfills/bswap + else + local.get $27 + end + br $~lib/byteslice/ByteSlice#getU64|inlined.1 + end + i64.const 578437695752307201 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getI8|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $28 + i32.store offset=36 + i32.const 0 + local.set $29 + local.get $29 + local.get $28 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 48 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $28 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $29 + i32.add + i32.load8_s + br $~lib/byteslice/ByteSlice#getI8|inlined.0 + end + i32.extend8_s + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.get $std/byteslice/WBASE + i32.const 32 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/w + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $30 + i32.store offset=40 + i32.const 0 + local.set $31 + i32.const 170 + local.set $32 + local.get $31 + local.get $30 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 73 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $30 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $31 + i32.add + local.get $32 + i32.store8 + block $~lib/byteslice/ByteSlice#getU8|inlined.2 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $33 + i32.store offset=44 + i32.const 0 + local.set $34 + local.get $34 + local.get $33 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $33 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $34 + i32.add + i32.load8_u + br $~lib/byteslice/ByteSlice#getU8|inlined.2 + end + i32.const 255 + i32.and + i32.const 170 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $35 + i32.store offset=48 + i32.const 2 + local.set $36 + i32.const 258 + local.set $37 + i32.const 1 + local.set $38 + local.get $36 + i32.const 31 + i32.shr_u + local.get $36 + i32.const 2 + i32.add + local.get $35 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 78 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $35 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $36 + i32.add + local.get $38 + if (result i32) + local.get $37 + call $~lib/polyfills/bswap + else + local.get $37 + end + i32.store16 + block $~lib/byteslice/ByteSlice#getU16|inlined.2 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $39 + i32.store offset=52 + i32.const 2 + local.set $40 + i32.const 1 + local.set $41 + local.get $40 + i32.const 31 + i32.shr_u + local.get $40 + i32.const 2 + i32.add + local.get $39 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 28 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $39 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $40 + i32.add + i32.load16_u + local.set $42 + local.get $41 + if (result i32) + local.get $42 + call $~lib/polyfills/bswap + else + local.get $42 + end + br $~lib/byteslice/ByteSlice#getU16|inlined.2 + end + i32.const 65535 + i32.and + i32.const 258 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/byteslice/WBASE + i32.const 2 + i32.add + i32.load16_u + i32.const 513 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 55 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $43 + i32.store offset=56 + i32.const 4 + local.set $44 + i32.const 16909060 + local.set $45 + i32.const 1 + local.set $46 + local.get $44 + i32.const 31 + i32.shr_u + local.get $44 + i32.const 4 + i32.add + local.get $43 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 83 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $43 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $44 + i32.add + local.get $46 + if (result i32) + local.get $45 + call $~lib/polyfills/bswap + else + local.get $45 + end + i32.store + block $~lib/byteslice/ByteSlice#getU32|inlined.2 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $47 + i32.store offset=60 + i32.const 4 + local.set $48 + i32.const 1 + local.set $49 + local.get $48 + i32.const 31 + i32.shr_u + local.get $48 + i32.const 4 + i32.add + local.get $47 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 34 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $47 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $48 + i32.add + i32.load + local.set $50 + local.get $49 + if (result i32) + local.get $50 + call $~lib/polyfills/bswap + else + local.get $50 + end + br $~lib/byteslice/ByteSlice#getU32|inlined.2 + end + i32.const 16909060 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 58 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $51 + i32.store offset=64 + i32.const 8 + local.set $52 + i64.const 72623859790382856 + local.set $53 + i32.const 1 + local.set $54 + local.get $52 + i32.const 31 + i32.shr_u + local.get $52 + i32.const 8 + i32.add + local.get $51 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 88 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $51 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $52 + i32.add + local.get $54 + if (result i64) + local.get $53 + call $~lib/polyfills/bswap + else + local.get $53 + end + i64.store + block $~lib/byteslice/ByteSlice#getU64|inlined.2 (result i64) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $55 + i32.store offset=68 + i32.const 8 + local.set $56 + i32.const 1 + local.set $57 + local.get $56 + i32.const 31 + i32.shr_u + local.get $56 + i32.const 8 + i32.add + local.get $55 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 40 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $55 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $56 + i32.add + i64.load + local.set $58 + local.get $57 + if (result i64) + local.get $58 + call $~lib/polyfills/bswap + else + local.get $58 + end + br $~lib/byteslice/ByteSlice#getU64|inlined.2 + end + i64.const 72623859790382856 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 61 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $59 + i32.store offset=72 + i32.const 16 + local.set $60 + i32.const -1430532899 + local.set $61 + i32.const 0 + local.set $62 + local.get $60 + i32.const 31 + i32.shr_u + local.get $60 + i32.const 4 + i32.add + local.get $59 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.gt_s + i32.or + if + i32.const 336 + i32.const 80 + i32.const 83 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + local.get $59 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $60 + i32.add + local.get $62 + if (result i32) + local.get $61 + call $~lib/polyfills/bswap + else + local.get $61 + end + i32.store + global.get $std/byteslice/WBASE + i32.const 16 + i32.add + i32.load + i32.const -1430532899 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 65 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/byteslice/w + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + i32.const 0 + i32.const 187 + call $~lib/byteslice/ByteSlice#__set + global.get $std/byteslice/w + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + i32.const 0 + call $~lib/byteslice/ByteSlice#__get + i32.const 187 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 69 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/byteslice/s + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + i32.const 2 + i32.const 6 + call $~lib/byteslice/ByteSlice#slice + global.set $std/byteslice/sub + global.get $std/byteslice/sub + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU8|inlined.3 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/sub + local.tee $63 + i32.store offset=76 + i32.const 0 + local.set $64 + local.get $64 + local.get $63 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $63 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $64 + i32.add + i32.load8_u + br $~lib/byteslice/ByteSlice#getU8|inlined.3 + end + i32.const 255 + i32.and + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU8|inlined.4 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/sub + local.tee $65 + i32.store offset=80 + i32.const 3 + local.set $66 + local.get $66 + local.get $65 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $65 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $66 + i32.add + i32.load8_u + br $~lib/byteslice/ByteSlice#getU8|inlined.4 + end + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 75 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.get $std/byteslice/FBASE + i32.const 16 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/f + global.get $std/byteslice/f + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + i32.const 255 + i32.const 0 + i32.const 8 + call $~lib/byteslice/ByteSlice#fill + block $~lib/byteslice/ByteSlice#getU8|inlined.5 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/f + local.tee $67 + i32.store offset=84 + i32.const 0 + local.set $68 + local.get $68 + local.get $67 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $67 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $68 + i32.add + i32.load8_u + br $~lib/byteslice/ByteSlice#getU8|inlined.5 + end + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 81 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU8|inlined.6 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/f + local.tee $69 + i32.store offset=88 + i32.const 7 + local.set $70 + local.get $70 + local.get $69 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $69 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $70 + i32.add + i32.load8_u + br $~lib/byteslice/ByteSlice#getU8|inlined.6 + end + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 82 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.get $std/byteslice/BASE + i32.const 4 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/a + i32.const 0 + global.get $std/byteslice/BASE + i32.const 4 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/b + global.get $std/byteslice/a + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + global.get $std/byteslice/b + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=92 + local.get $77 + call $~lib/byteslice/ByteSlice#equals + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/byteslice/CBASE + global.get $std/byteslice/BASE + i32.const 4 + memory.copy + i32.const 0 + global.get $std/byteslice/CBASE + i32.const 4 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/c + global.get $std/byteslice/a + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + global.get $std/byteslice/c + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=92 + local.get $77 + call $~lib/byteslice/ByteSlice#equals + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/byteslice/CBASE + i32.const 255 + i32.store8 + i32.const 0 + global.get $std/byteslice/CBASE + i32.const 4 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/d + global.get $std/byteslice/a + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + global.get $std/byteslice/d + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=92 + local.get $77 + call $~lib/byteslice/ByteSlice#equals + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 98 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.get $std/byteslice/BASE + i32.const 8 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/src + i32.const 0 + global.get $std/byteslice/DBASE + i32.const 16 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/dst + global.get $std/byteslice/dst + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + i32.const 0 + i32.const 0 + i32.const 16 + call $~lib/byteslice/ByteSlice#fill + global.get $std/byteslice/src + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + global.get $std/byteslice/dst + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=92 + local.get $77 + i32.const 0 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/byteslice/ByteSlice#copyTo@varargs + block $~lib/byteslice/ByteSlice#getU8|inlined.7 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/dst + local.tee $71 + i32.store offset=96 + i32.const 0 + local.set $72 + local.get $72 + local.get $71 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $71 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $72 + i32.add + i32.load8_u + br $~lib/byteslice/ByteSlice#getU8|inlined.7 + end + i32.const 255 + i32.and + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/byteslice/ByteSlice#getU8|inlined.8 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/dst + local.tee $73 + i32.store offset=100 + i32.const 7 + local.set $74 + local.get $74 + local.get $73 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:length + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $73 + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#get:ptr + local.get $74 + i32.add + i32.load8_u + br $~lib/byteslice/ByteSlice#getU8|inlined.8 + end + i32.const 255 + i32.and + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/byteslice/s + local.set $77 + global.get $~lib/memory/__stack_pointer + local.get $77 + i32.store offset=4 + local.get $77 + call $~lib/byteslice/ByteSlice#toPointer + global.set $std/byteslice/p + block $~lib/pointer/Pointer#get:offset|inlined.0 (result i32) + global.get $std/byteslice/p + local.set $75 + local.get $75 + br $~lib/pointer/Pointer#get:offset|inlined.0 + end + global.get $std/byteslice/BASE + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get:value|inlined.0 (result i32) + global.get $std/byteslice/p + local.set $76 + i32.const 0 + drop + local.get $76 + i32.load8_u + br $~lib/pointer/Pointer#get:value|inlined.0 + end + i32.const 255 + i32.and + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 104 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/byteslice/s + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/w + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/sub + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/f + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/a + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/b + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/c + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/d + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/src + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/dst + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 336 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 144 + 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 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/byteslice/ByteSlice#__visit (param $this i32) (param $_cookie i32) + ) + (func $~lib/byteslice/ByteSlice~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/byteslice/ByteSlice#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/byteslice/ByteSlice + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/byteslice/ByteSlice $invalid + end + return + 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/byteslice/ByteSlice~visit + return + end + unreachable + ) +) diff --git a/tests/compiler/std/byteslice.json b/tests/compiler/std/byteslice.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/std/byteslice.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/std/byteslice.release.wat b/tests/compiler/std/byteslice.release.wat new file mode 100644 index 0000000000..cbc8796712 --- /dev/null +++ b/tests/compiler/std/byteslice.release.wat @@ -0,0 +1,3199 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (param i32) (result i32))) + (type $8 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (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/byteslice/s (mut i32) (i32.const 0)) + (global $std/byteslice/w (mut i32) (i32.const 0)) + (global $std/byteslice/sub (mut i32) (i32.const 0)) + (global $std/byteslice/f (mut i32) (i32.const 0)) + (global $std/byteslice/a (mut i32) (i32.const 0)) + (global $std/byteslice/b (mut i32) (i32.const 0)) + (global $std/byteslice/c (mut i32) (i32.const 0)) + (global $std/byteslice/d (mut i32) (i32.const 0)) + (global $std/byteslice/src (mut i32) (i32.const 0)) + (global $std/byteslice/dst (mut i32) (i32.const 0)) + (global $std/byteslice/p (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34408)) + (memory $0 1) + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\00\00\00\"\00\00\00~\00l\00i\00b\00/\00b\00y\00t\00e\00s\00l\00i\00c\00e\00.\00t\00s") + (data $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\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 $3 (i32.const 1212) "<") + (data $3.1 (i32.const 1224) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1340) "<") + (data $6.1 (i32.const 1352) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1404) ",") + (data $7.1 (i32.const 1416) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1484) "<") + (data $9.1 (i32.const 1496) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1548) "<") + (data $10.1 (i32.const 1560) "\02\00\00\00 \00\00\00s\00t\00d\00/\00b\00y\00t\00e\00s\00l\00i\00c\00e\00.\00t\00s") + (data $11 (i32.const 1616) "\05\00\00\00 \00\00\00 \00\00\00 ") + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $std/byteslice/s + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/w + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/sub + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/f + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/a + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/b + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/c + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/d + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/src + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/byteslice/dst + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1168 + call $~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 1232 + i32.const 160 + i32.const 16 + call $~lib/builtins/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/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $1 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$210 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34408 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$210 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + 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 $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1616 + i32.load + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1620 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 + local.get $1 + 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 $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (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 $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1504 + i32.const 284 + i32.const 14 + call $~lib/builtins/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 $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + 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 1504 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 203 + i32.const 14 + call $~lib/builtins/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 1504 + i32.const 221 + i32.const 16 + call $~lib/builtins/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 1504 + i32.const 233 + i32.const 14 + call $~lib/builtins/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 1504 + i32.const 234 + i32.const 14 + call $~lib/builtins/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 + i32.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_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 1504 + i32.const 251 + i32.const 14 + call $~lib/builtins/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 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 382 + i32.const 14 + call $~lib/builtins/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 $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1504 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + 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 $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + 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 34416 + i32.const 0 + i32.store + i32.const 35984 + 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 34416 + 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 34416 + 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 34416 + i32.const 35988 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34416 + global.set $~lib/rt/tlsf/ROOT + ) + (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 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 34408 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 1232 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34408 + 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 + local.tee $0 + i32.const 34408 + i32.ge_u + if + 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 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1504 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + 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) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -2 + 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 1504 + i32.const 347 + i32.const 18 + call $~lib/builtins/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/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + 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.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + 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.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $0 + i32.const 4 + local.get $1 + i32.load offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $2 + local.get $0 + 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 $1 + local.get $0 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $2 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $2 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 4 + i32.store offset=12 + local.get $0 + i32.const 8 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $2 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i64.const 0 + i64.store align=1 + local.get $0 + ) + (func $~start + call $start:std/byteslice + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 1640 + i32.lt_s + if + i32.const 34432 + i32.const 34480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/byteslice/ByteSlice#constructor (param $0 i32) (param $1 i32) (result 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 1640 + i32.lt_s + if + i32.const 34432 + i32.const 34480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1056 + i32.const 1104 + i32.const 15 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/byteslice/ByteSlice#__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 1640 + i32.lt_s + if + i32.const 34432 + i32.const 34480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.ge_u + if + i32.const 1360 + i32.const 1104 + i32.const 117 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/byteslice/ByteSlice#fill (param $0 i32) (param $1 i32) (param $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 1640 + i32.lt_s + if + i32.const 34432 + i32.const 34480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.le_s + select + local.tee $4 + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.tee $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $4 + local.get $0 + i32.load + i32.add + local.get $1 + local.get $2 + local.get $4 + i32.sub + memory.fill + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/byteslice/ByteSlice#equals (param $0 i32) (param $1 i32) (result 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 + global.get $~lib/memory/__stack_pointer + i32.const 1640 + i32.lt_s + if + i32.const 34432 + i32.const 34480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + block $~lib/util/memory/memcmp|inlined.0 + local.get $2 + local.get $3 + i32.eq + br_if $~lib/util/memory/memcmp|inlined.0 + local.get $2 + i32.const 7 + i32.and + local.get $3 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $2 + i32.const 7 + i32.and + if + i32.const 0 + local.set $0 + local.get $1 + i32.eqz + br_if $~lib/util/memory/memcmp|inlined.0 + local.get $2 + i32.load8_u + local.tee $4 + local.get $3 + i32.load8_u + local.tee $5 + i32.sub + local.set $0 + local.get $4 + local.get $5 + i32.ne + br_if $~lib/util/memory/memcmp|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $1 + i32.const 8 + i32.ge_u + if + local.get $2 + i64.load + local.get $3 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $1 + i32.const 8 + i32.sub + local.set $1 + br $while-continue|1 + end + end + end + end + loop $while-continue|2 + local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 + local.get $0 + if + local.get $2 + i32.load8_u + local.tee $4 + local.get $3 + i32.load8_u + local.tee $5 + i32.sub + local.set $0 + local.get $4 + local.get $5 + i32.ne + br_if $~lib/util/memory/memcmp|inlined.0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|2 + end + end + i32.const 0 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.eqz + ) + (func $start:std/byteslice + (local $0 i32) + (local $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 104 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner5 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1640 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 104 + memory.fill + i32.const 8192 + i32.const 1 + i32.store8 + i32.const 8193 + i32.const 2 + i32.store8 + i32.const 8194 + i32.const 3 + i32.store8 + i32.const 8195 + i32.const 4 + i32.store8 + i32.const 8196 + i32.const 5 + i32.store8 + i32.const 8197 + i32.const 6 + i32.store8 + i32.const 8198 + i32.const 7 + i32.store8 + i32.const 8199 + i32.const 8 + i32.store8 + memory.size + i32.const 16 + i32.shl + i32.const 34408 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + i32.const 8192 + i32.const 16 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/s + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.le_u + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u offset=1 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/byteslice/ByteSlice#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/byteslice/ByteSlice#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 2 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load16_u + local.tee $0 + i32.const 8 + i32.shl + local.get $0 + i32.const 8 + i32.shr_u + i32.or + i32.const 65535 + i32.and + i32.const 258 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 2 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load16_u + i32.const 513 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load + local.tee $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + i32.const 16909060 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load + i32.const 67305985 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.lt_s + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i64.load + local.tee $1 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $1 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $1 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $1 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.const 72623859790382856 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.lt_s + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i64.load + i64.const 578437695752307201 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 48 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8448 + i32.const 32 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/w + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 73 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.const 170 + i32.store8 + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u + i32.const 170 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.lt_s + if + i32.const 1360 + i32.const 1104 + i32.const 78 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.const 513 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load16_u offset=2 + local.tee $0 + i32.const 8 + i32.shl + local.get $0 + i32.const 8 + i32.shr_u + i32.or + i32.const 65535 + i32.and + i32.const 258 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8450 + i32.load16_u + i32.const 513 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 55 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.lt_s + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.const 67305985 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load offset=4 + local.tee $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + i32.const 16909060 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 16 + i32.lt_s + if + i32.const 1360 + i32.const 1104 + i32.const 88 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i64.const 578437695752307201 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=68 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 16 + i32.lt_s + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i64.load offset=8 + local.tee $1 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $1 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $1 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $1 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.const 72623859790382856 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 61 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=72 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 20 + i32.lt_s + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.const -1430532899 + i32.store offset=16 + i32.const 8464 + i32.load + i32.const -1430532899 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 65 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + 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 1640 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 122 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 187 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/w + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/byteslice/ByteSlice#__get + i32.const 187 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 69 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + 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 1640 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 6 + local.get $2 + local.get $2 + i32.const 6 + i32.gt_s + select + i32.const 2 + local.get $2 + local.get $2 + i32.const 2 + i32.gt_s + select + local.tee $2 + i32.sub + local.set $3 + local.get $2 + local.get $0 + i32.load + i32.add + local.get $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + call $~lib/byteslice/ByteSlice#constructor + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.set $std/byteslice/sub + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/sub + local.tee $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/sub + local.tee $0 + i32.store offset=76 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/sub + local.tee $0 + i32.store offset=80 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.le_u + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u offset=3 + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 75 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8704 + i32.const 16 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/f + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/f + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 255 + i32.const 8 + call $~lib/byteslice/ByteSlice#fill + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/f + local.tee $0 + i32.store offset=84 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 81 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/f + local.tee $0 + i32.store offset=88 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 7 + i32.le_u + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u offset=7 + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 82 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8192 + i32.const 4 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/a + i32.const 8192 + i32.const 4 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/b + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/a + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/b + local.tee $2 + i32.store offset=92 + local.get $0 + local.get $2 + call $~lib/byteslice/ByteSlice#equals + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8960 + i32.const 8192 + i32.load align=1 + i32.store align=1 + i32.const 8960 + i32.const 4 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/c + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/a + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/c + local.tee $2 + i32.store offset=92 + local.get $0 + local.get $2 + call $~lib/byteslice/ByteSlice#equals + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8960 + i32.const 255 + i32.store8 + i32.const 8960 + i32.const 4 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/d + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/a + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/d + local.tee $2 + i32.store offset=92 + local.get $0 + local.get $2 + call $~lib/byteslice/ByteSlice#equals + if + i32.const 0 + i32.const 1568 + i32.const 98 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8192 + i32.const 8 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/src + i32.const 9216 + i32.const 16 + call $~lib/byteslice/ByteSlice#constructor + global.set $std/byteslice/dst + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/dst + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 16 + call $~lib/byteslice/ByteSlice#fill + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/src + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/dst + local.tee $3 + i32.store offset=92 + 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 1640 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + 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 1640 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 31 + i32.shr_u + local.get $2 + i32.load offset=4 + local.get $0 + i32.lt_s + i32.or + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=4 + local.get $0 + i32.lt_s + i32.or + if + i32.const 1360 + i32.const 1104 + i32.const 143 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load + local.get $0 + memory.copy + 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 + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/dst + local.tee $0 + i32.store offset=96 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/dst + local.tee $0 + i32.store offset=100 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 7 + i32.le_u + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.load8_u offset=7 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/byteslice/s + local.tee $0 + 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 1640 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.set $std/byteslice/p + global.get $std/byteslice/p + i32.const 8192 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/byteslice/p + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 104 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34432 + i32.const 34480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1360 + i32.const 1104 + i32.const 23 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + i32.const 1360 + i32.const 1104 + i32.const 28 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + i32.const 1360 + i32.const 1104 + i32.const 34 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + i32.const 1360 + i32.const 1104 + i32.const 40 + i32.const 58 + call $~lib/builtins/abort + unreachable + end + i32.const 1360 + i32.const 1104 + i32.const 83 + i32.const 58 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/byteslice/ByteSlice + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/byteslice/ByteSlice $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) +) diff --git a/tests/compiler/std/byteslice.ts b/tests/compiler/std/byteslice.ts new file mode 100644 index 0000000000..c4089f4504 --- /dev/null +++ b/tests/compiler/std/byteslice.ts @@ -0,0 +1,112 @@ +import { ByteSlice } from "byteslice"; + +// Use high addresses to avoid overlap with heap/static data +const BASE: usize = 8192; + +// --- Basic read/write --- + +// Write some data to memory for testing +store(BASE, 0x01); +store(BASE + 1, 0x02); +store(BASE + 2, 0x03); +store(BASE + 3, 0x04); +store(BASE + 4, 0x05); +store(BASE + 5, 0x06); +store(BASE + 6, 0x07); +store(BASE + 7, 0x08); + +let s = new ByteSlice(BASE, 16); + +// Single-byte read +assert(s.getU8(0) == 0x01); +assert(s.getU8(1) == 0x02); + +// Byte indexing operators +assert(s[0] == 0x01); +assert(s[1] == 0x02); + +// 16-bit big-endian read (default) +assert(s.getU16(0) == 0x0102); +// 16-bit little-endian read +assert(s.getU16(0, false) == 0x0201); + +// 32-bit big-endian read (default) +assert(s.getU32(0) == 0x01020304); +// 32-bit little-endian read +assert(s.getU32(0, false) == 0x04030201); + +// 64-bit big-endian read (default) +assert(s.getU64(0) == 0x0102030405060708); +// 64-bit little-endian read +assert(s.getU64(0, false) == 0x0807060504030201); + +// Signed reads +assert(s.getI8(0) == 0x01); + +// --- Write tests --- +const WBASE: usize = BASE + 256; +let w = new ByteSlice(WBASE, 32); + +w.setU8(0, 0xAA); +assert(w.getU8(0) == 0xAA); + +w.setU16(2, 0x0102); // big-endian default +assert(w.getU16(2) == 0x0102); +assert(load(WBASE + 2) == 0x0201); // raw memory is byte-swapped + +w.setU32(4, 0x01020304); +assert(w.getU32(4) == 0x01020304); + +w.setU64(8, 0x0102030405060708); +assert(w.getU64(8) == 0x0102030405060708); + +// LE write +w.setU32(16, 0xAABBCCDD, false); +assert(load(WBASE + 16) == 0xAABBCCDD); // no swap + +// Byte indexing write +w[0] = 0xBB; +assert(w[0] == 0xBB); + +// --- Slice --- +let sub = s.slice(2, 6); +assert(sub.length == 4); +assert(sub.getU8(0) == 0x03); +assert(sub.getU8(3) == 0x06); + +// --- Fill --- +const FBASE: usize = BASE + 512; +let f = new ByteSlice(FBASE, 16); +f.fill(0xFF, 0, 8); +assert(f.getU8(0) == 0xFF); +assert(f.getU8(7) == 0xFF); + +// --- Equals --- +let a = new ByteSlice(BASE, 4); +let b = new ByteSlice(BASE, 4); +assert(a.equals(b) == true); + +// Copy data to a different location and compare +const CBASE: usize = BASE + 768; +memory.copy(CBASE, BASE, 4); +let c = new ByteSlice(CBASE, 4); +assert(a.equals(c) == true); + +// Modify one byte +store(CBASE, 0xFF); +let d = new ByteSlice(CBASE, 4); +assert(a.equals(d) == false); + +// --- CopyTo --- +const DBASE: usize = BASE + 1024; +let src = new ByteSlice(BASE, 8); +let dst = new ByteSlice(DBASE, 16); +dst.fill(0, 0, 16); +src.copyTo(dst); +assert(dst.getU8(0) == 0x01); +assert(dst.getU8(7) == 0x08); + +// --- toPointer --- +let p = s.toPointer(); +assert(p.offset == BASE); +assert(p.value == 0x01); diff --git a/tests/compiler/std/encoding.debug.wat b/tests/compiler/std/encoding.debug.wat new file mode 100644 index 0000000000..ccb6f0d8c1 --- /dev/null +++ b/tests/compiler/std/encoding.debug.wat @@ -0,0 +1,3472 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $std/encoding/BASE i32 (i32.const 8192)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $std/encoding/DB i32 (i32.const 8448)) + (global $std/encoding/SRC i32 (i32.const 8536)) + (global $std/encoding/HEX i32 (i32.const 8636)) + (global $std/encoding/DEC i32 (i32.const 8736)) + (global $std/encoding/hexLen (mut i32) (i32.const 0)) + (global $std/encoding/decLen (mut i32) (i32.const 0)) + (global $std/encoding/BR i32 (i32.const 8960)) + (global $std/encoding/VB i32 (i32.const 9036)) + (global $std/encoding/bytesRead (mut i32) (i32.const 0)) + (global $std/encoding/written (mut i32) (i32.const 0)) + (global $std/encoding/decoded (mut i32) (i32.const 0)) + (global $std/encoding/decoded2 (mut i32) (i32.const 0)) + (global $std/encoding/decoded3 (mut i32) (i32.const 0)) + (global $std/encoding/VB64 i32 (i32.const 9136)) + (global $std/encoding/decoded64 (mut i64) (i64.const 0)) + (global $std/encoding/CB i32 (i32.const 9236)) + (global $std/encoding/compactDecoded (mut i64) (i64.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 76)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32844)) + (global $~lib/memory/__heap_base i32 (i32.const 32844)) + (memory $0 1) + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00s\00t\00d\00/\00e\00n\00c\00o\00d\00i\00n\00g\00.\00t\00s\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 "memory" (memory $0)) + (start $~start) + (func $start:std/encoding + (local $value i32) + (local $dst i32) + (local $hi i32) + (local $lo i32) + (local $value|4 i32) + (local $dst|5 i32) + (local $hi|6 i32) + (local $lo|7 i32) + (local $value|8 i32) + (local $dst|9 i32) + (local $hi|10 i32) + (local $lo|11 i32) + (local $value|12 i32) + (local $dst|13 i32) + (local $hi|14 i32) + (local $lo|15 i32) + (local $src i32) + (local $c i32) + (local $hi|18 i32) + (local $c|19 i32) + (local $lo|20 i32) + (local $src|21 i32) + (local $c|22 i32) + (local $hi|23 i32) + (local $c|24 i32) + (local $lo|25 i32) + (local $src|26 i32) + (local $c|27 i32) + (local $hi|28 i32) + (local $c|29 i32) + (local $lo|30 i32) + (local $src|31 i32) + (local $c|32 i32) + (local $hi|33 i32) + (local $c|34 i32) + (local $lo|35 i32) + (local $src|36 i32) + (local $srcLen i32) + (local $dst|38 i32) + (local $i i32) + (local $value|40 i32) + (local $dst|41 i32) + (local $hi|42 i32) + (local $lo|43 i32) + (local $src|44 i32) + (local $srcLen|45 i32) + (local $dst|46 i32) + (local $outLen i32) + (local $i|48 i32) + (local $src|49 i32) + (local $c|50 i32) + (local $hi|51 i32) + (local $c|52 i32) + (local $lo|53 i32) + (local $b i32) + (local $src|55 i32) + (local $srcLen|56 i32) + (local $dst|57 i32) + (local $outLen|58 i32) + (local $i|59 i32) + (local $src|60 i32) + (local $c|61 i32) + (local $hi|62 i32) + (local $c|63 i32) + (local $lo|64 i32) + (local $b|65 i32) + (local $this i32) + (local $offset i32) + (local $value|68 i32) + (local $dst|69 i32) + (local $i|70 i32) + (local $value|71 i32) + (local $dst|72 i32) + (local $i|73 i32) + (local $value|74 i32) + (local $dst|75 i32) + (local $i|76 i32) + (local $src|77 i32) + (local $bytesRead i32) + (local $result i32) + (local $shift i32) + (local $i|81 i32) + (local $b|82 i32) + (local $this|83 i32) + (local $value|84 i32) + (local $this|85 i32) + (local $value|86 i32) + (local $dst|87 i32) + (local $i|88 i32) + (local $src|89 i32) + (local $bytesRead|90 i32) + (local $result|91 i32) + (local $shift|92 i32) + (local $i|93 i32) + (local $b|94 i32) + (local $this|95 i32) + (local $value|96 i32) + (local $value|97 i32) + (local $dst|98 i32) + (local $i|99 i32) + (local $src|100 i32) + (local $bytesRead|101 i32) + (local $result|102 i32) + (local $shift|103 i32) + (local $i|104 i32) + (local $b|105 i32) + (local $this|106 i32) + (local $value|107 i32) + (local $this|108 i32) + (local $value|109 i64) + (local $dst|110 i32) + (local $i|111 i32) + (local $src|112 i32) + (local $bytesRead|113 i32) + (local $result|114 i64) + (local $shift|115 i64) + (local $i|116 i32) + (local $b|117 i32) + (local $this|118 i32) + (local $value|119 i32) + (local $value|120 i64) + (local $dst|121 i32) + (local $src|122 i32) + (local $bytesRead|123 i32) + (local $first i32) + (local $this|125 i32) + (local $value|126 i32) + (local $this|127 i32) + (local $value|128 i32) + (local $this|129 i32) + (local $value|130 i32) + (local $this|131 i32) + (local $value|132 i32) + (local $this|133 i32) + (local $value|134 i64) + (local $dst|135 i32) + (local $src|136 i32) + (local $bytesRead|137 i32) + (local $first|138 i32) + (local $this|139 i32) + (local $value|140 i32) + (local $this|141 i32) + (local $value|142 i32) + (local $this|143 i32) + (local $value|144 i32) + (local $this|145 i32) + (local $value|146 i32) + (local $this|147 i32) + (local $value|148 i64) + (local $dst|149 i32) + (local $src|150 i32) + (local $bytesRead|151 i32) + (local $first|152 i32) + (local $this|153 i32) + (local $value|154 i32) + (local $this|155 i32) + (local $value|156 i32) + (local $this|157 i32) + (local $value|158 i32) + (local $this|159 i32) + (local $value|160 i32) + (local $this|161 i32) + (local $value|162 i64) + (local $dst|163 i32) + (local $src|164 i32) + (local $bytesRead|165 i32) + (local $first|166 i32) + (local $this|167 i32) + (local $value|168 i32) + (local $this|169 i32) + (local $value|170 i32) + (local $this|171 i32) + (local $value|172 i32) + (local $this|173 i32) + (local $value|174 i32) + (local $this|175 i32) + (local $value|176 i64) + (local $dst|177 i32) + (local $src|178 i32) + (local $bytesRead|179 i32) + (local $first|180 i32) + (local $this|181 i32) + (local $value|182 i32) + (local $this|183 i32) + (local $value|184 i32) + (local $this|185 i32) + (local $value|186 i32) + (local $this|187 i32) + (local $value|188 i32) + (local $this|189 i32) + i32.const 0 + local.set $value + global.get $std/encoding/BASE + local.set $dst + local.get $value + i32.const 4 + i32.const 7 + i32.and + i32.shr_u + i32.const 15 + i32.and + local.set $hi + local.get $value + i32.const 15 + i32.and + local.set $lo + local.get $dst + local.get $hi + i32.const 10 + i32.lt_u + if (result i32) + local.get $hi + i32.const 48 + i32.add + else + local.get $hi + i32.const 87 + i32.add + end + i32.store8 + local.get $dst + i32.const 1 + i32.add + local.get $lo + i32.const 10 + i32.lt_u + if (result i32) + local.get $lo + i32.const 48 + i32.add + else + local.get $lo + i32.const 87 + i32.add + end + i32.store8 + global.get $std/encoding/BASE + i32.load8_u + i32.const 48 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/BASE + i32.const 1 + i32.add + i32.load8_u + i32.const 48 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 255 + local.set $value|4 + global.get $std/encoding/BASE + i32.const 4 + i32.add + local.set $dst|5 + local.get $value|4 + i32.const 4 + i32.const 7 + i32.and + i32.shr_u + i32.const 15 + i32.and + local.set $hi|6 + local.get $value|4 + i32.const 15 + i32.and + local.set $lo|7 + local.get $dst|5 + local.get $hi|6 + i32.const 10 + i32.lt_u + if (result i32) + local.get $hi|6 + i32.const 48 + i32.add + else + local.get $hi|6 + i32.const 87 + i32.add + end + i32.store8 + local.get $dst|5 + i32.const 1 + i32.add + local.get $lo|7 + i32.const 10 + i32.lt_u + if (result i32) + local.get $lo|7 + i32.const 48 + i32.add + else + local.get $lo|7 + i32.const 87 + i32.add + end + i32.store8 + global.get $std/encoding/BASE + i32.const 4 + i32.add + i32.load8_u + i32.const 102 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/BASE + i32.const 5 + i32.add + i32.load8_u + i32.const 102 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 171 + local.set $value|8 + global.get $std/encoding/BASE + i32.const 8 + i32.add + local.set $dst|9 + local.get $value|8 + i32.const 4 + i32.const 7 + i32.and + i32.shr_u + i32.const 15 + i32.and + local.set $hi|10 + local.get $value|8 + i32.const 15 + i32.and + local.set $lo|11 + local.get $dst|9 + local.get $hi|10 + i32.const 10 + i32.lt_u + if (result i32) + local.get $hi|10 + i32.const 48 + i32.add + else + local.get $hi|10 + i32.const 87 + i32.add + end + i32.store8 + local.get $dst|9 + i32.const 1 + i32.add + local.get $lo|11 + i32.const 10 + i32.lt_u + if (result i32) + local.get $lo|11 + i32.const 48 + i32.add + else + local.get $lo|11 + i32.const 87 + i32.add + end + i32.store8 + global.get $std/encoding/BASE + i32.const 8 + i32.add + i32.load8_u + i32.const 97 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/BASE + i32.const 9 + i32.add + i32.load8_u + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 31 + local.set $value|12 + global.get $std/encoding/BASE + i32.const 12 + i32.add + local.set $dst|13 + local.get $value|12 + i32.const 4 + i32.const 7 + i32.and + i32.shr_u + i32.const 15 + i32.and + local.set $hi|14 + local.get $value|12 + i32.const 15 + i32.and + local.set $lo|15 + local.get $dst|13 + local.get $hi|14 + i32.const 10 + i32.lt_u + if (result i32) + local.get $hi|14 + i32.const 48 + i32.add + else + local.get $hi|14 + i32.const 87 + i32.add + end + i32.store8 + local.get $dst|13 + i32.const 1 + i32.add + local.get $lo|15 + i32.const 10 + i32.lt_u + if (result i32) + local.get $lo|15 + i32.const 48 + i32.add + else + local.get $lo|15 + i32.const 87 + i32.add + end + i32.store8 + global.get $std/encoding/BASE + i32.const 12 + i32.add + i32.load8_u + i32.const 49 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/BASE + i32.const 13 + i32.add + i32.load8_u + i32.const 102 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/DB + i32.const 48 + i32.store8 + global.get $std/encoding/DB + i32.const 1 + i32.add + i32.const 48 + i32.store8 + block $~lib/encoding/Encoding.Hex.decodeByte|inlined.0 (result i32) + global.get $std/encoding/DB + local.set $src + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.0 (result i32) + local.get $src + i32.load8_u + local.set $c + local.get $c + i32.const 48 + i32.ge_u + if (result i32) + local.get $c + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.0 + end + local.get $c + i32.const 97 + i32.ge_u + if (result i32) + local.get $c + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.0 + end + local.get $c + i32.const 65 + i32.ge_u + if (result i32) + local.get $c + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.0 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.0 + end + local.set $hi|18 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.1 (result i32) + local.get $src + i32.const 1 + i32.add + i32.load8_u + local.set $c|19 + local.get $c|19 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|19 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|19 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.1 + end + local.get $c|19 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|19 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|19 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.1 + end + local.get $c|19 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|19 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|19 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.1 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.1 + end + local.set $lo|20 + local.get $hi|18 + local.get $lo|20 + i32.or + i32.const 0 + i32.lt_s + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.0 + end + local.get $hi|18 + i32.const 4 + i32.shl + local.get $lo|20 + i32.or + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.0 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/DB + i32.const 2 + i32.add + i32.const 102 + i32.store8 + global.get $std/encoding/DB + i32.const 3 + i32.add + i32.const 102 + i32.store8 + block $~lib/encoding/Encoding.Hex.decodeByte|inlined.1 (result i32) + global.get $std/encoding/DB + i32.const 2 + i32.add + local.set $src|21 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.2 (result i32) + local.get $src|21 + i32.load8_u + local.set $c|22 + local.get $c|22 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|22 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|22 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.2 + end + local.get $c|22 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|22 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|22 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.2 + end + local.get $c|22 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|22 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|22 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.2 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.2 + end + local.set $hi|23 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.3 (result i32) + local.get $src|21 + i32.const 1 + i32.add + i32.load8_u + local.set $c|24 + local.get $c|24 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|24 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|24 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.3 + end + local.get $c|24 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|24 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|24 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.3 + end + local.get $c|24 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|24 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|24 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.3 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.3 + end + local.set $lo|25 + local.get $hi|23 + local.get $lo|25 + i32.or + i32.const 0 + i32.lt_s + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.1 + end + local.get $hi|23 + i32.const 4 + i32.shl + local.get $lo|25 + i32.or + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.1 + end + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/DB + i32.const 4 + i32.add + i32.const 65 + i32.store8 + global.get $std/encoding/DB + i32.const 5 + i32.add + i32.const 66 + i32.store8 + block $~lib/encoding/Encoding.Hex.decodeByte|inlined.2 (result i32) + global.get $std/encoding/DB + i32.const 4 + i32.add + local.set $src|26 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.4 (result i32) + local.get $src|26 + i32.load8_u + local.set $c|27 + local.get $c|27 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|27 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|27 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.4 + end + local.get $c|27 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|27 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|27 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.4 + end + local.get $c|27 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|27 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|27 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.4 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.4 + end + local.set $hi|28 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.5 (result i32) + local.get $src|26 + i32.const 1 + i32.add + i32.load8_u + local.set $c|29 + local.get $c|29 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|29 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|29 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.5 + end + local.get $c|29 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|29 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|29 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.5 + end + local.get $c|29 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|29 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|29 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.5 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.5 + end + local.set $lo|30 + local.get $hi|28 + local.get $lo|30 + i32.or + i32.const 0 + i32.lt_s + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.2 + end + local.get $hi|28 + i32.const 4 + i32.shl + local.get $lo|30 + i32.or + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.2 + end + i32.const 171 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/DB + i32.const 8 + i32.add + i32.const 103 + i32.store8 + global.get $std/encoding/DB + i32.const 9 + i32.add + i32.const 48 + i32.store8 + block $~lib/encoding/Encoding.Hex.decodeByte|inlined.3 (result i32) + global.get $std/encoding/DB + i32.const 8 + i32.add + local.set $src|31 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.6 (result i32) + local.get $src|31 + i32.load8_u + local.set $c|32 + local.get $c|32 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|32 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|32 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.6 + end + local.get $c|32 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|32 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|32 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.6 + end + local.get $c|32 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|32 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|32 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.6 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.6 + end + local.set $hi|33 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.7 (result i32) + local.get $src|31 + i32.const 1 + i32.add + i32.load8_u + local.set $c|34 + local.get $c|34 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|34 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|34 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.7 + end + local.get $c|34 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|34 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|34 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.7 + end + local.get $c|34 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|34 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|34 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.7 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.7 + end + local.set $lo|35 + local.get $hi|33 + local.get $lo|35 + i32.or + i32.const 0 + i32.lt_s + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.3 + end + local.get $hi|33 + i32.const 4 + i32.shl + local.get $lo|35 + i32.or + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.3 + end + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/SRC + i32.const 222 + i32.store8 + global.get $std/encoding/SRC + i32.const 1 + i32.add + i32.const 173 + i32.store8 + global.get $std/encoding/SRC + i32.const 2 + i32.add + i32.const 190 + i32.store8 + global.get $std/encoding/SRC + i32.const 3 + i32.add + i32.const 239 + i32.store8 + block $~lib/encoding/Encoding.Hex.encode|inlined.0 (result i32) + global.get $std/encoding/SRC + local.set $src|36 + i32.const 4 + local.set $srcLen + global.get $std/encoding/HEX + local.set $dst|38 + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $srcLen + i32.lt_s + if + local.get $src|36 + local.get $i + i32.add + i32.load8_u + local.set $value|40 + local.get $dst|38 + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $dst|41 + local.get $value|40 + i32.const 4 + i32.const 7 + i32.and + i32.shr_u + i32.const 15 + i32.and + local.set $hi|42 + local.get $value|40 + i32.const 15 + i32.and + local.set $lo|43 + local.get $dst|41 + local.get $hi|42 + i32.const 10 + i32.lt_u + if (result i32) + local.get $hi|42 + i32.const 48 + i32.add + else + local.get $hi|42 + i32.const 87 + i32.add + end + i32.store8 + local.get $dst|41 + i32.const 1 + i32.add + local.get $lo|43 + i32.const 10 + i32.lt_u + if (result i32) + local.get $lo|43 + i32.const 48 + i32.add + else + local.get $lo|43 + i32.const 87 + i32.add + end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $srcLen + i32.const 1 + i32.shl + br $~lib/encoding/Encoding.Hex.encode|inlined.0 + end + global.set $std/encoding/hexLen + global.get $std/encoding/hexLen + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Hex.decode|inlined.0 (result i32) + global.get $std/encoding/HEX + local.set $src|44 + i32.const 8 + local.set $srcLen|45 + global.get $std/encoding/DEC + local.set $dst|46 + local.get $srcLen|45 + i32.const 1 + i32.and + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decode|inlined.0 + end + local.get $srcLen|45 + i32.const 1 + i32.shr_s + local.set $outLen + i32.const 0 + local.set $i|48 + loop $for-loop|1 + local.get $i|48 + local.get $outLen + i32.lt_s + if + block $~lib/encoding/Encoding.Hex.decodeByte|inlined.4 (result i32) + local.get $src|44 + local.get $i|48 + i32.const 1 + i32.shl + i32.add + local.set $src|49 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.8 (result i32) + local.get $src|49 + i32.load8_u + local.set $c|50 + local.get $c|50 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|50 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|50 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.8 + end + local.get $c|50 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|50 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|50 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.8 + end + local.get $c|50 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|50 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|50 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.8 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.8 + end + local.set $hi|51 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.9 (result i32) + local.get $src|49 + i32.const 1 + i32.add + i32.load8_u + local.set $c|52 + local.get $c|52 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|52 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|52 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.9 + end + local.get $c|52 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|52 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|52 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.9 + end + local.get $c|52 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|52 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|52 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.9 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.9 + end + local.set $lo|53 + local.get $hi|51 + local.get $lo|53 + i32.or + i32.const 0 + i32.lt_s + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.4 + end + local.get $hi|51 + i32.const 4 + i32.shl + local.get $lo|53 + i32.or + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.4 + end + local.set $b + local.get $b + i32.const 0 + i32.lt_s + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decode|inlined.0 + end + local.get $dst|46 + local.get $i|48 + i32.add + local.get $b + i32.store8 + local.get $i|48 + i32.const 1 + i32.add + local.set $i|48 + br $for-loop|1 + end + end + local.get $outLen + br $~lib/encoding/Encoding.Hex.decode|inlined.0 + end + global.set $std/encoding/decLen + global.get $std/encoding/decLen + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 53 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/DEC + i32.load8_u + i32.const 222 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/DEC + i32.const 1 + i32.add + i32.load8_u + i32.const 173 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 55 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/DEC + i32.const 2 + i32.add + i32.load8_u + i32.const 190 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 56 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/DEC + i32.const 3 + i32.add + i32.load8_u + i32.const 239 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 57 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Hex.decode|inlined.1 (result i32) + global.get $std/encoding/HEX + local.set $src|55 + i32.const 7 + local.set $srcLen|56 + global.get $std/encoding/DEC + i32.const 100 + i32.add + local.set $dst|57 + local.get $srcLen|56 + i32.const 1 + i32.and + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decode|inlined.1 + end + local.get $srcLen|56 + i32.const 1 + i32.shr_s + local.set $outLen|58 + i32.const 0 + local.set $i|59 + loop $for-loop|2 + local.get $i|59 + local.get $outLen|58 + i32.lt_s + if + block $~lib/encoding/Encoding.Hex.decodeByte|inlined.5 (result i32) + local.get $src|55 + local.get $i|59 + i32.const 1 + i32.shl + i32.add + local.set $src|60 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.10 (result i32) + local.get $src|60 + i32.load8_u + local.set $c|61 + local.get $c|61 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|61 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|61 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.10 + end + local.get $c|61 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|61 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|61 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.10 + end + local.get $c|61 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|61 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|61 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.10 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.10 + end + local.set $hi|62 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.11 (result i32) + local.get $src|60 + i32.const 1 + i32.add + i32.load8_u + local.set $c|63 + local.get $c|63 + i32.const 48 + i32.ge_u + if (result i32) + local.get $c|63 + i32.const 57 + i32.le_u + else + i32.const 0 + end + if + local.get $c|63 + i32.const 48 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.11 + end + local.get $c|63 + i32.const 97 + i32.ge_u + if (result i32) + local.get $c|63 + i32.const 102 + i32.le_u + else + i32.const 0 + end + if + local.get $c|63 + i32.const 87 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.11 + end + local.get $c|63 + i32.const 65 + i32.ge_u + if (result i32) + local.get $c|63 + i32.const 70 + i32.le_u + else + i32.const 0 + end + if + local.get $c|63 + i32.const 55 + i32.sub + i32.const 255 + i32.and + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.11 + end + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeNibble|inlined.11 + end + local.set $lo|64 + local.get $hi|62 + local.get $lo|64 + i32.or + i32.const 0 + i32.lt_s + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.5 + end + local.get $hi|62 + i32.const 4 + i32.shl + local.get $lo|64 + i32.or + br $~lib/encoding/Encoding.Hex.decodeByte|inlined.5 + end + local.set $b|65 + local.get $b|65 + i32.const 0 + i32.lt_s + if + i32.const -1 + br $~lib/encoding/Encoding.Hex.decode|inlined.1 + end + local.get $dst|57 + local.get $i|59 + i32.add + local.get $b|65 + i32.store8 + local.get $i|59 + i32.const 1 + i32.add + local.set $i|59 + br $for-loop|2 + end + end + local.get $outLen|58 + br $~lib/encoding/Encoding.Hex.decode|inlined.1 + end + i32.const -1 + i32.eq + drop + block $~lib/pointer/Pointer#constructor|inlined.0 (result i32) + i32.const 0 + local.set $this + global.get $std/encoding/BR + local.set $offset + local.get $offset + br $~lib/pointer/Pointer#constructor|inlined.0 + end + global.set $std/encoding/bytesRead + block $~lib/encoding/Encoding.Varint.encodeU32|inlined.0 (result i32) + i32.const 0 + local.set $value|68 + global.get $std/encoding/VB + local.set $dst|69 + i32.const 0 + local.set $i|70 + loop $while-continue|3 + local.get $value|68 + i32.const 128 + i32.ge_u + if + local.get $dst|69 + local.get $i|70 + i32.add + local.get $value|68 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $value|68 + i32.const 7 + i32.shr_u + local.set $value|68 + local.get $i|70 + i32.const 1 + i32.add + local.set $i|70 + br $while-continue|3 + end + end + local.get $dst|69 + local.get $i|70 + i32.add + local.get $value|68 + i32.store8 + local.get $i|70 + i32.const 1 + i32.add + br $~lib/encoding/Encoding.Varint.encodeU32|inlined.0 + end + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/VB + i32.load8_u + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeU32|inlined.1 (result i32) + i32.const 127 + local.set $value|71 + global.get $std/encoding/VB + local.set $dst|72 + i32.const 0 + local.set $i|73 + loop $while-continue|4 + local.get $value|71 + i32.const 128 + i32.ge_u + if + local.get $dst|72 + local.get $i|73 + i32.add + local.get $value|71 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $value|71 + i32.const 7 + i32.shr_u + local.set $value|71 + local.get $i|73 + i32.const 1 + i32.add + local.set $i|73 + br $while-continue|4 + end + end + local.get $dst|72 + local.get $i|73 + i32.add + local.get $value|71 + i32.store8 + local.get $i|73 + i32.const 1 + i32.add + br $~lib/encoding/Encoding.Varint.encodeU32|inlined.1 + end + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 77 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/VB + i32.load8_u + i32.const 127 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 78 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeU32|inlined.2 (result i32) + i32.const 128 + local.set $value|74 + global.get $std/encoding/VB + local.set $dst|75 + i32.const 0 + local.set $i|76 + loop $while-continue|5 + local.get $value|74 + i32.const 128 + i32.ge_u + if + local.get $dst|75 + local.get $i|76 + i32.add + local.get $value|74 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $value|74 + i32.const 7 + i32.shr_u + local.set $value|74 + local.get $i|76 + i32.const 1 + i32.add + local.set $i|76 + br $while-continue|5 + end + end + local.get $dst|75 + local.get $i|76 + i32.add + local.get $value|74 + i32.store8 + local.get $i|76 + i32.const 1 + i32.add + br $~lib/encoding/Encoding.Varint.encodeU32|inlined.2 + end + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 82 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.decodeU32|inlined.0 (result i32) + global.get $std/encoding/VB + local.set $src|77 + global.get $std/encoding/bytesRead + local.set $bytesRead + i32.const 0 + local.set $result + i32.const 0 + local.set $shift + i32.const 0 + local.set $i|81 + block $do-break|6 + loop $do-loop|6 + local.get $src|77 + local.get $i|81 + i32.add + i32.load8_u + local.set $b|82 + local.get $result + local.get $b|82 + i32.const 127 + i32.and + local.get $shift + i32.shl + i32.or + local.set $result + local.get $shift + i32.const 7 + i32.add + local.set $shift + local.get $i|81 + i32.const 1 + i32.add + local.set $i|81 + local.get $i|81 + i32.const 5 + i32.ge_s + if + br $do-break|6 + end + local.get $b|82 + i32.const 128 + i32.and + br_if $do-loop|6 + end + end + local.get $bytesRead + local.set $this|83 + local.get $i|81 + local.set $value|84 + i32.const 0 + drop + local.get $this|83 + local.get $value|84 + i32.store + local.get $result + br $~lib/encoding/Encoding.Varint.decodeU32|inlined.0 + end + global.set $std/encoding/decoded + global.get $std/encoding/decoded + i32.const 128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 84 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get:value|inlined.0 (result i32) + global.get $std/encoding/bytesRead + local.set $this|85 + i32.const 0 + drop + local.get $this|85 + i32.load + br $~lib/pointer/Pointer#get:value|inlined.0 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeU32|inlined.3 (result i32) + i32.const 300 + local.set $value|86 + global.get $std/encoding/VB + local.set $dst|87 + i32.const 0 + local.set $i|88 + loop $while-continue|7 + local.get $value|86 + i32.const 128 + i32.ge_u + if + local.get $dst|87 + local.get $i|88 + i32.add + local.get $value|86 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $value|86 + i32.const 7 + i32.shr_u + local.set $value|86 + local.get $i|88 + i32.const 1 + i32.add + local.set $i|88 + br $while-continue|7 + end + end + local.get $dst|87 + local.get $i|88 + i32.add + local.get $value|86 + i32.store8 + local.get $i|88 + i32.const 1 + i32.add + br $~lib/encoding/Encoding.Varint.encodeU32|inlined.3 + end + global.set $std/encoding/written + block $~lib/encoding/Encoding.Varint.decodeU32|inlined.1 (result i32) + global.get $std/encoding/VB + local.set $src|89 + global.get $std/encoding/bytesRead + local.set $bytesRead|90 + i32.const 0 + local.set $result|91 + i32.const 0 + local.set $shift|92 + i32.const 0 + local.set $i|93 + block $do-break|8 + loop $do-loop|8 + local.get $src|89 + local.get $i|93 + i32.add + i32.load8_u + local.set $b|94 + local.get $result|91 + local.get $b|94 + i32.const 127 + i32.and + local.get $shift|92 + i32.shl + i32.or + local.set $result|91 + local.get $shift|92 + i32.const 7 + i32.add + local.set $shift|92 + local.get $i|93 + i32.const 1 + i32.add + local.set $i|93 + local.get $i|93 + i32.const 5 + i32.ge_s + if + br $do-break|8 + end + local.get $b|94 + i32.const 128 + i32.and + br_if $do-loop|8 + end + end + local.get $bytesRead|90 + local.set $this|95 + local.get $i|93 + local.set $value|96 + i32.const 0 + drop + local.get $this|95 + local.get $value|96 + i32.store + local.get $result|91 + br $~lib/encoding/Encoding.Varint.decodeU32|inlined.1 + end + global.set $std/encoding/decoded2 + global.get $std/encoding/decoded2 + i32.const 300 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 89 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeU32|inlined.4 (result i32) + i32.const -1 + local.set $value|97 + global.get $std/encoding/VB + local.set $dst|98 + i32.const 0 + local.set $i|99 + loop $while-continue|9 + local.get $value|97 + i32.const 128 + i32.ge_u + if + local.get $dst|98 + local.get $i|99 + i32.add + local.get $value|97 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $value|97 + i32.const 7 + i32.shr_u + local.set $value|97 + local.get $i|99 + i32.const 1 + i32.add + local.set $i|99 + br $while-continue|9 + end + end + local.get $dst|98 + local.get $i|99 + i32.add + local.get $value|97 + i32.store8 + local.get $i|99 + i32.const 1 + i32.add + br $~lib/encoding/Encoding.Varint.encodeU32|inlined.4 + end + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.decodeU32|inlined.2 (result i32) + global.get $std/encoding/VB + local.set $src|100 + global.get $std/encoding/bytesRead + local.set $bytesRead|101 + i32.const 0 + local.set $result|102 + i32.const 0 + local.set $shift|103 + i32.const 0 + local.set $i|104 + block $do-break|10 + loop $do-loop|10 + local.get $src|100 + local.get $i|104 + i32.add + i32.load8_u + local.set $b|105 + local.get $result|102 + local.get $b|105 + i32.const 127 + i32.and + local.get $shift|103 + i32.shl + i32.or + local.set $result|102 + local.get $shift|103 + i32.const 7 + i32.add + local.set $shift|103 + local.get $i|104 + i32.const 1 + i32.add + local.set $i|104 + local.get $i|104 + i32.const 5 + i32.ge_s + if + br $do-break|10 + end + local.get $b|105 + i32.const 128 + i32.and + br_if $do-loop|10 + end + end + local.get $bytesRead|101 + local.set $this|106 + local.get $i|104 + local.set $value|107 + i32.const 0 + drop + local.get $this|106 + local.get $value|107 + i32.store + local.get $result|102 + br $~lib/encoding/Encoding.Varint.decodeU32|inlined.2 + end + global.set $std/encoding/decoded3 + global.get $std/encoding/decoded3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get:value|inlined.1 (result i32) + global.get $std/encoding/bytesRead + local.set $this|108 + i32.const 0 + drop + local.get $this|108 + i32.load + br $~lib/pointer/Pointer#get:value|inlined.1 + end + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 96 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeU64|inlined.0 (result i32) + i64.const 72623859790382856 + local.set $value|109 + global.get $std/encoding/VB64 + local.set $dst|110 + i32.const 0 + local.set $i|111 + loop $while-continue|11 + local.get $value|109 + i64.const 128 + i64.ge_u + if + local.get $dst|110 + local.get $i|111 + i32.add + local.get $value|109 + i64.const 127 + i64.and + i32.wrap_i64 + i32.const 128 + i32.or + i32.store8 + local.get $value|109 + i64.const 7 + i64.shr_u + local.set $value|109 + local.get $i|111 + i32.const 1 + i32.add + local.set $i|111 + br $while-continue|11 + end + end + local.get $dst|110 + local.get $i|111 + i32.add + local.get $value|109 + i32.wrap_i64 + i32.store8 + local.get $i|111 + i32.const 1 + i32.add + br $~lib/encoding/Encoding.Varint.encodeU64|inlined.0 + end + global.set $std/encoding/written + block $~lib/encoding/Encoding.Varint.decodeU64|inlined.0 (result i64) + global.get $std/encoding/VB64 + local.set $src|112 + global.get $std/encoding/bytesRead + local.set $bytesRead|113 + i64.const 0 + local.set $result|114 + i64.const 0 + local.set $shift|115 + i32.const 0 + local.set $i|116 + block $do-break|12 + loop $do-loop|12 + local.get $src|112 + local.get $i|116 + i32.add + i32.load8_u + local.set $b|117 + local.get $result|114 + local.get $b|117 + i32.const 127 + i32.and + i64.extend_i32_u + local.get $shift|115 + i64.shl + i64.or + local.set $result|114 + local.get $shift|115 + i64.const 7 + i64.add + local.set $shift|115 + local.get $i|116 + i32.const 1 + i32.add + local.set $i|116 + local.get $i|116 + i32.const 10 + i32.ge_s + if + br $do-break|12 + end + local.get $b|117 + i32.const 128 + i32.and + br_if $do-loop|12 + end + end + local.get $bytesRead|113 + local.set $this|118 + local.get $i|116 + local.set $value|119 + i32.const 0 + drop + local.get $this|118 + local.get $value|119 + i32.store + local.get $result|114 + br $~lib/encoding/Encoding.Varint.decodeU64|inlined.0 + end + global.set $std/encoding/decoded64 + global.get $std/encoding/decoded64 + i64.const 72623859790382856 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeCompact|inlined.0 (result i32) + i64.const 252 + local.set $value|120 + global.get $std/encoding/CB + local.set $dst|121 + local.get $value|120 + i64.const 253 + i64.lt_u + if + local.get $dst|121 + local.get $value|120 + i32.wrap_i64 + i32.store8 + i32.const 1 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.0 + else + local.get $value|120 + i64.const 65535 + i64.le_u + if + local.get $dst|121 + i32.const 253 + i32.store8 + local.get $dst|121 + i32.const 1 + i32.add + local.get $value|120 + i32.wrap_i64 + i32.store16 + i32.const 3 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.0 + else + local.get $value|120 + i64.const 4294967295 + i64.le_u + if + local.get $dst|121 + i32.const 254 + i32.store8 + local.get $dst|121 + i32.const 1 + i32.add + local.get $value|120 + i32.wrap_i64 + i32.store + i32.const 5 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.0 + else + local.get $dst|121 + i32.const 255 + i32.store8 + local.get $dst|121 + i32.const 1 + i32.add + local.get $value|120 + i64.store + i32.const 9 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.0 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.decodeCompact|inlined.0 (result i64) + global.get $std/encoding/CB + local.set $src|122 + global.get $std/encoding/bytesRead + local.set $bytesRead|123 + local.get $src|122 + i32.load8_u + local.set $first + local.get $first + i32.const 253 + i32.lt_u + if + local.get $bytesRead|123 + local.set $this|125 + i32.const 1 + local.set $value|126 + i32.const 0 + drop + local.get $this|125 + local.get $value|126 + i32.store + local.get $first + i64.extend_i32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.0 + else + local.get $first + i32.const 253 + i32.eq + if + local.get $bytesRead|123 + local.set $this|127 + i32.const 3 + local.set $value|128 + i32.const 0 + drop + local.get $this|127 + local.get $value|128 + i32.store + local.get $src|122 + i32.const 1 + i32.add + i64.load16_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.0 + else + local.get $first + i32.const 254 + i32.eq + if + local.get $bytesRead|123 + local.set $this|129 + i32.const 5 + local.set $value|130 + i32.const 0 + drop + local.get $this|129 + local.get $value|130 + i32.store + local.get $src|122 + i32.const 1 + i32.add + i64.load32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.0 + else + local.get $bytesRead|123 + local.set $this|131 + i32.const 9 + local.set $value|132 + i32.const 0 + drop + local.get $this|131 + local.get $value|132 + i32.store + local.get $src|122 + i32.const 1 + i32.add + i64.load + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.0 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 252 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get:value|inlined.2 (result i32) + global.get $std/encoding/bytesRead + local.set $this|133 + i32.const 0 + drop + local.get $this|133 + i32.load + br $~lib/pointer/Pointer#get:value|inlined.2 + end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeCompact|inlined.1 (result i32) + i64.const 253 + local.set $value|134 + global.get $std/encoding/CB + local.set $dst|135 + local.get $value|134 + i64.const 253 + i64.lt_u + if + local.get $dst|135 + local.get $value|134 + i32.wrap_i64 + i32.store8 + i32.const 1 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.1 + else + local.get $value|134 + i64.const 65535 + i64.le_u + if + local.get $dst|135 + i32.const 253 + i32.store8 + local.get $dst|135 + i32.const 1 + i32.add + local.get $value|134 + i32.wrap_i64 + i32.store16 + i32.const 3 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.1 + else + local.get $value|134 + i64.const 4294967295 + i64.le_u + if + local.get $dst|135 + i32.const 254 + i32.store8 + local.get $dst|135 + i32.const 1 + i32.add + local.get $value|134 + i32.wrap_i64 + i32.store + i32.const 5 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.1 + else + local.get $dst|135 + i32.const 255 + i32.store8 + local.get $dst|135 + i32.const 1 + i32.add + local.get $value|134 + i64.store + i32.const 9 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.1 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 117 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.decodeCompact|inlined.1 (result i64) + global.get $std/encoding/CB + local.set $src|136 + global.get $std/encoding/bytesRead + local.set $bytesRead|137 + local.get $src|136 + i32.load8_u + local.set $first|138 + local.get $first|138 + i32.const 253 + i32.lt_u + if + local.get $bytesRead|137 + local.set $this|139 + i32.const 1 + local.set $value|140 + i32.const 0 + drop + local.get $this|139 + local.get $value|140 + i32.store + local.get $first|138 + i64.extend_i32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.1 + else + local.get $first|138 + i32.const 253 + i32.eq + if + local.get $bytesRead|137 + local.set $this|141 + i32.const 3 + local.set $value|142 + i32.const 0 + drop + local.get $this|141 + local.get $value|142 + i32.store + local.get $src|136 + i32.const 1 + i32.add + i64.load16_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.1 + else + local.get $first|138 + i32.const 254 + i32.eq + if + local.get $bytesRead|137 + local.set $this|143 + i32.const 5 + local.set $value|144 + i32.const 0 + drop + local.get $this|143 + local.get $value|144 + i32.store + local.get $src|136 + i32.const 1 + i32.add + i64.load32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.1 + else + local.get $bytesRead|137 + local.set $this|145 + i32.const 9 + local.set $value|146 + i32.const 0 + drop + local.get $this|145 + local.get $value|146 + i32.store + local.get $src|136 + i32.const 1 + i32.add + i64.load + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.1 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 253 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 119 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get:value|inlined.3 (result i32) + global.get $std/encoding/bytesRead + local.set $this|147 + i32.const 0 + drop + local.get $this|147 + i32.load + br $~lib/pointer/Pointer#get:value|inlined.3 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeCompact|inlined.2 (result i32) + i64.const 65535 + local.set $value|148 + global.get $std/encoding/CB + local.set $dst|149 + local.get $value|148 + i64.const 253 + i64.lt_u + if + local.get $dst|149 + local.get $value|148 + i32.wrap_i64 + i32.store8 + i32.const 1 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.2 + else + local.get $value|148 + i64.const 65535 + i64.le_u + if + local.get $dst|149 + i32.const 253 + i32.store8 + local.get $dst|149 + i32.const 1 + i32.add + local.get $value|148 + i32.wrap_i64 + i32.store16 + i32.const 3 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.2 + else + local.get $value|148 + i64.const 4294967295 + i64.le_u + if + local.get $dst|149 + i32.const 254 + i32.store8 + local.get $dst|149 + i32.const 1 + i32.add + local.get $value|148 + i32.wrap_i64 + i32.store + i32.const 5 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.2 + else + local.get $dst|149 + i32.const 255 + i32.store8 + local.get $dst|149 + i32.const 1 + i32.add + local.get $value|148 + i64.store + i32.const 9 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.2 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 123 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.decodeCompact|inlined.2 (result i64) + global.get $std/encoding/CB + local.set $src|150 + global.get $std/encoding/bytesRead + local.set $bytesRead|151 + local.get $src|150 + i32.load8_u + local.set $first|152 + local.get $first|152 + i32.const 253 + i32.lt_u + if + local.get $bytesRead|151 + local.set $this|153 + i32.const 1 + local.set $value|154 + i32.const 0 + drop + local.get $this|153 + local.get $value|154 + i32.store + local.get $first|152 + i64.extend_i32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.2 + else + local.get $first|152 + i32.const 253 + i32.eq + if + local.get $bytesRead|151 + local.set $this|155 + i32.const 3 + local.set $value|156 + i32.const 0 + drop + local.get $this|155 + local.get $value|156 + i32.store + local.get $src|150 + i32.const 1 + i32.add + i64.load16_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.2 + else + local.get $first|152 + i32.const 254 + i32.eq + if + local.get $bytesRead|151 + local.set $this|157 + i32.const 5 + local.set $value|158 + i32.const 0 + drop + local.get $this|157 + local.get $value|158 + i32.store + local.get $src|150 + i32.const 1 + i32.add + i64.load32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.2 + else + local.get $bytesRead|151 + local.set $this|159 + i32.const 9 + local.set $value|160 + i32.const 0 + drop + local.get $this|159 + local.get $value|160 + i32.store + local.get $src|150 + i32.const 1 + i32.add + i64.load + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.2 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 65535 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 125 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get:value|inlined.4 (result i32) + global.get $std/encoding/bytesRead + local.set $this|161 + i32.const 0 + drop + local.get $this|161 + i32.load + br $~lib/pointer/Pointer#get:value|inlined.4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 126 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeCompact|inlined.3 (result i32) + i64.const 65536 + local.set $value|162 + global.get $std/encoding/CB + local.set $dst|163 + local.get $value|162 + i64.const 253 + i64.lt_u + if + local.get $dst|163 + local.get $value|162 + i32.wrap_i64 + i32.store8 + i32.const 1 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.3 + else + local.get $value|162 + i64.const 65535 + i64.le_u + if + local.get $dst|163 + i32.const 253 + i32.store8 + local.get $dst|163 + i32.const 1 + i32.add + local.get $value|162 + i32.wrap_i64 + i32.store16 + i32.const 3 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.3 + else + local.get $value|162 + i64.const 4294967295 + i64.le_u + if + local.get $dst|163 + i32.const 254 + i32.store8 + local.get $dst|163 + i32.const 1 + i32.add + local.get $value|162 + i32.wrap_i64 + i32.store + i32.const 5 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.3 + else + local.get $dst|163 + i32.const 255 + i32.store8 + local.get $dst|163 + i32.const 1 + i32.add + local.get $value|162 + i64.store + i32.const 9 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.3 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 130 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.decodeCompact|inlined.3 (result i64) + global.get $std/encoding/CB + local.set $src|164 + global.get $std/encoding/bytesRead + local.set $bytesRead|165 + local.get $src|164 + i32.load8_u + local.set $first|166 + local.get $first|166 + i32.const 253 + i32.lt_u + if + local.get $bytesRead|165 + local.set $this|167 + i32.const 1 + local.set $value|168 + i32.const 0 + drop + local.get $this|167 + local.get $value|168 + i32.store + local.get $first|166 + i64.extend_i32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.3 + else + local.get $first|166 + i32.const 253 + i32.eq + if + local.get $bytesRead|165 + local.set $this|169 + i32.const 3 + local.set $value|170 + i32.const 0 + drop + local.get $this|169 + local.get $value|170 + i32.store + local.get $src|164 + i32.const 1 + i32.add + i64.load16_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.3 + else + local.get $first|166 + i32.const 254 + i32.eq + if + local.get $bytesRead|165 + local.set $this|171 + i32.const 5 + local.set $value|172 + i32.const 0 + drop + local.get $this|171 + local.get $value|172 + i32.store + local.get $src|164 + i32.const 1 + i32.add + i64.load32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.3 + else + local.get $bytesRead|165 + local.set $this|173 + i32.const 9 + local.set $value|174 + i32.const 0 + drop + local.get $this|173 + local.get $value|174 + i32.store + local.get $src|164 + i32.const 1 + i32.add + i64.load + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.3 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 65536 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get:value|inlined.5 (result i32) + global.get $std/encoding/bytesRead + local.set $this|175 + i32.const 0 + drop + local.get $this|175 + i32.load + br $~lib/pointer/Pointer#get:value|inlined.5 + end + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 133 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.encodeCompact|inlined.4 (result i32) + i64.const 4294967296 + local.set $value|176 + global.get $std/encoding/CB + local.set $dst|177 + local.get $value|176 + i64.const 253 + i64.lt_u + if + local.get $dst|177 + local.get $value|176 + i32.wrap_i64 + i32.store8 + i32.const 1 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.4 + else + local.get $value|176 + i64.const 65535 + i64.le_u + if + local.get $dst|177 + i32.const 253 + i32.store8 + local.get $dst|177 + i32.const 1 + i32.add + local.get $value|176 + i32.wrap_i64 + i32.store16 + i32.const 3 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.4 + else + local.get $value|176 + i64.const 4294967295 + i64.le_u + if + local.get $dst|177 + i32.const 254 + i32.store8 + local.get $dst|177 + i32.const 1 + i32.add + local.get $value|176 + i32.wrap_i64 + i32.store + i32.const 5 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.4 + else + local.get $dst|177 + i32.const 255 + i32.store8 + local.get $dst|177 + i32.const 1 + i32.add + local.get $value|176 + i64.store + i32.const 9 + br $~lib/encoding/Encoding.Varint.encodeCompact|inlined.4 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/encoding/Encoding.Varint.decodeCompact|inlined.4 (result i64) + global.get $std/encoding/CB + local.set $src|178 + global.get $std/encoding/bytesRead + local.set $bytesRead|179 + local.get $src|178 + i32.load8_u + local.set $first|180 + local.get $first|180 + i32.const 253 + i32.lt_u + if + local.get $bytesRead|179 + local.set $this|181 + i32.const 1 + local.set $value|182 + i32.const 0 + drop + local.get $this|181 + local.get $value|182 + i32.store + local.get $first|180 + i64.extend_i32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.4 + else + local.get $first|180 + i32.const 253 + i32.eq + if + local.get $bytesRead|179 + local.set $this|183 + i32.const 3 + local.set $value|184 + i32.const 0 + drop + local.get $this|183 + local.get $value|184 + i32.store + local.get $src|178 + i32.const 1 + i32.add + i64.load16_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.4 + else + local.get $first|180 + i32.const 254 + i32.eq + if + local.get $bytesRead|179 + local.set $this|185 + i32.const 5 + local.set $value|186 + i32.const 0 + drop + local.get $this|185 + local.get $value|186 + i32.store + local.get $src|178 + i32.const 1 + i32.add + i64.load32_u + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.4 + else + local.get $bytesRead|179 + local.set $this|187 + i32.const 9 + local.set $value|188 + i32.const 0 + drop + local.get $this|187 + local.get $value|188 + i32.store + local.get $src|178 + i32.const 1 + i32.add + i64.load + br $~lib/encoding/Encoding.Varint.decodeCompact|inlined.4 + end + unreachable + end + unreachable + end + unreachable + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 4294967296 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 139 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get:value|inlined.6 (result i32) + global.get $std/encoding/bytesRead + local.set $this|189 + i32.const 0 + drop + local.get $this|189 + i32.load + br $~lib/pointer/Pointer#get:value|inlined.6 + end + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 140 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~start + call $start:std/encoding + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 32864 + i32.const 32912 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber 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 + i32.const 0 + drop + local.get $message + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/encoding.json b/tests/compiler/std/encoding.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/std/encoding.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/std/encoding.release.wat b/tests/compiler/std/encoding.release.wat new file mode 100644 index 0000000000..2ef2e76ddf --- /dev/null +++ b/tests/compiler/std/encoding.release.wat @@ -0,0 +1,1812 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $std/encoding/decLen (mut i32) (i32.const 0)) + (global $std/encoding/bytesRead (mut i32) (i32.const 0)) + (global $std/encoding/written (mut i32) (i32.const 0)) + (global $std/encoding/decoded (mut i32) (i32.const 0)) + (global $std/encoding/decoded2 (mut i32) (i32.const 0)) + (global $std/encoding/decoded3 (mut i32) (i32.const 0)) + (global $std/encoding/decoded64 (mut i64) (i64.const 0)) + (global $std/encoding/compactDecoded (mut i64) (i64.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33868)) + (memory $0 1) + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00\1e\00\00\00s\00t\00d\00/\00e\00n\00c\00o\00d\00i\00n\00g\00.\00t\00s") + (export "memory" (memory $0)) + (start $~start) + (func $start:std/encoding + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i32) + i32.const 8192 + i32.const 48 + i32.store8 + i32.const 8193 + i32.const 48 + i32.store8 + i32.const 8192 + i32.load8_u + i32.const 48 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 11 + call $~lib/builtins/abort + unreachable + end + i32.const 8193 + i32.load8_u + i32.const 48 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 12 + call $~lib/builtins/abort + unreachable + end + i32.const 8196 + i32.const 102 + i32.store8 + i32.const 8197 + i32.const 102 + i32.store8 + i32.const 8196 + i32.load8_u + i32.const 102 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + i32.const 8197 + i32.load8_u + i32.const 102 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + i32.const 8200 + i32.const 97 + i32.store8 + i32.const 8201 + i32.const 98 + i32.store8 + i32.const 8200 + i32.load8_u + i32.const 97 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + i32.const 8201 + i32.load8_u + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + i32.const 8204 + i32.const 49 + i32.store8 + i32.const 8205 + i32.const 102 + i32.store8 + i32.const 8204 + i32.load8_u + i32.const 49 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 23 + call $~lib/builtins/abort + unreachable + end + i32.const 8205 + i32.load8_u + i32.const 102 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 24 + call $~lib/builtins/abort + unreachable + end + i32.const 8448 + i32.const 48 + i32.store8 + i32.const 8449 + i32.const 48 + i32.store8 + i32.const 8448 + i32.load8_u + local.tee $1 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $0 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.0 + local.get $1 + i32.const 57 + i32.le_u + local.get $1 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.0 + local.get $1 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $1 + i32.const 102 + i32.le_u + local.get $1 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.0 + local.get $1 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $1 + i32.const 70 + i32.le_u + local.get $1 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.0 + i32.const -1 + local.set $0 + end + local.get $0 + local.set $1 + i32.const 8449 + i32.load8_u + local.tee $2 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $0 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.1 + local.get $2 + i32.const 57 + i32.le_u + local.get $2 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.1 + local.get $2 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $2 + i32.const 102 + i32.le_u + local.get $2 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.1 + local.get $2 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $2 + i32.const 70 + i32.le_u + local.get $2 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.1 + i32.const -1 + local.set $0 + end + i32.const -1 + local.get $0 + local.get $1 + i32.const 4 + i32.shl + i32.or + local.get $0 + local.get $1 + i32.or + i32.const 0 + i32.lt_s + select + if + i32.const 0 + i32.const 1056 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + i32.const 8450 + i32.const 102 + i32.store8 + i32.const 8451 + i32.const 102 + i32.store8 + i32.const 8450 + i32.load8_u + local.tee $1 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $0 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.2 + local.get $1 + i32.const 57 + i32.le_u + local.get $1 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.2 + local.get $1 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $1 + i32.const 102 + i32.le_u + local.get $1 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.2 + local.get $1 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $1 + i32.const 70 + i32.le_u + local.get $1 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.2 + i32.const -1 + local.set $0 + end + local.get $0 + local.set $1 + i32.const 8451 + i32.load8_u + local.tee $2 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $0 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.3 + local.get $2 + i32.const 57 + i32.le_u + local.get $2 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.3 + local.get $2 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $2 + i32.const 102 + i32.le_u + local.get $2 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.3 + local.get $2 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $2 + i32.const 70 + i32.le_u + local.get $2 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.3 + i32.const -1 + local.set $0 + end + i32.const -1 + local.get $0 + local.get $1 + i32.const 4 + i32.shl + i32.or + local.get $0 + local.get $1 + i32.or + i32.const 0 + i32.lt_s + select + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + i32.const 8452 + i32.const 65 + i32.store8 + i32.const 8453 + i32.const 66 + i32.store8 + i32.const 8452 + i32.load8_u + local.tee $1 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $0 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.4 + local.get $1 + i32.const 57 + i32.le_u + local.get $1 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.4 + local.get $1 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $1 + i32.const 102 + i32.le_u + local.get $1 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.4 + local.get $1 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $1 + i32.const 70 + i32.le_u + local.get $1 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.4 + i32.const -1 + local.set $0 + end + local.get $0 + local.set $1 + i32.const 8453 + i32.load8_u + local.tee $2 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $0 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.5 + local.get $2 + i32.const 57 + i32.le_u + local.get $2 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.5 + local.get $2 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $2 + i32.const 102 + i32.le_u + local.get $2 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.5 + local.get $2 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $2 + i32.const 70 + i32.le_u + local.get $2 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.5 + i32.const -1 + local.set $0 + end + i32.const -1 + local.get $0 + local.get $1 + i32.const 4 + i32.shl + i32.or + local.get $0 + local.get $1 + i32.or + i32.const 0 + i32.lt_s + select + i32.const 171 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 35 + call $~lib/builtins/abort + unreachable + end + i32.const 8456 + i32.const 103 + i32.store8 + i32.const 8457 + i32.const 48 + i32.store8 + i32.const 8456 + i32.load8_u + local.tee $1 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $0 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.6 + local.get $1 + i32.const 57 + i32.le_u + local.get $1 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.6 + local.get $1 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $1 + i32.const 102 + i32.le_u + local.get $1 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.6 + local.get $1 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $1 + i32.const 70 + i32.le_u + local.get $1 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.6 + i32.const -1 + local.set $0 + end + local.get $0 + local.set $1 + i32.const 8457 + i32.load8_u + local.tee $2 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $0 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.7 + local.get $2 + i32.const 57 + i32.le_u + local.get $2 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.7 + local.get $2 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $2 + i32.const 102 + i32.le_u + local.get $2 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.7 + local.get $2 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $0 + local.get $2 + i32.const 70 + i32.le_u + local.get $2 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.7 + i32.const -1 + local.set $0 + end + i32.const -1 + local.get $0 + local.get $1 + i32.const 4 + i32.shl + i32.or + local.get $0 + local.get $1 + i32.or + i32.const 0 + i32.lt_s + select + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 39 + call $~lib/builtins/abort + unreachable + end + i32.const 8536 + i32.const 222 + i32.store8 + i32.const 8537 + i32.const 173 + i32.store8 + i32.const 8538 + i32.const 190 + i32.store8 + i32.const 8539 + i32.const 239 + i32.store8 + loop $for-loop|0 + local.get $3 + i32.const 4 + i32.lt_s + if + local.get $3 + i32.const 1 + i32.shl + i32.const 8636 + i32.add + local.tee $2 + local.get $3 + i32.const 8536 + i32.add + i32.load8_u + local.tee $1 + i32.const 4 + i32.shr_u + local.tee $0 + i32.const 48 + i32.add + local.get $0 + i32.const 87 + i32.add + local.get $0 + i32.const 10 + i32.lt_u + select + i32.store8 + local.get $2 + local.get $1 + i32.const 15 + i32.and + local.tee $0 + i32.const 48 + i32.add + local.get $0 + i32.const 87 + i32.add + local.get $0 + i32.const 10 + i32.lt_u + select + i32.store8 offset=1 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + block $~lib/encoding/Encoding.Hex.decode|inlined.0 (result i32) + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 4 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + i32.const 8636 + i32.add + local.tee $3 + i32.load8_u + local.tee $1 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $2 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.8 + local.get $1 + i32.const 57 + i32.le_u + local.get $1 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.8 + local.get $1 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $2 + local.get $1 + i32.const 102 + i32.le_u + local.get $1 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.8 + local.get $1 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $2 + local.get $1 + i32.const 70 + i32.le_u + local.get $1 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.8 + i32.const -1 + local.set $2 + end + local.get $2 + local.set $1 + local.get $3 + i32.load8_u offset=1 + local.tee $3 + i32.const 48 + i32.sub + i32.const 255 + i32.and + local.set $2 + block $~lib/encoding/Encoding.Hex.decodeNibble|inlined.9 + local.get $3 + i32.const 57 + i32.le_u + local.get $3 + i32.const 48 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.9 + local.get $3 + i32.const 87 + i32.sub + i32.const 255 + i32.and + local.set $2 + local.get $3 + i32.const 102 + i32.le_u + local.get $3 + i32.const 97 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.9 + local.get $3 + i32.const 55 + i32.sub + i32.const 255 + i32.and + local.set $2 + local.get $3 + i32.const 70 + i32.le_u + local.get $3 + i32.const 65 + i32.ge_u + i32.and + br_if $~lib/encoding/Encoding.Hex.decodeNibble|inlined.9 + i32.const -1 + local.set $2 + end + i32.const -1 + i32.const -1 + local.get $2 + local.get $1 + i32.const 4 + i32.shl + i32.or + local.get $1 + local.get $2 + i32.or + i32.const 0 + i32.lt_s + select + local.tee $1 + i32.const 0 + i32.lt_s + br_if $~lib/encoding/Encoding.Hex.decode|inlined.0 + drop + local.get $0 + i32.const 8736 + i32.add + local.get $1 + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + i32.const 4 + end + global.set $std/encoding/decLen + global.get $std/encoding/decLen + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 53 + call $~lib/builtins/abort + unreachable + end + i32.const 8736 + i32.load8_u + i32.const 222 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 54 + call $~lib/builtins/abort + unreachable + end + i32.const 8737 + i32.load8_u + i32.const 173 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 55 + call $~lib/builtins/abort + unreachable + end + i32.const 8738 + i32.load8_u + i32.const 190 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 56 + call $~lib/builtins/abort + unreachable + end + i32.const 8739 + i32.load8_u + i32.const 239 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + i32.const 8960 + global.set $std/encoding/bytesRead + i32.const 0 + local.set $3 + i32.const 0 + local.set $0 + loop $while-continue|3 + local.get $3 + i32.const 128 + i32.ge_u + if + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $3 + i32.const 7 + i32.shr_u + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|3 + end + end + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.store8 + local.get $0 + i32.const 1 + i32.add + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 73 + call $~lib/builtins/abort + unreachable + end + i32.const 9036 + i32.load8_u + if + i32.const 0 + i32.const 1056 + i32.const 74 + call $~lib/builtins/abort + unreachable + end + i32.const 127 + local.set $3 + i32.const 0 + local.set $0 + loop $while-continue|4 + local.get $3 + i32.const 128 + i32.ge_u + if + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $3 + i32.const 7 + i32.shr_u + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|4 + end + end + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.store8 + local.get $0 + i32.const 1 + i32.add + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 77 + call $~lib/builtins/abort + unreachable + end + i32.const 9036 + i32.load8_u + i32.const 127 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 78 + call $~lib/builtins/abort + unreachable + end + i32.const 128 + local.set $3 + i32.const 0 + local.set $0 + loop $while-continue|5 + local.get $3 + i32.const 128 + i32.ge_u + if + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $3 + i32.const 7 + i32.shr_u + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|5 + end + end + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.store8 + local.get $0 + i32.const 1 + i32.add + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 82 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/bytesRead + i32.const 0 + local.set $0 + i32.const 0 + local.set $3 + loop $do-loop|6 + block $do-break|6 + local.get $0 + local.get $3 + i32.const 9036 + i32.add + i32.load8_u + local.tee $1 + i32.const 127 + i32.and + local.get $6 + i32.shl + i32.or + local.set $0 + local.get $6 + i32.const 7 + i32.add + local.set $6 + local.get $3 + i32.const 1 + i32.add + local.tee $3 + i32.const 5 + i32.ge_s + br_if $do-break|6 + local.get $1 + i32.const 128 + i32.and + br_if $do-loop|6 + end + end + local.get $3 + i32.store + local.get $0 + global.set $std/encoding/decoded + global.get $std/encoding/decoded + i32.const 128 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 84 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/bytesRead + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 85 + call $~lib/builtins/abort + unreachable + end + i32.const 300 + local.set $3 + i32.const 0 + local.set $0 + loop $while-continue|7 + local.get $3 + i32.const 128 + i32.ge_u + if + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $3 + i32.const 7 + i32.shr_u + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|7 + end + end + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.store8 + local.get $0 + i32.const 1 + i32.add + global.set $std/encoding/written + global.get $std/encoding/bytesRead + i32.const 0 + local.set $0 + i32.const 0 + local.set $6 + i32.const 0 + local.set $3 + loop $do-loop|8 + block $do-break|8 + local.get $0 + local.get $3 + i32.const 9036 + i32.add + i32.load8_u + local.tee $1 + i32.const 127 + i32.and + local.get $6 + i32.shl + i32.or + local.set $0 + local.get $6 + i32.const 7 + i32.add + local.set $6 + local.get $3 + i32.const 1 + i32.add + local.tee $3 + i32.const 5 + i32.ge_s + br_if $do-break|8 + local.get $1 + i32.const 128 + i32.and + br_if $do-loop|8 + end + end + local.get $3 + i32.store + local.get $0 + global.set $std/encoding/decoded2 + global.get $std/encoding/decoded2 + i32.const 300 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 89 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $3 + i32.const 0 + local.set $0 + loop $while-continue|9 + local.get $3 + i32.const 128 + i32.ge_u + if + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.const 127 + i32.and + i32.const 128 + i32.or + i32.store8 + local.get $3 + i32.const 7 + i32.shr_u + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|9 + end + end + local.get $0 + i32.const 9036 + i32.add + local.get $3 + i32.store8 + local.get $0 + i32.const 1 + i32.add + global.set $std/encoding/written + global.get $std/encoding/written + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 93 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/bytesRead + i32.const 0 + local.set $0 + i32.const 0 + local.set $6 + i32.const 0 + local.set $3 + loop $do-loop|10 + block $do-break|10 + local.get $0 + local.get $3 + i32.const 9036 + i32.add + i32.load8_u + local.tee $1 + i32.const 127 + i32.and + local.get $6 + i32.shl + i32.or + local.set $0 + local.get $6 + i32.const 7 + i32.add + local.set $6 + local.get $3 + i32.const 1 + i32.add + local.tee $3 + i32.const 5 + i32.ge_s + br_if $do-break|10 + local.get $1 + i32.const 128 + i32.and + br_if $do-loop|10 + end + end + local.get $3 + i32.store + local.get $0 + global.set $std/encoding/decoded3 + global.get $std/encoding/decoded3 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 95 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/bytesRead + i32.load + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 96 + call $~lib/builtins/abort + unreachable + end + i64.const 72623859790382856 + local.set $5 + i32.const 0 + local.set $3 + loop $while-continue|11 + local.get $5 + i64.const 128 + i64.ge_u + if + local.get $3 + i32.const 9136 + i32.add + local.get $5 + i64.const 127 + i64.and + i32.wrap_i64 + i32.const 128 + i32.or + i32.store8 + local.get $5 + i64.const 7 + i64.shr_u + local.set $5 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|11 + end + end + local.get $3 + i32.const 9136 + i32.add + local.get $5 + i64.store8 + local.get $3 + i32.const 1 + i32.add + global.set $std/encoding/written + global.get $std/encoding/bytesRead + i64.const 0 + local.set $5 + i32.const 0 + local.set $3 + loop $do-loop|12 + block $do-break|12 + local.get $5 + local.get $3 + i32.const 9136 + i32.add + i32.load8_u + local.tee $0 + i32.const 127 + i32.and + i64.extend_i32_u + local.get $4 + i64.shl + i64.or + local.set $5 + local.get $4 + i64.const 7 + i64.add + local.set $4 + local.get $3 + i32.const 1 + i32.add + local.tee $3 + i32.const 10 + i32.ge_s + br_if $do-break|12 + local.get $0 + i32.const 128 + i32.and + br_if $do-loop|12 + end + end + local.get $3 + i32.store + local.get $5 + global.set $std/encoding/decoded64 + global.get $std/encoding/decoded64 + i64.const 72623859790382856 + i64.ne + if + i32.const 0 + i32.const 1056 + i32.const 102 + call $~lib/builtins/abort + unreachable + end + i32.const 9236 + i64.const 252 + i64.store8 + i32.const 1 + global.set $std/encoding/written + global.get $std/encoding/bytesRead + local.set $1 + i32.const 9236 + i32.load8_u + local.tee $0 + i32.const 253 + i32.lt_u + if (result i64) + local.get $1 + i32.const 1 + i32.store + local.get $0 + i64.extend_i32_u + else + local.get $0 + i32.const 253 + i32.eq + if (result i64) + local.get $1 + i32.const 3 + i32.store + i32.const 9237 + i64.load16_u + else + local.get $0 + i32.const 254 + i32.eq + if (result i64) + local.get $1 + i32.const 5 + i32.store + i32.const 9237 + i64.load32_u + else + local.get $1 + i32.const 9 + i32.store + i32.const 9237 + i64.load + end + end + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 252 + i64.ne + if + i32.const 0 + i32.const 1056 + i32.const 112 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/bytesRead + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 113 + call $~lib/builtins/abort + unreachable + end + i32.const 9236 + i32.const 253 + i32.store8 + i32.const 9237 + i64.const 253 + i64.store16 + i32.const 3 + global.set $std/encoding/written + global.get $std/encoding/bytesRead + local.set $1 + i32.const 9236 + i32.load8_u + local.tee $0 + i32.const 253 + i32.lt_u + if (result i64) + local.get $1 + i32.const 1 + i32.store + local.get $0 + i64.extend_i32_u + else + local.get $0 + i32.const 253 + i32.eq + if (result i64) + local.get $1 + i32.const 3 + i32.store + i32.const 9237 + i64.load16_u + else + local.get $0 + i32.const 254 + i32.eq + if (result i64) + local.get $1 + i32.const 5 + i32.store + i32.const 9237 + i64.load32_u + else + local.get $1 + i32.const 9 + i32.store + i32.const 9237 + i64.load + end + end + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 253 + i64.ne + if + i32.const 0 + i32.const 1056 + i32.const 119 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/bytesRead + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 120 + call $~lib/builtins/abort + unreachable + end + i32.const 9236 + i32.const 253 + i32.store8 + i32.const 9237 + i64.const 65535 + i64.store16 + i32.const 3 + global.set $std/encoding/written + global.get $std/encoding/bytesRead + local.set $1 + i32.const 9236 + i32.load8_u + local.tee $0 + i32.const 253 + i32.lt_u + if (result i64) + local.get $1 + i32.const 1 + i32.store + local.get $0 + i64.extend_i32_u + else + local.get $0 + i32.const 253 + i32.eq + if (result i64) + local.get $1 + i32.const 3 + i32.store + i32.const 9237 + i64.load16_u + else + local.get $0 + i32.const 254 + i32.eq + if (result i64) + local.get $1 + i32.const 5 + i32.store + i32.const 9237 + i64.load32_u + else + local.get $1 + i32.const 9 + i32.store + i32.const 9237 + i64.load + end + end + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 65535 + i64.ne + if + i32.const 0 + i32.const 1056 + i32.const 125 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/bytesRead + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 126 + call $~lib/builtins/abort + unreachable + end + i32.const 9236 + i32.const 254 + i32.store8 + i32.const 9237 + i64.const 65536 + i64.store32 + i32.const 5 + global.set $std/encoding/written + global.get $std/encoding/bytesRead + local.set $1 + i32.const 9236 + i32.load8_u + local.tee $0 + i32.const 253 + i32.lt_u + if (result i64) + local.get $1 + i32.const 1 + i32.store + local.get $0 + i64.extend_i32_u + else + local.get $0 + i32.const 253 + i32.eq + if (result i64) + local.get $1 + i32.const 3 + i32.store + i32.const 9237 + i64.load16_u + else + local.get $0 + i32.const 254 + i32.eq + if (result i64) + local.get $1 + i32.const 5 + i32.store + i32.const 9237 + i64.load32_u + else + local.get $1 + i32.const 9 + i32.store + i32.const 9237 + i64.load + end + end + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 65536 + i64.ne + if + i32.const 0 + i32.const 1056 + i32.const 132 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/bytesRead + i32.load + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 133 + call $~lib/builtins/abort + unreachable + end + i32.const 9236 + i32.const 255 + i32.store8 + i32.const 9237 + i64.const 4294967296 + i64.store + i32.const 9 + global.set $std/encoding/written + global.get $std/encoding/bytesRead + local.set $1 + i32.const 9236 + i32.load8_u + local.tee $0 + i32.const 253 + i32.lt_u + if (result i64) + local.get $1 + i32.const 1 + i32.store + local.get $0 + i64.extend_i32_u + else + local.get $0 + i32.const 253 + i32.eq + if (result i64) + local.get $1 + i32.const 3 + i32.store + i32.const 9237 + i64.load16_u + else + local.get $0 + i32.const 254 + i32.eq + if (result i64) + local.get $1 + i32.const 5 + i32.store + i32.const 9237 + i64.load32_u + else + local.get $1 + i32.const 9 + i32.store + i32.const 9237 + i64.load + end + end + end + global.set $std/encoding/compactDecoded + global.get $std/encoding/compactDecoded + i64.const 4294967296 + i64.ne + if + i32.const 0 + i32.const 1056 + i32.const 139 + call $~lib/builtins/abort + unreachable + end + global.get $std/encoding/bytesRead + i32.load + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 140 + call $~lib/builtins/abort + unreachable + end + ) + (func $~start + call $start:std/encoding + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $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 1100 + i32.lt_s + if + i32.const 33888 + i32.const 33936 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/encoding.ts b/tests/compiler/std/encoding.ts new file mode 100644 index 0000000000..1c0fb8a623 --- /dev/null +++ b/tests/compiler/std/encoding.ts @@ -0,0 +1,140 @@ +import { Encoding } from "encoding"; +import { Pointer } from "pointer"; + +// Use high addresses to avoid overlap with heap/static data +const BASE: usize = 8192; + +// --- Hex encoding --- + +// encodeByte +Encoding.Hex.encodeByte(0x00, BASE); +assert(load(BASE) == 48); // '0' +assert(load(BASE + 1) == 48); // '0' + +Encoding.Hex.encodeByte(0xFF, BASE + 4); +assert(load(BASE + 4) == 102); // 'f' +assert(load(BASE + 5) == 102); // 'f' + +Encoding.Hex.encodeByte(0xAB, BASE + 8); +assert(load(BASE + 8) == 97); // 'a' +assert(load(BASE + 9) == 98); // 'b' + +Encoding.Hex.encodeByte(0x1F, BASE + 12); +assert(load(BASE + 12) == 49); // '1' +assert(load(BASE + 13) == 102); // 'f' + +// decodeByte +const DB: usize = BASE + 256; +store(DB, 48); store(DB + 1, 48); // "00" +assert(Encoding.Hex.decodeByte(DB) == 0x00); + +store(DB + 2, 102); store(DB + 3, 102); // "ff" +assert(Encoding.Hex.decodeByte(DB + 2) == 0xFF); + +store(DB + 4, 65); store(DB + 5, 66); // "AB" (uppercase) +assert(Encoding.Hex.decodeByte(DB + 4) == 0xAB); + +// Invalid hex +store(DB + 8, 103); store(DB + 9, 48); // "g0" +assert(Encoding.Hex.decodeByte(DB + 8) == -1); + +// encode / decode multi-byte +const SRC: usize = BASE + 344; +const HEX: usize = BASE + 444; +const DEC: usize = BASE + 544; +store(SRC, 0xDE); +store(SRC + 1, 0xAD); +store(SRC + 2, 0xBE); +store(SRC + 3, 0xEF); +let hexLen = Encoding.Hex.encode(SRC, 4, HEX); +assert(hexLen == 8); + +let decLen = Encoding.Hex.decode(HEX, 8, DEC); +assert(decLen == 4); +assert(load(DEC) == 0xDE); +assert(load(DEC + 1) == 0xAD); +assert(load(DEC + 2) == 0xBE); +assert(load(DEC + 3) == 0xEF); + +// Odd-length decode returns -1 +assert(Encoding.Hex.decode(HEX, 7, DEC + 100) == -1); + +// --- LEB128 Varint --- + +const BR: usize = BASE + 768; // bytesRead location +const VB: usize = BASE + 844; // varint buffer + +let bytesRead = new Pointer(BR); + +// encodeU32 / decodeU32 + +// Single-byte encoding (0-127) +let written = Encoding.Varint.encodeU32(0, VB); +assert(written == 1); +assert(load(VB) == 0); + +written = Encoding.Varint.encodeU32(127, VB); +assert(written == 1); +assert(load(VB) == 127); + +// Multi-byte encoding +written = Encoding.Varint.encodeU32(128, VB); +assert(written == 2); +let decoded = Encoding.Varint.decodeU32(VB, bytesRead); +assert(decoded == 128); +assert(bytesRead.value == 2); + +written = Encoding.Varint.encodeU32(300, VB); +let decoded2 = Encoding.Varint.decodeU32(VB, bytesRead); +assert(decoded2 == 300); + +// Large value +written = Encoding.Varint.encodeU32(0xFFFFFFFF, VB); +assert(written == 5); +let decoded3 = Encoding.Varint.decodeU32(VB, bytesRead); +assert(decoded3 == 0xFFFFFFFF); +assert(bytesRead.value == 5); + +// encodeU64 / decodeU64 +const VB64: usize = BASE + 944; +written = Encoding.Varint.encodeU64(0x0102030405060708, VB64); +let decoded64 = Encoding.Varint.decodeU64(VB64, bytesRead); +assert(decoded64 == 0x0102030405060708); + +// --- Bitcoin CompactSize --- + +const CB: usize = BASE + 1044; + +// Single byte (< 0xFD) +written = Encoding.Varint.encodeCompact(0xFC, CB); +assert(written == 1); +let compactDecoded = Encoding.Varint.decodeCompact(CB, bytesRead); +assert(compactDecoded == 0xFC); +assert(bytesRead.value == 1); + +// 2-byte (0xFD prefix) +written = Encoding.Varint.encodeCompact(0xFD, CB); +assert(written == 3); +compactDecoded = Encoding.Varint.decodeCompact(CB, bytesRead); +assert(compactDecoded == 0xFD); +assert(bytesRead.value == 3); + +written = Encoding.Varint.encodeCompact(0xFFFF, CB); +assert(written == 3); +compactDecoded = Encoding.Varint.decodeCompact(CB, bytesRead); +assert(compactDecoded == 0xFFFF); +assert(bytesRead.value == 3); + +// 4-byte (0xFE prefix) +written = Encoding.Varint.encodeCompact(0x10000, CB); +assert(written == 5); +compactDecoded = Encoding.Varint.decodeCompact(CB, bytesRead); +assert(compactDecoded == 0x10000); +assert(bytesRead.value == 5); + +// 8-byte (0xFF prefix) +written = Encoding.Varint.encodeCompact(0x100000000, CB); +assert(written == 9); +compactDecoded = Encoding.Varint.decodeCompact(CB, bytesRead); +assert(compactDecoded == 0x100000000); +assert(bytesRead.value == 9); diff --git a/tests/compiler/std/endian.debug.wat b/tests/compiler/std/endian.debug.wat new file mode 100644 index 0000000000..c92d31e1a2 --- /dev/null +++ b/tests/compiler/std/endian.debug.wat @@ -0,0 +1,689 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func (param i64) (result i64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $std/endian/BASE i32 (i32.const 8192)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 60)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) + (global $~lib/memory/__heap_base i32 (i32.const 32828)) + (memory $0 1) + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00s\00t\00d\00/\00e\00n\00d\00i\00a\00n\00.\00t\00s\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/polyfills/bswap (param $value i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $value + i32.const 8 + i32.const 15 + i32.and + i32.shl + local.get $value + i32.const 65535 + i32.and + i32.const 8 + i32.const 15 + i32.and + i32.shr_u + i32.or + return + ) + (func $~lib/polyfills/bswap (param $value i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $value + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $value + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + return + ) + (func $~lib/polyfills/bswap (param $value i64) (result i64) + (local $a i64) + (local $b i64) + (local $v i64) + i32.const 1 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $value + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.set $a + local.get $value + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + local.set $b + local.get $a + local.get $b + i64.or + local.set $v + local.get $v + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.set $a + local.get $v + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + local.set $b + local.get $a + local.get $b + i64.or + i64.const 32 + i64.rotr + return + ) + (func $~lib/polyfills/bswap (param $value i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $value + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $value + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + return + ) + (func $~lib/polyfills/bswap (param $value i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $value + i32.const 8 + i32.const 15 + i32.and + i32.shl + local.get $value + i32.const 65535 + i32.and + i32.const 8 + i32.const 15 + i32.and + i32.shr_u + i32.or + return + ) + (func $start:std/endian + (local $value i32) + (local $value|1 i32) + (local $value|2 i64) + (local $value|3 i32) + (local $value|4 i32) + (local $value|5 i64) + (local $value|6 i32) + (local $value|7 i64) + (local $ptr i32) + (local $offset i32) + (local $ptr|10 i32) + (local $offset|11 i32) + (local $ptr|12 i32) + (local $value|13 i32) + (local $offset|14 i32) + (local $ptr|15 i32) + (local $value|16 i32) + (local $offset|17 i32) + (local $ptr|18 i32) + (local $value|19 i32) + (local $offset|20 i32) + (local $ptr|21 i32) + (local $offset|22 i32) + (local $ptr|23 i32) + (local $value|24 i64) + (local $offset|25 i32) + (local $ptr|26 i32) + (local $offset|27 i32) + (local $value|28 i32) + (local $value|29 i32) + (local $ptr|30 i32) + (local $value|31 i32) + (local $offset|32 i32) + (local $ptr|33 i32) + (local $offset|34 i32) + block $~lib/endian/Endian.toBE|inlined.0 (result i32) + i32.const 258 + local.set $value + local.get $value + call $~lib/polyfills/bswap + br $~lib/endian/Endian.toBE|inlined.0 + end + i32.const 65535 + i32.and + i32.const 513 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.toBE|inlined.0 (result i32) + i32.const 16909060 + local.set $value|1 + local.get $value|1 + call $~lib/polyfills/bswap + br $~lib/endian/Endian.toBE|inlined.0 + end + i32.const 67305985 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.toBE|inlined.0 (result i64) + i64.const 72623859790382856 + local.set $value|2 + local.get $value|2 + call $~lib/polyfills/bswap + br $~lib/endian/Endian.toBE|inlined.0 + end + i64.const 578437695752307201 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.fromBE|inlined.0 (result i32) + i32.const 513 + local.set $value|3 + local.get $value|3 + call $~lib/polyfills/bswap + br $~lib/endian/Endian.fromBE|inlined.0 + end + i32.const 65535 + i32.and + i32.const 258 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.fromBE|inlined.0 (result i32) + i32.const 67305985 + local.set $value|4 + local.get $value|4 + call $~lib/polyfills/bswap + br $~lib/endian/Endian.fromBE|inlined.0 + end + i32.const 16909060 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.fromBE|inlined.0 (result i64) + i64.const 578437695752307201 + local.set $value|5 + local.get $value|5 + call $~lib/polyfills/bswap + br $~lib/endian/Endian.fromBE|inlined.0 + end + i64.const 72623859790382856 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.toLE|inlined.0 (result i32) + i32.const -559038737 + local.set $value|6 + local.get $value|6 + br $~lib/endian/Endian.toLE|inlined.0 + end + i32.const -559038737 + i32.eq + drop + block $~lib/endian/Endian.fromLE|inlined.0 (result i64) + i64.const 1311768467294899695 + local.set $value|7 + local.get $value|7 + br $~lib/endian/Endian.fromLE|inlined.0 + end + i64.const 1311768467294899695 + i64.eq + drop + global.get $std/endian/BASE + i32.const 16909060 + i32.store + block $~lib/endian/Endian.loadBE|inlined.0 (result i32) + global.get $std/endian/BASE + local.set $ptr + i32.const 0 + local.set $offset + local.get $ptr + local.get $offset + i32.add + i32.load + call $~lib/polyfills/bswap + br $~lib/endian/Endian.loadBE|inlined.0 + end + i32.const 67305985 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.loadLE|inlined.0 (result i32) + global.get $std/endian/BASE + local.set $ptr|10 + i32.const 0 + local.set $offset|11 + local.get $ptr|10 + local.get $offset|11 + i32.add + i32.load + br $~lib/endian/Endian.loadLE|inlined.0 + end + i32.const 16909060 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/endian/BASE + i32.const 8 + i32.add + local.set $ptr|12 + i32.const 16909060 + local.set $value|13 + i32.const 0 + local.set $offset|14 + local.get $ptr|12 + local.get $offset|14 + i32.add + local.get $value|13 + call $~lib/polyfills/bswap + i32.store + global.get $std/endian/BASE + i32.const 8 + i32.add + i32.load + i32.const 67305985 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/endian/BASE + i32.const 16 + i32.add + local.set $ptr|15 + i32.const -1430532899 + local.set $value|16 + i32.const 0 + local.set $offset|17 + local.get $ptr|15 + local.get $offset|17 + i32.add + local.get $value|16 + i32.store + global.get $std/endian/BASE + i32.const 16 + i32.add + i32.load + i32.const -1430532899 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/endian/BASE + i32.const 32 + i32.add + local.set $ptr|18 + i32.const 258 + local.set $value|19 + i32.const 0 + local.set $offset|20 + local.get $ptr|18 + local.get $offset|20 + i32.add + local.get $value|19 + call $~lib/polyfills/bswap + i32.store16 + global.get $std/endian/BASE + i32.const 32 + i32.add + i32.load16_u + i32.const 513 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.loadBE|inlined.0 (result i32) + global.get $std/endian/BASE + i32.const 32 + i32.add + local.set $ptr|21 + i32.const 0 + local.set $offset|22 + local.get $ptr|21 + local.get $offset|22 + i32.add + i32.load16_u + call $~lib/polyfills/bswap + br $~lib/endian/Endian.loadBE|inlined.0 + end + i32.const 65535 + i32.and + i32.const 258 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/endian/BASE + i32.const 48 + i32.add + local.set $ptr|23 + i64.const 72623859790382856 + local.set $value|24 + i32.const 0 + local.set $offset|25 + local.get $ptr|23 + local.get $offset|25 + i32.add + local.get $value|24 + call $~lib/polyfills/bswap + i64.store + block $~lib/endian/Endian.loadBE|inlined.0 (result i64) + global.get $std/endian/BASE + i32.const 48 + i32.add + local.set $ptr|26 + i32.const 0 + local.set $offset|27 + local.get $ptr|26 + local.get $offset|27 + i32.add + i64.load + call $~lib/polyfills/bswap + br $~lib/endian/Endian.loadBE|inlined.0 + end + i64.const 72623859790382856 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/endian/BASE + i32.const 48 + i32.add + i64.load + i64.const 578437695752307201 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.toBE|inlined.0 (result i32) + i32.const 16909060 + local.set $value|28 + local.get $value|28 + call $~lib/polyfills/bswap + br $~lib/endian/Endian.toBE|inlined.0 + end + i32.const 67305985 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/endian/Endian.toBE|inlined.0 (result i32) + i32.const 258 + local.set $value|29 + local.get $value|29 + call $~lib/polyfills/bswap + br $~lib/endian/Endian.toBE|inlined.0 + end + i32.extend16_s + i32.const 513 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/endian/BASE + i32.const 64 + i32.add + local.set $ptr|30 + i32.const -559038737 + local.set $value|31 + i32.const 0 + local.set $offset|32 + local.get $ptr|30 + local.get $offset|32 + i32.add + local.get $value|31 + call $~lib/polyfills/bswap + i32.store + block $~lib/endian/Endian.loadBE|inlined.1 (result i32) + global.get $std/endian/BASE + i32.const 60 + i32.add + local.set $ptr|33 + i32.const 4 + local.set $offset|34 + local.get $ptr|33 + local.get $offset|34 + i32.add + i32.load + call $~lib/polyfills/bswap + br $~lib/endian/Endian.loadBE|inlined.1 + end + i32.const -559038737 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 45 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~start + call $start:std/endian + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 32848 + i32.const 32896 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber 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 + i32.const 0 + drop + local.get $message + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/endian.json b/tests/compiler/std/endian.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/std/endian.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/std/endian.release.wat b/tests/compiler/std/endian.release.wat new file mode 100644 index 0000000000..db4864fabf --- /dev/null +++ b/tests/compiler/std/endian.release.wat @@ -0,0 +1,222 @@ +(module + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) + (memory $0 1) + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1a\00\00\00s\00t\00d\00/\00e\00n\00d\00i\00a\00n\00.\00t\00s") + (export "memory" (memory $0)) + (start $~start) + (func $~start + (local $0 i32) + (local $1 i64) + i32.const 8192 + i32.const 16909060 + i32.store + i32.const 8192 + i32.load + local.tee $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + i32.const 67305985 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + i32.const 8192 + i32.load + i32.const 16909060 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + i32.const 8200 + i32.const 67305985 + i32.store + i32.const 8200 + i32.load + i32.const 67305985 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 24 + call $~lib/builtins/abort + unreachable + end + i32.const 8208 + i32.const -1430532899 + i32.store + i32.const 8208 + i32.load + i32.const -1430532899 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 27 + call $~lib/builtins/abort + unreachable + end + i32.const 8224 + i32.const 513 + i32.store16 + i32.const 8224 + i32.load16_u + i32.const 513 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + i32.const 8224 + i32.load16_u + local.tee $0 + i32.const 8 + i32.shl + local.get $0 + i32.const 8 + i32.shr_u + i32.or + i32.const 65535 + i32.and + i32.const 258 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + i32.const 8240 + i64.const 578437695752307201 + i64.store + i32.const 8240 + i64.load + local.tee $1 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $1 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $1 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $1 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.const 72623859790382856 + i64.ne + if + i32.const 0 + i32.const 1056 + i32.const 36 + call $~lib/builtins/abort + unreachable + end + i32.const 8240 + i64.load + i64.const 578437695752307201 + i64.ne + if + i32.const 0 + i32.const 1056 + i32.const 37 + call $~lib/builtins/abort + unreachable + end + i32.const 8256 + i32.const -272716322 + i32.store + i32.const 8256 + i32.load + local.tee $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + i32.const -559038737 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $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 1084 + i32.lt_s + if + i32.const 33872 + i32.const 33920 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + i32.const 1 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/endian.ts b/tests/compiler/std/endian.ts new file mode 100644 index 0000000000..23777f66f2 --- /dev/null +++ b/tests/compiler/std/endian.ts @@ -0,0 +1,45 @@ +import { Endian } from "endian"; + +// Use high addresses to avoid overlap with heap/static data +const BASE: usize = 8192; + +// Test toBE / fromBE (bswap) +assert(Endian.toBE(0x0102) == 0x0201); +assert(Endian.toBE(0x01020304) == 0x04030201); +assert(Endian.toBE(0x0102030405060708) == 0x0807060504030201); +assert(Endian.fromBE(0x0201) == 0x0102); +assert(Endian.fromBE(0x04030201) == 0x01020304); +assert(Endian.fromBE(0x0807060504030201) == 0x0102030405060708); + +// Test toLE / fromLE (identity) +assert(Endian.toLE(0xDEADBEEF) == 0xDEADBEEF); +assert(Endian.fromLE(0x1234567890ABCDEF) == 0x1234567890ABCDEF); + +// Test loadBE / storeBE with memory +store(BASE, 0x01020304); +assert(Endian.loadBE(BASE) == 0x04030201); +assert(Endian.loadLE(BASE) == 0x01020304); + +Endian.storeBE(BASE + 8, 0x01020304); +assert(load(BASE + 8) == 0x04030201); + +Endian.storeLE(BASE + 16, 0xAABBCCDD); +assert(load(BASE + 16) == 0xAABBCCDD); + +// Test with offsets +Endian.storeBE(BASE + 32, 0x0102); +assert(load(BASE + 32) == 0x0201); +assert(Endian.loadBE(BASE + 32) == 0x0102); + +// Test 64-bit +Endian.storeBE(BASE + 48, 0x0102030405060708); +assert(Endian.loadBE(BASE + 48) == 0x0102030405060708); +assert(load(BASE + 48) == 0x0807060504030201); + +// Test signed types +assert(Endian.toBE(0x01020304) == 0x04030201); +assert(Endian.toBE(0x0102) == 0x0201); + +// Test offset parameter +Endian.storeBE(BASE + 64, 0xDEADBEEF); +assert(Endian.loadBE(BASE + 60, 4) == 0xDEADBEEF); diff --git a/tests/compiler/std/fixedarray.debug.wat b/tests/compiler/std/fixedarray.debug.wat new file mode 100644 index 0000000000..b71d0c2ef9 --- /dev/null +++ b/tests/compiler/std/fixedarray.debug.wat @@ -0,0 +1,11167 @@ +(module + (type $0 (func (param i32 i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (param i32 i64 i32) (result i32))) + (type $9 (func (param i32 i32 i32 i32))) + (type $10 (func (param i32 i32 i32 i32) (result i32))) + (type $11 (func (param i32 i64) (result i32))) + (type $12 (func (param i32 i32) (result i64))) + (type $13 (func (param i32) (result i64))) + (type $14 (func (param i32 i64 i32 i32) (result i32))) + (type $15 (func (param i32 i32 f32))) + (type $16 (func (param i32 f32 i32) (result i32))) + (type $17 (func (param i32 i32 f64))) + (type $18 (func (param i32 f64 i32) (result i32))) + (type $19 (func (param i32 i32 i64) (result i32))) + (type $20 (func (result i32))) + (type $21 (func (param i32 f32) (result i32))) + (type $22 (func (param i32 i32) (result f32))) + (type $23 (func (param i32) (result f32))) + (type $24 (func (param i32 f32 i32 i32) (result i32))) + (type $25 (func (param i32 f64) (result i32))) + (type $26 (func (param i32 i32) (result f64))) + (type $27 (func (param i32) (result f64))) + (type $28 (func (param i32 f64 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING i32 (i32.const 0)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) + (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/rt/__rtti_base i32 (i32.const 704)) + (global $~lib/memory/__data_end i32 (i32.const 748)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33516)) + (global $~lib/memory/__heap_base i32 (i32.const 33516)) + (memory $0 1) + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $1 (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00f\00i\00x\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $3 (i32.const 188) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $4 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 316) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $7 (i32.const 380) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 460) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 524) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00s\00t\00d\00/\00f\00i\00x\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 588) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00C\00a\00p\00a\00c\00i\00t\00y\00 \00e\00x\00c\00e\00e\00d\00e\00d\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 652) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y\00") + (data $13 (i32.const 704) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:prev + local.get $space + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev + i32.const 1 + drop + local.get $prev + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u + if + i32.const 336 + i32.const 400 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + return + ) + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 208 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + 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 $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr + i32.eqz + if + return + end + local.get $ptr + i32.const 20 + i32.sub + local.set $obj + i32.const 0 + drop + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $obj + 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 $cookie i32) + (local $ptr i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end + end + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) + i32.const 4 + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $6 i32) + (local $7 i32) + (local $boundedSize i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) + (local $head i32) + (local $root|18 i32) + (local $fl|19 i32) + (local $slMap i32) + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + i32.eq + if + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + local.get $slMap + i32.eqz + if + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + 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 $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) + (local $left i32) + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo + i32.const 1 + drop + local.get $leftInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo + i32.const 4 + i32.add + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $right + i32.const 4 + i32.sub + local.get $block + i32.store + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + local.set $head + local.get $block + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + 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 $start + local.get $end + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $end + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + local.set $tail + i32.const 0 + local.set $tailInfo + local.get $tail + if + i32.const 1 + drop + local.get $start + local.get $tail + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo + else + end + else + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart 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 $rootOffset + memory.size + local.set $pagesBefore + local.get $rootOffset + 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 $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) + local.get $pagesNeeded + local.get $pagesBefore + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $sl + i32.const 1 + i32.add + local.set $sl + br $for-loop|1 + end + end + local.get $fl + i32.const 1 + i32.add + local.set $fl + br $for-loop|0 + end + end + local.get $rootOffset + i32.const 1572 + i32.add + local.set $memStart + i32.const 0 + drop + local.get $root + local.get $memStart + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr + i32.const 4 + i32.sub + local.set $block + local.get $ptr + i32.const 0 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) + i32.const 0 + drop + local.get $block + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + 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 $ptr + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $from 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 $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + 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 $obj + local.get $obj + 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 $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + 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 $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $obj + 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 208 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $obj + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (local $budget 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 $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step + i32.sub + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop + global.get $~lib/rt/itcms/total + i32.const 200 + i32.const 100 + i32.div_u + i32.mul + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $budget + 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 $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $size + 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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 144 + i32.const 480 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size + i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $size + end + return + ) + (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + local.get $requestSize + i32.clz + i32.sub + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + i32.const 0 + i32.const -1 + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap + i32.const 0 + local.set $head + local.get $slMap + i32.eqz + if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 0 + i32.const -1 + i32.xor + local.get $fl + i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz + if + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) + i32.const 0 + drop + local.get $size + i32.const 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block + i32.eqz + if + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 480 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $block + return + ) + (func $~lib/rt/tlsf/__alloc (param $size 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 $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u + if + i32.const 144 + i32.const 208 + i32.const 261 + i32.const 31 + call $~lib/builtins/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 $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill + local.get $ptr + return + ) + (func $~lib/fixedarray/FixedArray#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedarray/FixedArray#set:capacity_ (param $this i32) (param $capacity_ i32) + local.get $this + local.get $capacity_ + i32.store offset=4 + ) + (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) + (local $child i32) + (local $parent i32) + (local $parentColor i32) + local.get $childPtr + i32.eqz + if + return + end + i32.const 1 + drop + local.get $parentPtr + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $childPtr + i32.const 20 + i32.sub + local.set $child + local.get $child + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $parentPtr + i32.const 20 + i32.sub + local.set $parent + local.get $parent + call $~lib/rt/itcms/Object#get:color + local.set $parentColor + local.get $parentColor + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $expectMultiple + if + local.get $parent + call $~lib/rt/itcms/Object#makeGray + else + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $parentColor + 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 $child + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/fixedarray/FixedArray#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:capacity_ (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedarray/FixedArray#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedarray/FixedArray#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedarray/FixedArray#set:capacity_ (param $this i32) (param $capacity_ i32) + local.get $this + local.get $capacity_ + i32.store offset=4 + ) + (func $~lib/fixedarray/FixedArray#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:capacity_ (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedarray/FixedArray#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedarray/FixedArray#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedarray/FixedArray#set:capacity_ (param $this i32) (param $capacity_ i32) + local.get $this + local.get $capacity_ + i32.store offset=4 + ) + (func $~lib/fixedarray/FixedArray#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:capacity_ (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedarray/FixedArray#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedarray/FixedArray#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedarray/FixedArray#set:capacity_ (param $this i32) (param $capacity_ i32) + local.get $this + local.get $capacity_ + i32.store offset=4 + ) + (func $~lib/fixedarray/FixedArray#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:capacity_ (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedarray/FixedArray#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedarray/FixedArray#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedarray/FixedArray#set:capacity_ (param $this i32) (param $capacity_ i32) + local.get $this + local.get $capacity_ + i32.store offset=4 + ) + (func $~lib/fixedarray/FixedArray#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:capacity_ (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedarray/FixedArray#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedarray/FixedArray#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedarray/FixedArray#set:capacity_ (param $this i32) (param $capacity_ i32) + local.get $this + local.get $capacity_ + i32.store offset=4 + ) + (func $~lib/fixedarray/FixedArray#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedarray/FixedArray#get:capacity_ (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedarray/FixedArray#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $start:std/fixedarray + 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 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 288 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 432 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + call $std/fixedarray/testLength + call $std/fixedarray/testCapacity + ) + (func $~start + call $start:std/fixedarray + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33536 + i32.const 33584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber 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 + i32.const 0 + drop + local.get $message + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#constructor (param $this i32) (param $capacity i32) (result i32) + (local $bufferSize i32) + (local $ptr 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:capacity_ + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + local.get $capacity + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 62 + call $~lib/builtins/abort + unreachable + end + local.get $capacity + i32.const 2 + i32.shl + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $ptr + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $capacity + call $~lib/fixedarray/FixedArray#set:capacity_ + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + 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/fixedarray/FixedArray#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#get:capacity (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:capacity_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#push (param $this i32) (param $value i32) (result i32) + (local $len i32) + (local $newLen i32) + (local $4 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.ge_s + if + i32.const 608 + i32.const 80 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $len + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + local.get $len + i32.const 1 + i32.add + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $newLen + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/fixedarray/FixedArray#__get (param $this i32) (param $index 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 $index + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/fixedarray/FixedArray#__uset (param $this i32) (param $index i32) (param $value 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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $this i32) (param $index i32) (param $value 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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + local.get $value + call $~lib/fixedarray/FixedArray#__uset + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#pop (param $this i32) (result i32) + (local $len i32) + (local $newLen i32) + (local $value i32) + (local $4 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + i32.const 0 + i32.le_s + if + i32.const 672 + i32.const 80 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $newLen + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $value + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) + (local $length i32) + (local $4 i32) + (local $5 i32) + (local $data 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $length + local.get $length + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $fromIndex + local.get $length + i32.ge_s + end + if + i32.const -1 + 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 $fromIndex + i32.const 0 + i32.lt_s + if + local.get $length + local.get $fromIndex + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $fromIndex + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $data + local.get $fromIndex + i32.const 2 + i32.shl + i32.add + i32.load + local.get $value + i32.eq + if + local.get $fromIndex + 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 $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 + end + end + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) + (func $~lib/fixedarray/FixedArray#includes (param $this i32) (param $value i32) (param $fromIndex i32) (result 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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $value + local.get $fromIndex + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#swapDelete (param $this i32) (param $index i32) + (local $len i32) + (local $newLen i32) + (local $data i32) + (local $deletedOff i32) + (local $lastOff 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $index + local.get $len + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $index + local.get $newLen + i32.ne + if + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $index + i32.const 2 + i32.shl + local.set $deletedOff + local.get $newLen + i32.const 2 + i32.shl + local.set $lastOff + local.get $data + local.get $deletedOff + i32.add + local.get $data + local.get $lastOff + i32.add + i32.load + i32.store + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#set:length (param $this i32) (param $value 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 $value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 43 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $value + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#fill (param $this i32) (param $value i32) (param $start i32) (param $end i32) (result i32) + (local $len 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 $data i32) + (local $i i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $start + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $start + i32.add + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + else + local.get $start + local.tee $7 + local.get $len + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $start + local.get $end + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $end + i32.add + local.tee $9 + i32.const 0 + local.tee $10 + local.get $9 + local.get $10 + i32.gt_s + select + else + local.get $end + local.tee $11 + local.get $len + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + end + local.set $end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + i32.const 0 + drop + local.get $start + local.set $i + loop $for-loop|0 + local.get $i + local.get $end + i32.lt_s + if + local.get $data + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/fixedarray/FixedArray#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $arr i32) + (local $i i32) + (local $i|2 i32) + (local $val i32) + (local $i|4 i32) + (local $5 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 128 + call $~lib/fixedarray/FixedArray#constructor + local.tee $arr + i32.store + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i32.const 100 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i + call $~lib/fixedarray/FixedArray#push + drop + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i|2 + loop $for-loop|1 + local.get $i|2 + i32.const 100 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|2 + call $~lib/fixedarray/FixedArray#__get + local.get $i|2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|2 + i32.const 1 + i32.add + local.set $i|2 + br $for-loop|1 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 42 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#pop + local.set $val + local.get $val + i32.const 99 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#swapDelete + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 7 + i32.const 0 + i32.const 5 + call $~lib/fixedarray/FixedArray#fill + drop + i32.const 0 + local.set $i|4 + loop $for-loop|2 + local.get $i|4 + i32.const 5 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|4 + call $~lib/fixedarray/FixedArray#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|2 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#clear + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 42 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#constructor (param $this i32) (param $capacity i32) (result i32) + (local $bufferSize i32) + (local $ptr 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:capacity_ + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + local.get $capacity + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 62 + call $~lib/builtins/abort + unreachable + end + local.get $capacity + i32.const 2 + i32.shl + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $ptr + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $capacity + call $~lib/fixedarray/FixedArray#set:capacity_ + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + 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/fixedarray/FixedArray#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#get:capacity (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:capacity_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#push (param $this i32) (param $value i32) (result i32) + (local $len i32) + (local $newLen i32) + (local $4 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.ge_s + if + i32.const 608 + i32.const 80 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $len + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + local.get $len + i32.const 1 + i32.add + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $newLen + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/fixedarray/FixedArray#__get (param $this i32) (param $index 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 $index + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/fixedarray/FixedArray#__uset (param $this i32) (param $index i32) (param $value 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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $this i32) (param $index i32) (param $value 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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + local.get $value + call $~lib/fixedarray/FixedArray#__uset + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#pop (param $this i32) (result i32) + (local $len i32) + (local $newLen i32) + (local $value i32) + (local $4 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + i32.const 0 + i32.le_s + if + i32.const 672 + i32.const 80 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $newLen + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $value + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) + (local $length i32) + (local $4 i32) + (local $5 i32) + (local $data 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $length + local.get $length + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $fromIndex + local.get $length + i32.ge_s + end + if + i32.const -1 + 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 $fromIndex + i32.const 0 + i32.lt_s + if + local.get $length + local.get $fromIndex + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $fromIndex + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $data + local.get $fromIndex + i32.const 2 + i32.shl + i32.add + i32.load + local.get $value + i32.eq + if + local.get $fromIndex + 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 $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 + end + end + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) + (func $~lib/fixedarray/FixedArray#includes (param $this i32) (param $value i32) (param $fromIndex i32) (result 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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $value + local.get $fromIndex + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#swapDelete (param $this i32) (param $index i32) + (local $len i32) + (local $newLen i32) + (local $data i32) + (local $deletedOff i32) + (local $lastOff 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $index + local.get $len + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $index + local.get $newLen + i32.ne + if + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $index + i32.const 2 + i32.shl + local.set $deletedOff + local.get $newLen + i32.const 2 + i32.shl + local.set $lastOff + local.get $data + local.get $deletedOff + i32.add + local.get $data + local.get $lastOff + i32.add + i32.load + i32.store + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#set:length (param $this i32) (param $value 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 $value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 43 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $value + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#fill (param $this i32) (param $value i32) (param $start i32) (param $end i32) (result i32) + (local $len 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 $data i32) + (local $i i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $start + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $start + i32.add + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + else + local.get $start + local.tee $7 + local.get $len + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $start + local.get $end + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $end + i32.add + local.tee $9 + i32.const 0 + local.tee $10 + local.get $9 + local.get $10 + i32.gt_s + select + else + local.get $end + local.tee $11 + local.get $len + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + end + local.set $end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + i32.const 0 + drop + local.get $start + local.set $i + loop $for-loop|0 + local.get $i + local.get $end + i32.lt_s + if + local.get $data + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/fixedarray/FixedArray#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $arr i32) + (local $i i32) + (local $i|2 i32) + (local $val i32) + (local $i|4 i32) + (local $5 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 128 + call $~lib/fixedarray/FixedArray#constructor + local.tee $arr + i32.store + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i32.const 100 + i32.lt_u + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i + call $~lib/fixedarray/FixedArray#push + drop + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i|2 + loop $for-loop|1 + local.get $i|2 + i32.const 100 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|2 + call $~lib/fixedarray/FixedArray#__get + local.get $i|2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|2 + i32.const 1 + i32.add + local.set $i|2 + br $for-loop|1 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 42 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#pop + local.set $val + local.get $val + i32.const 99 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#swapDelete + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 7 + i32.const 0 + i32.const 5 + call $~lib/fixedarray/FixedArray#fill + drop + i32.const 0 + local.set $i|4 + loop $for-loop|2 + local.get $i|4 + i32.const 5 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|4 + call $~lib/fixedarray/FixedArray#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|2 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#clear + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 42 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#constructor (param $this i32) (param $capacity i32) (result i32) + (local $bufferSize i32) + (local $ptr 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:capacity_ + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + local.get $capacity + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 62 + call $~lib/builtins/abort + unreachable + end + local.get $capacity + i32.const 3 + i32.shl + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $ptr + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $capacity + call $~lib/fixedarray/FixedArray#set:capacity_ + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + 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/fixedarray/FixedArray#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#get:capacity (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:capacity_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#push (param $this i32) (param $value i64) (result i32) + (local $len i32) + (local $newLen i32) + (local $4 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.ge_s + if + i32.const 608 + i32.const 80 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $len + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + i32.const 0 + drop + local.get $len + i32.const 1 + i32.add + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $newLen + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/fixedarray/FixedArray#__get (param $this i32) (param $index i32) (result i64) + (local $2 i32) + (local $3 i64) + 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 $index + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#__uset (param $this i32) (param $index i32) (param $value i64) + (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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $this i32) (param $index i32) (param $value i64) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + local.get $value + call $~lib/fixedarray/FixedArray#__uset + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#pop (param $this i32) (result i64) + (local $len i32) + (local $newLen i32) + (local $value i64) + (local $4 i32) + (local $5 i64) + 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + i32.const 0 + i32.le_s + if + i32.const 672 + i32.const 80 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $newLen + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $value + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $this i32) (param $value i64) (param $fromIndex i32) (result i32) + (local $length i32) + (local $4 i32) + (local $5 i32) + (local $data 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $length + local.get $length + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $fromIndex + local.get $length + i32.ge_s + end + if + i32.const -1 + 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 $fromIndex + i32.const 0 + i32.lt_s + if + local.get $length + local.get $fromIndex + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $fromIndex + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $data + local.get $fromIndex + i32.const 3 + i32.shl + i32.add + i64.load + local.get $value + i64.eq + if + local.get $fromIndex + 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 $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 + end + end + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) + (func $~lib/fixedarray/FixedArray#includes (param $this i32) (param $value i64) (param $fromIndex i32) (result 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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $value + local.get $fromIndex + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#swapDelete (param $this i32) (param $index i32) + (local $len i32) + (local $newLen i32) + (local $data i32) + (local $deletedOff i32) + (local $lastOff 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $index + local.get $len + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $index + local.get $newLen + i32.ne + if + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $index + i32.const 3 + i32.shl + local.set $deletedOff + local.get $newLen + i32.const 3 + i32.shl + local.set $lastOff + local.get $data + local.get $deletedOff + i32.add + local.get $data + local.get $lastOff + i32.add + i64.load + i64.store + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#set:length (param $this i32) (param $value 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 $value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 43 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $value + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#fill (param $this i32) (param $value i64) (param $start i32) (param $end i32) (result i32) + (local $len 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 $data i32) + (local $i i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $start + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $start + i32.add + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + else + local.get $start + local.tee $7 + local.get $len + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $start + local.get $end + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $end + i32.add + local.tee $9 + i32.const 0 + local.tee $10 + local.get $9 + local.get $10 + i32.gt_s + select + else + local.get $end + local.tee $11 + local.get $len + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + end + local.set $end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + i32.const 0 + drop + local.get $start + local.set $i + loop $for-loop|0 + local.get $i + local.get $end + i32.lt_s + if + local.get $data + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/fixedarray/FixedArray#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $arr i32) + (local $i i64) + (local $i|2 i32) + (local $val i64) + (local $i|4 i32) + (local $5 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 128 + call $~lib/fixedarray/FixedArray#constructor + local.tee $arr + i32.store + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i64.const 100 + i64.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i + call $~lib/fixedarray/FixedArray#push + drop + local.get $i + i64.const 1 + i64.add + local.set $i + br $for-loop|0 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i|2 + loop $for-loop|1 + local.get $i|2 + i32.const 100 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|2 + call $~lib/fixedarray/FixedArray#__get + local.get $i|2 + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|2 + i32.const 1 + i32.add + local.set $i|2 + br $for-loop|1 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i64.const 42 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 42 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i64.const 0 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#pop + local.set $val + local.get $val + i64.const 99 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#swapDelete + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 98 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 7 + i32.const 0 + i32.const 5 + call $~lib/fixedarray/FixedArray#fill + drop + i32.const 0 + local.set $i|4 + loop $for-loop|2 + local.get $i|4 + i32.const 5 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|4 + call $~lib/fixedarray/FixedArray#__get + i64.const 7 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|2 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#clear + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 42 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 42 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#constructor (param $this i32) (param $capacity i32) (result i32) + (local $bufferSize i32) + (local $ptr 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:capacity_ + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + local.get $capacity + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 62 + call $~lib/builtins/abort + unreachable + end + local.get $capacity + i32.const 3 + i32.shl + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $ptr + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $capacity + call $~lib/fixedarray/FixedArray#set:capacity_ + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + 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/fixedarray/FixedArray#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#get:capacity (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:capacity_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#push (param $this i32) (param $value i64) (result i32) + (local $len i32) + (local $newLen i32) + (local $4 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.ge_s + if + i32.const 608 + i32.const 80 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $len + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + i32.const 0 + drop + local.get $len + i32.const 1 + i32.add + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $newLen + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/fixedarray/FixedArray#__get (param $this i32) (param $index i32) (result i64) + (local $2 i32) + (local $3 i64) + 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 $index + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#__uset (param $this i32) (param $index i32) (param $value i64) + (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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $this i32) (param $index i32) (param $value i64) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + local.get $value + call $~lib/fixedarray/FixedArray#__uset + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#pop (param $this i32) (result i64) + (local $len i32) + (local $newLen i32) + (local $value i64) + (local $4 i32) + (local $5 i64) + 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + i32.const 0 + i32.le_s + if + i32.const 672 + i32.const 80 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $newLen + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $value + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $this i32) (param $value i64) (param $fromIndex i32) (result i32) + (local $length i32) + (local $4 i32) + (local $5 i32) + (local $data 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $length + local.get $length + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $fromIndex + local.get $length + i32.ge_s + end + if + i32.const -1 + 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 $fromIndex + i32.const 0 + i32.lt_s + if + local.get $length + local.get $fromIndex + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $fromIndex + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $data + local.get $fromIndex + i32.const 3 + i32.shl + i32.add + i64.load + local.get $value + i64.eq + if + local.get $fromIndex + 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 $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 + end + end + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) + (func $~lib/fixedarray/FixedArray#includes (param $this i32) (param $value i64) (param $fromIndex i32) (result 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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $value + local.get $fromIndex + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#swapDelete (param $this i32) (param $index i32) + (local $len i32) + (local $newLen i32) + (local $data i32) + (local $deletedOff i32) + (local $lastOff 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $index + local.get $len + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $index + local.get $newLen + i32.ne + if + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $index + i32.const 3 + i32.shl + local.set $deletedOff + local.get $newLen + i32.const 3 + i32.shl + local.set $lastOff + local.get $data + local.get $deletedOff + i32.add + local.get $data + local.get $lastOff + i32.add + i64.load + i64.store + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#set:length (param $this i32) (param $value 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 $value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 43 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $value + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#fill (param $this i32) (param $value i64) (param $start i32) (param $end i32) (result i32) + (local $len 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 $data i32) + (local $i i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $start + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $start + i32.add + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + else + local.get $start + local.tee $7 + local.get $len + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $start + local.get $end + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $end + i32.add + local.tee $9 + i32.const 0 + local.tee $10 + local.get $9 + local.get $10 + i32.gt_s + select + else + local.get $end + local.tee $11 + local.get $len + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + end + local.set $end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + i32.const 0 + drop + local.get $start + local.set $i + loop $for-loop|0 + local.get $i + local.get $end + i32.lt_s + if + local.get $data + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/fixedarray/FixedArray#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $arr i32) + (local $i i64) + (local $i|2 i32) + (local $val i64) + (local $i|4 i32) + (local $5 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 128 + call $~lib/fixedarray/FixedArray#constructor + local.tee $arr + i32.store + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i64.const 100 + i64.lt_u + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i + call $~lib/fixedarray/FixedArray#push + drop + local.get $i + i64.const 1 + i64.add + local.set $i + br $for-loop|0 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i|2 + loop $for-loop|1 + local.get $i|2 + i32.const 100 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|2 + call $~lib/fixedarray/FixedArray#__get + local.get $i|2 + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|2 + i32.const 1 + i32.add + local.set $i|2 + br $for-loop|1 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i64.const 42 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 42 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i64.const 0 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#pop + local.set $val + local.get $val + i64.const 99 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#swapDelete + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 98 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 7 + i32.const 0 + i32.const 5 + call $~lib/fixedarray/FixedArray#fill + drop + i32.const 0 + local.set $i|4 + loop $for-loop|2 + local.get $i|4 + i32.const 5 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|4 + call $~lib/fixedarray/FixedArray#__get + i64.const 7 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|2 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#clear + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i64.const 42 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 42 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#constructor (param $this i32) (param $capacity i32) (result i32) + (local $bufferSize i32) + (local $ptr 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:capacity_ + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + local.get $capacity + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 62 + call $~lib/builtins/abort + unreachable + end + local.get $capacity + i32.const 2 + i32.shl + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $ptr + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $capacity + call $~lib/fixedarray/FixedArray#set:capacity_ + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + 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/fixedarray/FixedArray#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#get:capacity (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:capacity_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#push (param $this i32) (param $value f32) (result i32) + (local $len i32) + (local $newLen i32) + (local $4 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.ge_s + if + i32.const 608 + i32.const 80 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $len + i32.const 2 + i32.shl + i32.add + local.get $value + f32.store + i32.const 0 + drop + local.get $len + i32.const 1 + i32.add + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $newLen + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/fixedarray/FixedArray#__get (param $this i32) (param $index i32) (result f32) + (local $2 i32) + (local $3 f32) + 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 $index + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 2 + i32.shl + i32.add + f32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#__uset (param $this i32) (param $index i32) (param $value f32) + (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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + f32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $this i32) (param $index i32) (param $value f32) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + local.get $value + call $~lib/fixedarray/FixedArray#__uset + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#pop (param $this i32) (result f32) + (local $len i32) + (local $newLen i32) + (local $value f32) + (local $4 i32) + (local $5 f32) + 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + i32.const 0 + i32.le_s + if + i32.const 672 + i32.const 80 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $newLen + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $value + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $this i32) (param $value f32) (param $fromIndex i32) (result i32) + (local $length i32) + (local $4 i32) + (local $5 i32) + (local $data 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $length + local.get $length + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $fromIndex + local.get $length + i32.ge_s + end + if + i32.const -1 + 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 $fromIndex + i32.const 0 + i32.lt_s + if + local.get $length + local.get $fromIndex + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $fromIndex + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $data + local.get $fromIndex + i32.const 2 + i32.shl + i32.add + f32.load + local.get $value + f32.eq + if + local.get $fromIndex + 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 $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 + end + end + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) + (func $~lib/fixedarray/FixedArray#includes (param $this i32) (param $value f32) (param $fromIndex i32) (result 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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $value + local.get $fromIndex + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#swapDelete (param $this i32) (param $index i32) + (local $len i32) + (local $newLen i32) + (local $data i32) + (local $deletedOff i32) + (local $lastOff 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $index + local.get $len + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $index + local.get $newLen + i32.ne + if + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $index + i32.const 2 + i32.shl + local.set $deletedOff + local.get $newLen + i32.const 2 + i32.shl + local.set $lastOff + local.get $data + local.get $deletedOff + i32.add + local.get $data + local.get $lastOff + i32.add + f32.load + f32.store + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#set:length (param $this i32) (param $value 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 $value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 43 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $value + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#fill (param $this i32) (param $value f32) (param $start i32) (param $end i32) (result i32) + (local $len 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 $data i32) + (local $i i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $start + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $start + i32.add + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + else + local.get $start + local.tee $7 + local.get $len + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $start + local.get $end + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $end + i32.add + local.tee $9 + i32.const 0 + local.tee $10 + local.get $9 + local.get $10 + i32.gt_s + select + else + local.get $end + local.tee $11 + local.get $len + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + end + local.set $end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + i32.const 0 + drop + local.get $start + local.set $i + loop $for-loop|0 + local.get $i + local.get $end + i32.lt_s + if + local.get $data + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $value + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/fixedarray/FixedArray#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $arr i32) + (local $i f32) + (local $i|2 i32) + (local $val f32) + (local $i|4 i32) + (local $5 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 128 + call $~lib/fixedarray/FixedArray#constructor + local.tee $arr + i32.store + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + f32.const 100 + f32.lt + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i + call $~lib/fixedarray/FixedArray#push + drop + local.get $i + f32.const 1 + f32.add + local.set $i + br $for-loop|0 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i|2 + loop $for-loop|1 + local.get $i|2 + i32.const 100 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|2 + call $~lib/fixedarray/FixedArray#__get + local.get $i|2 + f32.convert_i32_s + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|2 + i32.const 1 + i32.add + local.set $i|2 + br $for-loop|1 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + f32.const 42 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f32.const 42 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + f32.const 0 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f32.const 0 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#pop + local.set $val + local.get $val + f32.const 99 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f32.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f32.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f32.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f32.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#swapDelete + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f32.const 98 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f32.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f32.const 7 + i32.const 0 + i32.const 5 + call $~lib/fixedarray/FixedArray#fill + drop + i32.const 0 + local.set $i|4 + loop $for-loop|2 + local.get $i|4 + i32.const 5 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|4 + call $~lib/fixedarray/FixedArray#__get + f32.const 7 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|2 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#clear + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f32.const 42 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f32.const 42 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#constructor (param $this i32) (param $capacity i32) (result i32) + (local $bufferSize i32) + (local $ptr 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:capacity_ + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + local.get $capacity + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 19 + i32.const 62 + call $~lib/builtins/abort + unreachable + end + local.get $capacity + i32.const 3 + i32.shl + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $ptr + call $~lib/fixedarray/FixedArray#set:dataPtr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $capacity + call $~lib/fixedarray/FixedArray#set:capacity_ + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + 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/fixedarray/FixedArray#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#get:capacity (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedarray/FixedArray#get:capacity_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedarray/FixedArray#push (param $this i32) (param $value f64) (result i32) + (local $len i32) + (local $newLen i32) + (local $4 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.ge_s + if + i32.const 608 + i32.const 80 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $len + i32.const 3 + i32.shl + i32.add + local.get $value + f64.store + i32.const 0 + drop + local.get $len + i32.const 1 + i32.add + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $newLen + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/fixedarray/FixedArray#__get (param $this i32) (param $index i32) (result f64) + (local $2 i32) + (local $3 f64) + 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 $index + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 3 + i32.shl + i32.add + f64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#__uset (param $this i32) (param $index i32) (param $value f64) + (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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $index + i32.const 3 + i32.shl + i32.add + local.get $value + f64.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $this i32) (param $index i32) (param $value f64) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:length_ + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + local.get $value + call $~lib/fixedarray/FixedArray#__uset + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#pop (param $this i32) (result f64) + (local $len i32) + (local $newLen i32) + (local $value f64) + (local $4 i32) + (local $5 f64) + 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 $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $len + i32.const 0 + i32.le_s + if + i32.const 672 + i32.const 80 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.get $newLen + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + local.get $value + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $this i32) (param $value f64) (param $fromIndex i32) (result i32) + (local $length i32) + (local $4 i32) + (local $5 i32) + (local $data 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $length + local.get $length + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $fromIndex + local.get $length + i32.ge_s + end + if + i32.const -1 + 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 $fromIndex + i32.const 0 + i32.lt_s + if + local.get $length + local.get $fromIndex + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $fromIndex + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $data + local.get $fromIndex + i32.const 3 + i32.shl + i32.add + f64.load + local.get $value + f64.eq + if + local.get $fromIndex + 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 $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 + end + end + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) + (func $~lib/fixedarray/FixedArray#includes (param $this i32) (param $value f64) (param $fromIndex i32) (result 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 $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $value + local.get $fromIndex + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/fixedarray/FixedArray#swapDelete (param $this i32) (param $index i32) + (local $len i32) + (local $newLen i32) + (local $data i32) + (local $deletedOff i32) + (local $lastOff 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 $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $index + local.get $len + i32.ge_u + if + i32.const 336 + i32.const 80 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $len + i32.const 1 + i32.sub + local.set $newLen + local.get $index + local.get $newLen + i32.ne + if + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $index + i32.const 3 + i32.shl + local.set $deletedOff + local.get $newLen + i32.const 3 + i32.shl + local.set $lastOff + local.get $data + local.get $deletedOff + i32.add + local.get $data + local.get $lastOff + i32.add + f64.load + f64.store + end + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $newLen + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#set:length (param $this i32) (param $value 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 $value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/fixedarray/FixedArray#get:capacity_ + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 43 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $value + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#fill (param $this i32) (param $value f64) (param $start i32) (param $end i32) (result i32) + (local $len 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 $data i32) + (local $i i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:length_ + local.set $len + local.get $start + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $start + i32.add + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + else + local.get $start + local.tee $7 + local.get $len + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $start + local.get $end + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $end + i32.add + local.tee $9 + i32.const 0 + local.tee $10 + local.get $9 + local.get $10 + i32.gt_s + select + else + local.get $end + local.tee $11 + local.get $len + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + end + local.set $end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + i32.const 0 + drop + local.get $start + local.set $i + loop $for-loop|0 + local.get $i + local.get $end + i32.lt_s + if + local.get $data + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $value + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/fixedarray/FixedArray#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $arr i32) + (local $i f64) + (local $i|2 i32) + (local $val f64) + (local $i|4 i32) + (local $5 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 128 + call $~lib/fixedarray/FixedArray#constructor + local.tee $arr + i32.store + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $i + loop $for-loop|0 + local.get $i + f64.const 100 + f64.lt + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i + call $~lib/fixedarray/FixedArray#push + drop + local.get $i + f64.const 1 + f64.add + local.set $i + br $for-loop|0 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i|2 + loop $for-loop|1 + local.get $i|2 + i32.const 100 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|2 + call $~lib/fixedarray/FixedArray#__get + local.get $i|2 + f64.convert_i32_s + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|2 + i32.const 1 + i32.add + local.set $i|2 + br $for-loop|1 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + f64.const 42 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f64.const 42 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + f64.const 0 + call $~lib/fixedarray/FixedArray#__set + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#pop + local.set $val + local.get $val + f64.const 99 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f64.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f64.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f64.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f64.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f64.const 50 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f64.const 99 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#swapDelete + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f64.const 98 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f64.const 0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f64.const 7 + i32.const 0 + i32.const 5 + call $~lib/fixedarray/FixedArray#fill + drop + i32.const 0 + local.set $i|4 + loop $for-loop|2 + local.get $i|4 + i32.const 5 + i32.lt_s + if + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $i|4 + call $~lib/fixedarray/FixedArray#__get + f64.const 7 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|4 + i32.const 1 + i32.add + local.set $i|4 + br $for-loop|2 + end + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#clear + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + f64.const 42 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f64.const 42 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testLength + (local $arr i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 64 + call $~lib/fixedarray/FixedArray#constructor + local.tee $arr + i32.store + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 32 + call $~lib/fixedarray/FixedArray#set:length + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/fixedarray/FixedArray#get:length + i32.const 32 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/fixedarray/FixedArray#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testCapacity + (local $arr i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/fixedarray/FixedArray#constructor + local.tee $arr + i32.store + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + call $~lib/fixedarray/FixedArray#push + drop + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/fixedarray/FixedArray#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $arr + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 336 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 672 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 144 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 608 + 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 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/fixedarray/FixedArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__visit + ) + (func $~lib/fixedarray/FixedArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__visit + ) + (func $~lib/fixedarray/FixedArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__visit + ) + (func $~lib/fixedarray/FixedArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__visit + ) + (func $~lib/fixedarray/FixedArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__visit + ) + (func $~lib/fixedarray/FixedArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/fixedarray/FixedArray + block $~lib/fixedarray/FixedArray + block $~lib/fixedarray/FixedArray + block $~lib/fixedarray/FixedArray + block $~lib/fixedarray/FixedArray + block $~lib/fixedarray/FixedArray + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/fixedarray/FixedArray $~lib/fixedarray/FixedArray $~lib/fixedarray/FixedArray $~lib/fixedarray/FixedArray $~lib/fixedarray/FixedArray $~lib/fixedarray/FixedArray $invalid + end + return + 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/fixedarray/FixedArray~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray~visit + return + end + unreachable + ) + (func $~lib/fixedarray/FixedArray#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedarray/FixedArray#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/fixedarray.json b/tests/compiler/std/fixedarray.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/std/fixedarray.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/std/fixedarray.release.wat b/tests/compiler/std/fixedarray.release.wat new file mode 100644 index 0000000000..097e000e44 --- /dev/null +++ b/tests/compiler/std/fixedarray.release.wat @@ -0,0 +1,7340 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i64) (result i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i64))) + (type $8 (func (param i32 i32) (result i64))) + (type $9 (func (param i32 f32))) + (type $10 (func (param i32 f32) (result i32))) + (type $11 (func (param i32 f64))) + (type $12 (func (param i32 f64) (result i32))) + (type $13 (func (param i32 i32 i64))) + (type $14 (func (result i32))) + (type $15 (func (param i32 i32) (result f32))) + (type $16 (func (param i32 i32) (result f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (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/memory/__stack_pointer (mut i32) (i32.const 34540)) + (memory $0 1) + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $1 (i32.const 1084) "<") + (data $1.1 (i32.const 1096) "\02\00\00\00$\00\00\00~\00l\00i\00b\00/\00f\00i\00x\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data $2 (i32.const 1148) "<") + (data $2.1 (i32.const 1160) "\02\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 $3 (i32.const 1212) "<") + (data $3.1 (i32.const 1224) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1340) "<") + (data $6.1 (i32.const 1352) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1404) ",") + (data $7.1 (i32.const 1416) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1484) "<") + (data $9.1 (i32.const 1496) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1548) "<") + (data $10.1 (i32.const 1560) "\02\00\00\00\"\00\00\00s\00t\00d\00/\00f\00i\00x\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data $11 (i32.const 1612) "<") + (data $11.1 (i32.const 1624) "\02\00\00\00\"\00\00\00C\00a\00p\00a\00c\00i\00t\00y\00 \00e\00x\00c\00e\00e\00d\00e\00d") + (data $12 (i32.const 1676) ",") + (data $12.1 (i32.const 1688) "\02\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y") + (data $13 (i32.const 1728) "\n\00\00\00 \00\00\00 \00\00\00 ") + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1696 + call $~lib/rt/itcms/__visit + i32.const 1168 + call $~lib/rt/itcms/__visit + i32.const 1632 + call $~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 1232 + i32.const 160 + i32.const 16 + call $~lib/builtins/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 1232 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$328 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34540 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$328 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 132 + i32.const 16 + call $~lib/builtins/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 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1728 + i32.load + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1732 + 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/__visit (param $0 i32) + local.get $0 + i32.eqz + if + return + end + 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 $~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 $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1504 + i32.const 284 + i32.const 14 + call $~lib/builtins/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 $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + 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 1504 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 203 + i32.const 14 + call $~lib/builtins/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 1504 + i32.const 221 + i32.const 16 + call $~lib/builtins/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 1504 + i32.const 233 + i32.const 14 + call $~lib/builtins/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 1504 + i32.const 234 + i32.const 14 + call $~lib/builtins/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 + i32.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_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 1504 + i32.const 251 + i32.const 14 + call $~lib/builtins/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 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 382 + i32.const 14 + call $~lib/builtins/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 $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1504 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + 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 $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + 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 34544 + i32.const 0 + i32.store + i32.const 36112 + 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 34544 + 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 34544 + 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 34544 + i32.const 36116 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34544 + global.set $~lib/rt/tlsf/ROOT + ) + (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 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 34540 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 1232 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34540 + 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 + local.tee $0 + i32.const 34540 + i32.ge_u + if + 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 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1504 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + 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.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + 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.add + i32.const 1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1504 + i32.const 334 + i32.const 14 + call $~lib/builtins/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 1504 + i32.const 347 + i32.const 18 + call $~lib/builtins/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/itcms/__new (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 + i32.const 1073741804 + i32.ge_u + if + i32.const 1168 + i32.const 1232 + i32.const 261 + i32.const 31 + call $~lib/builtins/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$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1168 + i32.const 1504 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + memory.size + local.tee $2 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1504 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $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/__link (param $0 i32) (param $1 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 295 + i32.const 14 + call $~lib/builtins/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 + ) + (func $~start + (local $0 i32) + block $__inlined_func$start:std/fixedarray + memory.size + i32.const 16 + i32.shl + i32.const 34540 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + call $std/fixedarray/testNumeric + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 64 + call $~lib/fixedarray/FixedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 32 + call $~lib/fixedarray/FixedArray#set:length + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 32 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#set:length + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/fixedarray/FixedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:std/fixedarray + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#constructor (param $0 i32) (result 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 62 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/fixedarray/FixedArray#get:length (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#get:capacity (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#push (param $0 i32) (param $1 i32) + (local $2 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.ge_s + if + i32.const 1632 + i32.const 1104 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + i32.const 1 + i32.add + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1104 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $0 i32) (param $1 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.store + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedarray/FixedArray#indexOf (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 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.eqz + local.get $3 + i32.const 0 + i32.le_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + 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 -1 + ) + (func $~lib/fixedarray/FixedArray#includes (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#set:length (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 43 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#fill (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 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + local.set $1 + i32.const 5 + local.get $2 + local.get $2 + i32.const 5 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $0 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.const 7 + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#clear (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 128 + call $~lib/fixedarray/FixedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $1 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#push + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + local.get $1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 42 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 1696 + i32.const 1104 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 99 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 50 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 99 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 50 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 99 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.tee $2 + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#fill + i32.const 0 + local.set $1 + loop $for-loop|2 + local.get $1 + i32.const 5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#clear + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 42 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedarray/FixedArray#__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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1104 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#indexOf (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 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.eqz + local.get $3 + i32.const 0 + i32.le_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + 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 -1 + ) + (func $~lib/fixedarray/FixedArray#includes (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $0 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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 512 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 128 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $1 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#push + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + local.get $1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 42 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 1696 + i32.const 1104 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 99 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 50 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 99 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 50 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 99 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.tee $2 + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#fill + i32.const 0 + local.set $1 + loop $for-loop|2 + local.get $1 + i32.const 5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#clear + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 42 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedarray/FixedArray#push (param $0 i32) (param $1 i64) + (local $2 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.ge_s + if + i32.const 1632 + i32.const 1104 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $2 + i32.const 3 + i32.shl + i32.add + local.get $1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + i32.const 1 + i32.add + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1104 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $0 i32) (param $1 i64) + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i64.store + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $0 i32) (param $1 i64) (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 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.eqz + local.get $3 + i32.const 0 + i32.le_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $1 + i64.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + 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 -1 + ) + (func $~lib/fixedarray/FixedArray#includes (param $0 i32) (param $1 i64) (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#fill (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 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + local.set $1 + i32.const 5 + local.get $2 + local.get $2 + i32.const 5 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $0 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.const 7 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 1024 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 128 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/fixedarray/FixedArray#push + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + local.get $1 + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 42 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 42 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 0 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 1696 + i32.const 1104 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i64.const 99 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + call $~lib/fixedarray/FixedArray#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 50 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 99 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 50 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 99 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.tee $3 + local.get $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 98 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#fill + i32.const 0 + local.set $1 + loop $for-loop|2 + local.get $1 + i32.const 5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#clear + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 42 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 42 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedarray/FixedArray#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1104 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $0 i32) (param $1 i64) (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 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.eqz + local.get $3 + i32.const 0 + i32.le_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $1 + i64.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + 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 -1 + ) + (func $~lib/fixedarray/FixedArray#includes (param $0 i32) (param $1 i64) (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 1024 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 128 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/fixedarray/FixedArray#push + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + local.get $1 + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 42 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 42 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 0 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 1696 + i32.const 1104 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i64.const 99 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + call $~lib/fixedarray/FixedArray#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 50 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 99 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 50 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 99 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.tee $3 + local.get $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + i64.load + i64.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 98 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#fill + i32.const 0 + local.set $1 + loop $for-loop|2 + local.get $1 + i32.const 5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#clear + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 42 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + i64.const 42 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedarray/FixedArray#push (param $0 i32) (param $1 f32) + (local $2 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.ge_s + if + i32.const 1632 + i32.const 1104 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + f32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + i32.const 1 + i32.add + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1104 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $0 i32) (param $1 f32) + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + f32.store + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $0 i32) (param $1 f32) (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 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.eqz + local.get $3 + i32.const 0 + i32.le_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $1 + f32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + 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 -1 + ) + (func $~lib/fixedarray/FixedArray#includes (param $0 i32) (param $1 f32) (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 i32) + (local $4 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 512 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 128 + i32.store offset=4 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + f32.const 100 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/fixedarray/FixedArray#push + local.get $2 + f32.const 1 + f32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + local.get $1 + f32.convert_i32_s + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 42 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f32.const 42 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 0 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f32.const 0 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 1696 + i32.const 1104 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + i32.add + f32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + f32.const 99 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 0 + call $~lib/fixedarray/FixedArray#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 50 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 99 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 50 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 99 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.tee $3 + local.get $1 + i32.const 2 + i32.shl + local.get $3 + i32.add + f32.load + f32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f32.const 98 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 0 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.le_s + select + local.set $1 + i32.const 5 + local.get $3 + local.get $3 + i32.const 5 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + loop $for-loop|00 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.const 7 + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 + loop $for-loop|2 + local.get $1 + i32.const 5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + f32.const 7 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#clear + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 42 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f32.const 42 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedarray/FixedArray#push (param $0 i32) (param $1 f64) + (local $2 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.ge_s + if + i32.const 1632 + i32.const 1104 + i32.const 76 + i32.const 32 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $2 + i32.const 3 + i32.shl + i32.add + local.get $1 + f64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + i32.const 1 + i32.add + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) + 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1104 + i32.const 52 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedarray/FixedArray#__set (param $0 i32) (param $1 f64) + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 61 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + f64.store + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedarray/FixedArray#indexOf (param $0 i32) (param $1 f64) (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 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.eqz + local.get $3 + i32.const 0 + i32.le_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $1 + f64.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + 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 -1 + ) + (func $~lib/fixedarray/FixedArray#includes (param $0 i32) (param $1 f64) (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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 0 + i32.ge_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedarray/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 f64) + (local $3 i32) + (local $4 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 1024 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 128 + i32.store offset=4 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:capacity + i32.const 128 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/fixedarray/FixedArray#push + local.get $2 + f64.const 1 + f64.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + local.get $1 + f64.convert_i32_s + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 42 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f64.const 42 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + call $~lib/fixedarray/FixedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f64.const 0 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.const 0 + i32.le_s + if + i32.const 1696 + i32.const 1104 + i32.const 90 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 3 + i32.shl + i32.add + f64.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + f64.const 99 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 99 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + call $~lib/fixedarray/FixedArray#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 50 + call $~lib/fixedarray/FixedArray#indexOf + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 99 + call $~lib/fixedarray/FixedArray#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 50 + call $~lib/fixedarray/FixedArray#includes + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 99 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 1360 + i32.const 1104 + i32.const 99 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.tee $3 + local.get $1 + i32.const 3 + i32.shl + local.get $3 + i32.add + f64.load + f64.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f64.const 98 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + call $~lib/fixedarray/FixedArray#includes + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + call $~lib/fixedarray/FixedArray#set:length + global.get $~lib/memory/__stack_pointer + local.get $0 + 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 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.le_s + select + local.set $1 + i32.const 5 + local.get $3 + local.get $3 + i32.const 5 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + loop $for-loop|00 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.const 7 + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 + loop $for-loop|2 + local.get $1 + i32.const 5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedarray/FixedArray#__get + f64.const 7 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 48 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#clear + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + if + i32.const 0 + i32.const 1568 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 42 + call $~lib/fixedarray/FixedArray#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedarray/FixedArray#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/fixedarray/FixedArray#__get + f64.const 42 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + end + 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/fixedarray.ts b/tests/compiler/std/fixedarray.ts new file mode 100644 index 0000000000..26e75bdb4c --- /dev/null +++ b/tests/compiler/std/fixedarray.ts @@ -0,0 +1,88 @@ +function testNumeric(): void { + let arr = new FixedArray(128); + assert(arr.length == 0); + assert(arr.capacity == 128); + + // push + for (let i: T = 0; i < 100; ++i) { + arr.push(i); + } + assert(arr.length == 100); + + // index access + for (let i = 0; i < 100; ++i) { + assert(arr[i] == i); + } + + // set via operator + arr[0] = 42; + assert(arr[0] == 42); + arr[0] = 0; + assert(arr[0] == 0); + + // pop + let val = arr.pop(); + assert(val == 99); + assert(arr.length == 99); + + // indexOf + assert(arr.indexOf(0) == 0); + assert(arr.indexOf(50) == 50); + assert(arr.indexOf(99) == -1); // was popped + + // includes + assert(arr.includes(0)); + assert(arr.includes(50)); + assert(!arr.includes(99)); + + // swapDelete + arr.swapDelete(0); + assert(arr.length == 98); + assert(arr[0] == 98); // last element swapped to index 0 + assert(!arr.includes(0)); // was swap-deleted (assuming no dup) + + // fill + arr.length = 10; + arr.fill(7, 0, 5); + for (let i = 0; i < 5; ++i) { + assert(arr[i] == 7); + } + + // clear + arr.clear(); + assert(arr.length == 0); + + // push after clear + arr.push(42); + assert(arr.length == 1); + assert(arr[0] == 42); +} + +// set length +function testLength(): void { + let arr = new FixedArray(64); + arr.length = 32; + assert(arr.length == 32); + arr.length = 0; + assert(arr.length == 0); +} + +// push to capacity +function testCapacity(): void { + let arr = new FixedArray(4); + arr.push(1); + arr.push(2); + arr.push(3); + arr.push(4); + assert(arr.length == 4); + assert(arr.capacity == 4); +} + +testNumeric(); +testNumeric(); +testNumeric(); +testNumeric(); +testNumeric(); +testNumeric(); +testLength(); +testCapacity(); diff --git a/tests/compiler/std/fixedmap.debug.wat b/tests/compiler/std/fixedmap.debug.wat new file mode 100644 index 0000000000..bee28511f8 --- /dev/null +++ b/tests/compiler/std/fixedmap.debug.wat @@ -0,0 +1,19158 @@ +(module + (type $0 (func (param i32 i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32))) + (type $4 (func)) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32) (result i64))) + (type $7 (func (param i32 i64))) + (type $8 (func (param i32 i64) (result i32))) + (type $9 (func (param i32 i32 i32 i32))) + (type $10 (func (param i64) (result i32))) + (type $11 (func (param i32) (result f32))) + (type $12 (func (param i32 f32))) + (type $13 (func (param i32) (result f64))) + (type $14 (func (param i32 f64))) + (type $15 (func (param i32 i32 i32) (result i32))) + (type $16 (func (param i32 i64 i64) (result i32))) + (type $17 (func (param i32 i64) (result i64))) + (type $18 (func (param i32 i32 i64))) + (type $19 (func (param i32 f32) (result i32))) + (type $20 (func (param i32 f64) (result i32))) + (type $21 (func (param i32 i32 i64) (result i32))) + (type $22 (func (result i32))) + (type $23 (func (param f32) (result i32))) + (type $24 (func (param f64) (result i32))) + (type $25 (func (param i32 f32 f32) (result i32))) + (type $26 (func (param i32 f32) (result f32))) + (type $27 (func (param i32 i32 f32))) + (type $28 (func (param i32 f64 f64) (result i32))) + (type $29 (func (param i32 f64) (result f64))) + (type $30 (func (param i32 i32 f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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/rt/__rtti_base i32 (i32.const 704)) + (global $~lib/memory/__data_end i32 (i32.const 772)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33540)) + (global $~lib/memory/__heap_base i32 (i32.const 33540)) + (memory $0 1) + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00s\00t\00d\00/\00f\00i\00x\00e\00d\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $10 (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00f\00i\00x\00e\00d\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 604) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $12 (i32.const 652) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $13 (i32.const 704) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:prev + local.get $space + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev + i32.const 1 + drop + local.get $prev + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + return + ) + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + 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 $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr + i32.eqz + if + return + end + local.get $ptr + i32.const 20 + i32.sub + local.set $obj + i32.const 0 + drop + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $obj + 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 $cookie i32) + (local $ptr i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end + end + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) + i32.const 4 + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $6 i32) + (local $7 i32) + (local $boundedSize i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) + (local $head i32) + (local $root|18 i32) + (local $fl|19 i32) + (local $slMap i32) + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + i32.eq + if + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + local.get $slMap + i32.eqz + if + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + 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 $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) + (local $left i32) + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo + i32.const 1 + drop + local.get $leftInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo + i32.const 4 + i32.add + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $right + i32.const 4 + i32.sub + local.get $block + i32.store + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + local.set $head + local.get $block + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + 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 $start + local.get $end + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $end + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + local.set $tail + i32.const 0 + local.set $tailInfo + local.get $tail + if + i32.const 1 + drop + local.get $start + local.get $tail + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo + else + end + else + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart 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 $rootOffset + memory.size + local.set $pagesBefore + local.get $rootOffset + 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 $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) + local.get $pagesNeeded + local.get $pagesBefore + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $sl + i32.const 1 + i32.add + local.set $sl + br $for-loop|1 + end + end + local.get $fl + i32.const 1 + i32.add + local.set $fl + br $for-loop|0 + end + end + local.get $rootOffset + i32.const 1572 + i32.add + local.set $memStart + i32.const 0 + drop + local.get $root + local.get $memStart + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr + i32.const 4 + i32.sub + local.set $block + local.get $ptr + i32.const 0 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) + i32.const 0 + drop + local.get $block + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + 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 $ptr + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $from 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 $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + 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 $obj + local.get $obj + 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 $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + 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 $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $obj + 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 96 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $obj + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (local $budget 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 $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step + i32.sub + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop + global.get $~lib/rt/itcms/total + i32.const 200 + i32.const 100 + i32.div_u + i32.mul + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $budget + 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 $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $size + 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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size + i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $size + end + return + ) + (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + local.get $requestSize + i32.clz + i32.sub + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + i32.const 0 + i32.const -1 + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap + i32.const 0 + local.set $head + local.get $slMap + i32.eqz + if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 0 + i32.const -1 + i32.xor + local.get $fl + i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz + if + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) + i32.const 0 + drop + local.get $size + i32.const 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block + i32.eqz + if + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $block + return + ) + (func $~lib/rt/tlsf/__alloc (param $size 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 $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 261 + i32.const 31 + call $~lib/builtins/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 $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill + local.get $ptr + return + ) + (func $"~lib/fixedmap/FixedMap#set:dataPtr" (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $"~lib/fixedmap/FixedMap#set:_capacity" (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:capacityMask" (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) + (local $child i32) + (local $parent i32) + (local $parentColor i32) + local.get $childPtr + i32.eqz + if + return + end + i32.const 1 + drop + local.get $parentPtr + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $childPtr + i32.const 20 + i32.sub + local.set $child + local.get $child + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $parentPtr + i32.const 20 + i32.sub + local.set $parent + local.get $parent + call $~lib/rt/itcms/Object#get:color + local.set $parentColor + local.get $parentColor + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $expectMultiple + if + local.get $parent + call $~lib/rt/itcms/Object#makeGray + else + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $parentColor + 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 $child + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $"~lib/fixedmap/FixedMap#set:_count" (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $"~lib/fixedmap/FixedMap#set:_entriesUsed" (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_count" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key i32) (result i32) + (local $key|1 i32) + (local $len i32) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + block $~lib/util/hash/hash32|inlined.0 (result i32) + local.get $key + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.0 + end + return + ) + (func $"~lib/fixedmap/FixedMap#get:capacityMask" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/fixedmap/FixedMap#get:dataPtr" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:state" (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:hash" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:key" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:state" (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $"~lib/fixedmap/FixedMap#get:_entriesUsed" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_capacity" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:hash" (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $"~lib/fixedmap/FixedMapSlot#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:value" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store offset=12 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) + (local $oldObj i32) + (local $newPtr i32) + (local $4 i32) + (local $5 i32) + local.get $oldPtr + i32.const 20 + i32.sub + local.set $oldObj + local.get $size + local.get $oldObj + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $oldObj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $oldPtr + return + end + local.get $size + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtId + call $~lib/rt/itcms/__new + local.set $newPtr + local.get $newPtr + local.get $oldPtr + local.get $size + local.tee $4 + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtSize + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + memory.copy + local.get $newPtr + return + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:dataPtr" (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $"~lib/fixedmap/FixedMap#set:_capacity" (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:capacityMask" (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $"~lib/fixedmap/FixedMap#set:_count" (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $"~lib/fixedmap/FixedMap#set:_entriesUsed" (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_count" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key i32) (result i32) + (local $key|1 i32) + (local $len i32) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + block $~lib/util/hash/hash32|inlined.1 (result i32) + local.get $key + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.1 + end + return + ) + (func $"~lib/fixedmap/FixedMap#get:capacityMask" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/fixedmap/FixedMap#get:dataPtr" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:state" (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:hash" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:key" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:state" (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $"~lib/fixedmap/FixedMap#get:_entriesUsed" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_capacity" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:hash" (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $"~lib/fixedmap/FixedMapSlot#set:key" (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:value" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:value" (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store offset=12 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:dataPtr" (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $"~lib/fixedmap/FixedMap#set:_capacity" (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:capacityMask" (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $"~lib/fixedmap/FixedMap#set:_count" (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $"~lib/fixedmap/FixedMap#set:_entriesUsed" (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_count" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key i64) (result i32) + (local $key|1 i64) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + i32.const 8 + i32.const 8 + i32.eq + drop + block $~lib/util/hash/hash64|inlined.0 (result i32) + local.get $key + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.0 + end + return + ) + (func $"~lib/fixedmap/FixedMap#get:capacityMask" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/fixedmap/FixedMap#get:dataPtr" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:state" (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:hash" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:key" (param $this i32) (result i64) + local.get $this + i64.load offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:state" (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $"~lib/fixedmap/FixedMap#get:_entriesUsed" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_capacity" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:hash" (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $"~lib/fixedmap/FixedMapSlot#set:key" (param $this i32) (param $key i64) + local.get $this + local.get $key + i64.store offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:value" (param $this i32) (result i64) + local.get $this + i64.load offset=16 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:value" (param $this i32) (param $value i64) + local.get $this + local.get $value + i64.store offset=16 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:dataPtr" (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $"~lib/fixedmap/FixedMap#set:_capacity" (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:capacityMask" (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $"~lib/fixedmap/FixedMap#set:_count" (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $"~lib/fixedmap/FixedMap#set:_entriesUsed" (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_count" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key i64) (result i32) + (local $key|1 i64) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + i32.const 8 + i32.const 8 + i32.eq + drop + block $~lib/util/hash/hash64|inlined.1 (result i32) + local.get $key + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.1 + end + return + ) + (func $"~lib/fixedmap/FixedMap#get:capacityMask" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/fixedmap/FixedMap#get:dataPtr" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:state" (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:hash" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:key" (param $this i32) (result i64) + local.get $this + i64.load offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:state" (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $"~lib/fixedmap/FixedMap#get:_entriesUsed" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_capacity" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:hash" (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $"~lib/fixedmap/FixedMapSlot#set:key" (param $this i32) (param $key i64) + local.get $this + local.get $key + i64.store offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:value" (param $this i32) (result i64) + local.get $this + i64.load offset=16 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:value" (param $this i32) (param $value i64) + local.get $this + local.get $value + i64.store offset=16 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:dataPtr" (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $"~lib/fixedmap/FixedMap#set:_capacity" (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:capacityMask" (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $"~lib/fixedmap/FixedMap#set:_count" (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $"~lib/fixedmap/FixedMap#set:_entriesUsed" (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_count" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key f32) (result i32) + (local $key|1 i32) + (local $len i32) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + block $~lib/util/hash/hash32|inlined.2 (result i32) + local.get $key + i32.reinterpret_f32 + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.2 + end + return + ) + (func $"~lib/fixedmap/FixedMap#get:capacityMask" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/fixedmap/FixedMap#get:dataPtr" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:state" (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:hash" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:key" (param $this i32) (result f32) + local.get $this + f32.load offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:state" (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $"~lib/fixedmap/FixedMap#get:_entriesUsed" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_capacity" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:hash" (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $"~lib/fixedmap/FixedMapSlot#set:key" (param $this i32) (param $key f32) + local.get $this + local.get $key + f32.store offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:value" (param $this i32) (result f32) + local.get $this + f32.load offset=12 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:value" (param $this i32) (param $value f32) + local.get $this + local.get $value + f32.store offset=12 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:dataPtr" (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $"~lib/fixedmap/FixedMap#set:_capacity" (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $"~lib/fixedmap/FixedMap#set:capacityMask" (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $"~lib/fixedmap/FixedMap#set:_count" (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $"~lib/fixedmap/FixedMap#set:_entriesUsed" (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_count" (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key f64) (result i32) + (local $key|1 i64) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + block $~lib/util/hash/hash64|inlined.2 (result i32) + local.get $key + i64.reinterpret_f64 + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.2 + end + return + ) + (func $"~lib/fixedmap/FixedMap#get:capacityMask" (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $"~lib/fixedmap/FixedMap#get:dataPtr" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:state" (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:hash" (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $"~lib/fixedmap/FixedMapSlot#get:key" (param $this i32) (result f64) + local.get $this + f64.load offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:state" (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $"~lib/fixedmap/FixedMap#get:_entriesUsed" (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $"~lib/fixedmap/FixedMap#get:_capacity" (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:hash" (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $"~lib/fixedmap/FixedMapSlot#set:key" (param $this i32) (param $key f64) + local.get $this + local.get $key + f64.store offset=8 + ) + (func $"~lib/fixedmap/FixedMapSlot#get:value" (param $this i32) (result f64) + local.get $this + f64.load offset=16 + ) + (func $"~lib/fixedmap/FixedMapSlot#set:value" (param $this i32) (param $value f64) + local.get $this + local.get $value + f64.store offset=16 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $start:std/fixedmap + 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 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + call $std/fixedmap/testOperators + call $std/fixedmap/testCapacity + ) + (func $~start + call $start:std/fixedmap + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33568 + i32.const 33616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber 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 + i32.const 0 + drop + local.get $message + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#constructor" (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:capacityMask" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $"~lib/fixedmap/FixedMap#get:size" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_count" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#has" (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + i32.const -1 + i32.ne + 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/fixedmap/FixedMap#delete" (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $"~lib/fixedmap/FixedMap#rehash" (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $oldCapacity + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $newSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $"~lib/fixedmap/FixedMapSlot#set:value" + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_count" + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#set" (param $this i32) (param $key i32) (param $value i32) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|14 i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 4 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 2 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.gt_s + if (result i32) + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 1 + i32.shl + else + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + end + call $"~lib/fixedmap/FixedMap#rehash" + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $slot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + end + i32.const 0 + drop + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|14 + local.get $insertSlot|14 + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot|14 + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot|14 + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot|14 + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 0 + drop + i32.const 0 + drop + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $"~lib/fixedmap/FixedMap#get" (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|13 i32) + (local $14 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 496 + i32.const 560 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + call $"~lib/fixedmap/FixedMapSlot#get:value" + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 624 + i32.const 672 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + 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 $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) + (local $oldCapacity i32) + (local $oldData i32) + (local $6 i32) + (local $7 i32) + (local $newCapacity i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $newData i32) + (local $14 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 $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + local.set $oldCapacity + local.get $newSize + local.get $oldCapacity + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + local.get $newSize + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 624 + i32.const 672 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $oldData + local.get $newSize + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $alignLog2 + i32.shl + local.set $newCapacity + local.get $canGrow + if + local.get $oldCapacity + i32.const 1 + i32.shl + local.tee $9 + i32.const 1073741820 + local.tee $10 + local.get $9 + local.get $10 + i32.lt_u + select + local.tee $11 + local.get $newCapacity + local.tee $12 + local.get $11 + local.get $12 + i32.gt_u + select + local.set $newCapacity + end + local.get $oldData + local.get $newCapacity + call $~lib/rt/itcms/__renew + local.set $newData + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $newData + local.get $oldData + i32.ne + if + local.get $array + local.get $newData + i32.store + local.get $array + local.get $newData + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $array + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $array + local.get $newCapacity + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value 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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 672 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#keys" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $keys i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $keys + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $"~lib/fixedmap/FixedMap#values" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#clear" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_capacity" + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (local $map i32) + (local $k i32) + (local $k|2 i32) + (local $keys i32) + (local $vals i32) + (local $k|5 i32) + (local $k|6 i32) + (local $k|7 i32) + (local $8 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $map + i32.store + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i32.const 100 + i32.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + i32.const 10 + local.get $k + i32.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#get" + i32.const 10 + local.get $k + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i32.const 1 + i32.add + local.set $k + br $for-loop|0 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + i32.const 100 + i32.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + i32.const 10 + local.get $k|2 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + i32.const 20 + local.get $k|2 + i32.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + i32.const 20 + local.get $k|2 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|2 + i32.const 1 + i32.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#keys" + local.tee $keys + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#values" + local.tee $vals + i32.store offset=12 + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $vals + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|5 + loop $for-loop|2 + local.get $k|5 + i32.const 50 + i32.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + i32.const 1 + i32.add + local.set $k|5 + br $for-loop|2 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $k|6 + loop $for-loop|3 + local.get $k|6 + i32.const 100 + i32.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#get" + i32.const 20 + local.get $k|6 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + i32.const 1 + i32.add + local.set $k|6 + br $for-loop|3 + end + end + i32.const 0 + local.set $k|7 + loop $for-loop|4 + local.get $k|7 + i32.const 50 + i32.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + i32.const 30 + local.get $k|7 + i32.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#get" + i32.const 30 + local.get $k|7 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|7 + i32.const 1 + i32.add + local.set $k|7 + br $for-loop|4 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#clear" + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + i32.const 2 + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + call $"~lib/fixedmap/FixedMap#get" + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#constructor" (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:capacityMask" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $"~lib/fixedmap/FixedMap#get:size" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_count" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#has" (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + i32.const -1 + i32.ne + 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/fixedmap/FixedMap#delete" (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $"~lib/fixedmap/FixedMap#rehash" (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $oldCapacity + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $newSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $"~lib/fixedmap/FixedMapSlot#set:value" + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_count" + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#set" (param $this i32) (param $key i32) (param $value i32) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|14 i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 4 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 2 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.gt_s + if (result i32) + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 1 + i32.shl + else + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + end + call $"~lib/fixedmap/FixedMap#rehash" + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $slot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + end + i32.const 0 + drop + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|14 + local.get $insertSlot|14 + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot|14 + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot|14 + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot|14 + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 0 + drop + i32.const 0 + drop + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $"~lib/fixedmap/FixedMap#get" (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|13 i32) + (local $14 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 496 + i32.const 560 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + call $"~lib/fixedmap/FixedMapSlot#get:value" + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 624 + i32.const 672 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + 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 $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value 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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 672 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#keys" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $keys i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $keys + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $"~lib/fixedmap/FixedMap#values" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#clear" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_capacity" + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (local $map i32) + (local $k i32) + (local $k|2 i32) + (local $keys i32) + (local $vals i32) + (local $k|5 i32) + (local $k|6 i32) + (local $k|7 i32) + (local $8 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $map + i32.store + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i32.const 100 + i32.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + i32.const 10 + local.get $k + i32.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#get" + i32.const 10 + local.get $k + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i32.const 1 + i32.add + local.set $k + br $for-loop|0 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + i32.const 100 + i32.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + i32.const 10 + local.get $k|2 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + i32.const 20 + local.get $k|2 + i32.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + i32.const 20 + local.get $k|2 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|2 + i32.const 1 + i32.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#keys" + local.tee $keys + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#values" + local.tee $vals + i32.store offset=12 + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $vals + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|5 + loop $for-loop|2 + local.get $k|5 + i32.const 50 + i32.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + i32.const 1 + i32.add + local.set $k|5 + br $for-loop|2 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $k|6 + loop $for-loop|3 + local.get $k|6 + i32.const 100 + i32.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#get" + i32.const 20 + local.get $k|6 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + i32.const 1 + i32.add + local.set $k|6 + br $for-loop|3 + end + end + i32.const 0 + local.set $k|7 + loop $for-loop|4 + local.get $k|7 + i32.const 50 + i32.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + i32.const 30 + local.get $k|7 + i32.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#get" + i32.const 30 + local.get $k|7 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|7 + i32.const 1 + i32.add + local.set $k|7 + br $for-loop|4 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#clear" + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + i32.const 2 + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + call $"~lib/fixedmap/FixedMap#get" + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#constructor" (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:capacityMask" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $"~lib/fixedmap/FixedMap#get:size" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_count" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#has" (param $this i32) (param $key i64) (result i32) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + i32.const -1 + i32.ne + 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/fixedmap/FixedMap#delete" (param $this i32) (param $key i64) (result i32) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $"~lib/fixedmap/FixedMap#rehash" (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $oldCapacity + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $newSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $"~lib/fixedmap/FixedMapSlot#set:value" + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_count" + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#set" (param $this i32) (param $key i64) (param $value i64) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|14 i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 4 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 2 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.gt_s + if (result i32) + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 1 + i32.shl + else + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + end + call $"~lib/fixedmap/FixedMap#rehash" + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $slot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + end + i32.const 0 + drop + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|14 + local.get $insertSlot|14 + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot|14 + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot|14 + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot|14 + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 0 + drop + i32.const 0 + drop + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $"~lib/fixedmap/FixedMap#get" (param $this i32) (param $key i64) (result i64) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|13 i32) + (local $14 i32) + (local $15 i64) + 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 496 + i32.const 560 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + call $"~lib/fixedmap/FixedMapSlot#get:value" + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 624 + i32.const 672 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i64) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 672 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#keys" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $keys i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $keys + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $"~lib/fixedmap/FixedMap#values" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#clear" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_capacity" + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (local $map i32) + (local $k i64) + (local $k|2 i64) + (local $keys i32) + (local $vals i32) + (local $k|5 i64) + (local $k|6 i64) + (local $k|7 i64) + (local $8 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $map + i32.store + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 0 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i64.const 100 + i64.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + i64.const 10 + local.get $k + i64.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#get" + i64.const 10 + local.get $k + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i64.const 1 + i64.add + local.set $k + br $for-loop|0 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + i64.const 100 + i64.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + i64.const 10 + local.get $k|2 + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + i64.const 20 + local.get $k|2 + i64.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + i64.const 20 + local.get $k|2 + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|2 + i64.const 1 + i64.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#keys" + local.tee $keys + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#values" + local.tee $vals + i32.store offset=12 + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $vals + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|5 + loop $for-loop|2 + local.get $k|5 + i64.const 50 + i64.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + i64.const 1 + i64.add + local.set $k|5 + br $for-loop|2 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $k|6 + loop $for-loop|3 + local.get $k|6 + i64.const 100 + i64.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#get" + i64.const 20 + local.get $k|6 + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + i64.const 1 + i64.add + local.set $k|6 + br $for-loop|3 + end + end + i64.const 0 + local.set $k|7 + loop $for-loop|4 + local.get $k|7 + i64.const 50 + i64.lt_s + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + i64.const 30 + local.get $k|7 + i64.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#get" + i64.const 30 + local.get $k|7 + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|7 + i64.const 1 + i64.add + local.set $k|7 + br $for-loop|4 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#clear" + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 1 + i64.const 2 + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 1 + call $"~lib/fixedmap/FixedMap#get" + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#constructor" (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:capacityMask" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $"~lib/fixedmap/FixedMap#get:size" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_count" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#has" (param $this i32) (param $key i64) (result i32) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + i32.const -1 + i32.ne + 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/fixedmap/FixedMap#delete" (param $this i32) (param $key i64) (result i32) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $"~lib/fixedmap/FixedMap#rehash" (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $oldCapacity + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $newSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $"~lib/fixedmap/FixedMapSlot#set:value" + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_count" + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#set" (param $this i32) (param $key i64) (param $value i64) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|14 i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 4 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 2 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.gt_s + if (result i32) + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 1 + i32.shl + else + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + end + call $"~lib/fixedmap/FixedMap#rehash" + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $slot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + end + i32.const 0 + drop + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|14 + local.get $insertSlot|14 + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot|14 + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot|14 + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot|14 + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 0 + drop + i32.const 0 + drop + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $"~lib/fixedmap/FixedMap#get" (param $this i32) (param $key i64) (result i64) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|13 i32) + (local $14 i32) + (local $15 i64) + 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 496 + i32.const 560 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + call $"~lib/fixedmap/FixedMapSlot#get:value" + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 624 + i32.const 672 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i64) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 672 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#keys" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $keys i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $keys + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $"~lib/fixedmap/FixedMap#values" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#clear" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_capacity" + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (local $map i32) + (local $k i64) + (local $k|2 i64) + (local $keys i32) + (local $vals i32) + (local $k|5 i64) + (local $k|6 i64) + (local $k|7 i64) + (local $8 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $map + i32.store + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 0 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i64.const 100 + i64.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + i64.const 10 + local.get $k + i64.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#get" + i64.const 10 + local.get $k + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i64.const 1 + i64.add + local.set $k + br $for-loop|0 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + i64.const 100 + i64.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + i64.const 10 + local.get $k|2 + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + i64.const 20 + local.get $k|2 + i64.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + i64.const 20 + local.get $k|2 + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|2 + i64.const 1 + i64.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#keys" + local.tee $keys + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#values" + local.tee $vals + i32.store offset=12 + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $vals + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|5 + loop $for-loop|2 + local.get $k|5 + i64.const 50 + i64.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + i64.const 1 + i64.add + local.set $k|5 + br $for-loop|2 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $k|6 + loop $for-loop|3 + local.get $k|6 + i64.const 100 + i64.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#get" + i64.const 20 + local.get $k|6 + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + i64.const 1 + i64.add + local.set $k|6 + br $for-loop|3 + end + end + i64.const 0 + local.set $k|7 + loop $for-loop|4 + local.get $k|7 + i64.const 50 + i64.lt_u + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + i64.const 30 + local.get $k|7 + i64.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#get" + i64.const 30 + local.get $k|7 + i64.add + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|7 + i64.const 1 + i64.add + local.set $k|7 + br $for-loop|4 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#clear" + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 1 + i64.const 2 + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i64.const 1 + call $"~lib/fixedmap/FixedMap#get" + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#constructor" (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:capacityMask" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $"~lib/fixedmap/FixedMap#get:size" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_count" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#has" (param $this i32) (param $key f32) (result i32) + (local $this|2 i32) + (local $key|3 f32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + f32.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + i32.const -1 + i32.ne + 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/fixedmap/FixedMap#delete" (param $this i32) (param $key f32) (result i32) + (local $this|2 i32) + (local $key|3 f32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + f32.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $"~lib/fixedmap/FixedMap#rehash" (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $oldCapacity + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $newSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $"~lib/fixedmap/FixedMapSlot#set:value" + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_count" + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#set" (param $this i32) (param $key f32) (param $value f32) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|14 i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 4 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 2 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.gt_s + if (result i32) + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 1 + i32.shl + else + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + end + call $"~lib/fixedmap/FixedMap#rehash" + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key + f32.eq + else + i32.const 0 + end + if + local.get $slot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + end + i32.const 0 + drop + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|14 + local.get $insertSlot|14 + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot|14 + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot|14 + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot|14 + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 0 + drop + i32.const 0 + drop + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $"~lib/fixedmap/FixedMap#get" (param $this i32) (param $key f32) (result f32) + (local $this|2 i32) + (local $key|3 f32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|13 i32) + (local $14 i32) + (local $15 f32) + 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + f32.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 496 + i32.const 560 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + call $"~lib/fixedmap/FixedMapSlot#get:value" + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 624 + i32.const 672 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + 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 $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value f32) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 672 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + f32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#keys" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $keys i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $keys + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $"~lib/fixedmap/FixedMap#values" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#clear" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_capacity" + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" (result i32) + i32.const 16 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (local $map i32) + (local $k f32) + (local $k|2 f32) + (local $keys i32) + (local $vals i32) + (local $k|5 f32) + (local $k|6 f32) + (local $k|7 f32) + (local $8 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $map + i32.store + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f32.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f32.const 0 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $k + loop $for-loop|0 + local.get $k + f32.const 100 + f32.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + f32.const 10 + local.get $k + f32.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#get" + f32.const 10 + local.get $k + f32.add + f32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + f32.const 1 + f32.add + local.set $k + br $for-loop|0 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + f32.const 100 + f32.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + f32.const 10 + local.get $k|2 + f32.add + f32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + f32.const 20 + local.get $k|2 + f32.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + f32.const 20 + local.get $k|2 + f32.add + f32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|2 + f32.const 1 + f32.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#keys" + local.tee $keys + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#values" + local.tee $vals + i32.store offset=12 + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $vals + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $k|5 + loop $for-loop|2 + local.get $k|5 + f32.const 50 + f32.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + f32.const 1 + f32.add + local.set $k|5 + br $for-loop|2 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 50 + local.set $k|6 + loop $for-loop|3 + local.get $k|6 + f32.const 100 + f32.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#get" + f32.const 20 + local.get $k|6 + f32.add + f32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + f32.const 1 + f32.add + local.set $k|6 + br $for-loop|3 + end + end + f32.const 0 + local.set $k|7 + loop $for-loop|4 + local.get $k|7 + f32.const 50 + f32.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + f32.const 30 + local.get $k|7 + f32.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#get" + f32.const 30 + local.get $k|7 + f32.add + f32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|7 + f32.const 1 + f32.add + local.set $k|7 + br $for-loop|4 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#clear" + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f32.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f32.const 1 + f32.const 2 + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f32.const 1 + call $"~lib/fixedmap/FixedMap#get" + f32.const 2 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#constructor" (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.0" + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:capacityMask" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $"~lib/fixedmap/FixedMap#get:size" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_count" + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#has" (param $this i32) (param $key f64) (result i32) + (local $this|2 i32) + (local $key|3 f64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.1" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + f64.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + end + i32.const -1 + i32.ne + 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/fixedmap/FixedMap#delete" (param $this i32) (param $key f64) (result i32) + (local $this|2 i32) + (local $key|3 f64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.2" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + f64.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.3" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.sub + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $"~lib/fixedmap/FixedMap#rehash" (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $oldCapacity + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.4" + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $newSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $newSlot + local.get $oldSlot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $"~lib/fixedmap/FixedMapSlot#set:value" + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $"~lib/fixedmap/FixedMap#set:dataPtr" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $"~lib/fixedmap/FixedMap#set:_capacity" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $"~lib/fixedmap/FixedMap#set:capacityMask" + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $"~lib/fixedmap/FixedMap#get:_count" + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#set" (param $this i32) (param $key f64) (param $value f64) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|14 i32) + (local $15 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 $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 4 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 2 + i32.mul + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.gt_s + if (result i32) + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + i32.const 1 + i32.shl + else + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_capacity" + end + call $"~lib/fixedmap/FixedMap#rehash" + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.5" + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key + f64.eq + else + i32.const 0 + end + if + local.get $slot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_entriesUsed" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + end + i32.const 0 + drop + i32.const 0 + drop + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|14 + local.get $insertSlot|14 + local.get $hashCode + call $"~lib/fixedmap/FixedMapSlot#set:hash" + local.get $insertSlot|14 + i32.const 1 + call $"~lib/fixedmap/FixedMapSlot#set:state" + local.get $insertSlot|14 + local.get $key + call $"~lib/fixedmap/FixedMapSlot#set:key" + local.get $insertSlot|14 + local.get $value + call $"~lib/fixedmap/FixedMapSlot#set:value" + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store + local.get $15 + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store offset=4 + local.get $15 + call $"~lib/fixedmap/FixedMap#get:_count" + i32.const 1 + i32.add + call $"~lib/fixedmap/FixedMap#set:_count" + i32.const 0 + drop + i32.const 0 + drop + end + local.get $this + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $"~lib/fixedmap/FixedMap#get" (param $this i32) (param $key f64) (result f64) + (local $this|2 i32) + (local $key|3 f64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|13 i32) + (local $14 i32) + (local $15 f64) + 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 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:capacityMask" + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.6" + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:hash" + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + local.get $key|3 + f64.eq + else + i32.const 0 + end + if + local.get $i + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 496 + i32.const 560 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.get $idx + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.7" + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + call $"~lib/fixedmap/FixedMapSlot#get:value" + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 624 + i32.const 672 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value f64) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 672 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + local.get $value + f64.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#keys" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $keys i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.8" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $keys + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:key" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $keys + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $"~lib/fixedmap/FixedMap#values" (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_capacity" + local.set $cap + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.9" + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $"~lib/fixedmap/FixedMap#get:_count" + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:state" + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $"~lib/fixedmap/FixedMapSlot#get:value" + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $"~lib/fixedmap/FixedMap#clear" (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $"~lib/fixedmap/FixedMap#get:_capacity" + block $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" (result i32) + i32.const 24 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $"~lib/fixedmap/FM_SLOT_SIZE|inlined.10" + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_count" + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $"~lib/fixedmap/FixedMap#set:_entriesUsed" + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (local $map i32) + (local $k f64) + (local $k|2 f64) + (local $keys i32) + (local $vals i32) + (local $k|5 f64) + (local $k|6 f64) + (local $k|7 f64) + (local $8 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $map + i32.store + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f64.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f64.const 0 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $k + loop $for-loop|0 + local.get $k + f64.const 100 + f64.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + f64.const 10 + local.get $k + f64.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k + call $"~lib/fixedmap/FixedMap#get" + f64.const 10 + local.get $k + f64.add + f64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + f64.const 1 + f64.add + local.set $k + br $for-loop|0 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + f64.const 100 + f64.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + f64.const 10 + local.get $k|2 + f64.add + f64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + f64.const 20 + local.get $k|2 + f64.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|2 + call $"~lib/fixedmap/FixedMap#get" + f64.const 20 + local.get $k|2 + f64.add + f64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|2 + f64.const 1 + f64.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#keys" + local.tee $keys + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#values" + local.tee $vals + i32.store offset=12 + local.get $keys + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $vals + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $k|5 + loop $for-loop|2 + local.get $k|5 + f64.const 50 + f64.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|5 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + f64.const 1 + f64.add + local.set $k|5 + br $for-loop|2 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 50 + local.set $k|6 + loop $for-loop|3 + local.get $k|6 + f64.const 100 + f64.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|6 + call $"~lib/fixedmap/FixedMap#get" + f64.const 20 + local.get $k|6 + f64.add + f64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + f64.const 1 + f64.add + local.set $k|6 + br $for-loop|3 + end + end + f64.const 0 + local.set $k|7 + loop $for-loop|4 + local.get $k|7 + f64.const 50 + f64.lt + if + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + f64.const 30 + local.get $k|7 + f64.add + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $k|7 + call $"~lib/fixedmap/FixedMap#get" + f64.const 30 + local.get $k|7 + f64.add + f64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|7 + f64.const 1 + f64.add + local.set $k|7 + br $for-loop|4 + end + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#clear" + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f64.const 0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f64.const 1 + f64.const 2 + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + f64.const 1 + call $"~lib/fixedmap/FixedMap#get" + f64.const 2 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedmap/testOperators + (local $map i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $map + i32.store + local.get $map + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 10 + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 20 + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $"~lib/fixedmap/FixedMap#get" + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $"~lib/fixedmap/FixedMap#get" + i32.const 20 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 30 + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $map + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $"~lib/fixedmap/FixedMap#get" + i32.const 30 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 76 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $map + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedmap/testCapacity + (local $map i32) + (local $i i32) + (local $i|2 i32) + (local $3 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $map + i32.store + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i32.const 200 + i32.lt_s + if + local.get $map + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $i + local.get $i + i32.const 10 + i32.mul + call $"~lib/fixedmap/FixedMap#set" + drop + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $map + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 200 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 86 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i|2 + loop $for-loop|1 + local.get $i|2 + i32.const 200 + i32.lt_s + if + local.get $map + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $i|2 + call $"~lib/fixedmap/FixedMap#get" + local.get $i|2 + i32.const 10 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 88 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|2 + i32.const 1 + i32.add + local.set $i|2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 624 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 496 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + 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 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $"~lib/fixedmap/FixedMap~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap#__visit" + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $"~lib/fixedmap/FixedMap~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap#__visit" + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $"~lib/fixedmap/FixedMap~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap#__visit" + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $"~lib/fixedmap/FixedMap~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap#__visit" + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $"~lib/fixedmap/FixedMap~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap#__visit" + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $"~lib/fixedmap/FixedMap~visit" (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap#__visit" + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $"~lib/fixedmap/FixedMap" + block $~lib/array/Array + block $"~lib/fixedmap/FixedMap" + block $~lib/array/Array + block $"~lib/fixedmap/FixedMap" + block $~lib/array/Array + block $"~lib/fixedmap/FixedMap" + block $~lib/array/Array + block $"~lib/fixedmap/FixedMap" + block $~lib/array/Array + block $"~lib/fixedmap/FixedMap" + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/fixedmap/FixedMap" $~lib/array/Array $"~lib/fixedmap/FixedMap" $~lib/array/Array $"~lib/fixedmap/FixedMap" $~lib/array/Array $"~lib/fixedmap/FixedMap" $~lib/array/Array $"~lib/fixedmap/FixedMap" $~lib/array/Array $"~lib/fixedmap/FixedMap" $~lib/array/Array $invalid + end + return + 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/fixedmap/FixedMap~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $"~lib/fixedmap/FixedMap~visit" + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $"~lib/fixedmap/FixedMap#__visit" (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#__visit" (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#__visit" (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#__visit" (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#__visit" (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#__visit" (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $"~lib/fixedmap/FixedMap#get:dataPtr" + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/fixedmap.json b/tests/compiler/std/fixedmap.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/std/fixedmap.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/std/fixedmap.release.wat b/tests/compiler/std/fixedmap.release.wat new file mode 100644 index 0000000000..2f3b1640af --- /dev/null +++ b/tests/compiler/std/fixedmap.release.wat @@ -0,0 +1,13684 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func (param i32) (result i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (param i32 i64) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64))) + (type $9 (func (param i32 i64 i64))) + (type $10 (func (param i32 i64) (result i64))) + (type $11 (func (param i32 f32) (result i32))) + (type $12 (func (param i32 f64) (result i32))) + (type $13 (func (result i32))) + (type $14 (func (param i32 f32 f32))) + (type $15 (func (param i32 f32) (result f32))) + (type $16 (func (param i32 i32 f32))) + (type $17 (func (param i32 f64 f64))) + (type $18 (func (param i32 f64) (result f64))) + (type $19 (func (param i32 i32 f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (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/memory/__stack_pointer (mut i32) (i32.const 34564)) + (memory $0 1) + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00\1e\00\00\00s\00t\00d\00/\00f\00i\00x\00e\00d\00m\00a\00p\00.\00t\00s") + (data $9 (i32.const 1500) "<") + (data $9.1 (i32.const 1512) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data $10 (i32.const 1564) "<") + (data $10.1 (i32.const 1576) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00f\00i\00x\00e\00d\00m\00a\00p\00.\00t\00s") + (data $11 (i32.const 1628) ",") + (data $11.1 (i32.const 1640) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $12 (i32.const 1676) ",") + (data $12.1 (i32.const 1688) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $13 (i32.const 1728) "\10\00\00\00 \00\00\00 \00\00\00 ") + (data $13.1 (i32.const 1752) "\02\t\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a") + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1648 + call $~lib/rt/itcms/__visit + i32.const 1520 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~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 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/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 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$778 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34564 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$778 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/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 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1728 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1732 + 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/__visit (param $0 i32) + local.get $0 + i32.eqz + if + return + end + 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 $~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 $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1392 + i32.const 284 + i32.const 14 + call $~lib/builtins/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 $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + 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 1392 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 203 + i32.const 14 + call $~lib/builtins/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 1392 + i32.const 221 + i32.const 16 + call $~lib/builtins/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 1392 + i32.const 233 + i32.const 14 + call $~lib/builtins/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 1392 + i32.const 234 + i32.const 14 + call $~lib/builtins/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 + i32.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_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 1392 + i32.const 251 + i32.const 14 + call $~lib/builtins/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 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + i32.const 14 + call $~lib/builtins/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 $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + 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 $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + 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 34576 + i32.const 0 + i32.store + i32.const 36144 + 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 34576 + 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 34576 + 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 34576 + i32.const 36148 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34576 + global.set $~lib/rt/tlsf/ROOT + ) + (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 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 34564 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34564 + 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 + local.tee $0 + i32.const 34564 + i32.ge_u + if + 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 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + 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.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + 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.add + i32.const 1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/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 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/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/itcms/__new (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 + i32.const 1073741804 + i32.ge_u + if + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 + call $~lib/builtins/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$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + memory.size + local.tee $2 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1392 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $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/__link (param $0 i32) (param $1 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 295 + i32.const 14 + call $~lib/builtins/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 + ) + (func $start:std/fixedmap + (local $0 i32) + (local $1 i32) + memory.size + i32.const 16 + i32.shl + i32.const 34564 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + call $"std/fixedmap/testNumeric" + 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 1796 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 10 + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 20 + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $"~lib/fixedmap/FixedMap#get" + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $"~lib/fixedmap/FixedMap#get" + i32.const 20 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 30 + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $"~lib/fixedmap/FixedMap#get" + i32.const 30 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 76 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + 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 1796 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 200 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.mul + call $"~lib/fixedmap/FixedMap#set" + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 200 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 86 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 200 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 10 + i32.mul + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 88 + i32.const 5 + call $~lib/builtins/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 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~start + call $start:std/fixedmap + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.get $0 + local.get $0 + i32.const 4 + i32.lt_s + select + local.set $2 + i32.const 4 + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.set $0 + br $while-continue|0 + end + end + local.get $0 + i32.const 4 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 0 + local.get $3 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"~lib/fixedmap/FixedMap#get:size" (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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#has" (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) + 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $"~lib/fixedmap/FixedMap#delete" (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) + 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $"~lib/fixedmap/FixedMap#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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $6 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $8 + local.get $6 + i32.const 1 + i32.sub + local.set $9 + local.get $6 + i32.const 4 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.const 0 + local.get $3 + memory.fill + loop $for-loop|0 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $11 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $11 + i32.load + local.tee $5 + local.get $9 + i32.and + local.set $3 + loop $while-continue|1 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.load8_u offset=4 + if + local.get $3 + i32.const 1 + i32.add + local.get $9 + i32.and + local.set $3 + br $while-continue|1 + end + end + local.get $10 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $11 + i32.load offset=8 + i32.store offset=8 + local.get $3 + local.get $11 + i32.load offset=12 + i32.store offset=12 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $8 + i32.const -1 + local.set $3 + block $folding-inner0 + loop $do-loop|0 + local.get $8 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $9 + i32.load8_u offset=4 + local.tee $10 + i32.const 1 + i32.eq + if + local.get $5 + local.get $9 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $9 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + if + local.get $9 + local.get $2 + i32.store offset=12 + br $folding-inner0 + end + else + local.get $10 + if (result i32) + local.get $4 + local.get $3 + local.get $3 + i32.const -1 + i32.eq + select + else + local.get $8 + local.get $3 + local.get $4 + local.get $3 + i32.const -1 + i32.ne + select + i32.const 4 + i32.shl + i32.add + local.tee $4 + local.get $5 + i32.store + local.get $4 + i32.const 1 + i32.store8 offset=4 + local.get $4 + local.get $1 + i32.store offset=8 + local.get $4 + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $3 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $3 + end + local.get $7 + local.get $4 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $4 + i32.ne + br_if $do-loop|0 + end + local.get $3 + i32.const -1 + i32.ne + if + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + i32.store offset=8 + local.get $3 + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#get" (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) + 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + i32.const 1520 + i32.const 1584 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 268435455 + i32.gt_u + if + i32.const 1648 + i32.const 1696 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $0 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $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 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $5 + 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 1648 + i32.const 1696 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + local.get $2 + i32.shl + local.set $1 + local.get $3 + if + i32.const 1073741820 + local.get $5 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $1 + end + block $__inlined_func$~lib/rt/itcms/__renew$760 + local.get $4 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u + if + local.get $3 + local.get $1 + i32.store offset=16 + local.get $4 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$760 + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $4 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $1 + local.get $3 + i32.lt_u + select + memory.copy + end + local.get $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 $0 + local.get $2 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1248 + i32.const 1696 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#clear" (param $0 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 0 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.shl + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (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 1796 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + call $"~lib/fixedmap/FixedMap#constructor" + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 24 + i32.const 5 + call $~lib/builtins/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 + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $1 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $8 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + local.get $8 + i32.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|01 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $8 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load offset=12 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|2 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $0 + i32.const 30 + i32.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 30 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#clear" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 2 + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + call $"~lib/fixedmap/FixedMap#get" + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#has" (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) + 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $"~lib/fixedmap/FixedMap#delete" (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) + 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $"~lib/fixedmap/FixedMap#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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $6 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $8 + local.get $6 + i32.const 1 + i32.sub + local.set $9 + local.get $6 + i32.const 4 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.const 0 + local.get $3 + memory.fill + loop $for-loop|0 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $11 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $11 + i32.load + local.tee $5 + local.get $9 + i32.and + local.set $3 + loop $while-continue|1 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.load8_u offset=4 + if + local.get $3 + i32.const 1 + i32.add + local.get $9 + i32.and + local.set $3 + br $while-continue|1 + end + end + local.get $10 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $11 + i32.load offset=8 + i32.store offset=8 + local.get $3 + local.get $11 + i32.load offset=12 + i32.store offset=12 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $8 + i32.const -1 + local.set $3 + block $folding-inner0 + loop $do-loop|0 + local.get $8 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $9 + i32.load8_u offset=4 + local.tee $10 + i32.const 1 + i32.eq + if + local.get $5 + local.get $9 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $9 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + if + local.get $9 + local.get $2 + i32.store offset=12 + br $folding-inner0 + end + else + local.get $10 + if (result i32) + local.get $4 + local.get $3 + local.get $3 + i32.const -1 + i32.eq + select + else + local.get $8 + local.get $3 + local.get $4 + local.get $3 + i32.const -1 + i32.ne + select + i32.const 4 + i32.shl + i32.add + local.tee $4 + local.get $5 + i32.store + local.get $4 + i32.const 1 + i32.store8 offset=4 + local.get $4 + local.get $1 + i32.store offset=8 + local.get $4 + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $3 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $3 + end + local.get $7 + local.get $4 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $4 + i32.ne + br_if $do-loop|0 + end + local.get $3 + i32.const -1 + i32.ne + if + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + i32.store offset=8 + local.get $3 + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#get" (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) + 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + i32.const 1520 + i32.const 1584 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 268435455 + i32.gt_u + if + i32.const 1648 + i32.const 1696 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $0 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"std/fixedmap/testNumeric" + (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-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $1 + loop $while-continue|0 + local.get $1 + i32.const 16 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.set $1 + br $while-continue|0 + end + end + local.get $1 + i32.const 4 + i32.shl + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.const 0 + local.get $4 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $2 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 24 + i32.const 5 + call $~lib/builtins/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 + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $0 + i32.const 0 + local.set $3 + loop $for-loop|01 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $5 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $1 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $1 + i32.load offset=12 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|2 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $0 + i32.const 30 + i32.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/fixedmap/FixedMap#get" + local.get $0 + i32.const 30 + i32.add + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#clear" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 2 + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + call $"~lib/fixedmap/FixedMap#get" + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#has" (param $0 i32) (param $1 i64) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 24 + i32.mul + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $"~lib/fixedmap/FixedMap#delete" (param $0 i32) (param $1 i64) (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) + 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 24 + i32.mul + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $"~lib/fixedmap/FixedMap#set" (param $0 i32) (param $1 i64) (param $2 i64) + (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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $6 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $8 + local.get $6 + i32.const 1 + i32.sub + local.set $9 + local.get $6 + i32.const 24 + i32.mul + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.const 0 + local.get $3 + memory.fill + loop $for-loop|0 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $11 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $11 + i32.load + local.tee $5 + local.get $9 + i32.and + local.set $3 + loop $while-continue|1 + local.get $10 + local.get $3 + i32.const 24 + i32.mul + i32.add + i32.load8_u offset=4 + if + local.get $3 + i32.const 1 + i32.add + local.get $9 + i32.and + local.set $3 + br $while-continue|1 + end + end + local.get $10 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $11 + i64.load offset=16 + i64.store offset=16 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $8 + i32.const -1 + local.set $3 + block $folding-inner0 + loop $do-loop|0 + local.get $8 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $9 + i32.load8_u offset=4 + local.tee $10 + i32.const 1 + i32.eq + if + local.get $5 + local.get $9 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $9 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + if + local.get $9 + local.get $2 + i64.store offset=16 + br $folding-inner0 + end + else + local.get $10 + if (result i32) + local.get $4 + local.get $3 + local.get $3 + i32.const -1 + i32.eq + select + else + local.get $8 + local.get $3 + local.get $4 + local.get $3 + i32.const -1 + i32.ne + select + i32.const 24 + i32.mul + i32.add + local.tee $4 + local.get $5 + i32.store + local.get $4 + i32.const 1 + i32.store8 offset=4 + local.get $4 + local.get $1 + i64.store offset=8 + local.get $4 + local.get $2 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $3 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $3 + end + local.get $7 + local.get $4 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $4 + i32.ne + br_if $do-loop|0 + end + local.get $3 + i32.const -1 + i32.ne + if + local.get $8 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + i64.store offset=8 + local.get $3 + local.get $2 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#get" (param $0 i32) (param $1 i64) (result i64) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + i32.const 1520 + i32.const 1584 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 24 + i32.mul + i32.add + i64.load offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 134217727 + i32.gt_u + if + i32.const 1648 + i32.const 1696 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $0 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1248 + i32.const 1696 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/fixedmap/FixedMap#clear" (param $0 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 0 + local.get $0 + i32.load offset=4 + i32.const 24 + i32.mul + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 16 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.set $2 + br $while-continue|0 + end + end + local.get $2 + i32.const 24 + i32.mul + local.tee $6 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.const 0 + local.get $6 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $1 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $3 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i64.const 10 + i64.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 10 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 10 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i64.const 20 + i64.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 20 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|00 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $9 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + local.get $9 + i64.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|01 + local.get $5 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $5 + i32.const 24 + i32.mul + i32.add + local.tee $9 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $9 + i64.load offset=16 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + i64.const 50 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $3 + loop $for-loop|3 + local.get $3 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 20 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|3 + end + end + i64.const 0 + local.set $3 + loop $for-loop|4 + local.get $3 + i64.const 50 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i64.const 30 + i64.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 30 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 1 + i64.const 2 + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 1 + call $"~lib/fixedmap/FixedMap#get" + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#has" (param $0 i32) (param $1 i64) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 24 + i32.mul + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $"~lib/fixedmap/FixedMap#delete" (param $0 i32) (param $1 i64) (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) + 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 24 + i32.mul + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $"~lib/fixedmap/FixedMap#set" (param $0 i32) (param $1 i64) (param $2 i64) + (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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $6 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $8 + local.get $6 + i32.const 1 + i32.sub + local.set $9 + local.get $6 + i32.const 24 + i32.mul + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.const 0 + local.get $3 + memory.fill + loop $for-loop|0 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $11 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $11 + i32.load + local.tee $5 + local.get $9 + i32.and + local.set $3 + loop $while-continue|1 + local.get $10 + local.get $3 + i32.const 24 + i32.mul + i32.add + i32.load8_u offset=4 + if + local.get $3 + i32.const 1 + i32.add + local.get $9 + i32.and + local.set $3 + br $while-continue|1 + end + end + local.get $10 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $11 + i64.load offset=16 + i64.store offset=16 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $8 + i32.const -1 + local.set $3 + block $folding-inner0 + loop $do-loop|0 + local.get $8 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $9 + i32.load8_u offset=4 + local.tee $10 + i32.const 1 + i32.eq + if + local.get $5 + local.get $9 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $9 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + if + local.get $9 + local.get $2 + i64.store offset=16 + br $folding-inner0 + end + else + local.get $10 + if (result i32) + local.get $4 + local.get $3 + local.get $3 + i32.const -1 + i32.eq + select + else + local.get $8 + local.get $3 + local.get $4 + local.get $3 + i32.const -1 + i32.ne + select + i32.const 24 + i32.mul + i32.add + local.tee $4 + local.get $5 + i32.store + local.get $4 + i32.const 1 + i32.store8 offset=4 + local.get $4 + local.get $1 + i64.store offset=8 + local.get $4 + local.get $2 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $3 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $3 + end + local.get $7 + local.get $4 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $4 + i32.ne + br_if $do-loop|0 + end + local.get $3 + i32.const -1 + i32.ne + if + local.get $8 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + i64.store offset=8 + local.get $3 + local.get $2 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#get" (param $0 i32) (param $1 i64) (result i64) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + i32.const 1520 + i32.const 1584 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 24 + i32.mul + i32.add + i64.load offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 134217727 + i32.gt_u + if + i32.const 1648 + i32.const 1696 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $0 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $"std/fixedmap/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 16 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.set $2 + br $while-continue|0 + end + end + local.get $2 + i32.const 24 + i32.mul + local.tee $6 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.const 0 + local.get $6 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $1 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $3 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i64.const 10 + i64.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 10 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 10 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i64.const 20 + i64.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 20 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|00 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $9 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + local.get $9 + i64.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|01 + local.get $5 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $5 + i32.const 24 + i32.mul + i32.add + local.tee $9 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $9 + i64.load offset=16 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + i64.const 50 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $3 + loop $for-loop|3 + local.get $3 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 20 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|3 + end + end + i64.const 0 + local.set $3 + loop $for-loop|4 + local.get $3 + i64.const 50 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + i64.const 30 + i64.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + i64.const 30 + i64.add + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 1 + i64.const 2 + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i64.const 1 + call $"~lib/fixedmap/FixedMap#get" + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1456 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#has" (param $0 i32) (param $1 f32) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + f32.load offset=8 + f32.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $"~lib/fixedmap/FixedMap#delete" (param $0 i32) (param $1 f32) (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) + 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + f32.load offset=8 + f32.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $"~lib/fixedmap/FixedMap#set" (param $0 i32) (param $1 f32) (param $2 f32) + (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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $6 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $8 + local.get $6 + i32.const 1 + i32.sub + local.set $9 + local.get $6 + i32.const 4 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.const 0 + local.get $3 + memory.fill + loop $for-loop|0 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $11 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $11 + i32.load + local.tee $5 + local.get $9 + i32.and + local.set $3 + loop $while-continue|1 + local.get $10 + local.get $3 + i32.const 4 + i32.shl + i32.add + i32.load8_u offset=4 + if + local.get $3 + i32.const 1 + i32.add + local.get $9 + i32.and + local.set $3 + br $while-continue|1 + end + end + local.get $10 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $11 + f32.load offset=8 + f32.store offset=8 + local.get $3 + local.get $11 + f32.load offset=12 + f32.store offset=12 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $8 + i32.const -1 + local.set $3 + block $folding-inner0 + loop $do-loop|0 + local.get $8 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $9 + i32.load8_u offset=4 + local.tee $10 + i32.const 1 + i32.eq + if + local.get $5 + local.get $9 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $9 + f32.load offset=8 + f32.eq + else + i32.const 0 + end + if + local.get $9 + local.get $2 + f32.store offset=12 + br $folding-inner0 + end + else + local.get $10 + if (result i32) + local.get $4 + local.get $3 + local.get $3 + i32.const -1 + i32.eq + select + else + local.get $8 + local.get $3 + local.get $4 + local.get $3 + i32.const -1 + i32.ne + select + i32.const 4 + i32.shl + i32.add + local.tee $4 + local.get $5 + i32.store + local.get $4 + i32.const 1 + i32.store8 offset=4 + local.get $4 + local.get $1 + f32.store offset=8 + local.get $4 + local.get $2 + f32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $3 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $3 + end + local.get $7 + local.get $4 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $4 + i32.ne + br_if $do-loop|0 + end + local.get $3 + i32.const -1 + i32.ne + if + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + f32.store offset=8 + local.get $3 + local.get $2 + f32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#get" (param $0 i32) (param $1 f32) (result f32) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + f32.load offset=8 + f32.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + i32.const 1520 + i32.const 1584 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 4 + i32.shl + i32.add + f32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 268435455 + i32.gt_u + if + i32.const 1648 + i32.const 1696 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $0 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + (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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1248 + i32.const 1696 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 16 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.set $2 + br $while-continue|0 + end + end + local.get $2 + i32.const 4 + i32.shl + local.tee $6 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.const 0 + local.get $6 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $1 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f32.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f32.const 0 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $3 + f32.const 100 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + f32.const 10 + f32.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f32.const 10 + f32.add + f32.ne + if + i32.const 0 + i32.const 1456 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + f32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + f32.const 100 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f32.const 10 + f32.add + f32.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + f32.const 20 + f32.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f32.const 20 + f32.add + f32.ne + if + i32.const 0 + i32.const 1456 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + f32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|00 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $9 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + local.get $9 + f32.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|01 + local.get $5 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $5 + i32.const 4 + i32.shl + i32.add + local.tee $9 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $9 + f32.load offset=12 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + f32.const 50 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + f32.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 50 + local.set $3 + loop $for-loop|3 + local.get $3 + f32.const 100 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f32.const 20 + f32.add + f32.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + f32.add + local.set $3 + br $for-loop|3 + end + end + f32.const 0 + local.set $3 + loop $for-loop|4 + local.get $3 + f32.const 50 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + f32.const 30 + f32.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f32.const 30 + f32.add + f32.ne + if + i32.const 0 + i32.const 1456 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + f32.add + local.set $3 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f32.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f32.const 1 + f32.const 2 + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f32.const 1 + call $"~lib/fixedmap/FixedMap#get" + f32.const 2 + f32.ne + if + i32.const 0 + i32.const 1456 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#has" (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $8 + local.get $2 + i32.const 24 + i32.mul + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $2 + local.set $0 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + f64.load offset=8 + f64.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.0" + local.get $7 + local.get $0 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $"~lib/fixedmap/FixedMap#delete" (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $6 + local.get $0 + i32.load offset=8 + local.tee $7 + i32.and + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $9 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $9 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $10 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $3 + local.set $2 + local.get $10 + i32.const 1 + i32.eq + if (result i32) + local.get $6 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + f64.load offset=8 + f64.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.1" + local.get $8 + local.get $2 + i32.const 1 + i32.add + local.get $7 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 24 + i32.mul + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $"~lib/fixedmap/FixedMap#set" (param $0 i32) (param $1 f64) (param $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (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 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $7 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $9 + local.get $7 + i32.const 1 + i32.sub + local.set $10 + local.get $7 + i32.const 24 + i32.mul + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.const 0 + local.get $3 + memory.fill + loop $for-loop|0 + local.get $4 + local.get $9 + i32.lt_s + if + local.get $8 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $12 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $12 + i32.load + local.tee $6 + local.get $10 + i32.and + local.set $3 + loop $while-continue|1 + local.get $11 + local.get $3 + i32.const 24 + i32.mul + i32.add + i32.load8_u offset=4 + if + local.get $3 + i32.const 1 + i32.add + local.get $10 + i32.and + local.set $3 + br $while-continue|1 + end + end + local.get $11 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $6 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $12 + f64.load offset=8 + f64.store offset=8 + local.get $3 + local.get $12 + f64.load offset=16 + f64.store offset=16 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $10 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $11 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i64.reinterpret_f64 + local.tee $5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $6 + local.get $0 + i32.load offset=8 + local.tee $7 + i32.and + local.tee $8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $9 + i32.const -1 + local.set $3 + block $folding-inner0 + loop $do-loop|0 + local.get $9 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $10 + i32.load8_u offset=4 + local.tee $11 + i32.const 1 + i32.eq + if + local.get $6 + local.get $10 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $10 + f64.load offset=8 + f64.eq + else + i32.const 0 + end + if + local.get $10 + local.get $2 + f64.store offset=16 + br $folding-inner0 + end + else + local.get $11 + if (result i32) + local.get $4 + local.get $3 + local.get $3 + i32.const -1 + i32.eq + select + else + local.get $9 + local.get $3 + local.get $4 + local.get $3 + i32.const -1 + i32.ne + select + i32.const 24 + i32.mul + i32.add + local.tee $4 + local.get $6 + i32.store + local.get $4 + i32.const 1 + i32.store8 offset=4 + local.get $4 + local.get $1 + f64.store offset=8 + local.get $4 + local.get $2 + f64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $3 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $3 + end + local.get $8 + local.get $4 + i32.const 1 + i32.add + local.get $7 + i32.and + local.tee $4 + i32.ne + br_if $do-loop|0 + end + local.get $3 + i32.const -1 + i32.ne + if + local.get $9 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $6 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + f64.store offset=8 + local.get $3 + local.get $2 + f64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/fixedmap/FixedMap#get" (param $0 i32) (param $1 f64) (result f64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $6 + local.get $0 + i32.load offset=8 + local.tee $7 + i32.and + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $9 + block $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $9 + local.get $3 + i32.const 24 + i32.mul + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $10 + i32.eqz + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $3 + local.set $2 + local.get $10 + i32.const 1 + i32.eq + if (result i32) + local.get $6 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + f64.load offset=8 + f64.eq + else + i32.const 0 + end + br_if $"~lib/fixedmap/FixedMap#findSlot|inlined.2" + local.get $8 + local.get $2 + i32.const 1 + i32.add + local.get $7 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + i32.const 1520 + i32.const 1584 + i32.const 92 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 24 + i32.mul + i32.add + f64.load offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 134217727 + i32.gt_u + if + i32.const 1648 + i32.const 1696 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $0 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + (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 1796 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1248 + i32.const 1696 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/fixedmap/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 16 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.set $2 + br $while-continue|0 + end + end + local.get $2 + i32.const 24 + i32.mul + local.tee $6 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.const 0 + local.get $6 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $1 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 0 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $3 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + f64.const 10 + f64.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f64.const 10 + f64.add + f64.ne + if + i32.const 0 + i32.const 1456 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + f64.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 20 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f64.const 10 + f64.add + f64.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + f64.const 20 + f64.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 23 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f64.const 20 + f64.add + f64.ne + if + i32.const 0 + i32.const 1456 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + f64.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $2 + i32.store offset=4 + loop $for-loop|00 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $9 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + local.get $9 + f64.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 1796 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|01 + local.get $5 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $5 + i32.const 24 + i32.mul + i32.add + local.tee $9 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $9 + f64.load offset=16 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + f64.const 50 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 36 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#delete" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 37 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#delete" + if + i32.const 0 + i32.const 1456 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + f64.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 50 + local.set $3 + loop $for-loop|3 + local.get $3 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 45 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f64.const 20 + f64.add + f64.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + f64.add + local.set $3 + br $for-loop|3 + end + end + f64.const 0 + local.set $3 + loop $for-loop|4 + local.get $3 + f64.const 50 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + local.get $3 + f64.const 30 + f64.add + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#has" + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + call $"~lib/fixedmap/FixedMap#get" + local.get $3 + f64.const 30 + f64.add + f64.ne + if + i32.const 0 + i32.const 1456 + i32.const 53 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + f64.add + local.set $3 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + if + i32.const 0 + i32.const 1456 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 0 + call $"~lib/fixedmap/FixedMap#has" + if + i32.const 0 + i32.const 1456 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 1 + f64.const 2 + call $"~lib/fixedmap/FixedMap#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/fixedmap/FixedMap#get:size" + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 1 + call $"~lib/fixedmap/FixedMap#get" + f64.const 2 + f64.ne + if + i32.const 0 + i32.const 1456 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + end + 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 1796 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + 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 1796 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) +) diff --git a/tests/compiler/std/fixedmap.ts b/tests/compiler/std/fixedmap.ts new file mode 100644 index 0000000000..fee9f9e140 --- /dev/null +++ b/tests/compiler/std/fixedmap.ts @@ -0,0 +1,99 @@ +function testNumeric(): void { + let map = new FixedMap(); + + // empty map + assert(map.size == 0); + assert(!map.has(0)); + assert(!map.delete(0)); + + // insert new + for (let k: K = 0; k < 100; ++k) { + assert(!map.has(k)); + map.set(k, 10 + k); + assert(map.has(k)); + assert(map.get(k) == 10 + k); + } + assert(map.size == 100); + + // insert duplicate (update) + for (let k: K = 0; k < 100; ++k) { + assert(map.has(k)); + assert(map.get(k) == 10 + k); + map.set(k, 20 + k); + assert(map.has(k)); + assert(map.get(k) == 20 + k); + } + assert(map.size == 100); + + // keys and values + let keys = map.keys(); + let vals = map.values(); + assert(keys.length == 100); + assert(vals.length == 100); + + // delete half + for (let k: K = 0; k < 50; ++k) { + assert(map.has(k)); + assert(map.delete(k)); + assert(!map.has(k)); + assert(!map.delete(k)); + } + assert(map.size == 50); + + // remaining half still accessible + for (let k: K = 50; k < 100; ++k) { + assert(map.has(k)); + assert(map.get(k) == 20 + k); + } + + // re-insert after delete (reuses tombstones) + for (let k: K = 0; k < 50; ++k) { + map.set(k, 30 + k); + assert(map.has(k)); + assert(map.get(k) == 30 + k); + } + assert(map.size == 100); + + // clear + map.clear(); + assert(map.size == 0); + assert(!map.has(0)); + + // insert after clear + map.set(1, 2); + assert(map.size == 1); + assert(map.get(1) == 2); +} + +// operator access +function testOperators(): void { + let map = new FixedMap(); + map[1] = 10; + map[2] = 20; + assert(map[1] == 10); + assert(map[2] == 20); + map[1] = 30; + assert(map[1] == 30); + assert(map.size == 2); +} + +// custom capacity +function testCapacity(): void { + let map = new FixedMap(4); + for (let i = 0; i < 200; ++i) { + map.set(i, i * 10); + } + assert(map.size == 200); + for (let i = 0; i < 200; ++i) { + assert(map.get(i) == i * 10); + } +} + +testNumeric(); +testNumeric(); +testNumeric(); +testNumeric(); +testNumeric(); +testNumeric(); +testOperators(); +testCapacity(); diff --git a/tests/compiler/std/fixedset.debug.wat b/tests/compiler/std/fixedset.debug.wat new file mode 100644 index 0000000000..a40d88337e --- /dev/null +++ b/tests/compiler/std/fixedset.debug.wat @@ -0,0 +1,16224 @@ +(module + (type $0 (func (param i32 i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32))) + (type $4 (func)) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i64) (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 f32) (result i32))) + (type $9 (func (param i32 f64) (result i32))) + (type $10 (func (param i64) (result i32))) + (type $11 (func (param i32) (result i64))) + (type $12 (func (param i32 i64))) + (type $13 (func (param i32 i32 i64))) + (type $14 (func (param i32 i32 i64) (result i32))) + (type $15 (func (result i32))) + (type $16 (func (param f32) (result i32))) + (type $17 (func (param i32) (result f32))) + (type $18 (func (param i32 f32))) + (type $19 (func (param f64) (result i32))) + (type $20 (func (param i32) (result f64))) + (type $21 (func (param i32 f64))) + (type $22 (func (param i32 i32 f32))) + (type $23 (func (param i32 i32 f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 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/shared/runtime/Runtime.Memory i32 (i32.const 3)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/native/ASC_FEATURE_EXCEPTION_HANDLING 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/rt/__rtti_base i32 (i32.const 576)) + (global $~lib/memory/__data_end i32 (i32.const 644)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33412)) + (global $~lib/memory/__heap_base i32 (i32.const 33412)) + (memory $0 1) + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\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 $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\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 $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00s\00t\00d\00/\00f\00i\00x\00e\00d\00s\00e\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 476) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $10 (i32.const 524) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $11 (i32.const 576) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:prev + local.get $space + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev + i32.const 1 + drop + local.get $prev + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + return + ) + (func $~lib/rt/itcms/Object#linkTo (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 96 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + 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 $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr + i32.eqz + if + return + end + local.get $ptr + i32.const 20 + i32.sub + local.set $obj + i32.const 0 + drop + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $obj + 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 $cookie i32) + (local $ptr i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end + end + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (param $this i32) (result i32) + i32.const 4 + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $6 i32) + (local $7 i32) + (local $boundedSize i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) + (local $head i32) + (local $root|18 i32) + (local $fl|19 i32) + (local $slMap i32) + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + i32.eq + if + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + local.get $slMap + i32.eqz + if + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + 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 $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) + (local $left i32) + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo + i32.const 1 + drop + local.get $leftInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo + i32.const 4 + i32.add + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $right + i32.const 4 + i32.sub + local.get $block + i32.store + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + local.set $head + local.get $block + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + 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 $start + local.get $end + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $end + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + local.set $tail + i32.const 0 + local.set $tailInfo + local.get $tail + if + i32.const 1 + drop + local.get $start + local.get $tail + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo + else + end + else + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $head i32) + (local $memStart 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 $rootOffset + memory.size + local.set $pagesBefore + local.get $rootOffset + 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 $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) + local.get $pagesNeeded + local.get $pagesBefore + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + local.get $sl + i32.const 1 + i32.add + local.set $sl + br $for-loop|1 + end + end + local.get $fl + i32.const 1 + i32.add + local.set $fl + br $for-loop|0 + end + end + local.get $rootOffset + i32.const 1572 + i32.add + local.set $memStart + i32.const 0 + drop + local.get $root + local.get $memStart + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr + i32.const 4 + i32.sub + local.set $block + local.get $ptr + i32.const 0 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (param $root i32) (param $block i32) + i32.const 0 + drop + local.get $block + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $ptr i32) + local.get $ptr + 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 $ptr + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $from 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 $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + 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 $obj + local.get $obj + 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 $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + 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 $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $obj + 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 96 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $obj + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (local $budget 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 $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step + i32.sub + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + drop + global.get $~lib/rt/itcms/total + i32.const 200 + i32.const 100 + i32.div_u + i32.mul + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $budget + 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 $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $size + 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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size + i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $size + end + return + ) + (func $~lib/rt/tlsf/searchBlock (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + local.get $requestSize + i32.clz + i32.sub + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + i32.const 0 + i32.const -1 + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap + i32.const 0 + local.set $head + local.get $slMap + i32.eqz + if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 0 + i32.const -1 + i32.xor + local.get $fl + i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz + if + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) + i32.const 0 + drop + local.get $size + i32.const 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block + i32.eqz + if + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $block + return + ) + (func $~lib/rt/tlsf/__alloc (param $size 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 $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 261 + i32.const 31 + call $~lib/builtins/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 $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + 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 $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill + local.get $ptr + return + ) + (func $~lib/fixedset/FixedSet#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedset/FixedSet#set:_capacity (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $~lib/fixedset/FixedSet#set:capacityMask (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) + (local $child i32) + (local $parent i32) + (local $parentColor i32) + local.get $childPtr + i32.eqz + if + return + end + i32.const 1 + drop + local.get $parentPtr + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $childPtr + i32.const 20 + i32.sub + local.set $child + local.get $child + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $parentPtr + i32.const 20 + i32.sub + local.set $parent + local.get $parent + call $~lib/rt/itcms/Object#get:color + local.set $parentColor + local.get $parentColor + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $expectMultiple + if + local.get $parent + call $~lib/rt/itcms/Object#makeGray + else + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $parentColor + 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 $child + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/fixedset/FixedSet#set:_count (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $~lib/fixedset/FixedSet#set:_entriesUsed (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_count (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key i32) (result i32) + (local $key|1 i32) + (local $len i32) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + block $~lib/util/hash/hash32|inlined.0 (result i32) + local.get $key + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.0 + end + return + ) + (func $~lib/fixedset/FixedSet#get:capacityMask (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedset/FixedSet#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:state (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#get:hash (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:key (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedset/FixedSetSlot#set:state (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $~lib/fixedset/FixedSet#get:_entriesUsed (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_capacity (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#set:hash (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $~lib/fixedset/FixedSetSlot#set:key (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store offset=8 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) + (local $oldObj i32) + (local $newPtr i32) + (local $4 i32) + (local $5 i32) + local.get $oldPtr + i32.const 20 + i32.sub + local.set $oldObj + local.get $size + local.get $oldObj + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $oldObj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $oldPtr + return + end + local.get $size + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtId + call $~lib/rt/itcms/__new + local.set $newPtr + local.get $newPtr + local.get $oldPtr + local.get $size + local.tee $4 + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtSize + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + memory.copy + local.get $newPtr + return + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSet#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedset/FixedSet#set:_capacity (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $~lib/fixedset/FixedSet#set:capacityMask (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $~lib/fixedset/FixedSet#set:_count (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $~lib/fixedset/FixedSet#set:_entriesUsed (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_count (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key i32) (result i32) + (local $key|1 i32) + (local $len i32) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + block $~lib/util/hash/hash32|inlined.1 (result i32) + local.get $key + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.1 + end + return + ) + (func $~lib/fixedset/FixedSet#get:capacityMask (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedset/FixedSet#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:state (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#get:hash (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:key (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedset/FixedSetSlot#set:state (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $~lib/fixedset/FixedSet#get:_entriesUsed (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_capacity (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#set:hash (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $~lib/fixedset/FixedSetSlot#set:key (param $this i32) (param $key i32) + local.get $this + local.get $key + i32.store offset=8 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSet#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedset/FixedSet#set:_capacity (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $~lib/fixedset/FixedSet#set:capacityMask (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $~lib/fixedset/FixedSet#set:_count (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $~lib/fixedset/FixedSet#set:_entriesUsed (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_count (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key i64) (result i32) + (local $key|1 i64) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + i32.const 8 + i32.const 8 + i32.eq + drop + block $~lib/util/hash/hash64|inlined.0 (result i32) + local.get $key + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.0 + end + return + ) + (func $~lib/fixedset/FixedSet#get:capacityMask (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedset/FixedSet#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:state (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#get:hash (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:key (param $this i32) (result i64) + local.get $this + i64.load offset=8 + ) + (func $~lib/fixedset/FixedSetSlot#set:state (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $~lib/fixedset/FixedSet#get:_entriesUsed (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_capacity (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#set:hash (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $~lib/fixedset/FixedSetSlot#set:key (param $this i32) (param $key i64) + local.get $this + local.get $key + i64.store offset=8 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSet#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedset/FixedSet#set:_capacity (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $~lib/fixedset/FixedSet#set:capacityMask (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $~lib/fixedset/FixedSet#set:_count (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $~lib/fixedset/FixedSet#set:_entriesUsed (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_count (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key i64) (result i32) + (local $key|1 i64) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + i32.const 8 + i32.const 8 + i32.eq + drop + block $~lib/util/hash/hash64|inlined.1 (result i32) + local.get $key + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.1 + end + return + ) + (func $~lib/fixedset/FixedSet#get:capacityMask (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedset/FixedSet#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:state (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#get:hash (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:key (param $this i32) (result i64) + local.get $this + i64.load offset=8 + ) + (func $~lib/fixedset/FixedSetSlot#set:state (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $~lib/fixedset/FixedSet#get:_entriesUsed (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_capacity (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#set:hash (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $~lib/fixedset/FixedSetSlot#set:key (param $this i32) (param $key i64) + local.get $this + local.get $key + i64.store offset=8 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSet#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedset/FixedSet#set:_capacity (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $~lib/fixedset/FixedSet#set:capacityMask (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $~lib/fixedset/FixedSet#set:_count (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $~lib/fixedset/FixedSet#set:_entriesUsed (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_count (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key f32) (result i32) + (local $key|1 i32) + (local $len i32) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + block $~lib/util/hash/hash32|inlined.2 (result i32) + local.get $key + i32.reinterpret_f32 + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.2 + end + return + ) + (func $~lib/fixedset/FixedSet#get:capacityMask (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedset/FixedSet#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:state (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#get:hash (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:key (param $this i32) (result f32) + local.get $this + f32.load offset=8 + ) + (func $~lib/fixedset/FixedSetSlot#set:state (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $~lib/fixedset/FixedSet#get:_entriesUsed (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_capacity (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#set:hash (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $~lib/fixedset/FixedSetSlot#set:key (param $this i32) (param $key f32) + local.get $this + local.get $key + f32.store offset=8 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSet#set:dataPtr (param $this i32) (param $dataPtr i32) + local.get $this + local.get $dataPtr + i32.store + ) + (func $~lib/fixedset/FixedSet#set:_capacity (param $this i32) (param $_capacity i32) + local.get $this + local.get $_capacity + i32.store offset=4 + ) + (func $~lib/fixedset/FixedSet#set:capacityMask (param $this i32) (param $capacityMask i32) + local.get $this + local.get $capacityMask + i32.store offset=8 + ) + (func $~lib/fixedset/FixedSet#set:_count (param $this i32) (param $_count i32) + local.get $this + local.get $_count + i32.store offset=12 + ) + (func $~lib/fixedset/FixedSet#set:_entriesUsed (param $this i32) (param $_entriesUsed i32) + local.get $this + local.get $_entriesUsed + i32.store offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_count (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/hash/HASH (param $key f64) (result i32) + (local $key|1 i64) + (local $h i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + block $~lib/util/hash/hash64|inlined.2 (result i32) + local.get $key + i64.reinterpret_f64 + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.2 + end + return + ) + (func $~lib/fixedset/FixedSet#get:capacityMask (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/fixedset/FixedSet#get:dataPtr (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:state (param $this i32) (result i32) + local.get $this + i32.load8_u offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#get:hash (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/fixedset/FixedSetSlot#get:key (param $this i32) (result f64) + local.get $this + f64.load offset=8 + ) + (func $~lib/fixedset/FixedSetSlot#set:state (param $this i32) (param $state i32) + local.get $this + local.get $state + i32.store8 offset=4 + ) + (func $~lib/fixedset/FixedSet#get:_entriesUsed (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/fixedset/FixedSet#get:_capacity (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/fixedset/FixedSetSlot#set:hash (param $this i32) (param $hash i32) + local.get $this + local.get $hash + i32.store + ) + (func $~lib/fixedset/FixedSetSlot#set:key (param $this i32) (param $key f64) + local.get $this + local.get $key + f64.store offset=8 + ) + (func $~lib/array/Array#set:buffer (param $this i32) (param $buffer i32) + local.get $this + local.get $buffer + i32.store + local.get $this + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $this i32) (param $dataStart i32) + local.get $this + local.get $dataStart + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $this i32) (param $byteLength i32) + local.get $this + local.get $byteLength + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $start:std/fixedset + 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 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + call $std/fixedset/testOperators + call $std/fixedset/testCapacity + ) + (func $~start + call $start:std/fixedset + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33440 + i32.const 33488 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/builtins/abort (param $message i32) (param $fileName i32) (param $lineNumber i32) (param $columnNumber 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 + i32.const 0 + drop + local.get $message + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $fileName + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $lineNumber + local.get $columnNumber + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#constructor (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.0 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.0 + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:capacityMask + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/fixedset/FixedSet#get:size (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_count + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#has (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.1 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.1 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + i32.const -1 + i32.ne + 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/fixedset/FixedSet#delete (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.2 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.2 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.get $idx + block $~lib/fixedset/FS_SLOT_SIZE|inlined.3 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.3 + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:_count + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/fixedset/FixedSet#rehash (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $oldCapacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.4 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.4 + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:hash + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $newSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $newSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/fixedset/FixedSetSlot#set:key + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/fixedset/FixedSet#set:_entriesUsed + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#add (param $this i32) (param $key i32) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|13 i32) + (local $14 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 $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 4 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 2 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.gt_s + if (result i32) + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 1 + i32.shl + else + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + end + call $~lib/fixedset/FixedSet#rehash + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.5 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.5 + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_entriesUsed + end + i32.const 0 + drop + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|13 + local.get $insertSlot|13 + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot|13 + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot|13 + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + i32.const 0 + drop + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 496 + i32.const 544 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + 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 $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) + (local $oldCapacity i32) + (local $oldData i32) + (local $6 i32) + (local $7 i32) + (local $newCapacity i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $newData i32) + (local $14 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 $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + local.set $oldCapacity + local.get $newSize + local.get $oldCapacity + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + local.get $newSize + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 496 + i32.const 544 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $oldData + local.get $newSize + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $alignLog2 + i32.shl + local.set $newCapacity + local.get $canGrow + if + local.get $oldCapacity + i32.const 1 + i32.shl + local.tee $9 + i32.const 1073741820 + local.tee $10 + local.get $9 + local.get $10 + i32.lt_u + select + local.tee $11 + local.get $newCapacity + local.tee $12 + local.get $11 + local.get $12 + i32.gt_u + select + local.set $newCapacity + end + local.get $oldData + local.get $newCapacity + call $~lib/rt/itcms/__renew + local.set $newData + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $newData + local.get $oldData + i32.ne + if + local.get $array + local.get $newData + i32.store + local.get $array + local.get $newData + i32.store offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $array + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $array + local.get $newCapacity + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value 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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 544 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#values (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.6 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.6 + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:dataPtr + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_capacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.7 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.7 + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testNumeric + (local $set i32) + (local $k i32) + (local $k|2 i32) + (local $vals i32) + (local $k|4 i32) + (local $k|5 i32) + (local $k|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/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $~lib/fixedset/FixedSet#constructor + local.tee $set + i32.store + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i32.const 100 + i32.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i32.const 1 + i32.add + local.set $k + br $for-loop|0 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + i32.const 100 + i32.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|2 + call $~lib/fixedset/FixedSet#add + drop + local.get $k|2 + i32.const 1 + i32.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#values + local.tee $vals + i32.store offset=8 + local.get $vals + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|4 + loop $for-loop|2 + local.get $k|4 + i32.const 50 + i32.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|4 + i32.const 1 + i32.add + local.set $k|4 + br $for-loop|2 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $k|5 + loop $for-loop|3 + local.get $k|5 + i32.const 100 + i32.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|5 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + i32.const 1 + i32.add + local.set $k|5 + br $for-loop|3 + end + end + i32.const 0 + local.set $k|6 + loop $for-loop|4 + local.get $k|6 + i32.const 50 + i32.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + i32.const 1 + i32.add + local.set $k|6 + br $for-loop|4 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#clear + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#constructor (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.0 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.0 + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:capacityMask + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/fixedset/FixedSet#get:size (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_count + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#has (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.1 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.1 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + i32.const -1 + i32.ne + 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/fixedset/FixedSet#delete (param $this i32) (param $key i32) (result i32) + (local $this|2 i32) + (local $key|3 i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.2 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.2 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + i32.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.get $idx + block $~lib/fixedset/FS_SLOT_SIZE|inlined.3 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.3 + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:_count + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/fixedset/FixedSet#rehash (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $oldCapacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.4 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.4 + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:hash + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $newSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $newSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/fixedset/FixedSetSlot#set:key + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/fixedset/FixedSet#set:_entriesUsed + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#add (param $this i32) (param $key i32) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|13 i32) + (local $14 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 $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 4 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 2 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.gt_s + if (result i32) + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 1 + i32.shl + else + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + end + call $~lib/fixedset/FixedSet#rehash + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.5 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.5 + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_entriesUsed + end + i32.const 0 + drop + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|13 + local.get $insertSlot|13 + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot|13 + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot|13 + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + i32.const 0 + drop + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 496 + i32.const 544 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + 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 $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value 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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 544 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#values (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.6 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.6 + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:dataPtr + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_capacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.7 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.7 + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testNumeric + (local $set i32) + (local $k i32) + (local $k|2 i32) + (local $vals i32) + (local $k|4 i32) + (local $k|5 i32) + (local $k|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/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $~lib/fixedset/FixedSet#constructor + local.tee $set + i32.store + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i32.const 100 + i32.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i32.const 1 + i32.add + local.set $k + br $for-loop|0 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + i32.const 100 + i32.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|2 + call $~lib/fixedset/FixedSet#add + drop + local.get $k|2 + i32.const 1 + i32.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#values + local.tee $vals + i32.store offset=8 + local.get $vals + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $k|4 + loop $for-loop|2 + local.get $k|4 + i32.const 50 + i32.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|4 + i32.const 1 + i32.add + local.set $k|4 + br $for-loop|2 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $k|5 + loop $for-loop|3 + local.get $k|5 + i32.const 100 + i32.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|5 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + i32.const 1 + i32.add + local.set $k|5 + br $for-loop|3 + end + end + i32.const 0 + local.set $k|6 + loop $for-loop|4 + local.get $k|6 + i32.const 50 + i32.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + i32.const 1 + i32.add + local.set $k|6 + br $for-loop|4 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#clear + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#constructor (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.0 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.0 + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:capacityMask + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/fixedset/FixedSet#get:size (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_count + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#has (param $this i32) (param $key i64) (result i32) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.1 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.1 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + i32.const -1 + i32.ne + 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/fixedset/FixedSet#delete (param $this i32) (param $key i64) (result i32) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.2 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.2 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.get $idx + block $~lib/fixedset/FS_SLOT_SIZE|inlined.3 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.3 + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:_count + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/fixedset/FixedSet#rehash (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $oldCapacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.4 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.4 + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:hash + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $newSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $newSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/fixedset/FixedSetSlot#set:key + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/fixedset/FixedSet#set:_entriesUsed + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#add (param $this i32) (param $key i64) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|13 i32) + (local $14 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 $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 4 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 2 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.gt_s + if (result i32) + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 1 + i32.shl + else + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + end + call $~lib/fixedset/FixedSet#rehash + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.5 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.5 + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_entriesUsed + end + i32.const 0 + drop + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|13 + local.get $insertSlot|13 + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot|13 + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot|13 + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + i32.const 0 + drop + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 496 + i32.const 544 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i64) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 544 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#values (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.6 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.6 + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:dataPtr + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_capacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.7 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.7 + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testNumeric + (local $set i32) + (local $k i64) + (local $k|2 i64) + (local $vals i32) + (local $k|4 i64) + (local $k|5 i64) + (local $k|6 i64) + (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/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $~lib/fixedset/FixedSet#constructor + local.tee $set + i32.store + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 0 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i64.const 100 + i64.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i64.const 1 + i64.add + local.set $k + br $for-loop|0 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + i64.const 100 + i64.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|2 + call $~lib/fixedset/FixedSet#add + drop + local.get $k|2 + i64.const 1 + i64.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#values + local.tee $vals + i32.store offset=8 + local.get $vals + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|4 + loop $for-loop|2 + local.get $k|4 + i64.const 50 + i64.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|4 + i64.const 1 + i64.add + local.set $k|4 + br $for-loop|2 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $k|5 + loop $for-loop|3 + local.get $k|5 + i64.const 100 + i64.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|5 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + i64.const 1 + i64.add + local.set $k|5 + br $for-loop|3 + end + end + i64.const 0 + local.set $k|6 + loop $for-loop|4 + local.get $k|6 + i64.const 50 + i64.lt_s + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + i64.const 1 + i64.add + local.set $k|6 + br $for-loop|4 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#clear + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 1 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#constructor (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.0 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.0 + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:capacityMask + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/fixedset/FixedSet#get:size (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_count + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#has (param $this i32) (param $key i64) (result i32) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.1 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.1 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + i32.const -1 + i32.ne + 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/fixedset/FixedSet#delete (param $this i32) (param $key i64) (result i32) + (local $this|2 i32) + (local $key|3 i64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.2 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.2 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + i64.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.get $idx + block $~lib/fixedset/FS_SLOT_SIZE|inlined.3 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.3 + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:_count + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/fixedset/FixedSet#rehash (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $oldCapacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.4 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.4 + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:hash + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $newSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $newSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/fixedset/FixedSetSlot#set:key + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/fixedset/FixedSet#set:_entriesUsed + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#add (param $this i32) (param $key i64) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|13 i32) + (local $14 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 $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 4 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 2 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.gt_s + if (result i32) + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 1 + i32.shl + else + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + end + call $~lib/fixedset/FixedSet#rehash + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.5 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.5 + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_entriesUsed + end + i32.const 0 + drop + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|13 + local.get $insertSlot|13 + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot|13 + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot|13 + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + i32.const 0 + drop + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 496 + i32.const 544 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value i64) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 544 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#values (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.6 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.6 + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:dataPtr + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_capacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.7 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.7 + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testNumeric + (local $set i32) + (local $k i64) + (local $k|2 i64) + (local $vals i32) + (local $k|4 i64) + (local $k|5 i64) + (local $k|6 i64) + (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/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $~lib/fixedset/FixedSet#constructor + local.tee $set + i32.store + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 0 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k + loop $for-loop|0 + local.get $k + i64.const 100 + i64.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i64.const 1 + i64.add + local.set $k + br $for-loop|0 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + i64.const 100 + i64.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|2 + call $~lib/fixedset/FixedSet#add + drop + local.get $k|2 + i64.const 1 + i64.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#values + local.tee $vals + i32.store offset=8 + local.get $vals + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $k|4 + loop $for-loop|2 + local.get $k|4 + i64.const 50 + i64.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|4 + i64.const 1 + i64.add + local.set $k|4 + br $for-loop|2 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $k|5 + loop $for-loop|3 + local.get $k|5 + i64.const 100 + i64.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|5 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + i64.const 1 + i64.add + local.set $k|5 + br $for-loop|3 + end + end + i64.const 0 + local.set $k|6 + loop $for-loop|4 + local.get $k|6 + i64.const 50 + i64.lt_u + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + i64.const 1 + i64.add + local.set $k|6 + br $for-loop|4 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#clear + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 1 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i64.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#constructor (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.0 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.0 + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:capacityMask + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/fixedset/FixedSet#get:size (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_count + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#has (param $this i32) (param $key f32) (result i32) + (local $this|2 i32) + (local $key|3 f32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.1 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.1 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + f32.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + i32.const -1 + i32.ne + 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/fixedset/FixedSet#delete (param $this i32) (param $key f32) (result i32) + (local $this|2 i32) + (local $key|3 f32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.2 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.2 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + f32.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.get $idx + block $~lib/fixedset/FS_SLOT_SIZE|inlined.3 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.3 + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:_count + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/fixedset/FixedSet#rehash (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $oldCapacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.4 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.4 + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:hash + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $newSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $newSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/fixedset/FixedSetSlot#set:key + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/fixedset/FixedSet#set:_entriesUsed + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#add (param $this i32) (param $key f32) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|13 i32) + (local $14 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 $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 4 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 2 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.gt_s + if (result i32) + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 1 + i32.shl + else + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + end + call $~lib/fixedset/FixedSet#rehash + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.5 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.5 + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key + f32.eq + else + i32.const 0 + end + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_entriesUsed + end + i32.const 0 + drop + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|13 + local.get $insertSlot|13 + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot|13 + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot|13 + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + i32.const 0 + drop + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 496 + i32.const 544 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + 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 $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value f32) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 544 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + f32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#values (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.6 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.6 + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:dataPtr + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_capacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.7 (result i32) + i32.const 12 + i32.const 3 + i32.add + i32.const 3 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.7 + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testNumeric + (local $set i32) + (local $k f32) + (local $k|2 f32) + (local $vals i32) + (local $k|4 f32) + (local $k|5 f32) + (local $k|6 f32) + (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/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $~lib/fixedset/FixedSet#constructor + local.tee $set + i32.store + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f32.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f32.const 0 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $k + loop $for-loop|0 + local.get $k + f32.const 100 + f32.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + f32.const 1 + f32.add + local.set $k + br $for-loop|0 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + f32.const 100 + f32.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|2 + call $~lib/fixedset/FixedSet#add + drop + local.get $k|2 + f32.const 1 + f32.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#values + local.tee $vals + i32.store offset=8 + local.get $vals + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $k|4 + loop $for-loop|2 + local.get $k|4 + f32.const 50 + f32.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|4 + f32.const 1 + f32.add + local.set $k|4 + br $for-loop|2 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 50 + local.set $k|5 + loop $for-loop|3 + local.get $k|5 + f32.const 100 + f32.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|5 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + f32.const 1 + f32.add + local.set $k|5 + br $for-loop|3 + end + end + f32.const 0 + local.set $k|6 + loop $for-loop|4 + local.get $k|6 + f32.const 50 + f32.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + f32.const 1 + f32.add + local.set $k|6 + br $for-loop|4 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#clear + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f32.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f32.const 1 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f32.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#constructor (param $this i32) (param $initialCapacity i32) (result i32) + (local $cap i32) + (local $bufferSize i32) + (local $ptr i32) + (local $5 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 $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + local.get $initialCapacity + i32.const 4 + i32.lt_s + if + i32.const 4 + local.set $initialCapacity + end + i32.const 4 + local.set $cap + loop $while-continue|0 + local.get $cap + local.get $initialCapacity + i32.lt_s + if + local.get $cap + i32.const 1 + i32.shl + local.set $cap + br $while-continue|0 + end + end + local.get $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.0 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.0 + end + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $ptr + local.get $ptr + i32.const 0 + local.get $bufferSize + memory.fill + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $ptr + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $cap + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:capacityMask + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $ptr + i32.const 0 + call $~lib/rt/itcms/__link + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/fixedset/FixedSet#get:size (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_count + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#has (param $this i32) (param $key f64) (result i32) + (local $this|2 i32) + (local $key|3 f64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state 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 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=4 + local.get $12 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.1 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.1 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + f64.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.0 + end + i32.const -1 + i32.ne + 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/fixedset/FixedSet#delete (param $this i32) (param $key f64) (result i32) + (local $this|2 i32) + (local $key|3 f64) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $slot i32) + (local $state i32) + (local $idx i32) + (local $slot|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 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store + local.get $key + local.set $key|3 + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this|2 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.2 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.2 + end + local.set $slotSize + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key|3 + f64.eq + else + i32.const 0 + end + if + local.get $i + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + i32.const -1 + br $~lib/fixedset/FixedSet#findSlot|inlined.1 + end + local.set $idx + local.get $idx + i32.const -1 + i32.eq + if + i32.const 0 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.get $idx + block $~lib/fixedset/FS_SLOT_SIZE|inlined.3 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.3 + end + i32.mul + i32.add + local.set $slot|13 + local.get $slot|13 + i32.const 2 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.sub + call $~lib/fixedset/FixedSet#set:_count + i32.const 1 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/fixedset/FixedSet#rehash (param $this i32) (param $newCapacity i32) + (local $oldData i32) + (local $oldCapacity i32) + (local $slotSize i32) + (local $newMask i32) + (local $bufferSize i32) + (local $newData i32) + (local $i i32) + (local $oldSlot i32) + (local $h i32) + (local $j i32) + (local $newSlot i32) + (local $13 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 $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $oldData + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $oldCapacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.4 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.4 + end + local.set $slotSize + local.get $newCapacity + i32.const 1 + i32.sub + local.set $newMask + local.get $newCapacity + local.get $slotSize + i32.mul + local.set $bufferSize + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.eq + drop + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.set $newData + local.get $newData + i32.const 0 + local.get $bufferSize + memory.fill + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $oldCapacity + i32.lt_s + if + local.get $oldData + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $oldSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:hash + local.set $h + local.get $h + local.get $newMask + i32.and + local.set $j + loop $while-continue|1 + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 0 + i32.ne + if + local.get $j + i32.const 1 + i32.add + local.get $newMask + i32.and + local.set $j + br $while-continue|1 + end + end + local.get $newData + local.get $j + local.get $slotSize + i32.mul + i32.add + local.set $newSlot + local.get $newSlot + local.get $h + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $newSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $newSlot + local.get $oldSlot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/fixedset/FixedSetSlot#set:key + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newData + call $~lib/fixedset/FixedSet#set:dataPtr + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newCapacity + call $~lib/fixedset/FixedSet#set:_capacity + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $newMask + call $~lib/fixedset/FixedSet#set:capacityMask + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store + local.get $13 + local.get $this + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $13 + i32.store offset=4 + local.get $13 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/fixedset/FixedSet#set:_entriesUsed + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#add (param $this i32) (param $key f64) (result i32) + (local $hashCode i32) + (local $mask i32) + (local $start i32) + (local $i i32) + (local $data i32) + (local $slotSize i32) + (local $firstDeleted i32) + (local $slot i32) + (local $state i32) + (local $insertIdx i32) + (local $insertSlot i32) + (local $insertSlot|13 i32) + (local $14 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 $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 4 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 3 + i32.mul + i32.ge_s + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 2 + i32.mul + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.gt_s + if (result i32) + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + i32.const 1 + i32.shl + else + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_capacity + end + call $~lib/fixedset/FixedSet#rehash + end + local.get $key + call $~lib/util/hash/HASH + local.set $hashCode + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:capacityMask + local.set $mask + local.get $hashCode + local.get $mask + i32.and + local.set $start + local.get $start + local.set $i + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + block $~lib/fixedset/FS_SLOT_SIZE|inlined.5 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.5 + end + local.set $slotSize + i32.const -1 + local.set $firstDeleted + loop $do-loop|0 + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + local.set $state + local.get $state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:hash + local.get $hashCode + i32.eq + if (result i32) + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + local.get $key + f64.eq + else + i32.const 0 + end + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + end + else + local.get $state + i32.const 255 + i32.and + i32.const 0 + i32.eq + if + local.get $firstDeleted + i32.const -1 + i32.ne + if (result i32) + local.get $firstDeleted + else + local.get $i + end + local.set $insertIdx + local.get $data + local.get $insertIdx + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot + local.get $insertSlot + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_entriesUsed + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_entriesUsed + end + i32.const 0 + drop + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + else + local.get $firstDeleted + i32.const -1 + i32.eq + if + local.get $i + local.set $firstDeleted + end + end + end + local.get $i + i32.const 1 + i32.add + local.get $mask + i32.and + local.set $i + local.get $i + local.get $start + i32.ne + br_if $do-loop|0 + end + local.get $firstDeleted + i32.const -1 + i32.ne + if + local.get $data + local.get $firstDeleted + local.get $slotSize + i32.mul + i32.add + local.set $insertSlot|13 + local.get $insertSlot|13 + local.get $hashCode + call $~lib/fixedset/FixedSetSlot#set:hash + local.get $insertSlot|13 + i32.const 1 + call $~lib/fixedset/FixedSetSlot#set:state + local.get $insertSlot|13 + local.get $key + call $~lib/fixedset/FixedSetSlot#set:key + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=4 + local.get $14 + call $~lib/fixedset/FixedSet#get:_count + i32.const 1 + i32.add + call $~lib/fixedset/FixedSet#set:_count + i32.const 0 + drop + end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 3 + i32.shr_u + i32.gt_u + if + i32.const 496 + i32.const 544 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 3 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store offset=8 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $6 + call $~lib/array/Array#set:buffer + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $bufferSize + call $~lib/array/Array#set:byteLength + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $length + call $~lib/array/Array#set:length_ + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value f64) + (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 $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 544 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + local.get $value + f64.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $this i32) (param $newLength 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 $this + local.get $newLength + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $newLength + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#values (param $this i32) (result i32) + (local $data i32) + (local $cap i32) + (local $slotSize i32) + (local $values i32) + (local $length i32) + (local $i i32) + (local $slot 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 $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_capacity + local.set $cap + block $~lib/fixedset/FS_SLOT_SIZE|inlined.6 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.6 + end + local.set $slotSize + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $this + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + call $~lib/fixedset/FixedSet#get:_count + call $~lib/array/Array#constructor + local.tee $values + i32.store offset=4 + i32.const 0 + local.set $length + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $cap + i32.lt_s + if + local.get $data + local.get $i + local.get $slotSize + i32.mul + i32.add + local.set $slot + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:state + i32.const 255 + i32.and + i32.const 1 + i32.eq + if + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + local.tee $8 + i32.const 1 + i32.add + local.set $length + local.get $8 + local.get $slot + call $~lib/fixedset/FixedSetSlot#get:key + call $~lib/array/Array#__set + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + ) + (func $~lib/array/Array#get:length (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/fixedset/FixedSet#clear (param $this 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 $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:dataPtr + i32.const 0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/fixedset/FixedSet#get:_capacity + block $~lib/fixedset/FS_SLOT_SIZE|inlined.7 (result i32) + i32.const 16 + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + br $~lib/fixedset/FS_SLOT_SIZE|inlined.7 + end + i32.mul + memory.fill + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_count + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/fixedset/FixedSet#set:_entriesUsed + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testNumeric + (local $set i32) + (local $k f64) + (local $k|2 f64) + (local $vals i32) + (local $k|4 f64) + (local $k|5 f64) + (local $k|6 f64) + (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/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $~lib/fixedset/FixedSet#constructor + local.tee $set + i32.store + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f64.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f64.const 0 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $k + loop $for-loop|0 + local.get $k + f64.const 100 + f64.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + f64.const 1 + f64.add + local.set $k + br $for-loop|0 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $k|2 + loop $for-loop|1 + local.get $k|2 + f64.const 100 + f64.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|2 + call $~lib/fixedset/FixedSet#add + drop + local.get $k|2 + f64.const 1 + f64.add + local.set $k|2 + br $for-loop|1 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#values + local.tee $vals + i32.store offset=8 + local.get $vals + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $k|4 + loop $for-loop|2 + local.get $k|4 + f64.const 50 + f64.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|4 + call $~lib/fixedset/FixedSet#delete + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|4 + f64.const 1 + f64.add + local.set $k|4 + br $for-loop|2 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 50 + local.set $k|5 + loop $for-loop|3 + local.get $k|5 + f64.const 100 + f64.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|5 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|5 + f64.const 1 + f64.add + local.set $k|5 + br $for-loop|3 + end + end + f64.const 0 + local.set $k|6 + loop $for-loop|4 + local.get $k|6 + f64.const 50 + f64.lt + if + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $k|6 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k|6 + f64.const 1 + f64.add + local.set $k|6 + br $for-loop|4 + end + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#clear + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f64.const 0 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f64.const 1 + call $~lib/fixedset/FixedSet#add + drop + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + f64.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#__set (param $this i32) (param $key i32) (param $value 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 $value + if + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $key + call $~lib/fixedset/FixedSet#add + drop + else + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $key + call $~lib/fixedset/FixedSet#delete + drop + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testOperators + (local $set i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 16 + call $~lib/fixedset/FixedSet#constructor + local.tee $set + i32.store + local.get $set + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/fixedset/FixedSet#__set + local.get $set + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/fixedset/FixedSet#__set + local.get $set + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/fixedset/FixedSet#__set + local.get $set + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $set + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testCapacity + (local $set i32) + (local $i i32) + (local $i|2 i32) + (local $3 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/fixedset/FixedSet#constructor + local.tee $set + i32.store + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i32.const 200 + i32.lt_s + if + local.get $set + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $i + call $~lib/fixedset/FixedSet#add + drop + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $set + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/fixedset/FixedSet#get:size + i32.const 200 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $i|2 + loop $for-loop|1 + local.get $i|2 + i32.const 200 + i32.lt_s + if + local.get $set + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $i|2 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 80 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $i|2 + i32.const 1 + i32.add + local.set $i|2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 496 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + 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 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/fixedset/FixedSet~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#__visit + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/fixedset/FixedSet~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#__visit + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/fixedset/FixedSet~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#__visit + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/fixedset/FixedSet~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#__visit + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/fixedset/FixedSet~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#__visit + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/fixedset/FixedSet~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#__visit + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $~lib/fixedset/FixedSet + block $~lib/array/Array + block $~lib/fixedset/FixedSet + block $~lib/array/Array + block $~lib/fixedset/FixedSet + block $~lib/array/Array + block $~lib/fixedset/FixedSet + block $~lib/array/Array + block $~lib/fixedset/FixedSet + block $~lib/array/Array + block $~lib/fixedset/FixedSet + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/fixedset/FixedSet $~lib/array/Array $~lib/fixedset/FixedSet $~lib/array/Array $~lib/fixedset/FixedSet $~lib/array/Array $~lib/fixedset/FixedSet $~lib/array/Array $~lib/fixedset/FixedSet $~lib/array/Array $~lib/fixedset/FixedSet $~lib/array/Array $invalid + end + return + 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/fixedset/FixedSet~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~lib/fixedset/FixedSet#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#__visit (param $this i32) (param $cookie i32) + (local $data 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/fixedset/FixedSet#get:dataPtr + local.set $data + local.get $data + if + i32.const 0 + drop + local.get $data + local.get $cookie + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 2 + global.get $~lib/shared/runtime/Runtime.Memory + i32.ne + drop + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) +) diff --git a/tests/compiler/std/fixedset.json b/tests/compiler/std/fixedset.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/std/fixedset.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/std/fixedset.release.wat b/tests/compiler/std/fixedset.release.wat new file mode 100644 index 0000000000..2c0069f950 --- /dev/null +++ b/tests/compiler/std/fixedset.release.wat @@ -0,0 +1,11242 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32) (result i32))) + (type $5 (func (param i32 i64) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (param i32 i32 i32))) + (type $9 (func (param i32 i64))) + (type $10 (func (param i32 f32) (result i32))) + (type $11 (func (param i32 f64) (result i32))) + (type $12 (func (result i32))) + (type $13 (func (param i32 f32))) + (type $14 (func (param i32 f64))) + (import "env" "abort" (func $~lib/builtins/__abort_impl (param i32 i32 i32 i32))) + (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/memory/__stack_pointer (mut i32) (i32.const 34436)) + (memory $0 1) + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\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 $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00\1e\00\00\00s\00t\00d\00/\00f\00i\00x\00e\00d\00s\00e\00t\00.\00t\00s") + (data $9 (i32.const 1500) ",") + (data $9.1 (i32.const 1512) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $10 (i32.const 1548) ",") + (data $10.1 (i32.const 1560) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $11 (i32.const 1600) "\10\00\00\00 \00\00\00 \00\00\00 ") + (data $11.1 (i32.const 1624) "\02\t\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a") + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1520 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~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 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/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 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$656 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34436 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$656 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/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 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1600 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1604 + 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/__visit (param $0 i32) + local.get $0 + i32.eqz + if + return + end + 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 $~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 $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1392 + i32.const 284 + i32.const 14 + call $~lib/builtins/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 $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + 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 1392 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 203 + i32.const 14 + call $~lib/builtins/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 1392 + i32.const 221 + i32.const 16 + call $~lib/builtins/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 1392 + i32.const 233 + i32.const 14 + call $~lib/builtins/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 1392 + i32.const 234 + i32.const 14 + call $~lib/builtins/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 + i32.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_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 1392 + i32.const 251 + i32.const 14 + call $~lib/builtins/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 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + i32.const 14 + call $~lib/builtins/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 $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + 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 $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + 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 34448 + i32.const 0 + i32.store + i32.const 36016 + 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 34448 + 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 34448 + 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 34448 + i32.const 36020 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34448 + global.set $~lib/rt/tlsf/ROOT + ) + (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 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 34436 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + 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 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34436 + 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 + local.tee $0 + i32.const 34436 + i32.ge_u + if + 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 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + 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.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + 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.add + i32.const 1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/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 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/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/itcms/__new (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 + i32.const 1073741804 + i32.ge_u + if + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 + call $~lib/builtins/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$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + memory.size + local.tee $2 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1392 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $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/__link (param $0 i32) (param $1 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 295 + i32.const 14 + call $~lib/builtins/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 + ) + (func $start:std/fixedset + (local $0 i32) + (local $1 i32) + memory.size + i32.const 16 + i32.shl + i32.const 34436 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + call $std/fixedset/testNumeric + 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 1668 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + call $~lib/fixedset/FixedSet#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/fixedset/FixedSet#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/fixedset/FixedSet#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/fixedset/FixedSet#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + 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 1668 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/fixedset/FixedSet#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 200 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/fixedset/FixedSet#add + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/fixedset/FixedSet#get:size + i32.const 200 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 200 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 80 + i32.const 5 + call $~lib/builtins/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 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~start + call $start:std/fixedset + ) + (func $~lib/builtins/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/builtins/__abort_impl + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.get $0 + local.get $0 + i32.const 4 + i32.lt_s + select + local.set $2 + i32.const 4 + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.set $0 + br $while-continue|0 + end + end + local.get $0 + i32.const 12 + i32.mul + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 0 + local.get $3 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/fixedset/FixedSet#get:size (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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#has (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) + 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $~lib/fixedset/FixedSet#delete (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) + 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 12 + i32.mul + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $~lib/fixedset/FixedSet#add (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) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $5 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $8 + local.get $5 + i32.const 12 + i32.mul + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $9 + i32.const 0 + local.get $2 + memory.fill + loop $for-loop|0 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $10 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $10 + i32.load + local.tee $4 + local.get $8 + i32.and + local.set $2 + loop $while-continue|1 + local.get $9 + local.get $2 + i32.const 12 + i32.mul + i32.add + i32.load8_u offset=4 + if + local.get $2 + i32.const 1 + i32.add + local.get $8 + i32.and + local.set $2 + br $while-continue|1 + end + end + local.get $9 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $10 + i32.load offset=8 + i32.store offset=8 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $9 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + i32.const -1 + local.set $2 + block $folding-inner0 + loop $do-loop|0 + local.get $7 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load8_u offset=4 + local.tee $9 + i32.const 1 + i32.eq + if + local.get $4 + local.get $8 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $8 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $folding-inner0 + else + local.get $9 + if (result i32) + local.get $3 + local.get $2 + local.get $2 + i32.const -1 + i32.eq + select + else + local.get $7 + local.get $2 + local.get $3 + local.get $2 + i32.const -1 + i32.ne + select + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $4 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $2 + end + local.get $6 + local.get $3 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + local.get $2 + i32.const -1 + i32.ne + if + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $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 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $5 + 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 1520 + i32.const 1568 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + local.get $2 + i32.shl + local.set $1 + local.get $3 + if + i32.const 1073741820 + local.get $5 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $1 + end + block $__inlined_func$~lib/rt/itcms/__renew$644 + local.get $4 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u + if + local.get $3 + local.get $1 + i32.store offset=16 + local.get $4 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$644 + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $4 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $1 + local.get $3 + i32.lt_u + select + memory.copy + end + local.get $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 $0 + local.get $2 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1248 + i32.const 1568 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#clear (param $0 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 0 + local.get $0 + i32.load offset=4 + i32.const 12 + i32.mul + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testNumeric + (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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + 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/memory/__stack_pointer + i32.const 16 + call $~lib/fixedset/FixedSet#constructor + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#add + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=12 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 268435455 + i32.gt_u + if + i32.const 1520 + i32.const 1568 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $1 + local.get $8 + i32.store + local.get $1 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + local.get $7 + i32.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|2 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#clear + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedset/FixedSet#has (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) + 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $~lib/fixedset/FixedSet#delete (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) + 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 12 + i32.mul + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $~lib/fixedset/FixedSet#add (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) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $5 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $8 + local.get $5 + i32.const 12 + i32.mul + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $9 + i32.const 0 + local.get $2 + memory.fill + loop $for-loop|0 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $10 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $10 + i32.load + local.tee $4 + local.get $8 + i32.and + local.set $2 + loop $while-continue|1 + local.get $9 + local.get $2 + i32.const 12 + i32.mul + i32.add + i32.load8_u offset=4 + if + local.get $2 + i32.const 1 + i32.add + local.get $8 + i32.and + local.set $2 + br $while-continue|1 + end + end + local.get $9 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $10 + i32.load offset=8 + i32.store offset=8 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $9 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + i32.const -1 + local.set $2 + block $folding-inner0 + loop $do-loop|0 + local.get $7 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load8_u offset=4 + local.tee $9 + i32.const 1 + i32.eq + if + local.get $4 + local.get $8 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $8 + i32.load offset=8 + i32.eq + else + i32.const 0 + end + br_if $folding-inner0 + else + local.get $9 + if (result i32) + local.get $3 + local.get $2 + local.get $2 + i32.const -1 + i32.eq + select + else + local.get $7 + local.get $2 + local.get $3 + local.get $2 + i32.const -1 + i32.ne + select + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $4 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $2 + end + local.get $6 + local.get $3 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + local.get $2 + i32.const -1 + i32.ne + if + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/fixedset/testNumeric + (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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + 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/memory/__stack_pointer + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $1 + loop $while-continue|0 + local.get $1 + i32.const 16 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.set $1 + br $while-continue|0 + end + end + local.get $1 + i32.const 12 + i32.mul + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.const 0 + local.get $4 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $2 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#add + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=12 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 268435455 + i32.gt_u + if + i32.const 1520 + i32.const 1568 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $7 + local.get $0 + i32.store + local.get $7 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $1 + local.get $3 + i32.gt_s + if + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $6 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $6 + i32.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|2 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#clear + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedset/FixedSet#has (param $0 i32) (param $1 i64) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $~lib/fixedset/FixedSet#delete (param $0 i32) (param $1 i64) (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) + 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $~lib/fixedset/FixedSet#add (param $0 i32) (param $1 i64) + (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) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $5 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $8 + local.get $5 + i32.const 4 + i32.shl + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $9 + i32.const 0 + local.get $2 + memory.fill + loop $for-loop|0 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $10 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $10 + i32.load + local.tee $4 + local.get $8 + i32.and + local.set $2 + loop $while-continue|1 + local.get $9 + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.load8_u offset=4 + if + local.get $2 + i32.const 1 + i32.add + local.get $8 + i32.and + local.set $2 + br $while-continue|1 + end + end + local.get $9 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $10 + i64.load offset=8 + i64.store offset=8 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $9 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + i32.const -1 + local.set $2 + block $folding-inner0 + loop $do-loop|0 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $8 + i32.load8_u offset=4 + local.tee $9 + i32.const 1 + i32.eq + if + local.get $4 + local.get $8 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $8 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $folding-inner0 + else + local.get $9 + if (result i32) + local.get $3 + local.get $2 + local.get $2 + i32.const -1 + i32.eq + select + else + local.get $7 + local.get $2 + local.get $3 + local.get $2 + i32.const -1 + i32.ne + select + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $4 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $2 + end + local.get $6 + local.get $3 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + local.get $2 + i32.const -1 + i32.ne + if + local.get $7 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $1 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1248 + i32.const 1568 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/fixedset/FixedSet#clear (param $0 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 0 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.shl + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/fixedset/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 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 1668 + i32.lt_s + br_if $folding-inner1 + 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/memory/__stack_pointer + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $1 + loop $while-continue|0 + local.get $1 + i32.const 16 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.set $1 + br $while-continue|0 + end + end + local.get $1 + i32.const 4 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.const 0 + local.get $5 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $2 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $3 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#add + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=12 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + i32.const 0 + i32.store + local.get $9 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1520 + i32.const 1568 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $9 + local.get $6 + i32.store + local.get $9 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $10 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + loop $for-loop|00 + local.get $1 + local.get $4 + i32.gt_s + if + local.get $8 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $5 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + local.get $5 + i64.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + i64.const 50 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $3 + loop $for-loop|3 + local.get $3 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|3 + end + end + i64.const 0 + local.set $3 + loop $for-loop|4 + local.get $3 + i64.const 50 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#clear + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedset/FixedSet#has (param $0 i32) (param $1 i64) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $~lib/fixedset/FixedSet#delete (param $0 i32) (param $1 i64) (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) + 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $~lib/fixedset/FixedSet#add (param $0 i32) (param $1 i64) + (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) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $5 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $8 + local.get $5 + i32.const 4 + i32.shl + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $9 + i32.const 0 + local.get $2 + memory.fill + loop $for-loop|0 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $10 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $10 + i32.load + local.tee $4 + local.get $8 + i32.and + local.set $2 + loop $while-continue|1 + local.get $9 + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.load8_u offset=4 + if + local.get $2 + i32.const 1 + i32.add + local.get $8 + i32.and + local.set $2 + br $while-continue|1 + end + end + local.get $9 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $10 + i64.load offset=8 + i64.store offset=8 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $9 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + i32.const -1 + local.set $2 + block $folding-inner0 + loop $do-loop|0 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $8 + i32.load8_u offset=4 + local.tee $9 + i32.const 1 + i32.eq + if + local.get $4 + local.get $8 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $8 + i64.load offset=8 + i64.eq + else + i32.const 0 + end + br_if $folding-inner0 + else + local.get $9 + if (result i32) + local.get $3 + local.get $2 + local.get $2 + i32.const -1 + i32.eq + select + else + local.get $7 + local.get $2 + local.get $3 + local.get $2 + i32.const -1 + i32.ne + select + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $4 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $2 + end + local.get $6 + local.get $3 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + local.get $2 + i32.const -1 + i32.ne + if + local.get $7 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $1 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/fixedset/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 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 1668 + i32.lt_s + br_if $folding-inner1 + 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/memory/__stack_pointer + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $1 + loop $while-continue|0 + local.get $1 + i32.const 16 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.set $1 + br $while-continue|0 + end + end + local.get $1 + i32.const 4 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.const 0 + local.get $5 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $2 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $3 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#add + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=12 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + i32.const 0 + i32.store + local.get $9 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1520 + i32.const 1568 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $9 + local.get $6 + i32.store + local.get $9 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $10 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + loop $for-loop|00 + local.get $1 + local.get $4 + i32.gt_s + if + local.get $8 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $5 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + local.get $5 + i64.load offset=8 + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + i64.const 50 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $3 + loop $for-loop|3 + local.get $3 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|3 + end + end + i64.const 0 + local.set $3 + loop $for-loop|4 + local.get $3 + i64.const 50 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i64.add + local.set $3 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#clear + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedset/FixedSet#has (param $0 i32) (param $1 f32) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $7 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $8 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $2 + local.set $0 + local.get $8 + i32.const 1 + i32.eq + if (result i32) + local.get $4 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + f32.load offset=8 + f32.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $~lib/fixedset/FixedSet#delete (param $0 i32) (param $1 f32) (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) + 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $8 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $3 + local.set $2 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + f32.load offset=8 + f32.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $7 + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 12 + i32.mul + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $~lib/fixedset/FixedSet#add (param $0 i32) (param $1 f32) + (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) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $5 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $8 + local.get $5 + i32.const 12 + i32.mul + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $9 + i32.const 0 + local.get $2 + memory.fill + loop $for-loop|0 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $10 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $10 + i32.load + local.tee $4 + local.get $8 + i32.and + local.set $2 + loop $while-continue|1 + local.get $9 + local.get $2 + i32.const 12 + i32.mul + i32.add + i32.load8_u offset=4 + if + local.get $2 + i32.const 1 + i32.add + local.get $8 + i32.and + local.set $2 + br $while-continue|1 + end + end + local.get $9 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $10 + f32.load offset=8 + f32.store offset=8 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $9 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=8 + local.tee $5 + i32.and + local.tee $6 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + i32.const -1 + local.set $2 + block $folding-inner0 + loop $do-loop|0 + local.get $7 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load8_u offset=4 + local.tee $9 + i32.const 1 + i32.eq + if + local.get $4 + local.get $8 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $8 + f32.load offset=8 + f32.eq + else + i32.const 0 + end + br_if $folding-inner0 + else + local.get $9 + if (result i32) + local.get $3 + local.get $2 + local.get $2 + i32.const -1 + i32.eq + select + else + local.get $7 + local.get $2 + local.get $3 + local.get $2 + i32.const -1 + i32.ne + select + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $4 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + f32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $2 + end + local.get $6 + local.get $3 + i32.const 1 + i32.add + local.get $5 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + local.get $2 + i32.const -1 + i32.ne + if + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $2 + local.get $4 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $1 + f32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedset/FixedSet#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=12 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 268435455 + i32.gt_u + if + i32.const 1520 + i32.const 1568 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $7 + local.get $0 + i32.store + local.get $7 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $6 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $6 + f32.load offset=8 + local.set $5 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1568 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $0 + i32.const 1 + i32.add + local.tee $6 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $6 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/fixedset/testNumeric + (local $0 i32) + (local $1 f32) + (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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner0 + 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/memory/__stack_pointer + 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 1668 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 16 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.set $2 + br $while-continue|0 + end + end + local.get $2 + i32.const 12 + i32.mul + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.const 0 + local.get $3 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 0 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $1 + f32.const 100 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + f32.const 100 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#add + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/fixedset/FixedSet#values + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 + local.set $1 + loop $for-loop|2 + local.get $1 + f32.const 50 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + f32.const 100 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|3 + end + end + f32.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f32.const 50 + f32.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#clear + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedset/FixedSet#has (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $8 + block $~lib/fixedset/FixedSet#findSlot|inlined.0 + loop $do-loop|0 + i32.const -1 + local.set $0 + local.get $8 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $3 + i32.load8_u offset=4 + local.tee $9 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $2 + local.set $0 + local.get $9 + i32.const 1 + i32.eq + if (result i32) + local.get $5 + local.get $3 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $3 + f64.load offset=8 + f64.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.0 + local.get $7 + local.get $0 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $2 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const -1 + i32.ne + ) + (func $~lib/fixedset/FixedSet#delete (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $6 + local.get $0 + i32.load offset=8 + local.tee $7 + i32.and + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $9 + block $~lib/fixedset/FixedSet#findSlot|inlined.1 + loop $do-loop|0 + i32.const -1 + local.set $2 + local.get $9 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load8_u offset=4 + local.tee $10 + i32.eqz + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $3 + local.set $2 + local.get $10 + i32.const 1 + i32.eq + if (result i32) + local.get $6 + local.get $4 + i32.load + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + local.get $4 + f64.load offset=8 + f64.eq + else + i32.const 0 + end + br_if $~lib/fixedset/FixedSet#findSlot|inlined.1 + local.get $8 + local.get $2 + i32.const 1 + i32.add + local.get $7 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + i32.const -1 + local.set $2 + end + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.store8 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $~lib/fixedset/FixedSet#add (param $0 i32) (param $1 f64) + (local $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) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + i32.const 2 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.mul + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.shl + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + end + local.set $6 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $8 + local.get $6 + i32.const 1 + i32.sub + local.set $9 + local.get $6 + i32.const 4 + i32.shl + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.const 0 + local.get $2 + memory.fill + loop $for-loop|0 + local.get $3 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $11 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + local.get $11 + i32.load + local.tee $5 + local.get $9 + i32.and + local.set $2 + loop $while-continue|1 + local.get $10 + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.load8_u offset=4 + if + local.get $2 + i32.const 1 + i32.add + local.get $9 + i32.and + local.set $2 + br $while-continue|1 + end + end + local.get $10 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $2 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $11 + f64.load offset=8 + f64.store offset=8 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.store offset=16 + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.and + local.tee $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $8 + i32.const -1 + local.set $2 + block $folding-inner0 + loop $do-loop|0 + local.get $8 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $9 + i32.load8_u offset=4 + local.tee $10 + i32.const 1 + i32.eq + if + local.get $5 + local.get $9 + i32.load + i32.eq + if (result i32) + local.get $1 + local.get $9 + f64.load offset=8 + f64.eq + else + i32.const 0 + end + br_if $folding-inner0 + else + local.get $10 + if (result i32) + local.get $3 + local.get $2 + local.get $2 + i32.const -1 + i32.eq + select + else + local.get $8 + local.get $2 + local.get $3 + local.get $2 + i32.const -1 + i32.ne + select + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.store8 offset=4 + local.get $3 + local.get $1 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + local.get $2 + i32.const -1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.add + i32.store offset=16 + end + br $folding-inner0 + end + local.set $2 + end + local.get $7 + local.get $3 + i32.const 1 + i32.add + local.get $6 + i32.and + local.tee $3 + i32.ne + br_if $do-loop|0 + end + local.get $2 + i32.const -1 + i32.ne + if + local.get $8 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $2 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.store8 offset=4 + local.get $2 + local.get $1 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + i32.store offset=12 + end + 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 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedset/FixedSet#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=12 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 134217727 + i32.gt_u + if + i32.const 1520 + i32.const 1568 + i32.const 72 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $7 + local.get $0 + i32.store + local.get $7 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $6 + i32.load8_u offset=4 + i32.const 1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $6 + f64.load offset=8 + local.set $5 + 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 1668 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $0 + local.get $7 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1568 + i32.const 132 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $0 + i32.const 1 + i32.add + local.tee $6 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $6 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/fixedset/testNumeric + (local $0 i32) + (local $1 f64) + (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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1668 + i32.lt_s + br_if $folding-inner0 + 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/memory/__stack_pointer + 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 1668 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + i32.const 4 + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 16 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.set $2 + br $while-continue|0 + end + end + local.get $2 + i32.const 4 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.const 0 + local.get $3 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 7 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $1 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 11 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 13 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#add + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/fixedset/FixedSet#values + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|2 + local.get $1 + f64.const 50 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#delete + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#delete + if + i32.const 0 + i32.const 1456 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|3 + end + end + f64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f64.const 50 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#clear + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + if + i32.const 0 + i32.const 1456 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + call $~lib/fixedset/FixedSet#has + if + i32.const 0 + i32.const 1456 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 1 + call $~lib/fixedset/FixedSet#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/fixedset/FixedSet#get:size + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 1 + call $~lib/fixedset/FixedSet#has + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/fixedset/FixedSet#__set (param $0 i32) (param $1 i32) (param $2 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 1668 + i32.lt_s + if + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#add + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/fixedset/FixedSet#delete + drop + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + end + 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 1668 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + 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 1668 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) +) diff --git a/tests/compiler/std/fixedset.ts b/tests/compiler/std/fixedset.ts new file mode 100644 index 0000000000..117887eadc --- /dev/null +++ b/tests/compiler/std/fixedset.ts @@ -0,0 +1,91 @@ +function testNumeric(): void { + let set = new FixedSet(); + + // empty set + assert(set.size == 0); + assert(!set.has(0)); + assert(!set.delete(0)); + + // add + for (let k: T = 0; k < 100; ++k) { + assert(!set.has(k)); + set.add(k); + assert(set.has(k)); + } + assert(set.size == 100); + + // add duplicate + for (let k: T = 0; k < 100; ++k) { + set.add(k); + } + assert(set.size == 100); + + // values + let vals = set.values(); + assert(vals.length == 100); + + // delete half + for (let k: T = 0; k < 50; ++k) { + assert(set.has(k)); + assert(set.delete(k)); + assert(!set.has(k)); + assert(!set.delete(k)); + } + assert(set.size == 50); + + // remaining still accessible + for (let k: T = 50; k < 100; ++k) { + assert(set.has(k)); + } + + // re-add after delete + for (let k: T = 0; k < 50; ++k) { + set.add(k); + assert(set.has(k)); + } + assert(set.size == 100); + + // clear + set.clear(); + assert(set.size == 0); + assert(!set.has(0)); + + // add after clear + set.add(1); + assert(set.size == 1); + assert(set.has(1)); +} + +// operator access +function testOperators(): void { + let set = new FixedSet(); + set[1] = true; + set[2] = true; + assert(set[1]); + assert(set[2]); + assert(!set[3]); + set[1] = false; + assert(!set[1]); + assert(set.size == 1); +} + +// custom capacity +function testCapacity(): void { + let set = new FixedSet(4); + for (let i = 0; i < 200; ++i) { + set.add(i); + } + assert(set.size == 200); + for (let i = 0; i < 200; ++i) { + assert(set.has(i)); + } +} + +testNumeric(); +testNumeric(); +testNumeric(); +testNumeric(); +testNumeric(); +testNumeric(); +testOperators(); +testCapacity(); diff --git a/tests/compiler/std/pointer.debug.wat b/tests/compiler/std/pointer.debug.wat index 2b2eaa216b..5c38fbf27e 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -11,6 +11,10 @@ (global $std/pointer/sub (mut i32) (i32.const 0)) (global $std/pointer/nextOne (mut i32) (i32.const 0)) (global $std/pointer/buf (mut i32) (i32.const 0)) + (global $std/pointer/nullPtr (mut i32) (i32.const 0)) + (global $std/pointer/same (mut i32) (i32.const 0)) + (global $std/pointer/src (mut i32) (i32.const 0)) + (global $std/pointer/dst (mut i32) (i32.const 0)) (global $~lib/memory/__data_end i32 (i32.const 60)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) (global $~lib/memory/__heap_base i32 (i32.const 32828)) @@ -97,29 +101,59 @@ (local $this|55 i32) (local $value|56 f32) (local $this|57 i32) - block $std/pointer/Pointer#constructor|inlined.0 (result i32) + (local $this|58 i32) + (local $this|59 i32) + (local $this|60 i32) + (local $offset|61 i32) + (local $this|62 i32) + (local $other|63 i32) + (local $this|64 i32) + (local $other|65 i32) + (local $this|66 i32) + (local $offset|67 i32) + (local $this|68 i32) + (local $index|69 i32) + (local $value|70 i32) + (local $this|71 i32) + (local $index|72 i32) + (local $value|73 i32) + (local $this|74 i32) + (local $index|75 i32) + (local $value|76 i32) + (local $this|77 i32) + (local $offset|78 i32) + (local $this|79 i32) + (local $dst i32) + (local $count i32) + (local $this|82 i32) + (local $index|83 i32) + (local $this|84 i32) + (local $index|85 i32) + (local $this|86 i32) + (local $index|87 i32) + block $~lib/pointer/Pointer#constructor|inlined.0 (result i32) i32.const 0 local.set $this i32.const 8 local.set $offset local.get $offset - br $std/pointer/Pointer#constructor|inlined.0 + br $~lib/pointer/Pointer#constructor|inlined.0 end global.set $std/pointer/one - block $std/pointer/Pointer#constructor|inlined.1 (result i32) + block $~lib/pointer/Pointer#constructor|inlined.1 (result i32) i32.const 0 local.set $this|2 i32.const 24 local.set $offset|3 local.get $offset|3 - br $std/pointer/Pointer#constructor|inlined.1 + br $~lib/pointer/Pointer#constructor|inlined.1 end global.set $std/pointer/two - block $std/pointer/Pointer#get:offset|inlined.0 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.0 (result i32) global.get $std/pointer/one local.set $this|4 local.get $this|4 - br $std/pointer/Pointer#get:offset|inlined.0 + br $~lib/pointer/Pointer#get:offset|inlined.0 end i32.const 8 i32.eq @@ -127,16 +161,16 @@ if i32.const 0 i32.const 32 - i32.const 78 + i32.const 11 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:offset|inlined.1 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.1 (result i32) global.get $std/pointer/two local.set $this|5 local.get $this|5 - br $std/pointer/Pointer#get:offset|inlined.1 + br $~lib/pointer/Pointer#get:offset|inlined.1 end i32.const 24 i32.eq @@ -144,38 +178,38 @@ if i32.const 0 i32.const 32 - i32.const 79 + i32.const 12 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:value|inlined.0 (result i32) + block $~lib/pointer/Pointer#get:value|inlined.0 (result i32) global.get $std/pointer/one local.set $this|6 i32.const 1 drop local.get $this|6 - br $std/pointer/Pointer#get:value|inlined.0 + br $~lib/pointer/Pointer#get:value|inlined.0 end i32.const 1 call $std/pointer/Entry#set:key - block $std/pointer/Pointer#get:value|inlined.1 (result i32) + block $~lib/pointer/Pointer#get:value|inlined.1 (result i32) global.get $std/pointer/one local.set $this|7 i32.const 1 drop local.get $this|7 - br $std/pointer/Pointer#get:value|inlined.1 + br $~lib/pointer/Pointer#get:value|inlined.1 end i32.const 2 call $std/pointer/Entry#set:val - block $std/pointer/Pointer#get:value|inlined.2 (result i32) + block $~lib/pointer/Pointer#get:value|inlined.2 (result i32) global.get $std/pointer/one local.set $this|8 i32.const 1 drop local.get $this|8 - br $std/pointer/Pointer#get:value|inlined.2 + br $~lib/pointer/Pointer#get:value|inlined.2 end call $std/pointer/Entry#get:key i32.const 1 @@ -184,18 +218,18 @@ if i32.const 0 i32.const 32 - i32.const 83 + i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:value|inlined.3 (result i32) + block $~lib/pointer/Pointer#get:value|inlined.3 (result i32) global.get $std/pointer/one local.set $this|9 i32.const 1 drop local.get $this|9 - br $std/pointer/Pointer#get:value|inlined.3 + br $~lib/pointer/Pointer#get:value|inlined.3 end call $std/pointer/Entry#get:val i32.const 2 @@ -204,12 +238,12 @@ if i32.const 0 i32.const 32 - i32.const 84 + i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#add|inlined.0 (result i32) + block $~lib/pointer/Pointer#add|inlined.0 (result i32) global.get $std/pointer/one local.set $this|10 global.get $std/pointer/two @@ -217,14 +251,14 @@ local.get $this|10 local.get $other i32.add - br $std/pointer/Pointer#add|inlined.0 + br $~lib/pointer/Pointer#add|inlined.0 end global.set $std/pointer/add - block $std/pointer/Pointer#get:offset|inlined.2 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.2 (result i32) global.get $std/pointer/add local.set $this|12 local.get $this|12 - br $std/pointer/Pointer#get:offset|inlined.2 + br $~lib/pointer/Pointer#get:offset|inlined.2 end i32.const 32 i32.eq @@ -232,12 +266,12 @@ if i32.const 0 i32.const 32 - i32.const 87 + i32.const 20 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#sub|inlined.0 (result i32) + block $~lib/pointer/Pointer#sub|inlined.0 (result i32) global.get $std/pointer/two local.set $this|13 global.get $std/pointer/one @@ -245,14 +279,14 @@ local.get $this|13 local.get $other|14 i32.sub - br $std/pointer/Pointer#sub|inlined.0 + br $~lib/pointer/Pointer#sub|inlined.0 end global.set $std/pointer/sub - block $std/pointer/Pointer#get:offset|inlined.3 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.3 (result i32) global.get $std/pointer/sub local.set $this|15 local.get $this|15 - br $std/pointer/Pointer#get:offset|inlined.3 + br $~lib/pointer/Pointer#get:offset|inlined.3 end i32.const 16 i32.eq @@ -260,16 +294,16 @@ if i32.const 0 i32.const 32 - i32.const 90 + i32.const 23 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:offset|inlined.4 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.4 (result i32) global.get $std/pointer/one local.set $this|16 local.get $this|16 - br $std/pointer/Pointer#get:offset|inlined.4 + br $~lib/pointer/Pointer#get:offset|inlined.4 end i32.const 8 i32.eq @@ -277,18 +311,18 @@ if i32.const 0 i32.const 32 - i32.const 92 + i32.const 25 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#inc|inlined.0 (result i32) + block $~lib/pointer/Pointer#inc|inlined.0 (result i32) global.get $std/pointer/one local.set $this|17 local.get $this|17 i32.const 8 i32.add - br $std/pointer/Pointer#inc|inlined.0 + br $~lib/pointer/Pointer#inc|inlined.0 end global.set $std/pointer/one global.get $std/pointer/one @@ -300,16 +334,16 @@ if i32.const 0 i32.const 32 - i32.const 94 + i32.const 27 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:offset|inlined.5 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.5 (result i32) global.get $std/pointer/one local.set $this|18 local.get $this|18 - br $std/pointer/Pointer#get:offset|inlined.5 + br $~lib/pointer/Pointer#get:offset|inlined.5 end i32.const 16 i32.eq @@ -317,16 +351,16 @@ if i32.const 0 i32.const 32 - i32.const 95 + i32.const 28 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:offset|inlined.6 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.6 (result i32) global.get $std/pointer/two local.set $this|19 local.get $this|19 - br $std/pointer/Pointer#get:offset|inlined.6 + br $~lib/pointer/Pointer#get:offset|inlined.6 end i32.const 24 i32.eq @@ -334,34 +368,34 @@ if i32.const 0 i32.const 32 - i32.const 97 + i32.const 30 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#dec|inlined.0 (result i32) + block $~lib/pointer/Pointer#dec|inlined.0 (result i32) global.get $std/pointer/two local.set $this|20 local.get $this|20 i32.const 8 i32.sub - br $std/pointer/Pointer#dec|inlined.0 + br $~lib/pointer/Pointer#dec|inlined.0 end global.set $std/pointer/two - block $std/pointer/Pointer#dec|inlined.1 (result i32) + block $~lib/pointer/Pointer#dec|inlined.1 (result i32) global.get $std/pointer/two local.set $this|21 local.get $this|21 i32.const 8 i32.sub - br $std/pointer/Pointer#dec|inlined.1 + br $~lib/pointer/Pointer#dec|inlined.1 end global.set $std/pointer/two - block $std/pointer/Pointer#get:offset|inlined.7 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.7 (result i32) global.get $std/pointer/two local.set $this|22 local.get $this|22 - br $std/pointer/Pointer#get:offset|inlined.7 + br $~lib/pointer/Pointer#get:offset|inlined.7 end i32.const 8 i32.eq @@ -369,18 +403,18 @@ if i32.const 0 i32.const 32 - i32.const 100 + i32.const 33 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:value|inlined.4 (result i32) + block $~lib/pointer/Pointer#get:value|inlined.4 (result i32) global.get $std/pointer/two local.set $this|23 i32.const 1 drop local.get $this|23 - br $std/pointer/Pointer#get:value|inlined.4 + br $~lib/pointer/Pointer#get:value|inlined.4 end call $std/pointer/Entry#get:key i32.const 1 @@ -389,18 +423,18 @@ if i32.const 0 i32.const 32 - i32.const 101 + i32.const 34 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:value|inlined.5 (result i32) + block $~lib/pointer/Pointer#get:value|inlined.5 (result i32) global.get $std/pointer/two local.set $this|24 i32.const 1 drop local.get $this|24 - br $std/pointer/Pointer#get:value|inlined.5 + br $~lib/pointer/Pointer#get:value|inlined.5 end call $std/pointer/Entry#get:val i32.const 2 @@ -409,20 +443,20 @@ if i32.const 0 i32.const 32 - i32.const 102 + i32.const 35 i32.const 1 call $~lib/builtins/abort unreachable end global.get $std/pointer/one local.set $this|26 - block $std/pointer/Pointer#get:value|inlined.6 (result i32) + block $~lib/pointer/Pointer#get:value|inlined.6 (result i32) global.get $std/pointer/two local.set $this|25 i32.const 1 drop local.get $this|25 - br $std/pointer/Pointer#get:value|inlined.6 + br $~lib/pointer/Pointer#get:value|inlined.6 end local.set $value i32.const 1 @@ -443,35 +477,35 @@ i32.const 8 memory.copy end - block $std/pointer/Pointer#get:offset|inlined.8 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.8 (result i32) global.get $std/pointer/one local.set $this|28 local.get $this|28 - br $std/pointer/Pointer#get:offset|inlined.8 + br $~lib/pointer/Pointer#get:offset|inlined.8 end - block $std/pointer/Pointer#get:offset|inlined.9 (result i32) + block $~lib/pointer/Pointer#get:offset|inlined.9 (result i32) global.get $std/pointer/two local.set $this|29 local.get $this|29 - br $std/pointer/Pointer#get:offset|inlined.9 + br $~lib/pointer/Pointer#get:offset|inlined.9 end i32.ne i32.eqz if i32.const 0 i32.const 32 - i32.const 105 + i32.const 38 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:value|inlined.7 (result i32) + block $~lib/pointer/Pointer#get:value|inlined.7 (result i32) global.get $std/pointer/one local.set $this|30 i32.const 1 drop local.get $this|30 - br $std/pointer/Pointer#get:value|inlined.7 + br $~lib/pointer/Pointer#get:value|inlined.7 end call $std/pointer/Entry#get:key i32.const 1 @@ -480,18 +514,18 @@ if i32.const 0 i32.const 32 - i32.const 106 + i32.const 39 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:value|inlined.8 (result i32) + block $~lib/pointer/Pointer#get:value|inlined.8 (result i32) global.get $std/pointer/one local.set $this|31 i32.const 1 drop local.get $this|31 - br $std/pointer/Pointer#get:value|inlined.8 + br $~lib/pointer/Pointer#get:value|inlined.8 end call $std/pointer/Entry#get:val i32.const 2 @@ -500,18 +534,18 @@ if i32.const 0 i32.const 32 - i32.const 107 + i32.const 40 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#constructor|inlined.0 (result i32) + block $~lib/pointer/Pointer#constructor|inlined.0 (result i32) i32.const 0 local.set $this|32 i32.const 0 local.set $offset|33 local.get $offset|33 - br $std/pointer/Pointer#constructor|inlined.0 + br $~lib/pointer/Pointer#constructor|inlined.0 end global.set $std/pointer/buf global.get $std/pointer/buf @@ -540,7 +574,7 @@ i32.add local.get $value|39 f32.store - block $std/pointer/Pointer#get|inlined.0 (result f32) + block $~lib/pointer/Pointer#get|inlined.0 (result f32) global.get $std/pointer/buf local.set $this|40 i32.const 0 @@ -551,7 +585,7 @@ i32.mul i32.add f32.load - br $std/pointer/Pointer#get|inlined.0 + br $~lib/pointer/Pointer#get|inlined.0 end f32.const 1.100000023841858 f32.eq @@ -559,12 +593,12 @@ if i32.const 0 i32.const 32 - i32.const 113 + i32.const 46 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get|inlined.1 (result f32) + block $~lib/pointer/Pointer#get|inlined.1 (result f32) global.get $std/pointer/buf local.set $this|42 i32.const 1 @@ -575,7 +609,7 @@ i32.mul i32.add f32.load - br $std/pointer/Pointer#get|inlined.1 + br $~lib/pointer/Pointer#get|inlined.1 end f32.const 1.2000000476837158 f32.eq @@ -583,12 +617,12 @@ if i32.const 0 i32.const 32 - i32.const 114 + i32.const 47 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get|inlined.2 (result f32) + block $~lib/pointer/Pointer#get|inlined.2 (result f32) global.get $std/pointer/buf local.set $this|44 i32.const 0 @@ -599,7 +633,7 @@ i32.mul i32.add f32.load - br $std/pointer/Pointer#get|inlined.2 + br $~lib/pointer/Pointer#get|inlined.2 end f32.const 1.100000023841858 f32.eq @@ -607,12 +641,12 @@ if i32.const 0 i32.const 32 - i32.const 116 + i32.const 49 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get|inlined.3 (result f32) + block $~lib/pointer/Pointer#get|inlined.3 (result f32) global.get $std/pointer/buf local.set $this|46 i32.const 1 @@ -623,7 +657,7 @@ i32.mul i32.add f32.load - br $std/pointer/Pointer#get|inlined.3 + br $~lib/pointer/Pointer#get|inlined.3 end f32.const 1.2000000476837158 f32.eq @@ -631,7 +665,7 @@ if i32.const 0 i32.const 32 - i32.const 117 + i32.const 50 i32.const 1 call $~lib/builtins/abort unreachable @@ -644,7 +678,7 @@ if i32.const 0 i32.const 32 - i32.const 119 + i32.const 52 i32.const 1 call $~lib/builtins/abort unreachable @@ -657,7 +691,7 @@ if i32.const 0 i32.const 32 - i32.const 120 + i32.const 53 i32.const 1 call $~lib/builtins/abort unreachable @@ -675,7 +709,7 @@ i32.add local.get $value|50 f32.store - block $std/pointer/Pointer#get|inlined.4 (result f32) + block $~lib/pointer/Pointer#get|inlined.4 (result f32) global.get $std/pointer/buf local.set $this|51 i32.const 2 @@ -686,7 +720,7 @@ i32.mul i32.add f32.load - br $std/pointer/Pointer#get|inlined.4 + br $~lib/pointer/Pointer#get|inlined.4 end f32.const 1.2999999523162842 f32.eq @@ -694,12 +728,12 @@ if i32.const 0 i32.const 32 - i32.const 123 + i32.const 56 i32.const 1 call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get|inlined.5 (result f32) + block $~lib/pointer/Pointer#get|inlined.5 (result f32) global.get $std/pointer/buf local.set $this|53 i32.const 2 @@ -710,7 +744,7 @@ i32.mul i32.add f32.load - br $std/pointer/Pointer#get|inlined.5 + br $~lib/pointer/Pointer#get|inlined.5 end f32.const 1.2999999523162842 f32.eq @@ -718,7 +752,7 @@ if i32.const 0 i32.const 32 - i32.const 124 + i32.const 57 i32.const 1 call $~lib/builtins/abort unreachable @@ -731,7 +765,7 @@ if i32.const 0 i32.const 32 - i32.const 125 + i32.const 58 i32.const 1 call $~lib/builtins/abort unreachable @@ -745,14 +779,14 @@ local.get $this|55 local.get $value|56 f32.store - block $std/pointer/Pointer#get:value|inlined.0 (result f32) + block $~lib/pointer/Pointer#get:value|inlined.0 (result f32) global.get $std/pointer/buf local.set $this|57 i32.const 0 drop local.get $this|57 f32.load - br $std/pointer/Pointer#get:value|inlined.0 + br $~lib/pointer/Pointer#get:value|inlined.0 end f32.const 1.399999976158142 f32.eq @@ -760,7 +794,7 @@ if i32.const 0 i32.const 32 - i32.const 128 + i32.const 61 i32.const 1 call $~lib/builtins/abort unreachable @@ -773,7 +807,240 @@ if i32.const 0 i32.const 32 - i32.const 129 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer.null|inlined.0 (result i32) + i32.const 0 + br $~lib/pointer/Pointer.null|inlined.0 + end + global.set $std/pointer/nullPtr + block $~lib/pointer/Pointer#isNull|inlined.0 (result i32) + global.get $std/pointer/nullPtr + local.set $this|58 + local.get $this|58 + i32.const 0 + i32.eq + br $~lib/pointer/Pointer#isNull|inlined.0 + end + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 68 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#isNull|inlined.0 (result i32) + global.get $std/pointer/one + local.set $this|59 + local.get $this|59 + i32.const 0 + i32.eq + br $~lib/pointer/Pointer#isNull|inlined.0 + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 69 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#constructor|inlined.2 (result i32) + i32.const 0 + local.set $this|60 + i32.const 8 + local.set $offset|61 + local.get $offset|61 + br $~lib/pointer/Pointer#constructor|inlined.2 + end + global.set $std/pointer/same + block $~lib/pointer/Pointer#equals|inlined.0 (result i32) + global.get $std/pointer/two + local.set $this|62 + global.get $std/pointer/same + local.set $other|63 + local.get $this|62 + local.get $other|63 + i32.eq + br $~lib/pointer/Pointer#equals|inlined.0 + end + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#equals|inlined.1 (result i32) + global.get $std/pointer/one + local.set $this|64 + global.get $std/pointer/two + local.set $other|65 + local.get $this|64 + local.get $other|65 + i32.eq + br $~lib/pointer/Pointer#equals|inlined.1 + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#constructor|inlined.0 (result i32) + i32.const 0 + local.set $this|66 + i32.const 100 + local.set $offset|67 + local.get $offset|67 + br $~lib/pointer/Pointer#constructor|inlined.0 + end + global.set $std/pointer/src + global.get $std/pointer/src + local.set $this|68 + i32.const 0 + local.set $index|69 + i32.const 10 + local.set $value|70 + local.get $this|68 + local.get $index|69 + i32.const 4 + i32.mul + i32.add + local.get $value|70 + i32.store + global.get $std/pointer/src + local.set $this|71 + i32.const 1 + local.set $index|72 + i32.const 20 + local.set $value|73 + local.get $this|71 + local.get $index|72 + i32.const 4 + i32.mul + i32.add + local.get $value|73 + i32.store + global.get $std/pointer/src + local.set $this|74 + i32.const 2 + local.set $index|75 + i32.const 30 + local.set $value|76 + local.get $this|74 + local.get $index|75 + i32.const 4 + i32.mul + i32.add + local.get $value|76 + i32.store + block $~lib/pointer/Pointer#constructor|inlined.1 (result i32) + i32.const 0 + local.set $this|77 + i32.const 200 + local.set $offset|78 + local.get $offset|78 + br $~lib/pointer/Pointer#constructor|inlined.1 + end + global.set $std/pointer/dst + global.get $std/pointer/src + local.set $this|79 + global.get $std/pointer/dst + local.set $dst + i32.const 3 + local.set $count + local.get $dst + local.get $this|79 + local.get $count + i32.const 4 + i32.mul + memory.copy + block $~lib/pointer/Pointer#get|inlined.0 (result i32) + global.get $std/pointer/dst + local.set $this|82 + i32.const 0 + local.set $index|83 + local.get $this|82 + local.get $index|83 + i32.const 4 + i32.mul + i32.add + i32.load + br $~lib/pointer/Pointer#get|inlined.0 + end + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 84 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get|inlined.1 (result i32) + global.get $std/pointer/dst + local.set $this|84 + i32.const 1 + local.set $index|85 + local.get $this|84 + local.get $index|85 + i32.const 4 + i32.mul + i32.add + i32.load + br $~lib/pointer/Pointer#get|inlined.1 + end + i32.const 20 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/pointer/Pointer#get|inlined.2 (result i32) + global.get $std/pointer/dst + local.set $this|86 + i32.const 2 + local.set $index|87 + local.get $this|86 + local.get $index|87 + i32.const 4 + i32.mul + i32.add + i32.load + br $~lib/pointer/Pointer#get|inlined.2 + end + i32.const 30 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/pointer.release.wat b/tests/compiler/std/pointer.release.wat index 50bf7379a8..19dcd14aed 100644 --- a/tests/compiler/std/pointer.release.wat +++ b/tests/compiler/std/pointer.release.wat @@ -8,6 +8,7 @@ (global $std/pointer/add (mut i32) (i32.const 0)) (global $std/pointer/sub (mut i32) (i32.const 0)) (global $std/pointer/nextOne (mut i32) (i32.const 0)) + (global $std/pointer/dst (mut i32) (i32.const 0)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33852)) (memory $0 1) (data $0 (i32.const 1036) ",") @@ -34,7 +35,7 @@ if i32.const 0 i32.const 1056 - i32.const 83 + i32.const 16 call $~lib/builtins/abort unreachable end @@ -45,7 +46,7 @@ if i32.const 0 i32.const 1056 - i32.const 84 + i32.const 17 call $~lib/builtins/abort unreachable end @@ -59,7 +60,7 @@ if i32.const 0 i32.const 1056 - i32.const 87 + i32.const 20 call $~lib/builtins/abort unreachable end @@ -73,7 +74,7 @@ if i32.const 0 i32.const 1056 - i32.const 90 + i32.const 23 call $~lib/builtins/abort unreachable end @@ -83,7 +84,7 @@ if i32.const 0 i32.const 1056 - i32.const 92 + i32.const 25 call $~lib/builtins/abort unreachable end @@ -99,7 +100,7 @@ if i32.const 0 i32.const 1056 - i32.const 94 + i32.const 27 call $~lib/builtins/abort unreachable end @@ -109,7 +110,7 @@ if i32.const 0 i32.const 1056 - i32.const 95 + i32.const 28 call $~lib/builtins/abort unreachable end @@ -119,7 +120,7 @@ if i32.const 0 i32.const 1056 - i32.const 97 + i32.const 30 call $~lib/builtins/abort unreachable end @@ -137,7 +138,7 @@ if i32.const 0 i32.const 1056 - i32.const 100 + i32.const 33 call $~lib/builtins/abort unreachable end @@ -148,7 +149,7 @@ if i32.const 0 i32.const 1056 - i32.const 101 + i32.const 34 call $~lib/builtins/abort unreachable end @@ -159,7 +160,7 @@ if i32.const 0 i32.const 1056 - i32.const 102 + i32.const 35 call $~lib/builtins/abort unreachable end @@ -183,7 +184,7 @@ if i32.const 0 i32.const 1056 - i32.const 105 + i32.const 38 call $~lib/builtins/abort unreachable end @@ -194,7 +195,7 @@ if i32.const 0 i32.const 1056 - i32.const 106 + i32.const 39 call $~lib/builtins/abort unreachable end @@ -205,7 +206,7 @@ if i32.const 0 i32.const 1056 - i32.const 107 + i32.const 40 call $~lib/builtins/abort unreachable end @@ -222,7 +223,7 @@ if i32.const 0 i32.const 1056 - i32.const 113 + i32.const 46 call $~lib/builtins/abort unreachable end @@ -233,7 +234,7 @@ if i32.const 0 i32.const 1056 - i32.const 114 + i32.const 47 call $~lib/builtins/abort unreachable end @@ -244,7 +245,7 @@ if i32.const 0 i32.const 1056 - i32.const 116 + i32.const 49 call $~lib/builtins/abort unreachable end @@ -255,7 +256,7 @@ if i32.const 0 i32.const 1056 - i32.const 117 + i32.const 50 call $~lib/builtins/abort unreachable end @@ -266,7 +267,7 @@ if i32.const 0 i32.const 1056 - i32.const 119 + i32.const 52 call $~lib/builtins/abort unreachable end @@ -277,7 +278,7 @@ if i32.const 0 i32.const 1056 - i32.const 120 + i32.const 53 call $~lib/builtins/abort unreachable end @@ -291,7 +292,7 @@ if i32.const 0 i32.const 1056 - i32.const 123 + i32.const 56 call $~lib/builtins/abort unreachable end @@ -302,7 +303,7 @@ if i32.const 0 i32.const 1056 - i32.const 124 + i32.const 57 call $~lib/builtins/abort unreachable end @@ -313,7 +314,7 @@ if i32.const 0 i32.const 1056 - i32.const 125 + i32.const 58 call $~lib/builtins/abort unreachable end @@ -327,7 +328,7 @@ if i32.const 0 i32.const 1056 - i32.const 128 + i32.const 61 call $~lib/builtins/abort unreachable end @@ -338,7 +339,84 @@ if i32.const 0 i32.const 1056 - i32.const 129 + i32.const 62 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/one + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 69 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/two + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 73 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/one + global.get $std/pointer/two + i32.eq + if + i32.const 0 + i32.const 1056 + i32.const 74 + call $~lib/builtins/abort + unreachable + end + i32.const 100 + i32.const 10 + i32.store + i32.const 104 + i32.const 20 + i32.store + i32.const 108 + i32.const 30 + i32.store + i32.const 200 + global.set $std/pointer/dst + i32.const 200 + i32.const 100 + i32.const 12 + memory.copy + i32.const 200 + i32.load + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 84 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/dst + i32.load offset=4 + i32.const 20 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 85 + call $~lib/builtins/abort + unreachable + end + global.get $std/pointer/dst + i32.load offset=8 + i32.const 30 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 86 call $~lib/builtins/abort unreachable end diff --git a/tests/compiler/std/pointer.ts b/tests/compiler/std/pointer.ts index dc3c1a2435..f6d279380f 100644 --- a/tests/compiler/std/pointer.ts +++ b/tests/compiler/std/pointer.ts @@ -1,71 +1,4 @@ -// A pointer arithmetic experiment - -@final @unmanaged class Pointer { - - @inline constructor(offset: usize = 0) { - return changetype>(offset); - } - - @inline get offset(): usize { - return changetype(this); - } - - @inline get value(): T { - if (isReference()) { - return changetype(changetype(this)); - } else { - return load(changetype(this)); - } - } - - @inline set value(value: T) { - if (isReference()) { - if (isManaged()) ERROR("Unsafe unmanaged set of a managed object"); - if (value == null) { - memory.fill(changetype(this), 0, offsetof()); - } else { - memory.copy(changetype(this), changetype(value), offsetof()); - } - } else { - store(changetype(this), value); - } - } - - // FIXME: in general, inlining any of the following always yields a block. one could argue that - // this helps debuggability, or that it is unnecessary overhead due to the simplicity of the - // functions. a compromise could be to inline a block consisting of a single 'return' as is, - // where possible. - - @inline @operator("+") add(other: Pointer): Pointer { - return changetype>(changetype(this) + changetype(other)); - } - - @inline @operator("-") sub(other: Pointer): Pointer { - return changetype>(changetype(this) - changetype(other)); - } - - @inline @operator.prefix("++") inc(): Pointer { - // FIXME: this should take alignment into account, but then would require a new builtin to - // determine the minimal alignment of a struct by evaluating its field layout. - const size = isReference() ? offsetof() : sizeof(); - return changetype>(changetype(this) + size); - } - - @inline @operator.prefix("--") dec(): Pointer { - const size = isReference() ? offsetof() : sizeof(); - return changetype>(changetype(this) - size); - } - - @inline @operator("[]") get(index: i32): T { - const size = isReference() ? offsetof() : sizeof(); - return load(changetype(this) + (index * size)); - } - - @inline @operator("[]=") set(index: i32, value: T): void { - const size = isReference() ? offsetof() : sizeof(); - store(changetype(this) + (index * size), value); - } -} +import { Pointer } from "pointer"; @unmanaged class Entry { @@ -127,3 +60,27 @@ assert(load(8) == 1.3); buf.value = 1.4; assert(buf.value == 1.4); assert(load(0) == 1.4); + +// New methods + +// isNull +var nullPtr = Pointer.null(); +assert(nullPtr.isNull()); +assert(!one.isNull()); + +// equals +var same = new Pointer(8); +assert(two.equals(same)); +assert(!one.equals(two)); + +// copyTo +var src = new Pointer(100); +src[0] = 10; +src[1] = 20; +src[2] = 30; + +var dst = new Pointer(200); +src.copyTo(dst, 3); +assert(dst[0] == 10); +assert(dst[1] == 20); +assert(dst[2] == 30); From 08ecafc78994fc1796adae1bce56272740d567e7 Mon Sep 17 00:00:00 2001 From: BlobMaster41 <96896824+BlobMaster41@users.noreply.github.com> Date: Sun, 8 Mar 2026 06:11:57 -0400 Subject: [PATCH 5/6] Simplify exports and fix variable declarations Cleanup UMD bundle output: remove intermediate `var _default` and assign `._exports.default` directly in both loader and rtrace builds; move `TOTAL_OVERHEAD` assignment onto `_exports` (remove redundant `const`) in rtrace; fix indentation/initialization of the `off` variable in the loader string-decoding loop. Minor formatting and cleanup across the two UMD files. --- lib/loader/umd/index.js | 4 ++-- lib/rtrace/umd/index.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/loader/umd/index.js b/lib/loader/umd/index.js index 13efee721e..7dc9782c88 100644 --- a/lib/loader/umd/index.js +++ b/lib/loader/umd/index.js @@ -92,7 +92,7 @@ return utf16.decode(wtf16); } catch { let str = "", - off = 0; + off = 0; while (len - off > STRING_CHUNKSIZE) { str += String.fromCharCode(...wtf16.subarray(off, off += STRING_CHUNKSIZE)); } @@ -468,7 +468,7 @@ } return extendedExports; } - var _default = _exports.default = { + _exports.default = { instantiate, instantiateSync, instantiateStreaming, diff --git a/lib/rtrace/umd/index.js b/lib/rtrace/umd/index.js index bf25d0dcd0..458d131021 100644 --- a/lib/rtrace/umd/index.js +++ b/lib/rtrace/umd/index.js @@ -38,7 +38,7 @@ const PTR_VIEW = Uint32Array; const BLOCK_OVERHEAD = _exports.BLOCK_OVERHEAD = PTR_SIZE; const OBJECT_OVERHEAD = _exports.OBJECT_OVERHEAD = 16; - const TOTAL_OVERHEAD = _exports.TOTAL_OVERHEAD = BLOCK_OVERHEAD + OBJECT_OVERHEAD; + _exports.TOTAL_OVERHEAD = BLOCK_OVERHEAD + OBJECT_OVERHEAD; function assert(x) { if (!x) throw Error("assertion failed"); return x; @@ -340,7 +340,7 @@ } } _exports.Rtrace = Rtrace; - var _default = _exports.default = { + _exports.default = { Rtrace }; }); \ No newline at end of file From b2542ace9d621cc598af0a2053a80de9cdf1b8c0 Mon Sep 17 00:00:00 2001 From: BlobMaster41 <96896824+BlobMaster41@users.noreply.github.com> Date: Sun, 8 Mar 2026 06:14:36 -0400 Subject: [PATCH 6/6] Bump version to 0.29.3 Bump package version from 0.29.2 to 0.29.3 in package.json and update package-lock.json to reflect the new patch release. --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8590fc82fd..c88a90cad0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@btc-vision/assemblyscript", - "version": "0.29.2", + "version": "0.29.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@btc-vision/assemblyscript", - "version": "0.29.2", + "version": "0.29.3", "license": "Apache-2.0", "dependencies": { "binaryen": "125.0.0-nightly.20251209", diff --git a/package.json b/package.json index c4977972c6..ed6c6b57bb 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "@btc-vision/assemblyscript", "wasm" ], - "version": "0.29.2", + "version": "0.29.3", "author": "Daniel Wirtz ", "license": "Apache-2.0", "homepage": "https://assemblyscript.org",